mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Defibrillator
This commit is contained in:
parent
7ba61ea46c
commit
1add566571
57
Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
Normal file
57
Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
Author: He-Man - EpochMod.com
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Epoch use Defibrillator function
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/EPOCH_DefibrillatorUse.sqf
|
||||
*/
|
||||
|
||||
private ["_item","_energyneeded","_totalDefis","_CurDefiArr"];
|
||||
|
||||
params ["_unit"];
|
||||
|
||||
if (isplayer _unit) then {
|
||||
_item = 'ItemDefibrillator';
|
||||
if (_item in magazines player) then {
|
||||
_energyneeded = 3;
|
||||
_totalDefis = (magazinesammo player) select {(_x select 0) isequalto _item};
|
||||
_CurDefiArr = [];
|
||||
{
|
||||
if ((_x select 1) >= _energyneeded) exitwith {
|
||||
_CurDefiArr = _totalDefis deleteat _foreachindex;
|
||||
};
|
||||
} foreach _totalDefis;
|
||||
if (_CurDefiArr isequalto []) exitwith {
|
||||
["Defibrillator needs more Energy",5] call Epoch_Message;
|
||||
};
|
||||
if ((_CurDefiArr select 1) - _energyneeded > 0) then {
|
||||
_CurDefiArr set [1,(_CurDefiArr select 1) - _energyneeded];
|
||||
_totalDefis pushback _CurDefiArr;
|
||||
};
|
||||
player removemagazines _item;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalDefis;
|
||||
_unit spawn {
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
|
||||
uisleep 8;
|
||||
if (alive player && isplayer _this) then {
|
||||
[_this,player,Epoch_personalToken] remoteExec ['EPOCH_server_revivePlayer',2];
|
||||
};
|
||||
};
|
||||
}
|
||||
else {
|
||||
['You need a Defibrillator to Revive',5] call Epoch_Message;
|
||||
};
|
||||
}
|
||||
else {
|
||||
['This Player can not be revived',5] call Epoch_Message;
|
||||
};
|
@ -431,6 +431,47 @@ switch _interactOption do {
|
||||
[format["%1 is not needed at this time",_item call EPOCH_itemDisplayName], 5] call Epoch_message;
|
||||
};
|
||||
};
|
||||
case 17: { // Defibrillator
|
||||
_maxMagRnd = getnumber (configfile >> "cfgMagazines" >> _item >> "count");
|
||||
_totalDefis = (magazinesammo player) select {(_x select 0) isequalto _item};
|
||||
_totalMags = (magazinesammo player) select {(_x select 0) in ["EnergyPackLg","EnergyPack"]};
|
||||
if (_totalDefis isequalto []) exitwith {};
|
||||
if !(_totalMags isequalto []) then {
|
||||
_CurDefiArr = [];
|
||||
{
|
||||
if ((_x select 1) < _maxMagRnd) exitwith {
|
||||
_CurDefiArr = _totalDefis deleteat _foreachindex;
|
||||
};
|
||||
} foreach _totalDefis;
|
||||
if (_CurDefiArr isequalto []) exitwith {
|
||||
["Defibrillator is already fully charged",5] call Epoch_Message;
|
||||
};
|
||||
_remove = _totalMags deleteat 0;
|
||||
_remove params ["_class","_rounds"];
|
||||
_charge = _rounds min (_maxMagRnd - (_CurDefiArr select 1));
|
||||
if (_rounds - _charge > 0) then {
|
||||
_remove set [1,_rounds - _charge];
|
||||
_totalMags pushback _remove;
|
||||
};
|
||||
if (_charge > 0) then {
|
||||
_CurDefiArr set [1,(_CurDefiArr select 1) + _charge];
|
||||
_totalDefis pushback _CurDefiArr;
|
||||
player removemagazines _item;
|
||||
player removemagazines "EnergyPackLg";
|
||||
player removemagazines "EnergyPack";
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalMags;
|
||||
{
|
||||
_x call EPOCH_fnc_addMagazineOverflow;
|
||||
} foreach _totalDefis;
|
||||
[format ["Recharged Defibrillator with %1 Energy",_charge],5] call Epoch_Message;
|
||||
};
|
||||
}
|
||||
else {
|
||||
["You need an Energy Pack",5] call Epoch_Message;
|
||||
};
|
||||
};
|
||||
|
||||
default {
|
||||
["Found nothing", 5] call Epoch_message;
|
||||
|
@ -545,8 +545,8 @@ class player_tempGroup_requests
|
||||
|
||||
class player_revive
|
||||
{
|
||||
condition = "dyna_isDeadPlayer && ('ItemDefibrillator' in dyna_magazinesPlayer)";
|
||||
action = "[dyna_cursorTarget, player, Epoch_personalToken] remoteExec ['EPOCH_server_revivePlayer',2];";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\group_requests_ca.paa";
|
||||
tooltip = "Revive Player";
|
||||
condition = "dyna_isDeadPlayer && isplayer dyna_cursorTarget";
|
||||
action = "dyna_cursorTarget call EPOCH_DefibrillatorUse;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Revive.paa";
|
||||
tooltipcode = "format ['Revive %1',name dyna_cursorTarget]";
|
||||
};
|
||||
|
@ -51,6 +51,7 @@ class CfgClientFunctions
|
||||
class unit_onKilledEH {};
|
||||
class AutoRun_Check {};
|
||||
class AutoRun {};
|
||||
class DefibrillatorUse {};
|
||||
};
|
||||
class building
|
||||
{
|
||||
|
@ -1055,5 +1055,10 @@ class CfgItemInteractions
|
||||
interactText = "USE";
|
||||
interactAttributes[] = {{"Radiation",-15},{"Thirst",-50},{"Immunity",5}};
|
||||
};
|
||||
class ItemDefibrillator : Default
|
||||
{
|
||||
interactAction = 17;
|
||||
interactText = "ReCharge";
|
||||
};
|
||||
};
|
||||
/*[[[end]]]*/
|
||||
|
Loading…
Reference in New Issue
Block a user