mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
manual merge
This commit is contained in:
commit
58ece34149
@ -40,7 +40,9 @@ Aleksey EpMAK Yermakov <epmak777@gmail.com>
|
||||
Alganthe <alganthe@live.fr>
|
||||
Andrea "AtixNeon" Verano <veranoandrea88@gmail.com>
|
||||
Anthariel <Contact@storm-simulation.com>
|
||||
Arcanum417 <lubos.len@gmail.com>
|
||||
Anton
|
||||
Arcanum417 <lubos.len@gmail.com>
|
||||
Arkhir <wonsz666@gmail.com >
|
||||
Asgar Serran <piechottaf@web.de>
|
||||
BaerMitUmlaut
|
||||
@ -127,6 +129,7 @@ Raspu86
|
||||
Riccardo Petricca <petriccarcc@gmail.com>
|
||||
Robert Boklahánics <bokirobi@gmail.com>
|
||||
ruPaladin <happyworm24@rambler.ru>
|
||||
Rutger "RedBery" Meijering <c.redbery@gmail.com>
|
||||
simon84 <badguy360th@gmail.com>
|
||||
Skengman2
|
||||
Sniperwolf572 <tenga6@gmail.com>
|
||||
@ -144,4 +147,5 @@ voiper
|
||||
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
|
||||
Winter <simon@agius-muscat.net>
|
||||
xrufix
|
||||
Zakant <Zakant@gmx.de>
|
||||
zGuba
|
||||
|
BIN
ace_medical.dll
BIN
ace_medical.dll
Binary file not shown.
Binary file not shown.
@ -1,6 +1,24 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
[missionNamespace, "ACE_setCustomAimCoef", QUOTE(ADDON), {
|
||||
private _unit = ACE_player;
|
||||
private _fatigue = _unit getVariable [QGVAR(aimFatigue), 0];
|
||||
|
||||
switch (stance _unit) do {
|
||||
case ("CROUCH"): {
|
||||
1.0 + _fatigue ^ 2 * 0.1
|
||||
};
|
||||
case ("PRONE"): {
|
||||
1.0 + _fatigue ^ 2 * 2.0
|
||||
};
|
||||
default {
|
||||
1.5 + _fatigue ^ 2 * 3.0
|
||||
};
|
||||
};
|
||||
}] call EFUNC(common,arithmeticSetSource);
|
||||
|
||||
["ace_settingsInitialized", {
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
@ -30,7 +48,7 @@ if (!hasInterface) exitWith {};
|
||||
linearConversion [0, 1, (_this getVariable [QEGVAR(medical,pain), 0]), 1, 1.1, true];
|
||||
}] call FUNC(addDutyFactor);
|
||||
[QEGVAR(medical,bloodVolume), { // 100->1.0, 90->1.1, 80->1.2
|
||||
linearConversion [100, 0, (_this getVariable [QEGVAR(medical,bloodVolume), 100]), 1, 2, true];
|
||||
linearConversion [6, 0, (_this getVariable [QEGVAR(medical,bloodVolume), 100]), 1, 2, true];
|
||||
}] call FUNC(addDutyFactor);
|
||||
};
|
||||
if (["ACE_Dragging"] call EFUNC(common,isModLoaded)) then {
|
||||
|
@ -88,14 +88,7 @@ if (_overexhausted) then {
|
||||
};
|
||||
};
|
||||
|
||||
switch (stance _unit) do {
|
||||
case ("CROUCH"): {
|
||||
[_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 0.1) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
case ("PRONE"): {
|
||||
[_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 2.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
default {
|
||||
[_unit, QUOTE(ADDON), (1.5 + _fatigue ^ 2 * 3.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef);
|
||||
};
|
||||
};
|
||||
_unit setVariable [QGVAR(aimFatigue), _fatigue];
|
||||
|
||||
private _aimCoef = [missionNamespace, "ACE_setCustomAimCoef", "max"] call EFUNC(common,arithmeticGetResult);
|
||||
_unit setCustomAimCoef _aimCoef;
|
||||
|
@ -13,7 +13,7 @@ class Display3DEN {
|
||||
};
|
||||
class aceArsenal: virtualArsenal {
|
||||
text = "ACE Arsenal";
|
||||
action = QUOTE(call FUNC(open3DEN));
|
||||
action = QUOTE(call DFUNC(open3DEN));
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -21,12 +21,12 @@ class Display3DEN {
|
||||
class MenuStrip: ctrlMenuStrip {
|
||||
class Items {
|
||||
class Tools {
|
||||
items[] += {"ACE_arsenal_portVALoadouts"};
|
||||
items[] += {QGVAR(portVALoadouts)};
|
||||
};
|
||||
class ACE_arsenal_portVALoadouts {
|
||||
class GVAR(portVALoadouts) {
|
||||
text = CSTRING(portLoadoutsText);
|
||||
picture = QPATHTOEF(common,data\logo_ace3_ca.paa);
|
||||
action = "call ace_arsenal_fnc_portVALoadouts;";
|
||||
action = QUOTE(call DFUNC(portVALoadouts););
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -60,4 +60,15 @@ GVAR(modList) = ["","curator","kart","heli","mark","expansion","expansionpremium
|
||||
|
||||
call FUNC(compileStats);
|
||||
|
||||
// compatibility with CBA scripted 2d optics framework
|
||||
[QGVAR(displayOpened), {
|
||||
"cba_optics_arsenalOpened" call CBA_fnc_localEvent;
|
||||
"cba_disposable_arsenalOpened" call CBA_fnc_localEvent;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(displayClosed), {
|
||||
"cba_optics_arsenalClosed" call CBA_fnc_localEvent;
|
||||
"cba_disposable_arsenalClosed" call CBA_fnc_localEvent;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
ADDON = true;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "script_component.hpp"
|
||||
#include "..\defines.hpp"
|
||||
#include "\A3\ui_f\hpp\defineDIKCodes.inc"
|
||||
#include "\a3\ui_f\hpp\defineDIKCodes.inc"
|
||||
/*
|
||||
* Author: Alganthe
|
||||
* Handles keyboard inputs in arsenal.
|
||||
|
@ -211,7 +211,7 @@ for "_dataIndex" from 0 to 9 do {
|
||||
};
|
||||
|
||||
case 9: {
|
||||
for "_subIndex" from 0 to 4 do {
|
||||
for "_subIndex" from 0 to 5 do {
|
||||
private _item = (_loadout select _dataIndex) select _subIndex;
|
||||
|
||||
if (_item != "") then {
|
||||
|
@ -290,7 +290,7 @@ class CfgAmmo {
|
||||
ACE_barrelLengths[]={508.0, 609.6, 660.4};
|
||||
};
|
||||
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
|
||||
airFriction=-0.00055262;
|
||||
airFriction=-0.00053638;
|
||||
caliber=2.0;
|
||||
hit=19;
|
||||
typicalSpeed=853;
|
||||
|
@ -161,30 +161,5 @@ class CfgMagazineWells {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
class CBA_762x54R_Mosin {
|
||||
ADDON[] = {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
class CBA_762x54R_SVT {
|
||||
ADDON[] = {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
class CBA_762x54R_DPM {
|
||||
ADDON[] = {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
class CBA_762x54R_DT {
|
||||
ADDON[] = {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
class CBA_762x54R_Maxim {
|
||||
ADDON[] = {
|
||||
"ACE_10Rnd_762x54_Tracer_mag"
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -28,8 +28,6 @@ class CfgWeapons {
|
||||
|
||||
// MX
|
||||
class arifle_MX_Base_F: Rifle_Base_F {
|
||||
magazineWell[] = {"CBA_65x39_MX", "CBA_65x39_MX_XL"};
|
||||
|
||||
class Single: Mode_SemiAuto {
|
||||
dispersion = MOA_TO_RAD(0.90);
|
||||
};
|
||||
|
@ -1,7 +1,6 @@
|
||||
PREP(addLoadCaptiveActions);
|
||||
PREP(canApplyHandcuffs);
|
||||
PREP(canEscortCaptive);
|
||||
PREP(canFriskPerson);
|
||||
PREP(canLoadCaptive);
|
||||
PREP(canRemoveHandcuffs);
|
||||
PREP(canStopEscorting);
|
||||
@ -9,7 +8,6 @@ PREP(canSurrender);
|
||||
PREP(canUnloadCaptive);
|
||||
PREP(doApplyHandcuffs);
|
||||
PREP(doEscortCaptive);
|
||||
PREP(doFriskPerson);
|
||||
PREP(doLoadCaptive);
|
||||
PREP(doRemoveHandcuffs);
|
||||
PREP(doUnloadCaptive);
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "script_component.hpp"
|
||||
#include "\a3\editor_f\Data\Scripts\dikCodes.h"
|
||||
#include "\a3\ui_f\hpp\defineDIKCodes.inc"
|
||||
|
||||
["ace_settingsInitialized", {
|
||||
// Hold on a little bit longer to ensure anims will work
|
||||
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)};
|
||||
weapons[] = {"ACE_CableTie"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_Interaction"};
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"commy2", "KoffeinFlummi"};
|
||||
url = ECSTRING(main,URL);
|
||||
|
@ -1,24 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: bux578
|
||||
* Checks the conditions for being able to frisk a unit
|
||||
*
|
||||
* Arguments:
|
||||
* 0: caller (player) <OBJECT>
|
||||
* 1: target <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* The return value <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [player, bob] call ACE_captives_fnc_canFriskPerson
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "_target"];
|
||||
|
||||
_target getVariable [QGVAR(isHandcuffed), false]
|
||||
|| {_target getVariable [QGVAR(isSurrendering), false]}
|
||||
|| {_target getVariable ["ACE_isSearchable", false]}
|
||||
|| {_target getVariable ["ACE_isUnconscious", false]}
|
@ -1,67 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: bux578
|
||||
* Open the select menu with the "personal" items of a frisked unit. It only shows "handgunWeapon", "uniformItems", "vestItems", "backpackItems" and "assignedItems" because every other item is visible on the character
|
||||
*
|
||||
* Arguments:
|
||||
* 0: player unit <OBJECT>
|
||||
* 1: unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, bob] call ACE_captives_fnc_doFristPerson;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_player", "_unit"];
|
||||
|
||||
private _weapon = currentWeapon _player;
|
||||
if (_weapon == primaryWeapon _player && {_weapon != ""}) then {
|
||||
[_player, "AmovPercMstpSlowWrflDnon", 0] call EFUNC(common,doAnimation);
|
||||
};
|
||||
|
||||
private _listedItemClasses = [];
|
||||
|
||||
private _actions = [localize LSTRING(FriskMenuHeader), ""] call ACE_Interaction_fnc_prepareSelectMenu;
|
||||
|
||||
private _allGear = [];
|
||||
|
||||
if ((handgunWeapon _unit) != "") then {
|
||||
_allGear pushBack (handgunWeapon _unit);
|
||||
};
|
||||
if (count (uniformItems _unit) > 0) then {
|
||||
_allGear = _allGear + (uniformItems _unit);
|
||||
};
|
||||
if (count (vestItems _unit) > 0) then {
|
||||
_allGear = _allGear + (vestItems _unit);
|
||||
};
|
||||
if (count (backpackItems _unit) > 0) then {
|
||||
_allGear = _allGear + (backpackItems _unit);
|
||||
};
|
||||
if (count (assignedItems _unit) > 0) then {
|
||||
_allGear = _allGear + (assignedItems _unit);
|
||||
};
|
||||
|
||||
// Handgun
|
||||
// Uniform Items
|
||||
// Vest Items
|
||||
// Backpack Items
|
||||
// Assigned Items
|
||||
{
|
||||
if (!(_x in _listedItemClasses)) then {
|
||||
private _item = configFile >> "CfgMagazines" >> _x;
|
||||
if (isNil "_item" || str _item == "") then { //str _item ?
|
||||
_item = configFile >> "CfgWeapons" >> _x;
|
||||
};
|
||||
_actions = [_actions, getText(_item >> "displayName"), getText(_item >> "picture"), _x] call ACE_Interaction_fnc_addSelectableItem;
|
||||
_listedItemClasses pushBack _x;
|
||||
};
|
||||
} forEach (_allGear);
|
||||
|
||||
[_actions, {call ACE_Interaction_fnc_hideMenu;}, {call ACE_Interaction_fnc_hideMenu;}] call ACE_Interaction_fnc_openSelectMenu;
|
||||
|
||||
// don't need an "Ok" Button
|
||||
ctrlShow [8860, false];
|
@ -155,38 +155,6 @@
|
||||
<Chinese>束線帶可以綁住俘虜</Chinese>
|
||||
<Chinesesimp>束线带可以绑住俘虏</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_FriskMenuHeader">
|
||||
<English>Inventory of frisked person</English>
|
||||
<German>Inventar der durchsuchten Person</German>
|
||||
<French>Inventaire de la personne fouillé</French>
|
||||
<Spanish>Inventario de la persona cacheada</Spanish>
|
||||
<Hungarian>Motozott személy felszerelése</Hungarian>
|
||||
<Czech>Inventář prohledávané osoby</Czech>
|
||||
<Polish>Ekwipunek rewidowanej osoby</Polish>
|
||||
<Russian>Инвентарь обысканного человека</Russian>
|
||||
<Portuguese>Inventário da pessoa revistada</Portuguese>
|
||||
<Italian>Inventario della persona perquisita</Italian>
|
||||
<Japanese>捕虜の持ち物を確認する</Japanese>
|
||||
<Korean>검문당한 사람의 소지품</Korean>
|
||||
<Chinese>搜身選單</Chinese>
|
||||
<Chinesesimp>搜身选单</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_FriskPerson">
|
||||
<English>Frisk person</English>
|
||||
<German>Person durchsuchen</German>
|
||||
<French>Fouiller la personne</French>
|
||||
<Spanish>Cachear</Spanish>
|
||||
<Czech>Prohledávaná osoba</Czech>
|
||||
<Polish>Rewiduj osobę</Polish>
|
||||
<Hungarian>Motozás</Hungarian>
|
||||
<Russian>Обыскать человека</Russian>
|
||||
<Portuguese>Revistar</Portuguese>
|
||||
<Italian>Perquisisci la persona</Italian>
|
||||
<Japanese>捕虜の持ち物</Japanese>
|
||||
<Korean>검문당한사람</Korean>
|
||||
<Chinese>搜身</Chinese>
|
||||
<Chinesesimp>搜身</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_StartSurrendering">
|
||||
<English>Surrender</English>
|
||||
<French>Se rendre</French>
|
||||
|
@ -1,4 +1,6 @@
|
||||
class ACE_Settings {
|
||||
//IGNORE_STRING_WARNING(STR_ACE_Common_SettingName);
|
||||
//IGNORE_STRING_WARNING(STR_ACE_Common_SettingDescription);
|
||||
/*
|
||||
* class GVAR(sampleSetting) {
|
||||
* value = 1; // Value
|
||||
|
@ -56,6 +56,8 @@ PREP(fixFloating);
|
||||
PREP(fixLoweredRifleAnimation);
|
||||
PREP(fixPosition);
|
||||
PREP(getAllDefinedSetVariables);
|
||||
PREP(getAwakeAnim);
|
||||
PREP(getCountOfItem);
|
||||
PREP(getDeathAnim);
|
||||
PREP(getDefaultAnim);
|
||||
PREP(getDefinedVariable);
|
||||
|
@ -39,6 +39,11 @@
|
||||
_object allowSprint (_set == 0);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setAnimSpeedCoef), {
|
||||
params ["_object", "_set"];
|
||||
_object setAnimSpeedCoef _set;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setCaptive), {
|
||||
params ["_object", "_set"];
|
||||
TRACE_2("setCaptive EH",_object,_set);
|
||||
@ -83,6 +88,11 @@
|
||||
_vehicle engineOn false;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setMass), {
|
||||
params ["_object", "_mass"];
|
||||
_object setMass _mass;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
|
||||
//This variable is used for isPlayer checks
|
||||
if (isServer) then {
|
||||
|
@ -113,7 +113,7 @@ private _settings = configProperties [configFile >> "ACE_Settings", "(isClass _x
|
||||
_output pushBack "";
|
||||
_output pushBack format ["["];
|
||||
_output pushBack format [" QGVAR(%1), ""%2"",", _gvarName, _cbaSettingType];
|
||||
_output pushBack format [" [LSTRING(), LSTRING()], // %1, %2", _localizedName, _localizedDescription];
|
||||
_output pushBack format [" [LSTRING(), LSTRING()], // %1, %2", _localizedName, _localizedDescription]; //IGNORE_STRING_WARNING(str_ace_common_);
|
||||
_output pushBack format [" ""%1"", // %2", ["localize LSTRING()", _category] select _uncat, _category];
|
||||
_output pushBack format [" %1, // %2", _cbaValueInfo, _cbaValueInfoHint];
|
||||
_output pushBack format [" %1, // isGlobal", _cbaIsGlobal];
|
||||
|
@ -70,7 +70,7 @@ if (!(_oldCompats isEqualTo [])) then {
|
||||
// check dlls
|
||||
///////////////
|
||||
if (toLower (productVersion select 6) in ["linux", "osx"]) then {
|
||||
INFO_2("Operating system does not support DLL file format");
|
||||
INFO("Operating system does not support DLL file format");
|
||||
} else {
|
||||
{
|
||||
private _versionEx = _x callExtension "version";
|
||||
|
@ -10,7 +10,6 @@
|
||||
* 0 = PlayMove
|
||||
* 1 = PlayMoveNow
|
||||
* 2 = SwitchMove (no transitional animation, doesn't overwrite priority 1)
|
||||
* 3: Force overwritting unconscious (default: false) <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -21,14 +20,8 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params ["_unit", "_animation", ["_priority", 0], ["_force", false]];
|
||||
TRACE_4("params",_unit,_animation,_priority,_force);
|
||||
|
||||
// don't overwrite more important animations
|
||||
if (_unit getVariable ["ACE_isUnconscious", false] && {(_animation != "Unconscious")} && {!_force}) exitWith {};
|
||||
|
||||
// don't go unconscious if the unit isn't unconscious
|
||||
if (_animation == "Unconscious" && {!((_unit getVariable ["ACE_isUnconscious", false]) || (_unit getVariable ["ACE_isDead", false]))}) exitWith {};
|
||||
params ["_unit", "_animation", ["_priority", 0]];
|
||||
TRACE_3("params",_unit,_animation,_priority);
|
||||
|
||||
// switchMove "" no longer works in dev 1.37
|
||||
if (_animation == "") then {
|
||||
@ -43,7 +36,7 @@ switch (_priority) do {
|
||||
if (_unit == vehicle _unit) then {
|
||||
[QGVAR(playMove), [_unit, _animation], _unit] call CBA_fnc_targetEvent;
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have local effects when executed on remote machines inside vehicles.
|
||||
[QGVAR(playMove), [_unit, _animation]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
};
|
||||
@ -51,7 +44,7 @@ switch (_priority) do {
|
||||
if (_unit == vehicle _unit) then {
|
||||
[QGVAR(playMoveNow), [_unit, _animation], _unit] call CBA_fnc_targetEvent;
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have local effects when executed on remote machines inside vehicles.
|
||||
[QGVAR(playMoveNow), [_unit, _animation]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
};
|
||||
@ -60,7 +53,7 @@ switch (_priority) do {
|
||||
if (_unit == vehicle _unit) then {
|
||||
[QGVAR(playMoveNow), [_unit, _animation], _unit] call CBA_fnc_targetEvent;
|
||||
} else {
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles.
|
||||
// Execute on all machines. PlayMove and PlayMoveNow are bugged: They have local effects when executed on remote machines inside vehicles.
|
||||
[QGVAR(playMoveNow), [_unit, _animation]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
|
||||
|
49
addons/common/functions/fnc_getAwakeAnim.sqf
Normal file
49
addons/common/functions/fnc_getAwakeAnim.sqf
Normal file
@ -0,0 +1,49 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: commy2
|
||||
* Report awake animation of unit inside vehicle.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The unit <OBJECT>
|
||||
*
|
||||
* ReturnValue:
|
||||
* The animtaion <STRING>
|
||||
*
|
||||
* Example:
|
||||
* player call ace_common_fnc_getAwakeAnim
|
||||
*
|
||||
* Public: no
|
||||
*/
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
private _vehicle = vehicle _unit;
|
||||
|
||||
// --- on foot
|
||||
if (_vehicle isEqualTo _unit) exitWith {""};
|
||||
|
||||
// --- driver
|
||||
private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
|
||||
|
||||
if (_unit == driver _vehicle) exitWith {
|
||||
getText (configFile >> "CfgMovesBasic" >> "ManActions" >> getText (_config >> "driverAction")) // return
|
||||
};
|
||||
|
||||
// --- turret
|
||||
private _turret = _unit call CBA_fnc_turretPath;
|
||||
|
||||
if !(_turret isEqualTo []) exitWith {
|
||||
private _turretConfig = [_vehicle, _turret] call CBA_fnc_getTurret;
|
||||
|
||||
getText (configFile >> "CfgMovesBasic" >> "ManActions" >> getText (_turretConfig >> "gunnerAction")) // return
|
||||
};
|
||||
|
||||
// --- cargo
|
||||
private _cargoIndex = _vehicle getCargoIndex _unit;
|
||||
|
||||
if (_cargoIndex != -1) exitWith {
|
||||
getText (configFile >> "CfgMovesBasic" >> "ManActions" >> getArray (_config >> "cargoAction") select _cargoIndex) // return
|
||||
};
|
||||
|
||||
// --- default
|
||||
""
|
31
addons/common/functions/fnc_getCountOfItem.sqf
Normal file
31
addons/common/functions/fnc_getCountOfItem.sqf
Normal file
@ -0,0 +1,31 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: Dedmen
|
||||
* Return how many items of type _itemType the player has in his containers (Uniform, Vest, Backpack)
|
||||
* Doesn't count assignedItems, weapons, weapon attachments, magazines in weapons
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Classname of item (Case-Sensitive) <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* Item Count <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* [bob, "FirstAidKit"] call ace_common_fnc_getCountOfItem
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params ["_unit", "_itemType"];
|
||||
|
||||
private _countItemsInContainer = {
|
||||
(getItemCargo _this) params ["_itemTypes", "_itemCounts"];
|
||||
|
||||
private _index = _itemTypes find _itemType;
|
||||
_itemCounts param [_index, 0]
|
||||
};
|
||||
|
||||
((uniformContainer _unit) call _countItemsInContainer) +
|
||||
((vestContainer _unit) call _countItemsInContainer) +
|
||||
((backpackContainer _unit) call _countItemsInContainer)
|
@ -17,4 +17,4 @@
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
!(_unit getVariable ["ACE_isUnconscious", false]) && alive _unit && !(_unit getVariable ["ACE_isDead", false]) // return
|
||||
alive _unit && {!(_unit getVariable ["ACE_isUnconscious", false])}
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Use this in INIT and RESPAWN eh scripts, because ACE_player isn't reset yet.
|
||||
*
|
||||
* Arguments:
|
||||
* NONE.
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* Player controlled unit <OBJECT>
|
||||
|
@ -15,6 +15,8 @@
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
// Ignore UAV/Drone AI
|
||||
#define IGNORE_BASE_UAVPILOTS "B_UAV_AI", "O_UAV_AI", "UAV_AI_base_F"
|
||||
|
||||
GVAR(localUnits) = [];
|
||||
|
||||
@ -27,7 +29,7 @@ GVAR(localUnits) = [];
|
||||
if (!alive _unit) exitWith {};
|
||||
GVAR(localUnits) pushBack _unit;
|
||||
};
|
||||
}] call CBA_fnc_addClassEventHandler;
|
||||
}, true, [IGNORE_BASE_UAVPILOTS]] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
["CAManBase", "respawn", {
|
||||
params ["_unit"];
|
||||
@ -37,7 +39,7 @@ GVAR(localUnits) = [];
|
||||
if (!alive _unit) exitWith {};
|
||||
GVAR(localUnits) pushBack _unit;
|
||||
};
|
||||
}] call CBA_fnc_addClassEventHandler;
|
||||
}, true, [IGNORE_BASE_UAVPILOTS]] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
["CAManBase", "local", {
|
||||
params ["_unit", "_local"];
|
||||
@ -49,7 +51,7 @@ GVAR(localUnits) = [];
|
||||
} else {
|
||||
GVAR(localUnits) deleteAt (GVAR(localUnits) find _unit);
|
||||
};
|
||||
}] call CBA_fnc_addClassEventHandler;
|
||||
}, true, [IGNORE_BASE_UAVPILOTS]] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
["CAManBase", "deleted", {
|
||||
params ["_unit"];
|
||||
@ -64,7 +66,7 @@ GVAR(localUnits) = [];
|
||||
};
|
||||
}, [_unit]] call CBA_fnc_execNextFrame;
|
||||
};
|
||||
}] call CBA_fnc_addClassEventHandler;
|
||||
}, true, [IGNORE_BASE_UAVPILOTS]] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
["CAManBase", "killed", {
|
||||
params ["_unit"];
|
||||
@ -73,4 +75,4 @@ GVAR(localUnits) = [];
|
||||
if (local _unit) then {
|
||||
GVAR(localUnits) deleteAt (GVAR(localUnits) find _unit);
|
||||
};
|
||||
}] call CBA_fnc_addClassEventHandler;
|
||||
}, true, [IGNORE_BASE_UAVPILOTS]] call CBA_fnc_addClassEventHandler;
|
||||
|
@ -38,32 +38,51 @@ if (count _emptyPos != 3) exitwith {
|
||||
unassignVehicle _unit;
|
||||
[_unit] orderGetIn false;
|
||||
|
||||
TRACE_1("Ejecting", alive _unit);
|
||||
private _resetUncon = false;
|
||||
if (lifeState _unit == "INCAPACITATED") then {
|
||||
_resetUncon = true;
|
||||
_unit setUnconscious false;
|
||||
TRACE_1("pausing setUnconscious",_unit);
|
||||
};
|
||||
|
||||
TRACE_1("Ejecting", alive _unit);
|
||||
_unit action ["Eject", vehicle _unit];
|
||||
|
||||
[{
|
||||
params ["_unit", "_emptyPos"];
|
||||
params ["_unit", "_emptyPos", "_resetUncon"];
|
||||
|
||||
if ((vehicle _unit) != _unit) then {
|
||||
WARNING_2("Failed to unload in time [%1 - %2]",_unit, vehicle _unit);
|
||||
};
|
||||
|
||||
_unit setPosASL AGLToASL _emptyPos;
|
||||
|
||||
if !([_unit] call FUNC(isAwake)) then {
|
||||
TRACE_1("Check if isAwake", [_unit] call FUNC(isAwake));
|
||||
|
||||
if (driver _unit == _unit) then {
|
||||
private _anim = [_unit] call FUNC(getDeathAnim);
|
||||
|
||||
[_unit, _anim, 1, true] call FUNC(doAnimation);
|
||||
|
||||
[{
|
||||
params ["_unit", "_anim"];
|
||||
if ((_unit getVariable "ACE_isUnconscious") and (animationState _unit != _anim)) then {
|
||||
[_unit, _anim, 2, true] call FUNC(doAnimation);
|
||||
if (_resetUncon) then {
|
||||
TRACE_1("resuming setUnconscious",_unit);
|
||||
// This should reset the unit to an Unconscious animation
|
||||
// Also has the hilarious effect of violently ragdolling the guy
|
||||
_unit setUnconscious true;
|
||||
};
|
||||
}, [_unit, _anim], 0.5] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
};
|
||||
}, [_unit, _emptyPos], 0.5] call CBA_fnc_waitAndExecute;
|
||||
|
||||
// ToDo [medical-rewrite]: verify we can remove the following commented code
|
||||
|
||||
// if !([_unit] call FUNC(isAwake)) then {
|
||||
// TRACE_1("Check if isAwake", [_unit] call FUNC(isAwake));
|
||||
|
||||
// if (driver _unit == _unit) then {
|
||||
// private _anim = [_unit] call FUNC(getDeathAnim);
|
||||
|
||||
// [_unit, _anim, 1, true] call FUNC(doAnimation);
|
||||
|
||||
// [{
|
||||
// params ["_unit", "_anim"];
|
||||
// if ((_unit getVariable "ACE_isUnconscious") and (animationState _unit != _anim)) then {
|
||||
// [_unit, _anim, 2, true] call FUNC(doAnimation);
|
||||
// };
|
||||
// }, [_unit, _anim], 0.5] call CBA_fnc_waitAndExecute;
|
||||
// };
|
||||
// };
|
||||
}, [_unit, _emptyPos, _resetUncon], 0.5] call CBA_fnc_waitAndExecute;
|
||||
|
||||
[_unit, false, GROUP_SWITCH_ID, side group _unit] call FUNC(switchToGroupSide);
|
||||
|
||||
|
@ -10,7 +10,8 @@ private _files = CBA_common_addons select {
|
||||
|
||||
private _versions = [];
|
||||
{
|
||||
private _version = parseNumber getText (configFile >> "CfgPatches" >> _x >> "version");
|
||||
getText (configFile >> "CfgPatches" >> _x >> "version") splitString "." params [["_major", "0"], ["_minor", "0"]];
|
||||
private _version = parseNumber _major + parseNumber _minor/100;
|
||||
_versions set [_forEachIndex, _version];
|
||||
} forEach _files;
|
||||
|
||||
|
@ -26,6 +26,20 @@
|
||||
<Korean>ACE-Team</Korean>
|
||||
<Chinese>ACE-製作團隊</Chinese>
|
||||
<Chinesesimp>ACE-制作团队</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Advanced">
|
||||
<English>Advanced</English>
|
||||
<Russian>Усложненный</Russian>
|
||||
<Polish>Zaawansowany</Polish>
|
||||
<Spanish>Avanzado</Spanish>
|
||||
<German>Erweitert</German>
|
||||
<Czech>Pokročilé</Czech>
|
||||
<Portuguese>Avançada</Portuguese>
|
||||
<French>Avancée</French>
|
||||
<Hungarian>Fejlett</Hungarian>
|
||||
<Italian>Avanzato</Italian>
|
||||
<Japanese>アドバンスド</Japanese>
|
||||
<Korean>고급</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Save">
|
||||
<English>Save</English>
|
||||
@ -395,6 +409,20 @@
|
||||
<Korean>알 수 없음</Korean>
|
||||
<Chinese>未知的</Chinese>
|
||||
<Chinesesimp>未知的</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Normal">
|
||||
<English>Normal</English>
|
||||
<German>Normal</German>
|
||||
<Italian>Normale</Italian>
|
||||
<Russian>Нормальное</Russian>
|
||||
<French>Normale</French>
|
||||
<Polish>Normalne</Polish>
|
||||
<Spanish>Normal</Spanish>
|
||||
<Hungarian>Normális</Hungarian>
|
||||
<Czech>Normální</Czech>
|
||||
<Portuguese>Normal</Portuguese>
|
||||
<Japanese>通常</Japanese>
|
||||
<Korean>보통</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_NoVoice">
|
||||
<English>No Voice</English>
|
||||
@ -969,6 +997,51 @@
|
||||
<Korean>활성화</Korean>
|
||||
<Chinese>啟用</Chinese>
|
||||
<Chinesesimp>启用</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Always">
|
||||
<English>Always</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Anywhere">
|
||||
<English>Anywhere</English>
|
||||
<Russian>Где угодно</Russian>
|
||||
<Polish>Wszędzie</Polish>
|
||||
<Spanish>Donde sea</Spanish>
|
||||
<German>Überall</German>
|
||||
<Czech>Kdekoliv</Czech>
|
||||
<Portuguese>Qualquer lugar</Portuguese>
|
||||
<French>PArtout</French>
|
||||
<Hungarian>Akárhol</Hungarian>
|
||||
<Italian>Ovunque</Italian>
|
||||
<Japanese>どこでも</Japanese>
|
||||
<Korean>어디서나</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Basic">
|
||||
<English>Basic</English>
|
||||
<Russian>Базовый</Russian>
|
||||
<Polish>Podstawowy</Polish>
|
||||
<Spanish>Básico</Spanish>
|
||||
<German>Standard</German>
|
||||
<Czech>Základní</Czech>
|
||||
<Portuguese>Básica</Portuguese>
|
||||
<French>Basique</French>
|
||||
<Hungarian>Alap</Hungarian>
|
||||
<Italian>Basico</Italian>
|
||||
<Japanese>ベーシック</Japanese>
|
||||
<Korean>기본</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Vehicle">
|
||||
<English>Medical vehicles</English>
|
||||
<Russian>В медицинском транспорте</Russian>
|
||||
<Polish>Pojazdy medyczne</Polish>
|
||||
<Spanish>Vehiculos médicos</Spanish>
|
||||
<German>Sanitätsfahrzeuge</German>
|
||||
<Czech>Zdravotnická vozidla</Czech>
|
||||
<Portuguese>Veículos médcos</Portuguese>
|
||||
<French>Dans les véhicules médicals</French>
|
||||
<Hungarian>Orvosi járművek</Hungarian>
|
||||
<Italian>Veicoli medici</Italian>
|
||||
<Japanese>医療車両のみ</Japanese>
|
||||
<Korean>의료차량</Korean>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Yes">
|
||||
<English>Yes</English>
|
||||
@ -1002,6 +1075,12 @@
|
||||
<Chinese>否</Chinese>
|
||||
<Chinesesimp>否</Chinesesimp>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Confirm">
|
||||
<English>Confirm</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_Never">
|
||||
<English>Never</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_VehiclesOnly">
|
||||
<English>Vehicles only</English>
|
||||
<German>Nur Fahrzeuge</German>
|
||||
|
@ -1,40 +1,18 @@
|
||||
|
||||
class ACE_Settings {
|
||||
class GVAR(enable) {
|
||||
category = CSTRING(displayName);
|
||||
displayName = CSTRING(enable_name);
|
||||
description = CSTRING(enable_tooltip);
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
movedToSqf = 1;
|
||||
};
|
||||
class GVAR(enableAmmobox) {
|
||||
category = CSTRING(displayName);
|
||||
displayName = CSTRING(enableBoxCookoff_name);
|
||||
description = CSTRING(enableBoxCookoff_tooltip);
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
movedToSQF = 1;
|
||||
};
|
||||
class GVAR(enableAmmoCookoff) { // For CBA Setting Switch: we can eliminate and just use (ammoCookoffDuration == 0)
|
||||
category = CSTRING(displayName);
|
||||
displayName = CSTRING(enableAmmoCookoff_name);
|
||||
description = CSTRING(enableAmmoCookoff_tooltip);
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
movedToSQF = 1;
|
||||
};
|
||||
class GVAR(ammoCookoffDuration) {
|
||||
category = CSTRING(displayName);
|
||||
displayName = CSTRING(ammoCookoffDuration_name);
|
||||
description = CSTRING(ammoCookoffDuration_tooltip);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
sliderSettings[] = {0, 5, 1, 1};
|
||||
movedToSQF = 1;
|
||||
};
|
||||
class GVAR(probabilityCoef) {
|
||||
category = CSTRING(displayName);
|
||||
displayName = CSTRING(probabilityCoef_name);
|
||||
description = CSTRING(probabilityCoef_tooltip);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
sliderSettings[] = {0, 5, 1, 1};
|
||||
movedToSQF = 1;
|
||||
};
|
||||
};
|
||||
|
@ -7,8 +7,8 @@ class Cfg3DEN {
|
||||
class GVAR(enable) {
|
||||
property = QGVAR(enable);
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(enable_name);
|
||||
tooltip = CSTRING(enable_tooltip);
|
||||
displayName = CSTRING(enable_hd_name);
|
||||
tooltip = CSTRING(enable_hd_tooltip);
|
||||
expression = QUOTE(if !(_value) then {_this setVariable [ARR_3('%s',_value,true)];};);
|
||||
typeName = "BOOL";
|
||||
condition = "objectVehicle";
|
||||
|
@ -6,4 +6,6 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
#include "initSettings.sqf"
|
||||
|
||||
ADDON = true;
|
||||
|
51
addons/cookoff/initSettings.sqf
Normal file
51
addons/cookoff/initSettings.sqf
Normal file
@ -0,0 +1,51 @@
|
||||
// CBA Settings [ADDON: ace_cookoff]:
|
||||
|
||||
[
|
||||
QGVAR(enable), "CHECKBOX",
|
||||
[LSTRING(enable_hd_name), LSTRING(enable_hd_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
false, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enable), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_settings_fnc_init;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmobox), "CHECKBOX",
|
||||
[LSTRING(enableBoxCookoff_name), LSTRING(enableBoxCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enableAmmobox), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_settings_fnc_init;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmoCookoff), "CHECKBOX",
|
||||
[LSTRING(enableAmmoCookoff_name), LSTRING(enableAmmoCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enableAmmoCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_settings_fnc_init;
|
||||
|
||||
[
|
||||
QGVAR(ammoCookoffDuration), "SLIDER",
|
||||
[LSTRING(ammoCookoffDuration_name), LSTRING(ammoCookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0,5,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(ammoCookoffDuration), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_settings_fnc_init;
|
||||
|
||||
[
|
||||
QGVAR(probabilityCoef), "SLIDER",
|
||||
[LSTRING(probabilityCoef_name), LSTRING(probabilityCoef_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0,5,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(probabilityCoef), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_settings_fnc_init;
|
@ -1,42 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="CookOff">
|
||||
<Key ID="STR_ACE_CookOff_displayName">
|
||||
<English>Cook off</English>
|
||||
<Italian>Esplosione</Italian>
|
||||
<Chinese>殉爆效果</Chinese>
|
||||
<Chinesesimp>殉爆效果</Chinesesimp>
|
||||
<Japanese>誘爆</Japanese>
|
||||
<Korean>쿡오프</Korean>
|
||||
<German>Durchzündung</German>
|
||||
<French>Cook off</French>
|
||||
<Polish>Samozapłon</Polish>
|
||||
<Key ID="STR_ACE_CookOff_category_displayName">
|
||||
<English>ACE Cook off</English>
|
||||
<Italian>ACE Esplosione</Italian>
|
||||
<Chinese>ACE 殉爆效果</Chinese>
|
||||
<Chinesesimp>ACE 殉爆效果</Chinesesimp>
|
||||
<Japanese>ACE 誘爆</Japanese>
|
||||
<Korean>ACE 쿡오프</Korean>
|
||||
<German>ACE Durchzündung</German>
|
||||
<French>ACE Cook off</French>
|
||||
<Polish>ACE Samozapłon</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enable_name">
|
||||
<English>Enable cook off</English>
|
||||
<German>Durchzündung ermöglichen</German>
|
||||
<Czech>Povolit explozi munice</Czech>
|
||||
<Russian>Включить воспламенение</Russian>
|
||||
<Japanese>誘爆を有効化</Japanese>
|
||||
<Korean>쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj efekty samozapłonu amunicji</Polish>
|
||||
<French>Activer le cook off</French>
|
||||
<Italian>Abilita Esplosione</Italian>
|
||||
<Chinese>開啟殉爆效果</Chinese>
|
||||
<Chinesesimp>开启殉爆效果</Chinesesimp>
|
||||
<Key ID="STR_ACE_CookOff_enable_hd_name">
|
||||
<English>Damage handling and turret effects</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enable_tooltip">
|
||||
<English>Enables cook off and related vehicle destruction effects.</English>
|
||||
<German>Ermöglicht Durchzündung und zugehörige Fahrzeug-Zerstörungseffekte.</German>
|
||||
<Czech>Povolí explozi munice a její následné ničivé efekty.</Czech>
|
||||
<Russian>Включает воспламенение и сопутствующие эффекты повреждения техники.</Russian>
|
||||
<Japanese>誘爆を有効化し、車両が誘爆によって破壊されていきます。</Japanese>
|
||||
<Korean>쿡오프 현상을 활성화 하고 관련된 차량에 폭발 이펙트를 적용합니다.</Korean>
|
||||
<Polish>Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach.</Polish>
|
||||
<French>Active le cook-off (autocombustion des munitions) et les effets de destruction liés.</French>
|
||||
<Italian>Abilita l'esplosione e i relativi effetti di distruzione del veicolo.</Italian>
|
||||
<Chinese>開啟此功能後,將使有關載具在損毀時有殉爆的效果</Chinese>
|
||||
<Chinesesimp>开启此功能后,将使有关载具在损毁时有殉爆的效果。</Chinesesimp>
|
||||
<Key ID="STR_ACE_CookOff_enable_hd_tooltip">
|
||||
<English>Changes damage handling for cook off and turret explosion effects</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_generic_turret_wreck">
|
||||
<English>Wreck (Turret)</English>
|
||||
|
@ -6,7 +6,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {"ACE_DebugPotato"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ACE_Interaction"};
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"PabstMirror"};
|
||||
url = ECSTRING(main,URL);
|
||||
|
@ -171,7 +171,7 @@ class CfgVehicles {
|
||||
|
||||
GVAR(canDrag) = 1;
|
||||
GVAR(dragPosition[]) = {0,1.2,0};
|
||||
GVAR(dragDirection) = 0;
|
||||
GVAR(dragDirection) = 270;
|
||||
};
|
||||
class MetalCase_01_base_F: Items_base_F {
|
||||
class EventHandlers {
|
||||
@ -213,7 +213,7 @@ class CfgVehicles {
|
||||
};
|
||||
GVAR(canCarry) = 1;
|
||||
GVAR(carryPosition[]) = {0,1,1};
|
||||
GVAR(carryDirection) = 270;
|
||||
GVAR(carryDirection) = 0;
|
||||
|
||||
GVAR(canDrag) = 1;
|
||||
GVAR(dragPosition[]) = {0,1.4,0};
|
||||
|
@ -30,8 +30,7 @@ if (isNil "ACE_maxWeightCarry") then {
|
||||
//@todo Captivity?
|
||||
|
||||
//Add Keybind:
|
||||
["ACE3 Common", QGVAR(drag), (localize LSTRING(DragKeybind)),
|
||||
{
|
||||
["ACE3 Common", QGVAR(drag), (localize LSTRING(DragKeybind)), {
|
||||
if (!alive ACE_player) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
|
||||
@ -51,7 +50,6 @@ if (isNil "ACE_maxWeightCarry") then {
|
||||
|
||||
[ACE_player, _cursor] call FUNC(startDrag);
|
||||
false
|
||||
},
|
||||
{false},
|
||||
[-1, [false, false, false]]] call CBA_fnc_addKeybind; // UNBOUND
|
||||
|
||||
}, {
|
||||
false
|
||||
}, [-1, [false, false, false]]] call CBA_fnc_addKeybind; // UNBOUND
|
||||
|
@ -24,7 +24,7 @@
|
||||
#endif
|
||||
|
||||
params ["_args", "_idPFH"];
|
||||
_args params ["_unit","_target", "_startTime"];
|
||||
_args params ["_unit", "_target", "_startTime"];
|
||||
|
||||
if !(_unit getVariable [QGVAR(isCarrying), false]) exitWith {
|
||||
TRACE_2("carry false",_unit,_target);
|
||||
@ -35,7 +35,7 @@ if !(_unit getVariable [QGVAR(isCarrying), false]) exitWith {
|
||||
if (!alive _target || {_unit distance _target > 10}) then {
|
||||
TRACE_2("dead/distance",_unit,_target);
|
||||
if ((_unit distance _target > 10) && {(CBA_missionTime - _startTime) < 1}) exitWith {
|
||||
//attachTo seems to have some kind of network delay and target can return an odd position durring the first few frames,
|
||||
//attachTo seems to have some kind of network delay and target can return an odd position during the first few frames,
|
||||
//so wait a full second to exit if out of range (this is critical as we would otherwise detach and set it's pos to weird pos)
|
||||
TRACE_3("ignoring bad distance at start",_unit distance _target,_startTime,CBA_missionTime);
|
||||
};
|
||||
|
@ -24,7 +24,7 @@
|
||||
#endif
|
||||
|
||||
params ["_args", "_idPFH"];
|
||||
_args params ["_unit","_target", "_startTime"];
|
||||
_args params ["_unit", "_target", "_startTime"];
|
||||
|
||||
if !(_unit getVariable [QGVAR(isDragging), false]) exitWith {
|
||||
TRACE_2("drag false",_unit,_target);
|
||||
@ -35,7 +35,7 @@ if !(_unit getVariable [QGVAR(isDragging), false]) exitWith {
|
||||
if (!alive _target || {_unit distance _target > 10}) then {
|
||||
TRACE_2("dead/distance",_unit,_target);
|
||||
if ((_unit distance _target > 10) && {(CBA_missionTime - _startTime) < 1}) exitWith {
|
||||
//attachTo seems to have some kind of network delay and target can return an odd position durring the first few frames,
|
||||
//attachTo seems to have some kind of network delay and target can return an odd position during the first few frames,
|
||||
//so wait a full second to exit if out of range (this is critical as we would otherwise detach and set it's pos to weird pos)
|
||||
TRACE_3("ignoring bad distance at start",_unit distance _target,_startTime,CBA_missionTime);
|
||||
};
|
||||
|
@ -76,3 +76,10 @@ if (_unit getVariable ["ACE_isUnconscious", false]) then {
|
||||
if (_target getVariable [QGVAR(isUAV), false]) then {
|
||||
createVehicleCrew _target;
|
||||
};
|
||||
|
||||
// reset mass
|
||||
private _mass = _target getVariable [QGVAR(originalMass), 0];
|
||||
|
||||
if (_mass != 0) then {
|
||||
[QEGVAR(common,setMass), [_target, _mass], _target] call CBA_fnc_targetEvent;
|
||||
};
|
||||
|
@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
params ["_unit", "_target"];
|
||||
TRACE_2("params",_unit,_target);
|
||||
TRACE_1("params",_this);
|
||||
|
||||
// remove drop action
|
||||
[_unit, "DefaultAction", _unit getVariable [QGVAR(ReleaseActionID), -1]] call EFUNC(common,removeActionEventHandler);
|
||||
@ -76,3 +76,10 @@ if !(_target isKindOf "CAManBase") then {
|
||||
if (_target getVariable [QGVAR(isUAV), false]) then {
|
||||
createVehicleCrew _target;
|
||||
};
|
||||
|
||||
// reset mass
|
||||
private _mass = _target getVariable [QGVAR(originalMass), 0];
|
||||
|
||||
if (_mass != 0) then {
|
||||
[QEGVAR(common,setMass), [_target, _mass], _target] call CBA_fnc_targetEvent;
|
||||
};
|
||||
|
@ -29,10 +29,9 @@ if (_player getVariable [QGVAR(isDragging), false]) then {
|
||||
};
|
||||
|
||||
// handle waking up dragged unit
|
||||
//if (_unit == _draggedObject) then {
|
||||
// [_player, _draggedObject] call FUNC(dropObject);
|
||||
//};
|
||||
|
||||
if (_unit == _draggedObject) then {
|
||||
[_player, _draggedObject] call FUNC(dropObject);
|
||||
};
|
||||
};
|
||||
|
||||
if (_player getVariable [QGVAR(isCarrying), false]) then {
|
||||
@ -45,8 +44,7 @@ if (_player getVariable [QGVAR(isCarrying), false]) then {
|
||||
};
|
||||
|
||||
// handle waking up dragged unit
|
||||
//if (_unit == _carriedObject) then {
|
||||
// [_player, _carriedObject] call FUNC(dropObject_carry);
|
||||
//};
|
||||
|
||||
if (_unit == _carriedObject) then {
|
||||
[_player, _carriedObject] call FUNC(dropObject_carry);
|
||||
};
|
||||
};
|
||||
|
@ -73,3 +73,11 @@ _unit setVariable [QGVAR(isCarrying), true, true];
|
||||
_unit setVariable [QGVAR(carriedObject), _target, true];
|
||||
|
||||
[FUNC(startCarryPFH), 0.2, [_unit, _target, _timer]] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
// disable collisions by setting the physx mass to almost zero
|
||||
private _mass = getMass _target;
|
||||
|
||||
if (_mass > 1) then {
|
||||
_target setVariable [QGVAR(originalMass), _mass, true];
|
||||
[QEGVAR(common,setMass), [_target, 1e-12], _target] call CBA_fnc_targetEvent;
|
||||
};
|
||||
|
@ -61,3 +61,11 @@ if (_target isKindOf "CAManBase") then {
|
||||
_unit setVariable [QGVAR(isDragging), true, true];
|
||||
|
||||
[FUNC(startDragPFH), 0.2, [_unit, _target, CBA_missionTime + 5]] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
// disable collisions by setting the physx mass to almost zero
|
||||
private _mass = getMass _target;
|
||||
|
||||
if (_mass > 1) then {
|
||||
_target setVariable [QGVAR(originalMass), _mass, true];
|
||||
[QEGVAR(common,setMass), [_target, 1e-12], _target] call CBA_fnc_targetEvent;
|
||||
};
|
||||
|
@ -15,6 +15,9 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define TIMER_VALUE_MIN_CUSTOM (missionNamespace getVariable [QGVAR(customTimerMin), TIMER_VALUE_MIN])
|
||||
#define TIMER_VALUE_MAX_CUSTOM (missionNamespace getVariable [QGVAR(customTimerMax), TIMER_VALUE_MAX])
|
||||
|
||||
params ["_explosive"];
|
||||
TRACE_1("Opening timer UI",_explosive);
|
||||
|
||||
@ -23,6 +26,9 @@ private _display = uiNamespace getVariable [QGVAR(timerDisplay), displayNull];
|
||||
|
||||
// Update slider speed to 1s
|
||||
(_display displayCtrl IDC_TIMER_SLIDER) sliderSetSpeed [1, 1];
|
||||
(_display displayCtrl IDC_TIMER_SLIDER) sliderSetRange [TIMER_VALUE_MIN_CUSTOM, TIMER_VALUE_MAX_CUSTOM];
|
||||
(_display displayCtrl IDC_TIMER_SLIDER) sliderSetPosition (TIMER_VALUE_DEFAULT max TIMER_VALUE_MIN_CUSTOM min TIMER_VALUE_MAX_CUSTOM);
|
||||
|
||||
|
||||
// Add confirm button action
|
||||
GVAR(explosive) = _explosive;
|
||||
@ -52,7 +58,7 @@ _display displayAddEventHandler ["MouseZChanged", {
|
||||
if (cba_events_control) then {_change = _change * 10};
|
||||
|
||||
private _slider = _display displayCtrl IDC_TIMER_SLIDER;
|
||||
private _value = (sliderPosition _slider + _change) max TIMER_VALUE_MIN min TIMER_VALUE_MAX;
|
||||
private _value = (sliderPosition _slider + _change) max TIMER_VALUE_MIN_CUSTOM min TIMER_VALUE_MAX_CUSTOM;
|
||||
_slider sliderSetPosition _value;
|
||||
}];
|
||||
|
||||
|
@ -75,8 +75,13 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_cutRopes {
|
||||
displayName = CSTRING(Interaction_cutRopes);
|
||||
condition = [_target] call FUNC(canCutRopes);
|
||||
statement = [_target] call FUNC(cutRopes);
|
||||
condition = QUOTE(true);
|
||||
statement = "";
|
||||
class confirmCutRopes {
|
||||
displayName = ECSTRING(common,confirm);
|
||||
condition = QUOTE([_target] call FUNC(canCutRopes));
|
||||
statement = QUOTE([_target] call FUNC(cutRopes));
|
||||
};
|
||||
};
|
||||
class ACE_fastRope {
|
||||
displayName = CSTRING(Interaction_fastRope);
|
||||
@ -202,7 +207,7 @@ class CfgVehicles {
|
||||
GVAR(enabled) = 2;
|
||||
GVAR(ropeOrigins)[] = {"ropeOriginRight", "ropeOriginLeft"};
|
||||
GVAR(friesType) = "ACE_friesAnchorBar";
|
||||
GVAR(friesAttachmentPoint)[] = {0.065, 2.2, -0.15};
|
||||
GVAR(friesAttachmentPoint)[] = {0.035, 2.2, -0.15};
|
||||
GVAR(onPrepare) = QFUNC(onPrepareCommon);
|
||||
GVAR(onCut) = QFUNC(onCutCommon);
|
||||
EQUIP_FRIES_ATTRIBUTE;
|
||||
|
@ -4,7 +4,6 @@ PREP(canDeployRopes);
|
||||
PREP(canFastRope);
|
||||
PREP(canPrepareFRIES);
|
||||
PREP(canStowFRIES);
|
||||
PREP(checkVehicleThread);
|
||||
PREP(cutRopes);
|
||||
PREP(deployAI);
|
||||
PREP(deployRopes);
|
||||
@ -18,3 +17,4 @@ PREP(onPrepareCommon);
|
||||
PREP(onRopeBreak);
|
||||
PREP(prepareFRIES);
|
||||
PREP(stowFRIES);
|
||||
PREP(unequipFRIES);
|
||||
|
@ -1,24 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Checks if the given helicopter still exits, and if not, destroys the FRIES.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The helicopter <OBJECT>
|
||||
* 1: The helicopter's FRIES <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_vehicle, _fries] call ace_fastroping_fnc_checkVehicleThread
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
params ["_vehicle", "_fries"];
|
||||
|
||||
if (isNull _vehicle) then {
|
||||
deleteVehicle _fries;
|
||||
} else {
|
||||
[FUNC(checkVehicleThread), _this, 5] call CBA_fnc_waitAndExecute;
|
||||
};
|
@ -12,7 +12,7 @@
|
||||
* Example:
|
||||
* [_vehicle] call ace_fastroping_fnc_equipFRIES
|
||||
*
|
||||
* Public: No
|
||||
* Public: Yes
|
||||
*/
|
||||
params ["_vehicle"];
|
||||
|
||||
@ -24,15 +24,8 @@ if !(isNumber (_config >> QGVAR(enabled))) then {
|
||||
private _fries = (getText (_config >> QGVAR(friesType))) createVehicle [0, 0, 0];
|
||||
_fries attachTo [_vehicle, (getArray (_config >> QGVAR(friesAttachmentPoint)))];
|
||||
_vehicle setVariable [QGVAR(FRIES), _fries, true];
|
||||
_vehicle addEventHandler ["Killed", {
|
||||
params ["_vehicle"];
|
||||
deleteVehicle (_vehicle getVariable [QGVAR(FRIES), objNull]);
|
||||
_vehicle setVariable [QGVAR(FRIES), nil, true];
|
||||
|
||||
if !((_vehicle getVariable [QGVAR(deployedRopes), []] isEqualTo [])) then {
|
||||
[_vehicle] call FUNC(cutRopes);
|
||||
};
|
||||
}];
|
||||
[FUNC(checkVehicleThread), [_vehicle, _fries], 5] call CBA_fnc_waitAndExecute;
|
||||
_vehicle addEventHandler ["Killed", FUNC(unequipFRIES)];
|
||||
_vehicle addEventHandler ["Deleted", FUNC(unequipFRIES)];
|
||||
};
|
||||
};
|
||||
|
24
addons/fastroping/functions/fnc_unequipFRIES.sqf
Normal file
24
addons/fastroping/functions/fnc_unequipFRIES.sqf
Normal file
@ -0,0 +1,24 @@
|
||||
#include "script_component.hpp"
|
||||
/*
|
||||
* Author: BaerMitUmlaut
|
||||
* Removes FRIES from helicopter.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The helicopter <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_vehicle] call ace_fastroping_fnc_unequipFRIES
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
params ["_vehicle"];
|
||||
|
||||
deleteVehicle (_vehicle getVariable [QGVAR(FRIES), objNull]);
|
||||
_vehicle setVariable [QGVAR(FRIES), nil, true];
|
||||
|
||||
if !((_vehicle getVariable [QGVAR(deployedRopes), []] isEqualTo [])) then {
|
||||
[_vehicle] call FUNC(cutRopes);
|
||||
};
|
@ -15,13 +15,9 @@ if (!hasInterface) exitWith {};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Register fire event handler
|
||||
["ace_firedPlayerVehicle", DFUNC(firedEH)] call CBA_fnc_addEventHandler;
|
||||
["ace_firedPlayerVehicleNonLocal", DFUNC(firedEH)] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Register event for global updates
|
||||
[QGVAR(forceUpdate), {[ACE_player] call FUNC(onForceUpdate)}] call CBA_fnc_addEventHandler;
|
||||
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
call compile preprocessFileLineNumbers QPATHTOF(functions\dev_debugConfigs.sqf);
|
||||
call compile preprocessFileLineNumbers QPATHTOF(dev\test_debugConfigs.sqf);
|
||||
#endif
|
||||
|
@ -21,6 +21,13 @@ params ["_vehicle"];
|
||||
private _turretConfig = [configFile >> "CfgVehicles" >> typeOf _vehicle, _x] call EFUNC(common,getTurretConfigPath);
|
||||
|
||||
if (getNumber (_turretConfig >> QGVAR(Enabled)) == 1) then {
|
||||
if (missionNamespace getVariable [QGVAR(needToAddFiredEH), true]) then {
|
||||
["ace_firedPlayerVehicle", LINKFUNC(firedEH)] call CBA_fnc_addEventHandler;
|
||||
["ace_firedPlayerVehicleNonLocal", LINKFUNC(firedEH)] call CBA_fnc_addEventHandler;
|
||||
GVAR(needToAddFiredEH) = false;
|
||||
TRACE_1("Registered fired event handlers for all vehicles",GVAR(needToAddFiredEH));
|
||||
};
|
||||
|
||||
_vehicle setVariable [format ["%1_%2", QGVAR(Distance), _x], 0, true];
|
||||
_vehicle setVariable [format ["%1_%2", QGVAR(Magazines), _x], [], true];
|
||||
_vehicle setVariable [format ["%1_%2", QGVAR(Elevation), _x], [], true];
|
||||
|
@ -72,7 +72,7 @@ private _gBlackOut = MAXVIRTUALG / _classCoef + MAXVIRTUALG / _suitCoef - MAXVIR
|
||||
|
||||
// Unconsciousness
|
||||
if ((_average > _gBlackOut) and {isClass (configFile >> "CfgPatches" >> "ACE_Medical") and {!(ACE_player getVariable ["ACE_isUnconscious", false])}}) then {
|
||||
[ACE_player, true, (10 + floor(random 5))] call EFUNC(medical,setUnconscious);
|
||||
[ACE_player, true, (10 + floor(random 5)), true] call EFUNC(medical,setUnconscious);
|
||||
};
|
||||
|
||||
GVAR(GForces_CC) ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]];
|
||||
|
4
addons/hellfire/CfgMagazineWells.hpp
Normal file
4
addons/hellfire/CfgMagazineWells.hpp
Normal file
@ -0,0 +1,4 @@
|
||||
class CfgMagazineWells {
|
||||
class GVAR(K) {};
|
||||
class GVAR(N) {};
|
||||
};
|
@ -6,7 +6,7 @@ class CfgWeapons {
|
||||
EGVAR(laser,canSelect) = 1; // can ace_laser lock (allows switching laser code)
|
||||
EGVAR(laser,showHud) = 1; // show attack profile / lock on hud
|
||||
magazines[] = {"6Rnd_ACE_Hellfire_AGM114K", "PylonMissile_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_3Rnd_ACE_Hellfire_AGM114K", "PylonRack_4Rnd_ACE_Hellfire_AGM114K"};
|
||||
|
||||
magazineWell[] += {QGVAR(K)};
|
||||
autoFire = 0;
|
||||
canLock = 0;
|
||||
weaponLockSystem = 0;
|
||||
@ -27,5 +27,6 @@ class CfgWeapons {
|
||||
class GVAR(launcher_N): GVAR(launcher) {
|
||||
displayName = "AGM-114N Hellfire II";
|
||||
magazines[] = {"6Rnd_ACE_Hellfire_AGM114N", "PylonMissile_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_1Rnd_ACE_Hellfire_AGM114N", "PylonRack_3Rnd_ACE_Hellfire_AGM114N", "PylonRack_4Rnd_ACE_Hellfire_AGM114N"};
|
||||
magazineWell[] += {QGVAR(N)};
|
||||
};
|
||||
};
|
||||
|
@ -18,5 +18,6 @@ class CfgPatches {
|
||||
#include "CfgAmmo.hpp"
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgMagazines.hpp"
|
||||
#include "CfgMagazineWells.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
|
@ -36,11 +36,6 @@ if (_unit == ACE_player) then {
|
||||
addCamShake [3, 5, _damage + random 10];
|
||||
};
|
||||
|
||||
// play scream sound
|
||||
if (!isNil QEFUNC(medical,playInjuredSound)) then {
|
||||
[_unit,_damage] call EFUNC(medical,playInjuredSound);
|
||||
};
|
||||
|
||||
private _vehicle = vehicle _unit;
|
||||
|
||||
// handle static weapons
|
||||
|
@ -67,7 +67,7 @@ class RscACE_SelectAnItem {
|
||||
text = "";
|
||||
};
|
||||
class itemList: RscListBox {
|
||||
onMouseButtonDblClick = "_this call ACE_Interaction_fnc_onSelectMenuDblClick";
|
||||
onMouseButtonDblClick = QUOTE(_this call DFUNC(onSelectMenuDblClick));
|
||||
idc = 8866;
|
||||
x = X_OFFSET + 0.005;
|
||||
w = 0.59;
|
||||
@ -106,7 +106,7 @@ class RscACE_SelectAnItem {
|
||||
y = 0.605;
|
||||
style = 2;
|
||||
text = CSTRING(Back);
|
||||
action = "call ACE_Interaction_fnc_hideMenu;"; //'Default' call ACE_Interaction_fnc_openMenu; 'Default' call ACE_Interaction_fnc_openMenuSelf;
|
||||
action = QUOTE(call DFUNC(hideMenu);); //'Default' call DFUNC(openMenu); 'Default' call DFUNC(openMenuSelf);
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorBackgroundDisabled[] = {0,0,0,0};
|
||||
colorBackgroundActive[] = {1,1,1,0.2};
|
||||
@ -120,7 +120,7 @@ class RscACE_SelectAnItem {
|
||||
w = 0.15;
|
||||
style = 2;
|
||||
text = CSTRING(MakeSelection);
|
||||
action = "call ACE_Interaction_fnc_hideMenu;";
|
||||
action = QUOTE(call DFUNC(hideMenu););
|
||||
colorBackground[] = {0,0,0,0};
|
||||
colorBackgroundDisabled[] = {0,0,0,0};
|
||||
colorBackgroundActive[] = {1,1,1,0.2};
|
||||
|
@ -19,11 +19,12 @@
|
||||
params ["_player", "_target", "_weapon"];
|
||||
|
||||
if (!GVAR(enableMagazinePassing)) exitWith {false};
|
||||
if (_weapon isEqualTo "") exitWith {false};
|
||||
if (((vehicle _target) != _target) && {(vehicle _target) != (vehicle _player)}) exitWith {false};
|
||||
|
||||
private _compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines");
|
||||
{
|
||||
private _compatibleMags = [_weapon] call CBA_fnc_compatibleMagazines;
|
||||
|
||||
(magazinesAmmoFull _player) findIf {
|
||||
_x params ["_className", "", "_loaded"];
|
||||
if ((_className in _compatibleMags) && {!_loaded} && {_target canAdd _className}) exitWith {true};
|
||||
false
|
||||
} foreach (magazinesAmmoFull _player);
|
||||
(_className in _compatibleMags) && {!_loaded} && {_target canAdd _className}
|
||||
} > -1
|
||||
|
@ -56,7 +56,7 @@ if (_cameraPosASL select 2 >= 0) then {
|
||||
_pos set [2, (_pos select 2) min _dz];
|
||||
};
|
||||
|
||||
TRACE_4("",_bb,_bbX,_relPos,_pos,_cameraPosASL);
|
||||
TRACE_5("",_bb,_bbX,_relPos,_pos,_cameraPosASL);
|
||||
_pos
|
||||
|
||||
///////////////////
|
||||
|
@ -59,5 +59,5 @@ if (_cameraPosASL select 2 >= 0) then {
|
||||
_pos set [2, (_pos select 2) min _dz];
|
||||
};
|
||||
|
||||
TRACE_4("",_bb,_bbX,_relPos,_pos,_cameraPosASL);
|
||||
TRACE_5("",_bb,_bbX,_relPos,_pos,_cameraPosASL);
|
||||
_pos
|
||||
|
@ -12,21 +12,24 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_player, _target, "arifle_MX_F"] call ace_interaction_fnc_magToPassazine
|
||||
* [_player, _target, "arifle_MX_F"] call ace_interaction_fnc_passMagazine
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
params ["_player", "_target", "_weapon"];
|
||||
|
||||
private _compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines");
|
||||
private _filteredMags = magazinesAmmoFull _player select {(_x select 0) in _compatibleMags && {!(_x select 2)}};
|
||||
private _compatibleMags = [_weapon] call CBA_fnc_compatibleMagazines;
|
||||
private _filteredMags = magazinesAmmoFull _player select {
|
||||
_x params ["_className", "", "_loaded"];
|
||||
(_className in _compatibleMags) && {!_loaded} && {_target canAdd _className}
|
||||
};
|
||||
|
||||
//select magazine with most ammo
|
||||
private _magToPass = _filteredMags select 0;
|
||||
private _magToPassIndex = 0;
|
||||
{
|
||||
_x params ["_className", "_ammoCount"];
|
||||
if ((_ammoCount > (_magToPass select 1)) && (_target canAdd _className)) then {
|
||||
if (_ammoCount > (_magToPass select 1)) then {
|
||||
_magToPass = _x;
|
||||
_magToPassIndex = _forEachIndex;
|
||||
};
|
||||
|
@ -114,6 +114,7 @@ GVAR(vehicleLightColor) = [1,1,1,0];
|
||||
switch (true) do {
|
||||
case (_vehicle isKindOf "Tank");
|
||||
case (_vehicle isKindOf "Wheeled_APC"): { {true} };
|
||||
case (_vehicle isKindOf "ParachuteBase"): { {false} };
|
||||
case (_vehicle isKindOf "Helicopter");
|
||||
case (_vehicle isKindOf "Plane"): { {(driver _vehicle == _unit) || {gunner _vehicle == _unit}} };
|
||||
default { {false} };
|
||||
|
@ -25,7 +25,7 @@ if ((_button == 0) && {GVAR(freedrawing) || _ctrlKey}) exitWith {
|
||||
if (GVAR(freedrawing) && {_dir == 0}) then {
|
||||
GVAR(freedrawing) = false;
|
||||
GVAR(drawPosEnd) = _control ctrlMapScreenToWorld [_screenPosX, _screenPosY];
|
||||
TRACE_1("Ending Line",GVAR(freedrawing),GVAR(drawPosEnd));
|
||||
TRACE_2("Ending Line",GVAR(freedrawing),GVAR(drawPosEnd));
|
||||
[{
|
||||
if (allMapMarkers isEqualTo []) exitWith {};
|
||||
private _markerName = allMapMarkers select (count allMapMarkers - 1);
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
params ["_allMapMarkers", "_allMapMarkersProperties"];
|
||||
TRACE_3("params",_allMapMarkers,_allMapMarkersProperties);
|
||||
TRACE_2("params",_allMapMarkers,_allMapMarkersProperties);
|
||||
|
||||
{
|
||||
private _index = _allMapMarkers find _x;
|
||||
|
@ -1,789 +0,0 @@
|
||||
|
||||
class ACE_Head {
|
||||
displayName = CSTRING(Head);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class CheckResponse: CheckPulse {
|
||||
displayName = CSTRING(Check_Response);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Diagnose: CheckPulse {
|
||||
displayName = CSTRING(Actions_Diagnose);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
};
|
||||
class ACE_Torso {
|
||||
displayName = CSTRING(Torso);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
enableInside = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PlaceInBodyBag {
|
||||
displayName = CSTRING(PlaceInBodyBag);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
enableInside = 1;
|
||||
};
|
||||
class TriageCard {
|
||||
displayName = CSTRING(Actions_TriageCard);
|
||||
distance = 2.0;
|
||||
condition = "true";
|
||||
statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
enableInside = 1;
|
||||
icon = QPATHTOF(UI\icons\triageCard.paa);
|
||||
};
|
||||
class Diagnose {
|
||||
displayName = CSTRING(Actions_Diagnose);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'Diagnose')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'Diagnose')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = "";
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
enableInside = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class SurgicalKit: fieldDressing {
|
||||
displayName = CSTRING(Use_SurgicalKit);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\surgicalKit.paa);
|
||||
};
|
||||
class PersonalAidKit: fieldDressing {
|
||||
displayName = CSTRING(Use_Aid_Kit);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = "";
|
||||
};
|
||||
class CPR: fieldDressing {
|
||||
displayName = CSTRING(Actions_CPR);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = "";
|
||||
};
|
||||
};
|
||||
class ACE_ArmLeft {
|
||||
displayName = ECSTRING(interaction,ArmLeft);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class BloodIV: fieldDressing {
|
||||
displayName = CSTRING(Actions_Blood4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\iv.paa);
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Plasma4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_500: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_250: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Saline4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_500: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_250: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
};
|
||||
class ACE_ArmRight {
|
||||
displayName = ECSTRING(interaction,ArmRight);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Adenosine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV: fieldDressing {
|
||||
displayName = CSTRING(Actions_Blood4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\iv.paa);
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Plasma4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_500: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_250: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Saline4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_500: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_250: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
|
||||
};
|
||||
class ACE_LegLeft {
|
||||
displayName = ECSTRING(interaction,LegLeft);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV: fieldDressing {
|
||||
displayName = CSTRING(Actions_Blood4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\iv.paa);
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Plasma4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_500: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_250: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Saline4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_500: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_250: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
};
|
||||
class ACE_LegRight {
|
||||
displayName = ECSTRING(interaction,LegRight);
|
||||
runOnHover = 1;
|
||||
statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation));
|
||||
ACTION_CONDITION
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
distance = MEDICAL_ACTION_DISTANCE;
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV: fieldDressing {
|
||||
displayName = CSTRING(Actions_Blood4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
icon = QPATHTOF(UI\icons\iv.paa);
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Plasma4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_500: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class PlasmaIV_250: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV: BloodIV {
|
||||
displayName = CSTRING(Actions_Saline4_1000);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_500: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_500);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class SalineIV_250: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_250);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
EXCEPTIONS
|
||||
};
|
||||
};
|
@ -1,520 +0,0 @@
|
||||
class Medical {
|
||||
displayName = CSTRING(Actions_Medical);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
condition = QUOTE(GVAR(menuTypeStyleSelf));
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class ACE_Head {
|
||||
displayName = CSTRING(Head);
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
runOnHover = 1;
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
};
|
||||
};
|
||||
class ACE_Torso {
|
||||
displayName = CSTRING(Torso);
|
||||
distance = 5.0;
|
||||
condition = "true";
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
class TriageCard {
|
||||
displayName = CSTRING(Actions_TriageCard);
|
||||
distance = 2.0;
|
||||
condition = "true";
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\triageCard.paa);
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
};
|
||||
class ACE_ArmLeft {
|
||||
displayName = ECSTRING(interaction,ArmLeft);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Morphine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Atropine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Epinephrine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
};
|
||||
};
|
||||
class ACE_ArmRight {
|
||||
displayName = ECSTRING(interaction,ArmRight);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Morphine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Adenosine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Atropine')] call DFUNC(treatment));
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment));
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
|
||||
icon = "";
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
};
|
||||
};
|
||||
class ACE_LegLeft {
|
||||
displayName = ECSTRING(interaction,LegLeft);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Morphine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Atropine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment));
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
};
|
||||
};
|
||||
class ACE_LegRight {
|
||||
displayName = ECSTRING(interaction,LegRight);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"};
|
||||
statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation));
|
||||
modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction));
|
||||
condition = "true";
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
distance = 2.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment));
|
||||
showDisabled = 1;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
|
||||
|
||||
// Advanced medical
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
distance = 5.0;
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\bandage.paa);
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\packingBandage.paa);
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Actions_Tourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\tourniquet.paa);
|
||||
};
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Morphine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Adenosine: Morphine {
|
||||
displayName = CSTRING(Inject_Adenosine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(treatment));
|
||||
icon = QPATHTOF(UI\icons\autoInjector.paa);
|
||||
};
|
||||
class Atropine: Morphine {
|
||||
displayName = CSTRING(Inject_Atropine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Atropine')] call DFUNC(treatment));
|
||||
};
|
||||
class Epinephrine: Morphine {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment));
|
||||
};
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
|
||||
exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
|
||||
};
|
||||
};
|
||||
};
|
File diff suppressed because it is too large
Load Diff
@ -1,329 +1,24 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(level) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_level_DisplayName);
|
||||
description = CSTRING(MedicalSettings_level_Description);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
values[] = {"Disabled", "Basic", "Advanced"};
|
||||
};
|
||||
class GVAR(medicSetting) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_medicSetting_DisplayName);
|
||||
description = CSTRING(MedicalSettings_medicSetting_Description);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
values[] = {"Disabled", "Normal", "Advanced"};
|
||||
};
|
||||
class GVAR(increaseTrainingInLocations) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_increaseTrainingInLocations_DisplayName);
|
||||
description = CSTRING(MedicalSettings_increaseTrainingInLocations_Description);
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
/* @todo
|
||||
class GVAR(enableFor) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableFor_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableFor_Description);
|
||||
value = 0;
|
||||
displayName = CSTRING(MedicalSettings_enableFor_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableFor_Description);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
values[] = {"Players only", "Players and AI"};
|
||||
};
|
||||
class GVAR(enableOverdosing) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_enableOverdosing_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableOverdosing_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(bleedingCoefficient) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_bleedingCoefficient_DisplayName);
|
||||
description = CSTRING(MedicalSettings_bleedingCoefficient_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
sliderSettings[] = {0, 25, 1, 1};
|
||||
};
|
||||
class GVAR(painCoefficient) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_painCoefficient_DisplayName);
|
||||
description = CSTRING(MedicalSettings_painCoefficient_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
sliderSettings[] = {0, 25, 1, 1};
|
||||
};
|
||||
class GVAR(enableAdvancedWounds) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
*/
|
||||
/* @todo
|
||||
class GVAR(enableVehicleCrashes) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_Description);
|
||||
displayName = CSTRING(MedicalSettings_enableVehicleCrashes_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableVehicleCrashes_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(enableScreams) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_enableScreams_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableScreams_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(playerDamageThreshold) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_playerDamageThreshold_DisplayName);
|
||||
description = CSTRING(MedicalSettings_playerDamageThreshold_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
sliderSettings[] = {0, 25, 1, 1};
|
||||
};
|
||||
class GVAR(AIDamageThreshold) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_AIDamageThreshold_DisplayName);
|
||||
description = CSTRING(MedicalSettings_AIDamageThreshold_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
sliderSettings[] = {0, 25, 1, 1};
|
||||
};
|
||||
class GVAR(enableUnconsciousnessAI) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_enableUnconsciousnessAI_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableUnconsciousnessAI_Description);
|
||||
value = 1;
|
||||
typeName = "SCALAR";
|
||||
values[] = {"Disabled", "50/50", "Enabled"};
|
||||
};
|
||||
class GVAR(remoteControlledAI) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_remoteControlledAI_DisplayName);
|
||||
description = CSTRING(MedicalSettings_remoteControlledAI_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(preventInstaDeath) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_preventInstaDeath_DisplayName);
|
||||
description = CSTRING(MedicalSettings_preventInstaDeath_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(enableRevive) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(ReviveSettings_enableRevive_DisplayName);
|
||||
description = CSTRING(ReviveSettings_enableRevive_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {"Disabled", "Players only", "Players and AI"};
|
||||
};
|
||||
class GVAR(maxReviveTime) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(ReviveSettings_maxReviveTime_DisplayName);
|
||||
description = CSTRING(ReviveSettings_maxReviveTime_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 120;
|
||||
sliderSettings[] = {0, 3600, 120, 0};
|
||||
};
|
||||
class GVAR(amountOfReviveLives) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(ReviveSettings_amountOfReviveLives_DisplayName);
|
||||
description = CSTRING(ReviveSettings_amountOfReviveLives_Description);
|
||||
typeName = "SCALAR";
|
||||
value = -1;
|
||||
sliderSettings[] = {-1, 25, -1, -1};
|
||||
};
|
||||
|
||||
/*
|
||||
class GVAR(allowDeadBodyMovement) {
|
||||
category = CSTRING(Category_Medical);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
*/
|
||||
|
||||
class GVAR(allowLitterCreation) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_allowLitterCreation_DisplayName);
|
||||
description = CSTRING(MedicalSettings_allowLitterCreation_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(litterSimulationDetail) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(litterSimulationDetail);
|
||||
description = CSTRING(litterSimulationDetail_Desc);
|
||||
typeName = "SCALAR";
|
||||
|
||||
value = 3;
|
||||
values[] = {"Off", "Low", "Medium", "High", "Ultra"};
|
||||
_values[] = { 0, 50, 100, 1000, 5000 };
|
||||
};
|
||||
class GVAR(litterCleanUpDelay) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_litterCleanUpDelay_DisplayName);
|
||||
description = CSTRING(MedicalSettings_litterCleanUpDelay_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
sliderSettings[] = {-1, 3600, 0, 0};
|
||||
};
|
||||
class GVAR(medicSetting_basicEpi) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_DisplayName);
|
||||
description = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
values[] = {"Anyone", "Medics only", "Doctors only"};
|
||||
};
|
||||
class GVAR(medicSetting_PAK) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
values[] = {"Anyone", "Medics only", "Doctors only"};
|
||||
};
|
||||
class GVAR(medicSetting_SurgicalKit) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 1;
|
||||
values[] = {"Anyone", "Medics only", "Doctors only"};
|
||||
};
|
||||
class GVAR(consumeItem_PAK) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {"No", "Yes"};
|
||||
};
|
||||
class GVAR(consumeItem_SurgicalKit) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {"No", "Yes"};
|
||||
};
|
||||
class GVAR(useLocation_basicEpi) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(BasicMedicalSettings_useLocation_basicEpi_DisplayName);
|
||||
description = CSTRING(BasicMedicalSettings_useLocation_basicEpi_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
|
||||
};
|
||||
class GVAR(useLocation_PAK) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useLocation_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useLocation_PAK_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 3;
|
||||
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
|
||||
};
|
||||
class GVAR(useLocation_SurgicalKit) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 2;
|
||||
values[] = {CSTRING(AdvancedMedicalSettings_anywhere), CSTRING(AdvancedMedicalSettings_vehicle), CSTRING(AdvancedMedicalSettings_facility), CSTRING(AdvancedMedicalSettings_vehicleAndFacility), ECSTRING(common,Disabled)};
|
||||
};
|
||||
class GVAR(useCondition_PAK) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useCondition_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useCondition_PAK_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {"Anytime", "Stable"};
|
||||
};
|
||||
class GVAR(useCondition_SurgicalKit) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useCondition_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useCondition_SurgicalKit_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {"Anytime", "Stable"};
|
||||
};
|
||||
class GVAR(keepLocalSettingsSynced) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_keepLocalSettingsSynced_DisplayName);
|
||||
description = CSTRING(MedicalSettings_keepLocalSettingsSynced_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(healHitPointAfterAdvBandage) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(painIsOnlySuppressed) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_Description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
};
|
||||
class GVAR(painEffectType) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(painEffectType);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {CSTRING(painEffect_Flash), CSTRING(painEffect_Chroma)};
|
||||
isClientSettable = 1;
|
||||
};
|
||||
class GVAR(allowUnconsciousAnimationOnTreatment) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_DisplayName);
|
||||
description = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(moveUnitsFromGroupOnUnconscious) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_moveUnitsFromGroupOnUnconscious_DisplayName);
|
||||
description = CSTRING(MedicalSettings_moveUnitsFromGroupOnUnconscious_Description);
|
||||
typeName = "BOOL";
|
||||
value = 0;
|
||||
};
|
||||
class GVAR(menuTypeStyle) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(menuTypeDisplay);
|
||||
description = CSTRING(menuTypeDescription);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {CSTRING(useSelection), CSTRING(useRadial), ECSTRING(common,Disabled)};
|
||||
isClientSettable = 1;
|
||||
};
|
||||
class GVAR(menuTypeStyleSelf) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(menuTypeStyleSelf_displayName);
|
||||
description = CSTRING(menuTypeStyleSelf_description);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
isClientSettable = 1;
|
||||
};
|
||||
class GVAR(delayUnconCaptive) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_delayUnconCaptive_DisplayName);
|
||||
description = CSTRING(MedicalSettings_delayUnconCaptive_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 3;
|
||||
sliderSettings[] = {0, 30, 3, 0};
|
||||
};
|
||||
class GVAR(convertItems) {
|
||||
category = CSTRING(Category_Medical);
|
||||
displayName = CSTRING(MedicalSettings_convertItems_DisplayName);
|
||||
description = CSTRING(MedicalSettings_convertItems_Description);
|
||||
typeName = "SCALAR";
|
||||
value = 0;
|
||||
values[] = {ECSTRING(common,Enabled), CSTRING(MedicalSettings_convertItems_remove), ECSTRING(common,Disabled)};
|
||||
class GVAR(spontaneousWakeUpChance) {
|
||||
movedToSQF = 1;
|
||||
};
|
||||
};
|
||||
|
@ -1,6 +0,0 @@
|
||||
class CfgActions {
|
||||
class None;
|
||||
class Heal: None {
|
||||
show = 0;
|
||||
};
|
||||
};
|
@ -1,4 +1,3 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
|
@ -1,6 +0,0 @@
|
||||
class CfgFactionClasses {
|
||||
class NO_CATEGORY;
|
||||
class ADDON: NO_CATEGORY {
|
||||
displayName = CSTRING(Category_DisplayName);
|
||||
};
|
||||
};
|
@ -1,956 +1,7 @@
|
||||
|
||||
#define MEDICAL_ACTION_DISTANCE 1.75
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
class CfgVehicles {
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ArgumentsBaseUnits {
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Module;
|
||||
class ACE_moduleMedicalSettings: ACE_Module {
|
||||
// Left as dumb logic so that old missions don't error about missing vehicle
|
||||
class ACE_moduleMedicalSettings: Logic {
|
||||
scope = 1;
|
||||
displayName = CSTRING(MedicalSettings_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QUOTE(DFUNC(moduleMedicalSettings));
|
||||
functionPriority = 1;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
isTriggerActivated = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class level {
|
||||
displayName = CSTRING(MedicalSettings_level_DisplayName);
|
||||
description = CSTRING(MedicalSettings_level_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class normal {
|
||||
name = CSTRING(MedicalSettings_basic);
|
||||
value = 1;
|
||||
default = 1;
|
||||
};
|
||||
class full {
|
||||
name = CSTRING(MedicalSettings_advanced);
|
||||
value = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
class medicSetting {
|
||||
displayName = CSTRING(MedicalSettings_medicSetting_DisplayName);
|
||||
description = CSTRING(MedicalSettings_medicSetting_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class disable {
|
||||
name = CSTRING(MedicalSettings_medicSetting_disable);
|
||||
value = 0;
|
||||
};
|
||||
class normal {
|
||||
name = CSTRING(MedicalSettings_basic);
|
||||
value = 1;
|
||||
default = 1;
|
||||
};
|
||||
class full {
|
||||
name = CSTRING(MedicalSettings_advanced);
|
||||
value = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
class increaseTrainingInLocations {
|
||||
displayName = CSTRING(MedicalSettings_increaseTrainingInLocations_DisplayName);
|
||||
description = CSTRING(MedicalSettings_increaseTrainingInLocations_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class allowLitterCreation {
|
||||
displayName = CSTRING(MedicalSettings_allowLitterCreation_DisplayName);
|
||||
description = CSTRING(MedicalSettings_allowLitterCreation_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class litterCleanUpDelay {
|
||||
displayName = CSTRING(MedicalSettings_litterCleanUpDelay_DisplayName);
|
||||
description = CSTRING(MedicalSettings_litterCleanUpDelay_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1800;
|
||||
};
|
||||
class enableScreams {
|
||||
displayName = CSTRING(MedicalSettings_enableScreams_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableScreams_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class playerDamageThreshold {
|
||||
displayName = CSTRING(MedicalSettings_playerDamageThreshold_DisplayName);
|
||||
description = CSTRING(MedicalSettings_playerDamageThreshold_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class AIDamageThreshold {
|
||||
displayName = CSTRING(MedicalSettings_AIDamageThreshold_DisplayName);
|
||||
description = CSTRING(MedicalSettings_AIDamageThreshold_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class enableUnconsciousnessAI {
|
||||
displayName = CSTRING(MedicalSettings_enableUnconsciousnessAI_DisplayName);
|
||||
description = CSTRING(MedicalSettings_enableUnconsciousnessAI_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class disable {
|
||||
name = ECSTRING(common,Disabled);
|
||||
value = 0;
|
||||
};
|
||||
class normal {
|
||||
name = "50/50";
|
||||
value = 1;
|
||||
default = 1;
|
||||
};
|
||||
class full {
|
||||
name = ECSTRING(common,Enabled);
|
||||
value = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
class remoteControlledAI {
|
||||
displayName = CSTRING(MedicalSettings_remoteControlledAI_DisplayName);
|
||||
description = CSTRING(MedicalSettings_remoteControlledAI_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class preventInstaDeath {
|
||||
displayName = CSTRING(MedicalSettings_preventInstaDeath_DisplayName);
|
||||
description = CSTRING(MedicalSettings_preventInstaDeath_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class bleedingCoefficient {
|
||||
displayName = CSTRING(MedicalSettings_bleedingCoefficient_DisplayName);
|
||||
description = CSTRING(MedicalSettings_bleedingCoefficient_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class painCoefficient {
|
||||
displayName = CSTRING(MedicalSettings_painCoefficient_DisplayName);
|
||||
description = CSTRING(MedicalSettings_painCoefficient_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class keepLocalSettingsSynced {
|
||||
displayName = CSTRING(MedicalSettings_keepLocalSettingsSynced_DisplayName);
|
||||
description = CSTRING(MedicalSettings_keepLocalSettingsSynced_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(MedicalSettings_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
class ACE_moduleBasicMedicalSettings: ACE_Module {
|
||||
scope = 1;
|
||||
displayName = CSTRING(BasicMedicalSettings_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QFUNC(moduleBasicMedicalSettings);
|
||||
functionPriority = 10;
|
||||
isGlobal = 2;
|
||||
isSingular = 1;
|
||||
isTriggerActivated = 0;
|
||||
isDisposable = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class medicSetting_basicEpi {
|
||||
displayName = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_DisplayName);
|
||||
description = CSTRING(BasicMedicalSettings_medicSetting_basicEpi_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class anyone { name = CSTRING(AdvancedMedicalSettings_anyone); value = 0; };
|
||||
class Medic { name = CSTRING(AdvancedMedicalSettings_Medic); value = 1; default = 1; };
|
||||
class Special { name = CSTRING(AdvancedMedicalSettings_Special); value = 2; };
|
||||
};
|
||||
};
|
||||
class useLocation_basicEpi {
|
||||
displayName = CSTRING(BasicMedicalSettings_useLocation_basicEpi_DisplayName);
|
||||
description = CSTRING(BasicMedicalSettings_useLocation_basicEpi_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class anywhere { name = CSTRING(AdvancedMedicalSettings_anywhere); value = 0; default = 1; };
|
||||
class vehicle { name = CSTRING(AdvancedMedicalSettings_vehicle); value = 1; };
|
||||
class facility { name = CSTRING(AdvancedMedicalSettings_facility); value = 2; };
|
||||
class vehicleAndFacility { name = CSTRING(AdvancedMedicalSettings_vehicleAndFacility); value = 3; };
|
||||
class disabled { name = ECSTRING(common,Disabled); value = 4;};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ModuleDescription {
|
||||
description = CSTRING(BasicMedicalSettings_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
class ACE_moduleAdvancedMedicalSettings: ACE_Module {
|
||||
scope = 1;
|
||||
displayName = CSTRING(AdvancedMedicalSettings_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QFUNC(moduleAdvancedMedicalSettings);
|
||||
functionPriority = 10;
|
||||
isGlobal = 2;
|
||||
isSingular = 1;
|
||||
isTriggerActivated = 0;
|
||||
isDisposable = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class enableFor {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableFor_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableFor_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class playableUnits {
|
||||
name = CSTRING(playeronly);
|
||||
value = 0;
|
||||
default = 1;
|
||||
};
|
||||
class playableUnitsAndAI {
|
||||
name = CSTRING(playersandai);
|
||||
value = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
class enableAdvancedWounds {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableAdvancedWounds_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class enableVehicleCrashes {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_enableVehicleCrashes_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
class medicSetting_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_medicSetting_PAK_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class anyone { name = CSTRING(AdvancedMedicalSettings_anyone); value = 0; };
|
||||
class Medic { name = CSTRING(AdvancedMedicalSettings_Medic); value = 1; default = 1; };
|
||||
class Special { name = CSTRING(AdvancedMedicalSettings_Special); value = 2; };
|
||||
};
|
||||
};
|
||||
class consumeItem_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_consumeItem_PAK_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class keep { name = ECSTRING(common,No); value = 0; };
|
||||
class remove { name = ECSTRING(common,Yes); value = 1; default = 1; };
|
||||
};
|
||||
};
|
||||
class useCondition_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useCondition_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useCondition_PAK_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class AnyTime { name = CSTRING(AnyTime); value = 0; };
|
||||
class Stable { name = CSTRING(Stable); value = 1; default = 1; };
|
||||
};
|
||||
};
|
||||
class useLocation_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useLocation_PAK_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useLocation_PAK_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class anywhere { name = CSTRING(AdvancedMedicalSettings_anywhere); value = 0; };
|
||||
class vehicle { name = CSTRING(AdvancedMedicalSettings_vehicle); value = 1; };
|
||||
class facility { name = CSTRING(AdvancedMedicalSettings_facility); value = 2; };
|
||||
class vehicleAndFacility { name = CSTRING(AdvancedMedicalSettings_vehicleAndFacility); value = 3; default = 1; };
|
||||
class disabled { name = ECSTRING(common,Disabled); value = 4;};
|
||||
};
|
||||
};
|
||||
class medicSetting_SurgicalKit: medicSetting_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_medicSetting_SurgicalKit_Description);
|
||||
};
|
||||
class consumeItem_SurgicalKit: consumeItem_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_consumeItem_SurgicalKit_Description);
|
||||
};
|
||||
class useLocation_SurgicalKit: useLocation_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useLocation_SurgicalKit_Description);
|
||||
};
|
||||
class useCondition_SurgicalKit: useCondition_PAK {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_useCondition_SurgicalKit_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_useCondition_SurgicalKit_Description);
|
||||
class values {
|
||||
class AnyTime { name = CSTRING(AnyTime); value = 0; default = 1; };
|
||||
class Stable { name = CSTRING(Stable); value = 1; };
|
||||
};
|
||||
};
|
||||
class healHitPointAfterAdvBandage {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 0;
|
||||
};
|
||||
class painIsOnlySuppressed {
|
||||
displayName = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName);
|
||||
description = CSTRING(AdvancedMedicalSettings_painIsOnlySuppressed_Description);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(AdvancedMedicalSettings_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_moduleReviveSettings: ACE_Module {
|
||||
scope = 1;
|
||||
displayName = CSTRING(ReviveSettings_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QUOTE(DFUNC(moduleReviveSettings));
|
||||
functionPriority = 1;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
isTriggerActivated = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class enableRevive {
|
||||
displayName = CSTRING(ReviveSettings_enableRevive_DisplayName);
|
||||
description = CSTRING(ReviveSettings_enableRevive_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 0;
|
||||
class values {
|
||||
class disable { name = ECSTRING(common,Disabled); value = 0; default = 1;};
|
||||
class playerOnly { name = CSTRING(playeronly); value = 1; };
|
||||
class playerAndAI { name = CSTRING(playersandai); value = 2; };
|
||||
};
|
||||
};
|
||||
class maxReviveTime {
|
||||
displayName = CSTRING(ReviveSettings_maxReviveTime_DisplayName);
|
||||
description = CSTRING(ReviveSettings_maxReviveTime_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = 120;
|
||||
};
|
||||
class amountOfReviveLives {
|
||||
displayName = CSTRING(ReviveSettings_amountOfReviveLives_DisplayName);
|
||||
description = CSTRING(ReviveSettings_amountOfReviveLives_Description);
|
||||
typeName = "NUMBER";
|
||||
defaultValue = -1;
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(ReviveSettings_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_moduleAssignMedicRoles: Module_F {
|
||||
scope = 1;
|
||||
displayName = CSTRING(AssignMedicRoles_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QFUNC(moduleAssignMedicRoles);
|
||||
functionPriority = 10;
|
||||
isGlobal = 2;
|
||||
isTriggerActivated = 0;
|
||||
isDisposable = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class EnableList {
|
||||
displayName = CSTRING(AssignMedicRoles_EnableList_DisplayName);
|
||||
description = CSTRING(AssignMedicRoles_EnableList_Description);
|
||||
defaultValue = "";
|
||||
typeName = "STRING";
|
||||
};
|
||||
class role {
|
||||
displayName = CSTRING(AssignMedicRoles_role_DisplayName);
|
||||
description = CSTRING(AssignMedicRoles_role_Description);
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class none {
|
||||
name = CSTRING(AssignMedicRoles_role_none);
|
||||
value = 0;
|
||||
};
|
||||
class medic {
|
||||
name = CSTRING(AssignMedicRoles_role_medic);
|
||||
value = 1;
|
||||
default = 1;
|
||||
};
|
||||
class doctor {
|
||||
name = CSTRING(AssignMedicRoles_role_doctor);
|
||||
value = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(AssignMedicRoles_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_moduleAssignMedicVehicle: Module_F {
|
||||
scope = 1;
|
||||
displayName = CSTRING(AssignMedicVehicle_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QFUNC(moduleAssignMedicalVehicle);
|
||||
functionPriority = 10;
|
||||
isGlobal = 2;
|
||||
isTriggerActivated = 0;
|
||||
isDisposable = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class EnableList {
|
||||
displayName = CSTRING(AssignMedicVehicle_EnableList_DisplayName);
|
||||
description = CSTRING(AssignMedicVehicle_EnableList_Description);
|
||||
defaultValue = "";
|
||||
typeName = "STRING";
|
||||
};
|
||||
class enabled {
|
||||
displayName = CSTRING(AssignMedicVehicle_enabled_DisplayName);
|
||||
description = CSTRING(AssignMedicVehicle_enabled_Description);
|
||||
|
||||
typeName = "NUMBER";
|
||||
class values {
|
||||
class none {
|
||||
name = ECSTRING(common,No);
|
||||
value = 0;
|
||||
};
|
||||
class medic {
|
||||
name = ECSTRING(common,Yes);
|
||||
value = 1;
|
||||
default = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(AssignMedicVehicle_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_moduleAssignMedicalFacility: Module_F {
|
||||
scope = 1;
|
||||
displayName = CSTRING(AssignMedicalFacility_Module_DisplayName);
|
||||
icon = QPATHTOF(UI\Icon_Module_Medical_ca.paa);
|
||||
category = "ACE_medical";
|
||||
function = QFUNC(moduleAssignMedicalFacility);
|
||||
functionPriority = 10;
|
||||
isGlobal = 2;
|
||||
isTriggerActivated = 0;
|
||||
isDisposable = 0;
|
||||
author = ECSTRING(common,ACETeam);
|
||||
|
||||
class Arguments {
|
||||
class enabled {
|
||||
displayName = CSTRING(AssignMedicalFacility_enabled_DisplayName);
|
||||
description = CSTRING(AssignMedicalFacility_enabled_Description);
|
||||
typeName = "BOOL";
|
||||
};
|
||||
};
|
||||
|
||||
class ModuleDescription {
|
||||
description = CSTRING(AssignMedicalFacility_Module_Description);
|
||||
sync[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
#define ARM_LEG_ARMOR_DEFAULT 1
|
||||
#define ARM_LEG_ARMOR_BETTER 1
|
||||
#define ARM_LEG_ARMOR_CSAT 1
|
||||
|
||||
#define ADD_ACE_HITPOINTS(ARM_ARMOR,LEG_ARMOR) \
|
||||
class HitLeftArm { \
|
||||
armor = ARM_ARMOR; \
|
||||
material = -1; \
|
||||
name = "hand_l"; \
|
||||
passThrough = 1; \
|
||||
radius = 0.08; \
|
||||
explosionShielding = 1; \
|
||||
visual = "injury_hands"; \
|
||||
minimalHit = 0.01; \
|
||||
}; \
|
||||
class HitRightArm: HitLeftArm { \
|
||||
name = "hand_r"; \
|
||||
}; \
|
||||
class HitLeftLeg { \
|
||||
armor = LEG_ARMOR; \
|
||||
material = -1; \
|
||||
name = "leg_l"; \
|
||||
passThrough = 1; \
|
||||
radius = 0.1; \
|
||||
explosionShielding = 1; \
|
||||
visual = "injury_legs"; \
|
||||
minimalHit = 0.01; \
|
||||
}; \
|
||||
class HitRightLeg: HitLeftLeg { \
|
||||
name = "leg_r"; \
|
||||
};
|
||||
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_DEFAULT,ARM_LEG_ARMOR_DEFAULT)
|
||||
};
|
||||
|
||||
class ACE_SelfActions {
|
||||
#include "ACE_Medical_SelfActions.hpp"
|
||||
};
|
||||
|
||||
class ACE_Actions {
|
||||
// Include actions in body parts for treatment while in the open
|
||||
#define EXCEPTIONS exceptions[] = {"isNotSwimming"};
|
||||
#define ACTION_CONDITION condition = QUOTE(GVAR(menuTypeStyle) == 0);
|
||||
#include "ACE_Medical_Actions.hpp"
|
||||
|
||||
// Create a consolidates medical menu for treatment while boarded
|
||||
class ACE_MainActions {
|
||||
class Medical {
|
||||
displayName = CSTRING(Actions_Medical);
|
||||
runOnHover = 1;
|
||||
exceptions[] = {"isNotInside"};
|
||||
condition = QUOTE((vehicle _target != _target && vehicle _target == vehicle _player) || GVAR(menuTypeStyle) == 1);
|
||||
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
|
||||
#undef EXCEPTIONS
|
||||
#undef ACTION_CONDITION
|
||||
#define EXCEPTIONS exceptions[] = {"isNotInside", "isNotSwimming"};
|
||||
#define ACTION_CONDITION condition = "true";
|
||||
#include "ACE_Medical_Actions.hpp"
|
||||
};
|
||||
class GVAR(loadPatient) {
|
||||
displayName = CSTRING(LoadPatient);
|
||||
distance = 5;
|
||||
condition = QUOTE(_target getVariable [ARR_2(QUOTE(QUOTE(ACE_isUnconscious)), false)] && {alive _target} && {vehicle _target == _target});
|
||||
statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionLoadUnit));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
exceptions[] = {"isNotDragging", "isNotCarrying", "isNotSwimming"};
|
||||
insertChildren = QUOTE(call DFUNC(addLoadPatientActions));
|
||||
};
|
||||
class GVAR(UnLoadPatient) {
|
||||
displayName = CSTRING(UnloadPatient);
|
||||
distance = 5;
|
||||
condition = QUOTE(_target getVariable [ARR_2(QUOTE(QUOTE(ACE_isUnconscious)), false)] && {alive _target} && {vehicle _target != _target} && {vehicle _player == _player});
|
||||
statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionUnloadUnit));
|
||||
showDisabled = 0;
|
||||
icon = QPATHTOF(UI\icons\medical_cross.paa);
|
||||
exceptions[] = {"isNotDragging", "isNotCarrying", "isNotInside", "isNotSwimming"};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class SoldierWB: CAManBase {};
|
||||
class SoldierEB: CAManBase {};
|
||||
class SoldierGB: CAManBase {};
|
||||
|
||||
class B_Soldier_base_F: SoldierWB {};
|
||||
|
||||
class B_Soldier_04_f: B_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class B_Soldier_05_f: B_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class I_Soldier_base_F: SoldierGB {};
|
||||
|
||||
class I_Soldier_03_F: I_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class I_Soldier_04_F: I_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_BETTER,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_base_F: SoldierEB {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_diver_base_F: O_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class O_Soldier_02_F: O_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
class O_officer_F: O_Soldier_base_F {
|
||||
class HitPoints {
|
||||
ADD_ACE_HITPOINTS(ARM_LEG_ARMOR_CSAT,ARM_LEG_ARMOR_BETTER)
|
||||
};
|
||||
};
|
||||
|
||||
//These VR guys already have limb hitpoints that we should be able to use
|
||||
//Note: the selections are a little weird, eg: class leg_l {name = "leg_l";};
|
||||
// class B_Soldier_VR_F: B_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class O_Soldier_VR_F: O_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class I_Soldier_VR_F: I_Soldier_base_F { {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class C_Soldier_VR_F: C_man_1 {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
// class O_Protagonist_VR_F: O_Soldier_base_F {
|
||||
// class HitPoints {
|
||||
//Has class hand_l, hand_r, leg_l, leg_r Hitpoints already
|
||||
// };
|
||||
// };
|
||||
|
||||
class MapBoard_altis_F;
|
||||
class ACE_bodyBagObject: MapBoard_altis_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
scope = 1;
|
||||
scopeCurator = 2;
|
||||
side = -1;
|
||||
model = QPATHTOEF(apl,ace_bodybag.p3d);
|
||||
icon = "";
|
||||
displayName = CSTRING(Bodybag_Display);
|
||||
EGVAR(dragging,canDrag) = 1;
|
||||
EGVAR(dragging,dragPosition)[] = {0,1.2,0};
|
||||
EGVAR(dragging,dragDirection) = 0;
|
||||
EGVAR(cargo,size) = 1;
|
||||
EGVAR(cargo,canLoad) = 1;
|
||||
hiddenSelections[] = {"camo"};
|
||||
hiddenSelectionsTextures[] = {QPATHTOEF(apl,data\bodybag_co.paa)};
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = ECSTRING(interaction,MainAction);
|
||||
distance = 5;
|
||||
condition = QUOTE(true);
|
||||
statement = "";
|
||||
icon = "\a3\ui_f\data\IGUI\Cfg\Actions\eject_ca.paa";
|
||||
selection = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Medical litter classes
|
||||
class Thing;
|
||||
class ACE_MedicalLitterBase: Thing {
|
||||
scope = 1;
|
||||
scopeCurator = 0;
|
||||
displayName = " ";
|
||||
destrType = "DestructNo";
|
||||
model = QPATHTOF(data\littergeneric.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_clean: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_clean.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_bandage1: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_bandages1.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_bandage2: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_bandages2.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_bandage3: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_bandages3.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_packingBandage: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_packingBandage.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_gloves: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_gloves.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_adenosine: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_adenosine.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_atropine: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_atropine.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_epinephrine: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_epinephrine.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_morphine: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_morphine.p3d);
|
||||
};
|
||||
class ACE_MedicalLitter_QuickClot: ACE_MedicalLitterBase {
|
||||
model = QPATHTOF(data\littergeneric_Quikclot.p3d);
|
||||
};
|
||||
class Item_Base_F;
|
||||
class ACE_fieldDressingItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Bandage_Basic_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_fieldDressing,1);
|
||||
};
|
||||
};
|
||||
class ACE_packingBandageItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Packing_Bandage_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_packingBandage,1);
|
||||
};
|
||||
};
|
||||
class ACE_elasticBandageItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Bandage_Elastic_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_elasticBandage,1);
|
||||
};
|
||||
};
|
||||
class ACE_tourniquetItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Tourniquet_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_tourniquet,1);
|
||||
};
|
||||
};
|
||||
class ACE_morphineItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Morphine_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_morphine,1);
|
||||
};
|
||||
};
|
||||
class ACE_adenosineItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Adenosine_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_adenosine,1);
|
||||
};
|
||||
};
|
||||
class ACE_atropineItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Atropine_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_atropine,1);
|
||||
};
|
||||
};
|
||||
class ACE_epinephrineItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Epinephrine_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_epinephrine,1);
|
||||
};
|
||||
};
|
||||
class ACE_plasmaIVItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Plasma_IV);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_plasmaIV,1);
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_bloodIVItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Blood_IV);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_bloodIV,1);
|
||||
};
|
||||
};
|
||||
class ACE_salineIVItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Saline_IV);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_salineIV,1);
|
||||
};
|
||||
};
|
||||
class ACE_quikClotItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(QuikClot_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_quikclot,1);
|
||||
};
|
||||
};
|
||||
class ACE_personalAidKitItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Aid_Kit_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_personalAidKit,1);
|
||||
};
|
||||
};
|
||||
class ACE_surgicalKitItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(SurgicalKit_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_surgicalKit,1);
|
||||
};
|
||||
};
|
||||
class ACE_bodyBagItem: Item_Base_F {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
displayName = CSTRING(Bodybag_Display);
|
||||
author = ECSTRING(common,ACETeam);
|
||||
vehicleClass = "Items";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_bodyBag,1);
|
||||
};
|
||||
};
|
||||
|
||||
class ThingX;
|
||||
class ReammoBox_F: ThingX {
|
||||
class ACE_Actions;
|
||||
};
|
||||
class NATO_Box_Base: ReammoBox_F {
|
||||
class ACE_Actions: ACE_Actions {
|
||||
class ACE_MainActions;
|
||||
};
|
||||
};
|
||||
class ACE_medicalSupplyCrate: NATO_Box_Base {
|
||||
scope = 2;
|
||||
scopeCurator = 2;
|
||||
accuracy = 1000;
|
||||
displayName = CSTRING(medicalSupplyCrate);
|
||||
model = QPATHTOF(data\ace_medcrate.p3d);
|
||||
author = "ElTyranos";
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_fieldDressing,50);
|
||||
MACRO_ADDITEM(ACE_morphine,25);
|
||||
MACRO_ADDITEM(ACE_epinephrine,25);
|
||||
MACRO_ADDITEM(ACE_bloodIV,15);
|
||||
MACRO_ADDITEM(ACE_bloodIV_500,15);
|
||||
MACRO_ADDITEM(ACE_bloodIV_250,15);
|
||||
MACRO_ADDITEM(ACE_bodyBag,10);
|
||||
};
|
||||
class AnimationSources {
|
||||
class Cover {
|
||||
source = "user";
|
||||
animPeriod = 1.5;
|
||||
initPhase = 0;
|
||||
minValue = 0;
|
||||
maxValue = 1;
|
||||
};
|
||||
};
|
||||
class ACE_Actions: ACE_Actions {
|
||||
class ACE_MainActions: ACE_MainActions {
|
||||
selection = "cover_action";
|
||||
class ACE_OpenLid {
|
||||
displayName = CSTRING(openLid);
|
||||
condition = QUOTE(alive _target && {_target animationPhase 'Cover' < 0.5});
|
||||
statement = QUOTE(_target animate ARR_2(['Cover',1]));
|
||||
showDisabled = 0;
|
||||
};
|
||||
class ACE_CloseLid {
|
||||
displayName = CSTRING(closeLid);
|
||||
condition = QUOTE(alive _target && {_target animationPhase 'Cover' >= 0.5});
|
||||
statement = QUOTE(_target animate ARR_2(['Cover',0]));
|
||||
showDisabled = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_medicalSupplyCrate_advanced: ACE_medicalSupplyCrate {
|
||||
displayName = CSTRING(medicalSupplyCrate_advanced);
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_fieldDressing,25);
|
||||
MACRO_ADDITEM(ACE_packingBandage,25);
|
||||
MACRO_ADDITEM(ACE_elasticBandage,25);
|
||||
MACRO_ADDITEM(ACE_tourniquet,15);
|
||||
MACRO_ADDITEM(ACE_morphine,15);
|
||||
MACRO_ADDITEM(ACE_adenosine,15);
|
||||
MACRO_ADDITEM(ACE_atropine,15);
|
||||
MACRO_ADDITEM(ACE_epinephrine,15);
|
||||
MACRO_ADDITEM(ACE_plasmaIV,7);
|
||||
MACRO_ADDITEM(ACE_plasmaIV_500,7);
|
||||
MACRO_ADDITEM(ACE_plasmaIV_250,7);
|
||||
MACRO_ADDITEM(ACE_salineIV,7);
|
||||
MACRO_ADDITEM(ACE_salineIV_500,7);
|
||||
MACRO_ADDITEM(ACE_salineIV_250,7);
|
||||
MACRO_ADDITEM(ACE_bloodIV,7);
|
||||
MACRO_ADDITEM(ACE_bloodIV_500,7);
|
||||
MACRO_ADDITEM(ACE_bloodIV_250,7);
|
||||
MACRO_ADDITEM(ACE_quikClot,20);
|
||||
MACRO_ADDITEM(ACE_personalAidKit,3);
|
||||
MACRO_ADDITEM(ACE_surgicalKit,2);
|
||||
MACRO_ADDITEM(ACE_bodyBag,5);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,119 +1,3 @@
|
||||
|
||||
PREP(actionCheckBloodPressure);
|
||||
PREP(actionCheckBloodPressureLocal);
|
||||
PREP(actionCheckPulse);
|
||||
PREP(actionCheckPulseLocal);
|
||||
PREP(actionCheckResponse);
|
||||
PREP(actionDiagnose);
|
||||
PREP(actionPlaceInBodyBag);
|
||||
PREP(actionRemoveTourniquet);
|
||||
PREP(actionLoadUnit);
|
||||
PREP(actionUnloadUnit);
|
||||
PREP(addDamageToUnit);
|
||||
PREP(addHeartRateAdjustment);
|
||||
PREP(addLoadPatientActions);
|
||||
PREP(addToLog);
|
||||
PREP(addToTriageCard);
|
||||
PREP(addUnconsciousCondition);
|
||||
PREP(addUnloadPatientActions);
|
||||
PREP(addVitalLoop);
|
||||
PREP(adjustPainLevel);
|
||||
PREP(bodyCleanupLoop);
|
||||
PREP(canAccessMedicalEquipment);
|
||||
PREP(canTreat);
|
||||
PREP(canTreatCached);
|
||||
PREP(determineIfFatal);
|
||||
PREP(getBloodLoss);
|
||||
PREP(getBloodPressure);
|
||||
PREP(getBloodVolumeChange);
|
||||
PREP(getCardiacOutput);
|
||||
PREP(getTypeOfDamage);
|
||||
PREP(getHeartRateChange);
|
||||
PREP(getTriageStatus);
|
||||
PREP(getUnconsciousCondition);
|
||||
PREP(handleDamage);
|
||||
PREP(handleDamage_advanced);
|
||||
PREP(handleDamage_advancedSetDamage);
|
||||
PREP(handleDamage_airway);
|
||||
PREP(handleDamage_caching);
|
||||
PREP(handleDamage_fractures);
|
||||
PREP(handleDamage_internalInjuries);
|
||||
PREP(handleDamage_wounds);
|
||||
PREP(handleDamage_woundsOld);
|
||||
PREP(handleInit);
|
||||
PREP(handleKilled);
|
||||
PREP(handleLocal);
|
||||
PREP(handleRespawn);
|
||||
PREP(handleUnitVitals);
|
||||
PREP(handleBandageOpening);
|
||||
PREP(hasItem);
|
||||
PREP(hasItems);
|
||||
PREP(hasMedicalEnabled);
|
||||
PREP(hasTourniquetAppliedTo);
|
||||
PREP(init);
|
||||
PREP(isBeingCarried);
|
||||
PREP(isBeingDragged);
|
||||
PREP(isInMedicalFacility);
|
||||
PREP(isInMedicalVehicle);
|
||||
PREP(isMedic);
|
||||
PREP(isMedicalVehicle);
|
||||
PREP(isInStableCondition);
|
||||
PREP(itemCheck);
|
||||
PREP(medicationEffectLoop);
|
||||
PREP(modifyMedicalAction);
|
||||
PREP(onMedicationUsage);
|
||||
PREP(parseConfigForInjuries);
|
||||
PREP(playInjuredSound);
|
||||
PREP(reviveStateLoop);
|
||||
PREP(selectionNameToNumber);
|
||||
PREP(serverRemoveBody);
|
||||
PREP(setCardiacArrest);
|
||||
PREP(setDead);
|
||||
PREP(setHitPointDamage);
|
||||
PREP(setStructuralDamage);
|
||||
PREP(setUnconscious);
|
||||
PREP(showBloodEffect);
|
||||
PREP(translateSelections);
|
||||
PREP(treatment);
|
||||
PREP(treatment_failure);
|
||||
PREP(treatment_success);
|
||||
PREP(treatmentAdvanced_bandage);
|
||||
PREP(treatmentAdvanced_bandageLocal);
|
||||
PREP(treatmentAdvanced_CPR);
|
||||
PREP(treatmentAdvanced_CPRLocal);
|
||||
PREP(treatmentAdvanced_fullHeal);
|
||||
PREP(treatmentAdvanced_fullHealLocal);
|
||||
PREP(treatmentAdvanced_fullHealTreatmentTime);
|
||||
PREP(treatmentAdvanced_medication);
|
||||
PREP(treatmentAdvanced_medicationLocal);
|
||||
PREP(treatmentAdvanced_surgicalKit_onProgress);
|
||||
PREP(treatmentBasic_bloodbag);
|
||||
PREP(treatmentBasic_bloodbagLocal);
|
||||
PREP(treatmentBasic_epipen);
|
||||
PREP(treatmentBasic_morphine);
|
||||
PREP(treatmentBasic_morphineLocal);
|
||||
PREP(treatmentIV);
|
||||
PREP(treatmentIVLocal);
|
||||
PREP(treatmentTourniquet);
|
||||
PREP(treatmentTourniquetLocal);
|
||||
PREP(useItem);
|
||||
PREP(useItems);
|
||||
PREP(vitalLoop);
|
||||
PREP(displayPatientInformation);
|
||||
PREP(displayTriageCard);
|
||||
PREP(dropDownTriageCard);
|
||||
PREP(moduleMedicalSettings);
|
||||
PREP(moduleBasicMedicalSettings);
|
||||
PREP(moduleAdvancedMedicalSettings);
|
||||
PREP(moduleReviveSettings);
|
||||
PREP(moduleAssignMedicRoles);
|
||||
PREP(moduleAssignMedicalVehicle);
|
||||
PREP(moduleAssignMedicalFacility);
|
||||
PREP(copyDeadBody);
|
||||
PREP(unconsciousPFH);
|
||||
PREP(updateTourniquets);
|
||||
|
||||
// Networked litter
|
||||
PREP(createLitter);
|
||||
PREP(handleCreateLitter);
|
||||
PREP(litterCleanupLoop);
|
||||
|
@ -1,313 +1,17 @@
|
||||
// ACE Medical System Visual Loop
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
#include "script_component.hpp"
|
||||
|
||||
GVAR(heartBeatSounds_Fast) = ["ACE_heartbeat_fast_1", "ACE_heartbeat_fast_2", "ACE_heartbeat_fast_3"];
|
||||
GVAR(heartBeatSounds_Normal) = ["ACE_heartbeat_norm_1", "ACE_heartbeat_norm_2"];
|
||||
GVAR(heartBeatSounds_Slow) = ["ACE_heartbeat_slow_1", "ACE_heartbeat_slow_2"];
|
||||
[QEGVAR(medical,setUnconscious), LINKFUNC(setUnconscious)] call CBA_fnc_addEventHandler;
|
||||
|
||||
["ace_interactMenuClosed", {[objNull, false] call FUNC(displayPatientInformation); }] call CBA_fnc_addEventHandler;
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
//Treatment EventHandlers:
|
||||
[QGVAR(actionCheckBloodPressureLocal), DFUNC(actionCheckBloodPressureLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(actionCheckPulseLocal), DFUNC(actionCheckPulseLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(addVitalLoop), DFUNC(addVitalLoop)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(addToMedicalLog), DFUNC(addToLog)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(addToTriageCard), DFUNC(addToTriageCard)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(setDead), DFUNC(setDead)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(setHitPointDamage), DFUNC(setHitPointDamage)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(setUnconscious), DFUNC(setUnconscious)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentAdvanced_bandageLocal), DFUNC(treatmentAdvanced_bandageLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentAdvanced_CPRLocal), DFUNC(treatmentAdvanced_CPRLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentAdvanced_fullHealLocal), DFUNC(treatmentAdvanced_fullHealLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentAdvanced_medicationLocal), DFUNC(treatmentAdvanced_medicationLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentBasic_bloodbagLocal), DFUNC(treatmentBasic_bloodbagLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentBasic_morphineLocal), DFUNC(treatmentBasic_morphineLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentIVLocal), DFUNC(treatmentIVLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(treatmentTourniquetLocal), DFUNC(treatmentTourniquetLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(actionPlaceInBodyBag), FUNC(actionPlaceInBodyBag)] call CBA_fnc_addEventHandler;
|
||||
[missionNamespace, "ACE_setCustomAimCoef", QUOTE(ADDON), {
|
||||
private _pain = GET_PAIN_PERCEIVED(ACE_player);
|
||||
|
||||
//Handle Deleting Bodies and creating litter on Server:
|
||||
if (isServer) then {
|
||||
["ace_placedInBodyBag", FUNC(serverRemoveBody)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(createLitterServer), FUNC(handleCreateLitter)] call CBA_fnc_addEventHandler;
|
||||
addMissionEventHandler ["BuildingChanged", {
|
||||
if (isNil QGVAR(allCreatedLitter)) exitWith {};
|
||||
params ["_buildingOld", "_buildingNew", "_isRuin"];
|
||||
TRACE_3("BuildingChanged",_buildingOld,_buildingNew,_isRuin);
|
||||
private _radius = sizeOf typeOf _buildingOld / 2;
|
||||
TRACE_1("",_radius);
|
||||
{
|
||||
_x params ["", "_objects"];
|
||||
if (({(_x distance2d _buildingOld) < _radius && {getPos _x select 2 > 0.1}} count _objects) > 0) then {
|
||||
GVAR(allCreatedLitter) deleteAt (GVAR(allCreatedLitter) find _x);
|
||||
{ TRACE_1("deleting",_x); deleteVehicle _x } forEach _objects;
|
||||
};
|
||||
} forEach (+GVAR(allCreatedLitter));
|
||||
}];
|
||||
};
|
||||
linearConversion [0, 1, _pain, 1, 5, true];
|
||||
}] call EFUNC(common,arithmeticSetSource);
|
||||
|
||||
["ace_unconscious", {
|
||||
params ["_unit", "_status"];
|
||||
if (local _unit) then {
|
||||
if (_status) then {
|
||||
_unit setVariable ["tf_voiceVolume", 0, true];
|
||||
_unit setVariable ["tf_unable_to_use_radio", true, true];
|
||||
|
||||
_unit setVariable ["acre_sys_core_isDisabled", true, true];
|
||||
} else {
|
||||
_unit setVariable ["tf_voiceVolume", 1, true];
|
||||
_unit setVariable ["tf_unable_to_use_radio", false, true];
|
||||
|
||||
_unit setVariable ["acre_sys_core_isDisabled", false, true];
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
||||
// Initialize all effects
|
||||
if (hasInterface) then {
|
||||
|
||||
_fnc_createEffect = {
|
||||
params ["_type", "_layer", "_default"];
|
||||
|
||||
private _effect = ppEffectCreate [_type, _layer];
|
||||
_effect ppEffectForceInNVG true;
|
||||
_effect ppEffectAdjust _default;
|
||||
_effect ppEffectCommit 0;
|
||||
|
||||
_effect
|
||||
};
|
||||
|
||||
GVAR(effectUnconsciousCC) = [
|
||||
"ColorCorrections",
|
||||
4201,
|
||||
[1,1,0, [0,0,0,1], [0,0,0,0], [1,1,1,1], [0.4,0.4,0,0,0,0.1,0.3]]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
GVAR(effectUnconsciousRB) = [
|
||||
"RadialBlur",
|
||||
4202,
|
||||
[0.01,0.01,0,0]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
GVAR(effectBlindingCC) = [
|
||||
"ColorCorrections",
|
||||
4203,
|
||||
[1,1,0, [1,1,1,0], [0,0,0,1], [0,0,0,0]]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
GVAR(effectBloodVolumeCC) = [
|
||||
"ColorCorrections",
|
||||
4204,
|
||||
[1,1,0, [0,0,0,0], [1,1,1,1], [0.2,0.2,0.2,0]]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
GVAR(effectPainCA) = [
|
||||
"chromAberration",
|
||||
4205,
|
||||
[0, 0, false]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
GVAR(effectPainCC) = [
|
||||
"ColorCorrections",
|
||||
4206,
|
||||
[1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1.3,1.3,0,0,0,0.2,2]]
|
||||
] call _fnc_createEffect;
|
||||
|
||||
// Initialize Other Variables
|
||||
GVAR(effectBlind) = false;
|
||||
GVAR(effectTimeBlood) = CBA_missionTime;
|
||||
|
||||
// MAIN EFFECTS LOOP
|
||||
[{
|
||||
// Zeus interface is open or player is dead; disable everything
|
||||
if (!(isNull curatorCamera) or !(alive ACE_player)) exitWith {
|
||||
GVAR(effectUnconsciousCC) ppEffectEnable false;
|
||||
GVAR(effectUnconsciousRB) ppEffectEnable false;
|
||||
GVAR(effectBlindingCC) ppEffectEnable false;
|
||||
GVAR(effectBloodVolumeCC) ppEffectEnable false;
|
||||
GVAR(effectPainCA) ppEffectEnable false;
|
||||
GVAR(effectPainCC) ppEffectEnable false;
|
||||
["unconscious", false] call EFUNC(common,setDisableUserInputStatus);
|
||||
};
|
||||
|
||||
// Unconsciousness effect
|
||||
if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
|
||||
GVAR(effectUnconsciousCC) ppEffectEnable true;
|
||||
GVAR(effectUnconsciousRB) ppEffectEnable true;
|
||||
GVAR(effectBlind) = true;
|
||||
["unconscious", true] call EFUNC(common,setDisableUserInputStatus);
|
||||
} else {
|
||||
GVAR(effectUnconsciousCC) ppEffectEnable false;
|
||||
GVAR(effectUnconsciousRB) ppEffectEnable false;
|
||||
["unconscious", false] call EFUNC(common,setDisableUserInputStatus);
|
||||
if (GVAR(effectBlind)) then {
|
||||
_strength = 0.78 * (call EFUNC(common,ambientBrightness));
|
||||
GVAR(effectBlindingCC) ppEffectEnable true;
|
||||
GVAR(effectBlindingCC) ppEffectAdjust [1,1,_strength, [1,1,1,0], [0,0,0,1], [0,0,0,0]];
|
||||
GVAR(effectBlindingCC) ppEffectCommit 0;
|
||||
|
||||
[{
|
||||
GVAR(effectBlindingCC) ppEffectAdjust [1,1,0, [1,1,1,0], [0,0,0,1], [0,0,0,0]];
|
||||
GVAR(effectBlindingCC) ppEffectCommit ((_this select 0) * 2);
|
||||
}, [_strength], 0.01, 0] call CBA_fnc_waitAndExecute;
|
||||
|
||||
[{
|
||||
GVAR(effectBlindingCC) ppEffectEnable false;
|
||||
}, [], (_strength * 2) + 0.5, 0] call CBA_fnc_waitAndExecute;
|
||||
|
||||
GVAR(effectBlind) = false;
|
||||
};
|
||||
};
|
||||
|
||||
private _bleeding = [ACE_player] call FUNC(getBloodLoss);
|
||||
// Bleeding Indicator
|
||||
if (_bleeding > 0 and GVAR(effectTimeBlood) + 3.5 < CBA_missionTime) then {
|
||||
GVAR(effectTimeBlood) = CBA_missionTime;
|
||||
[600 * _bleeding] call FUNC(showBloodEffect);
|
||||
};
|
||||
|
||||
// Blood Volume Effect
|
||||
private _blood = if (GVAR(level) < 2) then {
|
||||
(ACE_player getVariable [QGVAR(bloodVolume), 100]) / 100;
|
||||
} else {
|
||||
(((ACE_player getVariable [QGVAR(bloodVolume), 100]) - 60) max 0) / 40;
|
||||
};
|
||||
|
||||
if (_blood > 0.99) then {
|
||||
GVAR(effectBloodVolumeCC) ppEffectEnable false;
|
||||
} else {
|
||||
GVAR(effectBloodVolumeCC) ppEffectEnable true;
|
||||
GVAR(effectBloodVolumeCC) ppEffectAdjust [1,1,0, [0,0,0,0], [1,1,1,_blood], [0.2,0.2,0.2,0]];
|
||||
GVAR(effectBloodVolumeCC) ppEffectCommit 0;
|
||||
};
|
||||
}, 0.5, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
|
||||
GVAR(lastHeartBeat) = CBA_missionTime;
|
||||
GVAR(lastHeartBeatSound) = CBA_missionTime;
|
||||
|
||||
// HEARTRATE BASED EFFECTS
|
||||
[{
|
||||
private _heartRate = ACE_player getVariable [QGVAR(heartRate), 70];
|
||||
private _pain = ACE_player getVariable [QGVAR(pain), 0];
|
||||
if (GVAR(level) == 1) then {
|
||||
_heartRate = 60 + 40 * _pain;
|
||||
};
|
||||
if (_heartRate <= 0) exitWith {};
|
||||
private _interval = 60 / (_heartRate min 40);
|
||||
|
||||
if ((ACE_player getVariable ["ACE_isUnconscious", false])) then {
|
||||
if (GVAR(painEffectType) == 1) then {
|
||||
GVAR(effectPainCA) ppEffectEnable false;
|
||||
} else {
|
||||
GVAR(effectPainCC) ppEffectEnable false;
|
||||
};
|
||||
} else {
|
||||
if ((CBA_missionTime > GVAR(lastHeartBeat) + _interval)) then {
|
||||
GVAR(lastHeartBeat) = CBA_missionTime;
|
||||
|
||||
// Pain effect, no pain effect in zeus camera
|
||||
if (isNull curatorCamera) then {
|
||||
private _strength = ((_pain - (ACE_player getVariable [QGVAR(painSuppress), 0])) max 0) min 1;
|
||||
_strength = _strength * (ACE_player getVariable [QGVAR(painCoefficient), GVAR(painCoefficient)]);
|
||||
if (GVAR(painEffectType) == 1) then {
|
||||
GVAR(effectPainCC) ppEffectEnable false;
|
||||
if (_pain > (ACE_player getVariable [QGVAR(painSuppress), 0]) && {alive ACE_player}) then {
|
||||
_strength = _strength * 0.15;
|
||||
GVAR(effectPainCA) ppEffectEnable true;
|
||||
GVAR(effectPainCA) ppEffectAdjust [_strength, _strength, false];
|
||||
GVAR(effectPainCA) ppEffectCommit 0.01;
|
||||
[{
|
||||
GVAR(effectPainCA) ppEffectAdjust [(_this select 0), (_this select 0), false];
|
||||
GVAR(effectPainCA) ppEffectCommit (_this select 1);
|
||||
}, [_strength * 0.1, _interval * 0.2], _interval * 0.05, 0] call CBA_fnc_waitAndExecute;
|
||||
[{
|
||||
GVAR(effectPainCA) ppEffectAdjust [(_this select 0), (_this select 0), false];
|
||||
GVAR(effectPainCA) ppEffectCommit 0.01;
|
||||
}, [_strength * 0.7], _interval * 0.3, 0] call CBA_fnc_waitAndExecute;
|
||||
[{
|
||||
GVAR(effectPainCA) ppEffectAdjust [(_this select 0), (_this select 0), false];
|
||||
GVAR(effectPainCA) ppEffectCommit (_this select 1);
|
||||
}, [_strength * 0.1, _interval * 0.55], _interval * 0.4, 0] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
GVAR(effectPainCA) ppEffectEnable false;
|
||||
};
|
||||
} else {
|
||||
GVAR(effectPainCA) ppEffectEnable false;
|
||||
if (_pain > (ACE_player getVariable [QGVAR(painSuppress), 0]) && {alive ACE_player}) then {
|
||||
_strength = _strength * 0.9;
|
||||
GVAR(effectPainCC) ppEffectEnable true;
|
||||
GVAR(effectPainCC) ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1 - _strength,1 - _strength,0,0,0,0.2,2]];
|
||||
GVAR(effectPainCC) ppEffectCommit 0.01;
|
||||
[{
|
||||
GVAR(effectPainCC) ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1 - (_this select 0),1 - (_this select 0),0,0,0,0.2,2]];
|
||||
GVAR(effectPainCC) ppEffectCommit (_this select 1);
|
||||
}, [_strength * 0.1, _interval * 0.2], _interval * 0.05, 0] call CBA_fnc_waitAndExecute;
|
||||
[{
|
||||
GVAR(effectPainCC) ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1 - (_this select 0),1 - (_this select 0),0,0,0,0.2,2]];
|
||||
GVAR(effectPainCC) ppEffectCommit 0.01;
|
||||
}, [_strength * 0.7], _interval * 0.3, 0] call CBA_fnc_waitAndExecute;
|
||||
[{
|
||||
GVAR(effectPainCC) ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1 - (_this select 0),1 - (_this select 0),0,0,0,0.2,2]];
|
||||
GVAR(effectPainCC) ppEffectCommit (_this select 1);
|
||||
}, [_strength * 0.1, _interval * 0.55], _interval * 0.4, 0] call CBA_fnc_waitAndExecute;
|
||||
} else {
|
||||
GVAR(effectPainCC) ppEffectEnable false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
if (GVAR(level) >= 2 && {_heartRate > 0}) then {
|
||||
private _minTime = 60 / _heartRate;
|
||||
if (CBA_missionTime - GVAR(lastHeartBeatSound) > _minTime) then {
|
||||
GVAR(lastHeartBeatSound) = CBA_missionTime;
|
||||
// Heart rate sound effect
|
||||
if (_heartRate < 60) then {
|
||||
private _sound = GVAR(heartBeatSounds_Normal) select (random((count GVAR(heartBeatSounds_Normal)) -1));
|
||||
playSound _sound;
|
||||
} else {
|
||||
if (_heartRate > 150) then {
|
||||
playSound "ACE_heartbeat_fast_2";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
["ace_settingsInitialized", {
|
||||
[
|
||||
{(((_this select 0) getVariable [QGVAR(bloodVolume), 100]) < 65)},
|
||||
{(((_this select 0) getVariable [QGVAR(pain), 0]) - ((_this select 0) getVariable [QGVAR(painSuppress), 0])) > 0.9},
|
||||
{(([_this select 0] call FUNC(getBloodLoss)) > 0.25)},
|
||||
{((_this select 0) getVariable [QGVAR(inReviveState), false])},
|
||||
{((_this select 0) getVariable [QGVAR(inCardiacArrest), false])},
|
||||
{((_this select 0) getVariable ["ACE_isDead", false])}
|
||||
] call FUNC(addUnconsciousCondition);
|
||||
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Prevent all types of interaction while unconscious
|
||||
// @todo: probably remove this when CBA keybind hold key works properly
|
||||
["isNotUnconscious", {!((_this select 0) getVariable ["ACE_isUnconscious", false])}] call EFUNC(common,addCanInteractWithCondition);
|
||||
|
||||
// Item Event Handler
|
||||
["loadout", FUNC(itemCheck)] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
if (hasInterface) then {
|
||||
["ace_playerJIP", {
|
||||
INFO("JIP Medical init for player.");
|
||||
[player] call FUNC(init);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
||||
if (["ACE_Arsenal"] call EFUNC(common,isModLoaded)) then {
|
||||
[QEGVAR(arsenal,displayOpened), {
|
||||
EGVAR(arsenal,virtualItems) set [17, (EGVAR(arsenal,virtualItems) select 17) - ["FirstAidKit", "Medikit"]];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
call compile preprocessFileLineNumbers QPATHTOF(dev\watchVariable.sqf);
|
||||
call compile preprocessFileLineNumbers QPATHTOF(dev\debugDisplay.sqf);
|
||||
#endif
|
||||
|
@ -6,57 +6,12 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
GVAR(injuredUnitCollection) = [];
|
||||
|
||||
private _versionEx = "ace_medical" callExtension "version";
|
||||
DFUNC(handleDamage_assignWounds) = if (_versionEx == "") then {
|
||||
DFUNC(handleDamage_woundsOld)
|
||||
} else {
|
||||
DFUNC(handleDamage_wounds)
|
||||
};
|
||||
|
||||
call FUNC(parseConfigForInjuries);
|
||||
|
||||
GVAR(HITPOINTS) = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];
|
||||
GVAR(SELECTIONS) = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"];
|
||||
|
||||
//Hack for #3168 (units in static weapons do not take any damage):
|
||||
//doing a manual pre-load with a small distance seems to fix the LOD problems with handle damage not returning full results
|
||||
GVAR(fixedStatics) = [];
|
||||
private _fixStatic = {
|
||||
params ["_vehicle"];
|
||||
private _vehType = typeOf _vehicle;
|
||||
TRACE_2("",_vehicle,_vehType);
|
||||
if (!(_vehType in GVAR(fixedStatics))) then {
|
||||
GVAR(fixedStatics) pushBack _vehType;
|
||||
TRACE_1("starting preload",_vehType);
|
||||
[{
|
||||
1 preloadObject (_this select 0);
|
||||
}, {
|
||||
TRACE_1("preload done",_this);
|
||||
}, [_vehType]] call CBA_fnc_waitUntilAndExecute;
|
||||
};
|
||||
};
|
||||
["StaticWeapon", "init", _fixStatic] call CBA_fnc_addClassEventHandler;
|
||||
["Car", "init", _fixStatic] call CBA_fnc_addClassEventHandler;
|
||||
["CAManBase", "Init", FUNC(handleInit)] call CBA_fnc_addClassEventHandler;
|
||||
["CAManBase", "Respawn", FUNC(handleRespawn)] call CBA_fnc_addClassEventHandler;
|
||||
["CAManBase", "Killed", FUNC(handleKilled)] call CBA_fnc_addClassEventHandler;
|
||||
["CAManBase", "Local", FUNC(handleLocal)] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
addMissionEventHandler ["Loaded",{
|
||||
{
|
||||
TRACE_1("starting preload (save load)",_x);
|
||||
[{
|
||||
1 preloadObject (_this select 0);
|
||||
}, {
|
||||
TRACE_1("preload done",_this);
|
||||
}, [_x]] call CBA_fnc_waitUntilAndExecute;
|
||||
} forEach GVAR(fixedStatics);
|
||||
|
||||
// Reload configs into extension (handle full game restart)
|
||||
call FUNC(parseConfigForInjuries);
|
||||
}];
|
||||
#include "initSettings.sqf"
|
||||
|
||||
// Add warning for old functions that were technically public, Remove at 3.14.0
|
||||
{
|
||||
missionNamespace setVariable [_x, compileFinal format ['diag_log text "ACE Medical WARNING: Formerly public function [%1] has no effect in medical rewrite."; nil', _x]];
|
||||
} forEach ["ace_medical_fnc_actionPlaceInBodyBag","ace_medical_fnc_actionRemoveTourniquet","ace_medical_fnc_addHeartRateAdjustment","ace_medical_fnc_addToLog","ace_medical_fnc_addToTriageCard
|
||||
","ace_medical_fnc_addUnconsciousCondition","ace_medical_fnc_addVitalLoop","ace_medical_fnc_canAccessMedicalEquipment","ace_medical_fnc_canTreat","ace_medical_fnc_displayTriageCard","ace_medical_fnc_dropDownTriageCard","ace_medical_fnc_getTriageStatus","ace_medical_fnc_getUnconsciousCondition","ace_medical_fnc_hasItem","ace_medical_fnc_hasItems","ace_medical_fnc_hasTourniquetAppliedTo","ace_medical_fnc_isInMedicalFacility","ace_medical_fnc_isInMedicalVehicle","ace_medical_fnc_isMedic","ace_medical_fnc_isMedicalVehicle","ace_medical_fnc_itemCheck","ace_medical_fnc_selectionNameToNumber","ace_medical_fnc_setCardiacArrest","ace_medical_fnc_setDead","ace_medical_fnc_setHitPointDamage","ace_medical_fnc_showBloodEffect","ace_medical_fnc_treatment","ace_medical_fnc_treatmentAdvanced_bandage","ace_medical_fnc_treatmentAdvanced_CPR","ace_medical_fnc_treatmentAdvanced_CPRLocal","ace_medical_fnc_treatmentAdvanced_medication","ace_medical_fnc_treatmentAdvanced_medicationLocal","ace_medical_fnc_treatmentIV","ace_medical_fnc_treatmentIVLocal","ace_medical_fnc_unconsciousPFH","ace_medical_fnc_useItem","ace_medical_fnc_useItems"];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -3,58 +3,17 @@
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {"ACE_medicalSupplyCrate", "ACE_medicalSupplyCrate_advanced", "ACE_fieldDressingItem", "ACE_packingBandageItem", "ACE_elasticBandageItem", "ACE_tourniquetItem", "ACE_morphineItem", "ACE_atropineItem", "ACE_epinephrineItem", "ACE_plasmaIVItem", "ACE_bloodIVItem", "ACE_salineIVItem", "ACE_quikclotItem", "ACE_personalAidKitItem", "ACE_surgicalKitItem", "ACE_bodyBagItem", "ACE_bodyBagObject"};
|
||||
weapons[] = {"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_tourniquet", "ACE_morphine", "ACE_atropine", "ACE_epinephrine", "ACE_plasmaIV", "ACE_plasmaIV_500", "ACE_plasmaIV_250", "ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250", "ACE_salineIV", "ACE_salineIV_500", "ACE_salineIV_250", "ACE_quikclot", "ACE_personalAidKit", "ACE_surgicalKit", "ACE_bodyBag"};
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction", "ace_apl"};
|
||||
requiredAddons[] = {"ace_medical_engine"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Glowbal", "KoffeinFlummi"};
|
||||
authors[] = {"Glowbal", "KoffeinFlummi","Arcanum417"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgActions.hpp"
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgFactionClasses.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "CfgSounds.hpp"
|
||||
#include "CfgEden.hpp"
|
||||
#include "ACE_Medical_Treatments.hpp"
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "ui\CfgInGameUI.hpp"
|
||||
#include "ui\RscTitles.hpp"
|
||||
#include "ui\triagecard.hpp"
|
||||
|
||||
class ACE_newEvents {
|
||||
medical_onUnconscious = "ace_unconscious";
|
||||
medical_treatmentSuccess = "ace_treatmentSucceded";
|
||||
medical_onSetDead = "ace_killed";
|
||||
Medical_onEnteredCardiacArrest = "ace_cardiacArrestEntered";
|
||||
Medical_onItemAddedToTriageCard = "ace_triageCardItemAdded";
|
||||
medical_onLogEntryAdded = "ace_medicalLogEntryAdded";
|
||||
Medical_onHeartRateAdjustmentAdded = "ace_heartRateAdjustmentAdded";
|
||||
placedInBodyBag = "ace_placedInBodyBag";
|
||||
actionPlaceInBodyBag = QGVAR(actionPlaceInBodyBag);
|
||||
treatmentTourniquetLocal = QGVAR(treatmentTourniquetLocal);
|
||||
treatmentIVLocal = QGVAR(treatmentIVLocal);
|
||||
treatmentBasic_morphineLocal = QGVAR(treatmentBasic_morphineLocal);
|
||||
treatmentBasic_bloodbagLocal = QGVAR(treatmentBasic_bloodbagLocal);
|
||||
treatmentAdvanced_medicationLocal = QGVAR(treatmentAdvanced_medicationLocal);
|
||||
treatmentAdvanced_fullHealLocal = QGVAR(treatmentAdvanced_fullHealLocal);
|
||||
treatmentAdvanced_CPRLocal = QGVAR(treatmentAdvanced_CPRLocal);
|
||||
treatmentAdvanced_bandageLocal = QGVAR(treatmentAdvanced_bandageLocal);
|
||||
setUnconscious = QGVAR(setUnconscious);
|
||||
setHitPointDamage = QGVAR(setHitPointDamage);
|
||||
setDead = QGVAR(setDead);
|
||||
addToTriageCard = QGVAR(addToTriageCard);
|
||||
addToMedicalLog = QGVAR(addToMedicalLog);
|
||||
actionCheckPulseLocal = QGVAR(actionCheckPulseLocal);
|
||||
actionCheckBloodPressureLocal = QGVAR(actionCheckBloodPressureLocal);
|
||||
addVitalLoop = QGVAR(addVitalLoop);
|
||||
};
|
||||
|
||||
class ACE_Extensions {
|
||||
extensions[] += {"ace_medical"};
|
||||
};
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user