Moved dummies to CfgVehicles

This commit is contained in:
IngoKauffmann 2015-08-16 23:52:37 +02:00
parent 1a22c4d85a
commit 0fcf692d36
11 changed files with 258 additions and 138 deletions

View File

@ -1,13 +1,3 @@
#define DUMMY_PROPERTIES \
effectsSmoke = ""; \
explosive = 0; \
fuseDistance = 10000; \
hit = 0; \
indirectHit = 0; \
muzzleEffect = ""; \
simulation = "shotMine"; \
timeToLive = 3600;
class CfgAmmo {
class BombCore;
@ -234,98 +224,6 @@ class CfgAmmo {
GVAR(dummy) = QGVAR(Bomb_03_F);
};
// Dummy Ammo
class GVAR(Bo_GBU12_LGB) : Bo_GBU12_LGB {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Bomb_01_F.p3d";
};
class GVAR(Bo_Mk82) : Bo_Mk82 {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Bomb_02_F";
};
class GVAR(Bomb_04_F) : Bomb_04_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Bomb_04_F.p3d";
};
class GVAR(Bomb_03_F) : Bomb_04_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Bomb_03_F.p3d";
};
class GVAR(Missile_AA_04_F) : Missile_AA_04_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AA_04_F.p3d";
};
class GVAR(Missile_AA_03_F) : Missile_AA_03_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AA_03_F.p3d";
};
class GVAR(Missile_AGM_02_F) : Missile_AGM_02_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_02_F.p3d";
};
class GVAR(Missile_AGM_01_F) : Missile_AGM_01_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_01_F.p3d";
};
class GVAR(R_230mm_fly) : R_230mm_fly {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Missile_AT_02_F";
};
class GVAR(R_230mm_HE) : R_230mm_HE {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Missile_AT_02_F";
};
class GVAR(M_PG_AT) : M_PG_AT {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Rocket_01_F";
};
class GVAR(Rocket_04_HE_F) : Rocket_04_HE_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_HE_F.p3d";
};
class GVAR(Rocket_03_HE_F) : Rocket_03_HE_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(Rocket_04_AP_F) : Rocket_04_HE_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_AP_F.p3d";
};
class GVAR(Rocket_03_AP_F) : Rocket_03_AP_F {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_AP_F.p3d";
};
// Using wrong model
class GVAR(R_80mm_HE) : R_80mm_HE {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(R_60mm_HE) : R_60mm_HE {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(R_Hydra_HE) : R_Hydra_HE {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
// F18 Mod
class js_a_fa18_wing_tank : LaserBombCore {
GVAR(caliber) = 250; // Default caliber for bombs

View File

@ -3,3 +3,17 @@ class Extended_PreInit_EventHandlers {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
class Extended_Respawn_EventHandlers {
class CAManBase {
class ADDON {
respawn = QUOTE(call COMPILE_FILE(XEH_respawn));
};
};
};

View File

@ -1,56 +1,56 @@
class CfgMagazines {
class CA_Magazine;
class 60Rnd_CMFlareMagazine : CA_Magazine {
displayName = CSTRING(flarelauncher);
displayName = CSTRING(60Rnd_CMFlareMagazine);
};
class VehicleMagazine;
class SmokeLauncherMag : VehicleMagazine {
displayName = CSTRING(smokelauncher);
displayName = CSTRING(SmokeLauncherMag);
};
class SmokeLauncherMag_boat : VehicleMagazine {
displayName = CSTRING(smokelauncher);
displayName = CSTRING(SmokeLauncherMag);
};
class 1000Rnd_Gatling_30mm_Plane_CAS_01_F : VehicleMagazine {
displayName = "30mm HEI";
displayName = CSTRING(1000Rnd_Gatling_30mm_Plane_CAS_01_F);
};
class 500Rnd_Cannon_30mm_Plane_CAS_02_F : 1000Rnd_Gatling_30mm_Plane_CAS_01_F {
displayName = "30mm HEI-T";
displayName = CSTRING(500Rnd_Cannon_30mm_Plane_CAS_02_F);
};
class 2Rnd_Missile_AA_04_F : VehicleMagazine {
displayName = "AIM-9 Sidewinder";
displayName = CSTRING(2Rnd_Missile_AA_04_F);
};
class 2Rnd_Missile_AA_03_F : 2Rnd_Missile_AA_04_F {
displayName = "Wympel R-73";
displayName = CSTRING(2Rnd_Missile_AA_03_F);
};
class 6Rnd_Missile_AGM_02_F : VehicleMagazine {
displayName = "AGM-65 Maverick";
displayName = CSTRING(6Rnd_Missile_AGM_02_F);
};
class 4Rnd_Missile_AGM_01_F : 6Rnd_Missile_AGM_02_F {
displayName = "Kh-25MTP";
displayName = CSTRING(4Rnd_Missile_AGM_01_F);
};
class 7Rnd_Rocket_04_HE_F : VehicleMagazine {
displayName = "Hydra 70 HE";
displayName = CSTRING(7Rnd_Rocket_04_HE_F);
};
class 20Rnd_Rocket_03_HE_F : 7Rnd_Rocket_04_HE_F {
displayName = "S-8 HE";
displayName = CSTRING(20Rnd_Rocket_03_HE_F);
};
class 7Rnd_Rocket_04_AP_F : 7Rnd_Rocket_04_HE_F {
displayName = "Hydra 70 AP";
displayName = CSTRING(7Rnd_Rocket_04_AP_F);
};
class 20Rnd_Rocket_03_AP_F : 7Rnd_Rocket_04_AP_F {
displayName = "S-8 AP";
displayName = CSTRING(20Rnd_Rocket_03_AP_F);
};
class 4Rnd_Bomb_04_F : VehicleMagazine {
displayName = "GBU-12"
displayName = CSTRING(4Rnd_Bomb_04_F);
};
class 2Rnd_Bomb_03_F : 4Rnd_Bomb_04_F {
displayName = "FAB-250M-54"
displayName = CSTRING(2Rnd_Bomb_03_F);
};
};

View File

@ -30,7 +30,12 @@
}; \
}; \
};
#define DUMMY_PROPERTIES \
displayName = QGVAR(dummy_obj); \
scope = 2; \
scopeCurator = 2;
class CfgVehicles {
class ACE_Module;
class ACE_moduleRearmSettings : ACE_Module {
@ -122,4 +127,97 @@ class CfgVehicles {
transportAmmo = 0;
MACRO_REARM_PICKUPAMMO
};
// Dummy vehicles
class ThingX;
class GVAR(Bo_GBU12_LGB) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Bomb_01_F.p3d";
};
class GVAR(Bo_Mk82) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Bomb_02_F";
};
class GVAR(Bomb_04_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Bomb_04_F.p3d";
};
class GVAR(Bomb_03_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Bomb_03_F.p3d";
};
class GVAR(Missile_AA_04_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AA_04_F.p3d";
};
class GVAR(Missile_AA_03_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AA_03_F.p3d";
};
class GVAR(Missile_AGM_02_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_02_F.p3d";
};
class GVAR(Missile_AGM_01_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_01_F.p3d";
};
class GVAR(R_230mm_fly) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Missile_AT_02_F";
};
class GVAR(R_230mm_HE) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Missile_AT_02_F";
};
class GVAR(M_PG_AT) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F\Ammo\Rocket_01_F";
};
class GVAR(Rocket_04_HE_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_HE_F.p3d";
};
class GVAR(Rocket_03_HE_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(Rocket_04_AP_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_AP_F.p3d";
};
class GVAR(Rocket_03_AP_F) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_AP_F.p3d";
};
// Using wrong model
class GVAR(R_80mm_HE) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(R_60mm_HE) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
class GVAR(R_Hydra_HE) : ThingX {
DUMMY_PROPERTIES
model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d";
};
};

