mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Recoil - Code cleanup (#10150)
* Recoil code cleanup * Store recoil values as numbers in config, only `compile` if needed * Updated header --------- Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
parent
b85150e6eb
commit
8eefffe811
@ -1 +1 @@
|
||||
z\ace\addons\recoil
|
||||
z\ace\addons\recoil
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
// Completely disable BI's camshake on fire.
|
||||
#define ACE_CAMSHAKEFIRE_BASE 0
|
||||
#define ACE_CAMSHAKEFIRE_LESS 0
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
#define KICKBACK 1.4
|
||||
|
||||
#define MUZZLETEMP 1.2
|
||||
@ -15,28 +14,28 @@ class CfgRecoils {
|
||||
// doc: http://forums.bistudio.com/showthread.php?188999-Recoil-Overhaul-Feedback&s=dba8590ec07adb5ffa87f72d38dde6fc&p=2886744&viewfull=1#post2886744
|
||||
// {horizontal axis position, vertical axis position, horizontal magnitude, vertical magnitude}
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0*MUZZLERIGHT_POS),
|
||||
QUOTE(0.4*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.6*MUZZLECLIMB_MAG)
|
||||
0*MUZZLERIGHT_POS,
|
||||
0.4*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.6*MUZZLECLIMB_MAG
|
||||
};
|
||||
// restricted area inside the outer ellipse where the recoil cannot end
|
||||
muzzleInner[] = {0,0.05,0.2,0.2};
|
||||
// minimum and maximum interval for backward force
|
||||
kickBack[] = {
|
||||
QUOTE(0.05*KICKBACK),
|
||||
QUOTE(0.1*KICKBACK)
|
||||
0.05*KICKBACK,
|
||||
0.1*KICKBACK
|
||||
};
|
||||
permanent = QUOTE(0.1*MUZZLEPERM);
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
permanent = 0.1*MUZZLEPERM;
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_default: Default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
muzzleInner[] = {0,
|
||||
0,
|
||||
@ -44,528 +43,528 @@ class CfgRecoils {
|
||||
0.1
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
permanent = QUOTE(0.1*MUZZLEPERM);
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
permanent = 0.1*MUZZLEPERM;
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mk20: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(0.6*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
0.6*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.01*KICKBACK),
|
||||
QUOTE(0.03*KICKBACK)
|
||||
0.01*KICKBACK,
|
||||
0.03*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mk20c: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(0.8*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
0.8*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_trg20: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_trg21: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(0.8*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
0.8*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.01*KICKBACK),
|
||||
QUOTE(0.03*KICKBACK)
|
||||
0.01*KICKBACK,
|
||||
0.03*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mx: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.4*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.4*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mxc: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1.2*MUZZLECLIMB_POS),
|
||||
QUOTE(0.4*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1.2*MUZZLECLIMB_POS,
|
||||
0.4*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_sw: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(0.8*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
0.8*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP); //0.005*MUZZLETEMP;
|
||||
temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mxm: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(0.8*MUZZLECLIMB_POS),
|
||||
QUOTE(0.4*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
0.8*MUZZLECLIMB_POS,
|
||||
0.4*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_ktb: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_ktbc: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1.2*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1.2*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_smg_01: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.1*MUZZLERIGHT_POS),
|
||||
QUOTE(0.8*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.1*MUZZLERIGHT_POS,
|
||||
0.8*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.01*KICKBACK),
|
||||
QUOTE(0.03*KICKBACK)
|
||||
0.01*KICKBACK,
|
||||
0.03*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_smg_02: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.1*MUZZLERIGHT_POS),
|
||||
QUOTE(0.6*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.1*MUZZLERIGHT_POS,
|
||||
0.6*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.01*KICKBACK),
|
||||
QUOTE(0.02*KICKBACK)
|
||||
0.01*KICKBACK,
|
||||
0.02*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pdw: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.02*MUZZLETEMP);
|
||||
temporary = 0.02*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_sdar: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.3*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.3*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_p07: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.03*MUZZLETEMP);
|
||||
temporary = 0.03*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_rook40: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.02*MUZZLETEMP);
|
||||
temporary = 0.02*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_acpc2: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.04*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.04*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.04*MUZZLETEMP);
|
||||
temporary = 0.04*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_4five: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.04*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.04*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.06*MUZZLETEMP);
|
||||
temporary = 0.06*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_zubr: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.04*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.04*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.08*MUZZLETEMP);
|
||||
temporary = 0.08*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_pistol_signal: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.2*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.2*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.2*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.2*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.02*MUZZLETEMP);
|
||||
temporary = 0.02*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_rpg: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(2*MUZZLERIGHT_POS),
|
||||
QUOTE(3*MUZZLECLIMB_POS),
|
||||
QUOTE(1*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
2*MUZZLERIGHT_POS,
|
||||
3*MUZZLECLIMB_POS,
|
||||
1*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.08*KICKBACK),
|
||||
QUOTE(0.1*KICKBACK)
|
||||
0.08*KICKBACK,
|
||||
0.1*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.1*MUZZLETEMP);
|
||||
temporary = 0.1*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_nlaw: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(2*MUZZLERIGHT_POS),
|
||||
QUOTE(3*MUZZLECLIMB_POS),
|
||||
QUOTE(1*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
2*MUZZLERIGHT_POS,
|
||||
3*MUZZLECLIMB_POS,
|
||||
1*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.06*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.06*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.08*MUZZLETEMP);
|
||||
temporary = 0.08*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_titan_long: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(2*MUZZLERIGHT_POS),
|
||||
QUOTE(3*MUZZLECLIMB_POS),
|
||||
QUOTE(1*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
2*MUZZLERIGHT_POS,
|
||||
3*MUZZLECLIMB_POS,
|
||||
1*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.1*KICKBACK),
|
||||
QUOTE(0.12*KICKBACK)
|
||||
0.1*KICKBACK,
|
||||
0.12*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.15*MUZZLETEMP);
|
||||
temporary = 0.15*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_titan_short: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(2*MUZZLERIGHT_POS),
|
||||
QUOTE(3*MUZZLECLIMB_POS),
|
||||
QUOTE(1*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
2*MUZZLERIGHT_POS,
|
||||
3*MUZZLECLIMB_POS,
|
||||
1*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.1*KICKBACK),
|
||||
QUOTE(0.12*KICKBACK)
|
||||
0.1*KICKBACK,
|
||||
0.12*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.12*MUZZLETEMP);
|
||||
temporary = 0.12*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mk200: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.4*MUZZLERIGHT_POS),
|
||||
QUOTE(0.6*MUZZLECLIMB_POS),
|
||||
QUOTE(0.6*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.2*MUZZLECLIMB_MAG)
|
||||
0.4*MUZZLERIGHT_POS,
|
||||
0.6*MUZZLECLIMB_POS,
|
||||
0.6*MUZZLERIGHT_MAG,
|
||||
0.2*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP); //0.005*MUZZLETEMP;
|
||||
temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_zafir: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(1*MUZZLECLIMB_POS),
|
||||
QUOTE(0.7*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
1*MUZZLECLIMB_POS,
|
||||
0.7*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP); //0.005*MUZZLETEMP;
|
||||
temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_m320: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(1*MUZZLERIGHT_POS),
|
||||
QUOTE(3*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.6*MUZZLECLIMB_MAG)
|
||||
1*MUZZLERIGHT_POS,
|
||||
3*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.6*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.08*KICKBACK),
|
||||
QUOTE(0.1*KICKBACK)
|
||||
0.08*KICKBACK,
|
||||
0.1*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.02*MUZZLETEMP);
|
||||
temporary = 0.02*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_gm6: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(1.4*MUZZLERIGHT_POS),
|
||||
QUOTE(3.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.7*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.8*MUZZLECLIMB_MAG)
|
||||
1.4*MUZZLERIGHT_POS,
|
||||
3.5*MUZZLECLIMB_POS,
|
||||
0.7*MUZZLERIGHT_MAG,
|
||||
0.8*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.1*KICKBACK),
|
||||
QUOTE(0.12*KICKBACK)
|
||||
0.1*KICKBACK,
|
||||
0.12*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.025*MUZZLETEMP);
|
||||
temporary = 0.025*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_ebr: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.4*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.6*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.4*MUZZLECLIMB_MAG)
|
||||
0.4*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.6*MUZZLERIGHT_MAG,
|
||||
0.4*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.04*KICKBACK),
|
||||
QUOTE(0.07*KICKBACK)
|
||||
0.04*KICKBACK,
|
||||
0.07*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_01: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(2*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
2*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_02: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(2.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.6*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
2.5*MUZZLECLIMB_POS,
|
||||
0.6*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.06*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.06*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_03: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.3*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.4*MUZZLECLIMB_MAG)
|
||||
0.3*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.4*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.03*KICKBACK),
|
||||
QUOTE(0.06*KICKBACK)
|
||||
0.03*KICKBACK,
|
||||
0.06*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.005*MUZZLETEMP);
|
||||
temporary = 0.005*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_04: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.4*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.5*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.4*MUZZLECLIMB_MAG)
|
||||
0.4*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.5*MUZZLERIGHT_MAG,
|
||||
0.4*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.04*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.04*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.015*MUZZLETEMP);
|
||||
temporary = 0.015*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_05: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(2.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.8*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.6*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
2.5*MUZZLECLIMB_POS,
|
||||
0.8*MUZZLERIGHT_MAG,
|
||||
0.6*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.08*KICKBACK),
|
||||
QUOTE(0.1*KICKBACK)
|
||||
0.08*KICKBACK,
|
||||
0.1*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_dmr_06: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(2*MUZZLECLIMB_POS),
|
||||
QUOTE(0.7*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.5*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
2*MUZZLECLIMB_POS,
|
||||
0.7*MUZZLERIGHT_MAG,
|
||||
0.5*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.05*KICKBACK),
|
||||
QUOTE(0.1*KICKBACK)
|
||||
0.05*KICKBACK,
|
||||
0.1*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP);
|
||||
temporary = 0.01*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mmg_01: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.6*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.8*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.3*MUZZLECLIMB_MAG)
|
||||
0.6*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.8*MUZZLERIGHT_MAG,
|
||||
0.3*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.02*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.02*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP); //0.005*MUZZLETEMP;
|
||||
temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP;
|
||||
};
|
||||
|
||||
class recoil_mmg_02: recoil_default {
|
||||
muzzleOuter[] = {
|
||||
QUOTE(0.5*MUZZLERIGHT_POS),
|
||||
QUOTE(1.5*MUZZLECLIMB_POS),
|
||||
QUOTE(0.6*MUZZLERIGHT_MAG),
|
||||
QUOTE(0.4*MUZZLECLIMB_MAG)
|
||||
0.5*MUZZLERIGHT_POS,
|
||||
1.5*MUZZLECLIMB_POS,
|
||||
0.6*MUZZLERIGHT_MAG,
|
||||
0.4*MUZZLECLIMB_MAG
|
||||
};
|
||||
kickBack[] = {
|
||||
QUOTE(0.04*KICKBACK),
|
||||
QUOTE(0.08*KICKBACK)
|
||||
0.04*KICKBACK,
|
||||
0.08*KICKBACK
|
||||
};
|
||||
temporary = QUOTE(0.01*MUZZLETEMP); //0.005*MUZZLETEMP;
|
||||
temporary = 0.01*MUZZLETEMP; //0.005*MUZZLETEMP;
|
||||
};
|
||||
};
|
||||
|
@ -1,2 +1 @@
|
||||
|
||||
PREP(camshake);
|
||||
|
@ -7,4 +7,6 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
GVAR(recoilCache) = createHashMap;
|
||||
|
||||
ADDON = true;
|
||||
|
@ -1,17 +1,17 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Orginal by Ryan Schultz, edited by KoffeinFlummi, commy2
|
||||
* Author: Original by Ryan Schultz, edited by KoffeinFlummi, commy2
|
||||
* Adds camera shake when firing. Called from the unified fired EH only for the local player.
|
||||
* From TMR: Small Arms
|
||||
*
|
||||
* Arguments:
|
||||
* None. Parameters inherited from EFUNC(common,firedEH)
|
||||
* Parameters inherited from EFUNC(common,firedEH)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, (currentWeapon player), (currentMuzzle player)] call ace_recoil_fnc_camshake;
|
||||
* [player, currentWeapon player, currentMuzzle player] call ace_recoil_fnc_camshake
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -28,20 +28,19 @@ if (toLowerANSI _weapon in ["throw", "put"]) exitWith {};
|
||||
|
||||
private _powerMod = ([0, -0.1, -0.1, 0, -0.2] select (["STAND", "CROUCH", "PRONE", "UNDEFINED", ""] find stance _unit)) + ([0, -1, 0, -1] select (["INTERNAL", "EXTERNAL", "GUNNER", "GROUP"] find cameraView));
|
||||
|
||||
// to get camshake read kickback
|
||||
private _recoil = missionNamespace getVariable format [QGVAR(%1-%2), _weapon, _muzzle];
|
||||
|
||||
if (isNil "_recoil") then {
|
||||
// Get camshake read kickback
|
||||
private _recoil = GVAR(recoilCache) getOrDefaultCall [_weapon + _muzzle, {
|
||||
private _config = configFile >> "CfgWeapons" >> _weapon;
|
||||
|
||||
if (_muzzle == _weapon) then {
|
||||
_recoil = getText (_config >> "recoil")
|
||||
private _recoil = if (_muzzle == _weapon) then {
|
||||
getText (_config >> "recoil")
|
||||
} else {
|
||||
_recoil = getText (_config >> _muzzle >> "recoil")
|
||||
getText (_config >> _muzzle >> "recoil")
|
||||
};
|
||||
|
||||
if (isClass (configFile >> "CfgRecoils" >> _recoil)) then {
|
||||
_recoil = getArray (configFile >> "CfgRecoils" >> _recoil >> "kickBack");
|
||||
|
||||
if (count _recoil < 2) then {
|
||||
_recoil = [0, 0];
|
||||
};
|
||||
@ -51,12 +50,12 @@ if (isNil "_recoil") then {
|
||||
|
||||
TRACE_3("Caching Recoil config",_weapon,_muzzle,_recoil);
|
||||
|
||||
// parse numbers
|
||||
_recoil set [0, call compile format ["%1", _recoil select 0]];
|
||||
_recoil set [1, call compile format ["%1", _recoil select 1]];
|
||||
// Ensure format is correct
|
||||
_recoil resize [2, 0];
|
||||
|
||||
missionNamespace setVariable [format [QGVAR(%1-%2), _weapon, _muzzle], _recoil];
|
||||
};
|
||||
// Parse numbers
|
||||
_recoil apply { if (_x isEqualType 0) then { _x } else { call compile format ["%1", _x] } } // return
|
||||
}, true];
|
||||
|
||||
private _powerCoef = RECOIL_COEF * linearConversion [0, 1, random 1, _recoil select 0, _recoil select 1, false];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user