mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2026-02-22 16:10:49 +03:00
Traps and Utill Folders/Files
This commit is contained in:
92
SQF/dayz_code/traps/beartrap.sqf
Normal file
92
SQF/dayz_code/traps/beartrap.sqf
Normal file
@@ -0,0 +1,92 @@
|
||||
_init = {
|
||||
//if (isServer) then {
|
||||
[_trap] call setup_trap;
|
||||
|
||||
if (_trap getVariable ["armed", false]) then {
|
||||
[] call _arm;
|
||||
} else {
|
||||
[] call _disarm;
|
||||
};
|
||||
//};
|
||||
};
|
||||
|
||||
_arm = {
|
||||
//if (isServer) then {
|
||||
_trap animate ["LeftShutter", 0];
|
||||
_trap animate ["RightShutter", 0];
|
||||
|
||||
_trigger = createTrigger ["EmptyDetector", getPosATL _trap];
|
||||
_trigger setpos getPosATL _trap;
|
||||
_trigger setTriggerArea [0.5, 0.5, 0, false];
|
||||
_trigger setTriggerActivation ["ANY", "PRESENT", false];
|
||||
_trigger setTriggerStatements [
|
||||
"this",
|
||||
"['trigger', thisTrigger, thisList] spawn beartrap;",
|
||||
""
|
||||
];
|
||||
|
||||
[_trap, _trigger] call arm_trap;
|
||||
//} else {
|
||||
_trap setVariable ["armed", true, true];
|
||||
//};
|
||||
};
|
||||
|
||||
_disarm = {
|
||||
if (isServer) then {
|
||||
[_trap] call disarm_trap;
|
||||
} else {
|
||||
_trap setVariable ["armed", false, true];
|
||||
};
|
||||
};
|
||||
|
||||
_remove = {
|
||||
if (isServer) then {
|
||||
[_trap] call remove_trap;
|
||||
} else {
|
||||
[_trap] call remove_trap;
|
||||
[0,0,0,["cfgMagazines","TrapBear",_trap]] spawn object_pickup;
|
||||
};
|
||||
};
|
||||
|
||||
_trigger = {
|
||||
if (isServer) then {
|
||||
private ["_entity"];
|
||||
_entity = _this select 0;
|
||||
|
||||
_trap animate ["LeftShutter", 1];
|
||||
_trap animate ["RightShutter", 1];
|
||||
|
||||
[nil,_trap,rSAY,["trap_bear_0",60]] call RE;
|
||||
|
||||
if (_entity isKindOf "Animal") then {
|
||||
_entity setDamage 1;
|
||||
} else {
|
||||
[_entity, "Legs", [_entity]] call server_sendToClient;
|
||||
};
|
||||
|
||||
[_trap] call trigger_trap;
|
||||
};
|
||||
};
|
||||
|
||||
private ["_event", "_trap", "_args"];
|
||||
_event = _this select 0;
|
||||
_trap = if (typeOf (_this select 1) == "EmptyDetector") then { dayz_traps_active select (dayz_traps_trigger find (_this select 1)) } else { _this select 1 };
|
||||
_args = if (count _this > 2) then { _this select 2 } else { [] };
|
||||
|
||||
switch (_event) do {
|
||||
case "init": {
|
||||
[] call _init;
|
||||
};
|
||||
case "remove": {
|
||||
[] call _remove;
|
||||
};
|
||||
case "arm": {
|
||||
[] call _arm;
|
||||
};
|
||||
case "disarm": {
|
||||
[] call _disarm;
|
||||
};
|
||||
case "trigger": {
|
||||
_args call _trigger;
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user