View File

@ -0,0 +1,27 @@
#include "script_component.hpp"
["medical_onUnconscious", {
if (local (_this select 0)) then {
private ["_unit", "_dummy"];
_unit = _this select 0;
if (_this select 1) then {
_dummy = _unit getVariable [QGVAR(dummy), objNull];
if !(isNull _dummy) then {
detach _dummy;
deleteVehicle _dummy; // TODO remove when moved to CfgVehicles
};
_unit setVariable [QGVAR(dummy), nil];
};
};
}] call EFUNC(common,addEventHandler);
["medical_onSetDead", {
if (local (_this select 0)) then {
private ["_unit"];
_unit = _this select 0;
if (_this select 1) then {
_unit setVariable [QGVAR(selectedWeaponOnRearm), nil];
_unit setVariable [QGVAR(carriedMagazine), nil];
};
};
}] call EFUNC(common,addEventHandler);

View File

@ -13,5 +13,6 @@ PREP(rearmEntireVehicle);
PREP(rearmEntireVehicleSuccess);
PREP(rearmSuccess);
PREP(moduleRearmSettings);
PREP(turn);
ADDON = true;

View File

@ -0,0 +1,16 @@
#include "script_component.hpp"
private ["_unit"];
_unit = _this select 0;
if !(local _unit) exitWith {};
_unit setVariable [QGVAR(selectedWeaponOnRearm), nil];
_unit setVariable [QGVAR(carriedMagazine), nil];
_dummy = _unit getVariable [QGVAR(dummy), objNull];
if !(isNull _dummy) then {
detach _dummy;
deleteVehicle _dummy;
};
_unit setVariable [QGVAR(dummy), nil];

View File

@ -34,8 +34,8 @@ _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
_dummy = getText (configFile >> "CfgAmmo" >> _ammo >> QGVAR(dummy));
if !(_dummy == "") then {
_dummy = _dummy createVehicle (position _unit);
_dummy attachTo [_unit, [0,0.5,0], "pelvis"];
_dummy setDir 90;
_dummy attachTo [_unit, [0,0.5,0], "pelvis"];
[[_dummy, [[-1,0,0],[0,0,1]]], QUOTE(DFUNC(turn)), 2] call EFUNC(common,execRemoteFnc);
_dummy allowDamage false;
_unit setVariable [QGVAR(dummy), _dummy];
};

View File

@ -21,24 +21,25 @@
*/
#include "script_component.hpp"
#define REARM_SUCCESS \
[_unit, QGVAR(vehRearm), false] call EFUNC(common,setForceWalkStatus); \
_dummy = _unit getVariable [QGVAR(dummy), objNull]; \
if !(isNull _dummy) then { \
detach _dummy; \
deleteVehicle _dummy; \
}; \
_unit setVariable [QGVAR(carriedMagazine), nil, true]; \
_weaponSelect = _unit getVariable QGVAR(selectedWeaponOnRearm); \
_unit selectWeapon _weaponSelect; \
_unit setVariable [QGVAR(selectedWeaponOnRearm), nil];
private ["_rounds", "_currentRounds", "_maxMagazines", "_dummy"];
params ["_args"];
_args params ["_target", "_unit", "_turretPath", "_numMagazines", "_magazine", "_numRounds"];
//hint format ["Target: %1\nTurretPath: %2\nNumMagazines: %3\nMagazine: %4\nNumRounds: %5", _target, _turretPath, _numMagazines, _magazine, _numRounds];
if (local _unit) then {
[_unit, QGVAR(vehRearm), false] call EFUNC(common,setForceWalkStatus);
_dummy = _unit getVariable [QGVAR(dummy), objNull];
if !(isNull _dummy) then {
detach _dummy;
deleteVehicle _dummy;
};
_unit setVariable [QGVAR(carriedMagazine), nil, true];
_weaponSelect = _unit getVariable QGVAR(selectedWeaponOnRearm);
_unit selectWeapon _weaponSelect;
_unit setVariable [QGVAR(selectedWeaponOnRearm), nil];
};
if !(local _target) exitWith {
[_this, QUOTE(DFUNC(rearmSuccess)), _target] call EFUNC(common,execRemoteFnc);
};
@ -58,8 +59,6 @@ if (_maxMagazines == 1) then {
[[LSTRING(Hint_RearmedTriple), _numRounds,
getText(configFile >> "CfgMagazines" >> _magazine >> "displayName"),
getText(configFile >> "CfgVehicles" >> (typeOf _target) >> "displayName")], 3, _unit] call EFUNC(common,displayTextStructured);
REARM_SUCCESS
} else {
for "_idx" from 1 to _maxMagazines do {
_currentRounds = _target magazineTurretAmmo [_magazine, _turretPath];
@ -87,8 +86,6 @@ if (_maxMagazines == 1) then {
[[LSTRING(Hint_RearmedTriple), _rounds,
getText(configFile >> "CfgMagazines" >> _magazine >> "displayName"),
getText(configFile >> "CfgVehicles" >> (typeOf _target) >> "displayName")], 3, _unit] call EFUNC(common,displayTextStructured);
REARM_SUCCESS
};
_target removeMagazineTurret [_magazine, _turretPath];
_numMagazines = _numMagazines - 1;

View File

@ -0,0 +1,21 @@
/*
* Author: GitHawk
* Turns an object
*
* Arguments:
* 0: The Player <OBJECT>
* 1: The dirAndUp vector <ARRAY>
*
* Return Value:
* None
*
* Example:
* [_dummy, [[1,0,0],[0,0,1]]] call ace_rearm_fnc_turn
*
* Public: No
*/
#include "script_component.hpp"
params ["_obj", "_dirAndUp"];
_obj setVectorDirAndUp _dirAndUp;

View File

@ -49,7 +49,7 @@
<English>Rearmed %1 rounds of %2 on %3</English>
<German>%1 Schuss %2 an %3 aufmunitioniert</German>
</Key>
<Key ID="STR_ACE_Rearm_smokelauncher">
<Key ID="STR_ACE_Rearm_SmokeLauncherMag">
<Original>Smoke Screen</Original>
<English>Smoke Screen</English>
<Czech>Kouřová clona</Czech>
@ -61,7 +61,7 @@
<Russian>Дым. завеса</Russian>
<Spanish>Pantalla de humo</Spanish>
</Key>
<Key ID="STR_ACE_Rearm_flarelauncher">
<Key ID="STR_ACE_Rearm_60Rnd_CMFlareMagazine">
<Original>Flares</Original>
<English>Flares</English>
<Czech>Světlice</Czech>
@ -73,5 +73,53 @@
<Russian>ЛТЦ</Russian>
<Spanish>Bengalas</Spanish>
</Key>
<Key ID="STR_ACE_Rearm_1000Rnd_Gatling_30mm_Plane_CAS_01_F">
<English>30mm HEI</English>
<German>30mm HEI</German>
</Key>
<Key ID="STR_ACE_Rearm_500Rnd_Cannon_30mm_Plane_CAS_02_F">
<English>30mm HEI-T</English>
<German>30mm HEI-T</German>
</Key>
<Key ID="STR_ACE_Rearm_2Rnd_Missile_AA_04_F">
<English>AIM-9 Sidewinder</English>
<German>AIM-9 Sidewinder</German>
</Key>
<Key ID="STR_ACE_Rearm_2Rnd_Missile_AA_03_F">
<English>Wympel R-73</English>
<German>Wympel R-73</German>
</Key>
<Key ID="STR_ACE_Rearm_6Rnd_Missile_AGM_02_F">
<English>AGM-65 Maverick</English>
<German>AGM-65 Maverick</German>
</Key>
<Key ID="STR_ACE_Rearm_4Rnd_Missile_AGM_01_F">
<English>Kh-25MTP</English>
<German>Kh-25MTP</German>
</Key>
<Key ID="STR_ACE_Rearm_7Rnd_Rocket_04_HE_F">
<English>Hydra 70 HE</English>
<German>Hydra 70 HE</German>
</Key>
<Key ID="STR_ACE_Rearm_20Rnd_Rocket_03_HE_F">
<English>S-8 HE</English>
<German>S-8 HE</German>
</Key>
<Key ID="STR_ACE_Rearm_7Rnd_Rocket_04_AP_F">
<English>Hydra 70 AP</English>
<German>Hydra 70 AP</German>
</Key>
<Key ID="STR_ACE_Rearm_20Rnd_Rocket_03_AP_F">
<English>S-8 AP</English>
<German>S-8 AP</German>
</Key>
<Key ID="STR_ACE_Rearm_4Rnd_Bomb_04_F">
<English>GBU-12</English>
<German>GBU-12</German>
</Key>
<Key ID="STR_ACE_Rearm_2Rnd_Bomb_03_F">
<English>FAB-250M-54</English>
<German>FAB-250M-54</German>
</Key>
</Package>
</Project>