Zipties?
-
Brandy1118 -
12. Oktober 2016 um 22:45 -
Geschlossen -
Erledigt
-
-
Damn
-
für die 4.4 siehts es dann so aus:
fn_restrainAction.sqf
Spoiler anzeigen
#include "..\..\script_macros.hpp"
/*
File: fn_restrainAction.sqf
Author: Bryan "Tonic" BoardwineDescription:
Retrains the target.
*/
private["_unit"];
_unit = cursorTarget;
if(isNull _unit) exitWith {}; //Not valid
if((player distance _unit > 3)) exitWith {};
if((_unit GVAR "restrained")) exitWith {};
if(side _unit == west) exitWith {};
if(player == _unit) exitWith {};
if (side player == civilian) then {
if(license_civ_rebel && playerSide == civilian) exitWith { hint "Du benötigst das Rebellen training um jemanden zu fesseln"; };
if(life_inv_zipties < 2) exitWith { hint "Du hast keine Kabelbinder."; };
life_inv_zipties = life_inv_zipties - 2;
hint "Sie entfuehren einen Zivilisten";
};
if(!isPlayer _unit) exitWith {};
//Broadcast!_unit SVAR["restrained",true,true];
[player] remoteExec ["life_fnc_restrain",_unit];
[0,"STR_NOTF_Restrained",true,[_unit GVAR["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west];inm fn_keyHandler.sqf (Case 19):
Spoiler anzeigen
//Restraining (Shift + R) and Radio (R)
case 19: {
if(_shift) then {_handled = true;};
if(_shift && playerSide == west && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(isPlayer cursorTarget)} && {(side cursorTarget in [civilian,independent])} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then {
[] call life_fnc_restrainAction;
}
else
{
if !(license_civ_rebel) exitWith { hint "Du musst zuerst das Rebellentraining absolvieren um jemanden zu fesseln!"};
if(_shift && playerSide == civilian && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(currentWeapon player == primaryWeapon player OR currentWeapon player == handgunWeapon player)} && {currentWeapon player != ""} && {(isPlayer cursorTarget)} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {animationState cursorTarget == "Incapacitated"} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then
{
if([false,"zipties",2] call life_fnc_handleInv) then
{
[] call life_fnc_restrainAction;
[player,"uncuff"] call life_fnc_globalSound;
hint "Benutze die Action, um weitere Aktionen anzuzeigen";
}
else
{
hint "Du hast keine Kabelbinder dabei!";
};
};
};
};in der Config_vItems.hpp muss das Teil noch reingesetzt werden, damit man es kaufen kann (neue Class unter //Misc).
Spoiler anzeigen
class zipties {
variable = "zipties";
displayName = "STR_Item_Zipties";
weight = 2;
buyPrice = 5000;
sellPrice = 4000;
illegal = false;
edible = -1;
icon = "";
};und in einem beliebiegen Shop einfügen. "zipties"
zum schluss noch in die Stringtable:
<Key ID="STR_Item_Zipties">
<Original>Zipties</Original>
<German>Kabelbinder</German>
</Key>Schon sollte es normal funtzen.
for the 4.4:
fn_restrainAction.sqfSpoiler anzeigen
#include "..\..\script_macros.hpp"
/*
File: fn_restrainAction.sqf
Author: Bryan "Tonic" Boardwine
Description:
Retrains the target.
*/
private["_unit"];
_unit = cursorTarget;
if(isNull _unit) exitWith {}; //Not valid
if((player distance _unit > 3)) exitWith {};
if((_unit GVAR "restrained")) exitWith {};
if(side _unit == west) exitWith {};
if(player == _unit) exitWith {};
if (side player == civilian) then {
if(license_civ_rebel && playerSide == civilian) exitWith { hint "Du benötigst das Rebellen training um jemanden zu fesseln"; };
if(life_inv_zipties < 2) exitWith { hint "Du hast keine Kabelbinder."; };
life_inv_zipties = life_inv_zipties - 2;
hint "Sie entfuehren einen Zivilisten";
};
if(!isPlayer _unit) exitWith {};
//Broadcast!
_unit SVAR["restrained",true,true];
[player] remoteExec ["life_fnc_restrain",_unit];
[0,"STR_NOTF_Restrained",true,[_unit GVAR["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west];
inm fn_keyHandler.sqf (Case 19):Spoiler anzeigen
//Restraining (Shift + R) and Radio (R)
case 19: {
if(_shift) then {_handled = true;};
if(_shift && playerSide == west && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(isPlayer cursorTarget)} && {(side cursorTarget in [civilian,independent])} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then {
[] call life_fnc_restrainAction;
}
else
{
if !(license_civ_rebel) exitWith { hint "Du musst zuerst das Rebellentraining absolvieren um jemanden zu fesseln!"};
if(_shift && playerSide == civilian && {!isNull cursorTarget} && {cursorTarget isKindOf "Man"} && {(currentWeapon player == primaryWeapon player OR currentWeapon player == handgunWeapon player)} && {currentWeapon player != ""} && {(isPlayer cursorTarget)} && {alive cursorTarget} && {cursorTarget distance player < 3.5} && {animationState cursorTarget == "Incapacitated"} && {!(cursorTarget GVAR "Escorting")} && {!(cursorTarget GVAR "restrained")} && {speed cursorTarget < 1}) then
{
if([false,"zipties",2] call life_fnc_handleInv) then
{
[] call life_fnc_restrainAction;
[player,"uncuff"] call life_fnc_globalSound;
hint "Benutze die Action, um weitere Aktionen anzuzeigen";
}
else
{
hint "Du hast keine Kabelbinder dabei!";
};
};
};
};
in the Config_vItems.hpp you have to add the ItemSpoiler anzeigen
class zipties {
variable = "zipties";
displayName = "STR_Item_Zipties";
weight = 2;
buyPrice = 5000;
sellPrice = 4000;
illegal = false;
edible = -1;
icon = "";
};
and add it to a shop "zipties"
Stringtable:
<Key ID="STR_Item_Zipties">
<Original>Zipties</Original>
<German>Kabelbinder</German>
</Key>This worked for me!!!
-
Does it works?
-
From the logs i can see that both the fn_keyHandler.sqf and the fn_restrainAction.sqf contain mistakes.
The problem i can see is that you are trying to insert a script that was written for the old 4.4 version of altis instead of your newer version 4.4r3. GVAR is not used in the 4.4r3 anymore as it is not included in the script_macros.hpp. Either you change every GVAR to: getVariable or simply add the GVAR into the script_macros.hpp
just add this line under //Scripting Macros:
Although i wouldnt advice you to do this. Just look at the script you currently have any see how you can apply it in the 4.4r3.Cheers, Scrpt.
-
From the logs i can see that both the fn_keyHandler.sqf and the fn_restrainAction.sqf contain mistakes.
The problem i can see is that you are trying to insert a script that was written for the old 4.4 version of altis instead of your newer version 4.4r3. GVAR is not used in the 4.4r3 anymore as it is not included in the script_macros.hpp. Either you change every GVAR to: getVariable or simply add the GVAR into the script_macros.hpp
just add this line under //Scripting Macros:
Although i wouldnt advice you to do this. Just look at the script you currently have any see how you can apply it in the 4.4r3.Cheers, Scrpt.
Does it works?
Still error
CodeError in expression <ndled = true;}; if (! _shift && Player side == west && {isNull cursor target} &> Error position: <side == west && {isNull cursor target} &> Error Missing ) File mpmissions\__cur_mp.Altis\core\functions\fn_keyHandler.sqf, line 119 Error in expression <ndled = true;}; if (! _shift && Player side == west && {isNull cursor target} &> Error position: <side == west && {isNull cursor target} &> Error Missing ) File mpmissions\__cur_mp.Altis\core\functions\fn_keyHandler.sqf, line 119
-
Player side
playerSide or side player - player side does not exist in any way.
-
Still error
CodeError in expression <ndled = true;}; if (! _shift && Player side == west && {isNull cursor target} &> Error position: <side == west && {isNull cursor target} &> Error Missing ) File mpmissions\__cur_mp.Altis\core\functions\fn_keyHandler.sqf, line 119 Error in expression <ndled = true;}; if (! _shift && Player side == west && {isNull cursor target} &> Error position: <side == west && {isNull cursor target} &> Error Missing ) File mpmissions\__cur_mp.Altis\core\functions\fn_keyHandler.sqf, line 119
Error Missing )
at line 119 in the fn_keyHandler.sqfSee if all brackets still exist. Or post the fn_keyHandler.sqf once more (Updated Version)
-
It doesn't seem like a real bracket mistake, I think it's based on the wrong syntax (can result in the same error.... thx Bohemia Interactive.)
-
Error Missing )at line 119 in the fn_keyHandler.sqf
See if all brackets still exist. Or post the fn_keyHandler.sqf once more (Updated Version)
Code
Alles anzeigen#include "..\..\script_macros.hpp" /* * File: fn_keyHandler.sqf * Author: Bryan "Tonic" Boardwine * * Description: * Main key handler for event 'keyDown'. */ private ["_handled","_shift","_alt","_code","_ctrl","_alt","_ctrlKey","_veh","_locked","_interactionKey","_mapKey","_interruptionKeys"]; _ctrl = _this select 0; _code = _this select 1; _shift = _this select 2; _ctrlKey = _this select 3; _alt = _this select 4; _speed = speed cursorObject; _handled = false; _interactionKey = if (count (actionKeys "User10") isEqualTo 0) then {219} else {(actionKeys "User10") select 0}; _mapKey = (actionKeys "ShowMap" select 0); //hint str _code; _interruptionKeys = [17,30,31,32]; //A,S,W,D //Vault handling... if ((_code in (actionKeys "GetOver") || _code in (actionKeys "salute") || _code in (actionKeys "SitDown") || _code in (actionKeys "Throw") || _code in (actionKeys "GetIn") || _code in (actionKeys "GetOut") || _code in (actionKeys "Fire") || _code in (actionKeys "ReloadMagazine") || _code in [16,18]) && ((player getVariable ["restrained",false]) || (player getVariable ["playerSurrender",false]) || life_isknocked || life_istazed)) exitWith { true; }; if (life_action_inUse) exitWith { if (!life_interrupted && _code in _interruptionKeys) then {life_interrupted = true;}; _handled; }; //Hotfix for Interaction key not being able to be bound on some operation systems. if (!(count (actionKeys "User10") isEqualTo 0) && {(inputAction "User10" > 0)}) exitWith { //Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10) if (!life_action_inUse) then { [] spawn { private "_handle"; _handle = [] spawn life_fnc_actionKeyHandler; waitUntil {scriptDone _handle}; life_action_inUse = false; }; }; true; }; if (life_container_active) then { switch (_code) do { //space key case 57: { [] spawn life_fnc_placestorage; }; }; true; }; switch (_code) do { //Space key for Jumping /*case 57: { if (isNil "jumpActionTime") then {jumpActionTime = 0;}; if (_shift && {!(animationState player isEqualTo "AovrPercMrunSrasWrflDf")} && {isTouchingGround player} && {stance player isEqualTo "STAND"} && {speed player > 2} && {!life_is_arrested} && {((velocity player) select 2) < 2.5} && {time - jumpActionTime > 1.5}) then { jumpActionTime = time; //Update the time. [player] remoteExec ["life_fnc_jumpFnc",RANY]; //Global execution _handled = true; }; };*/ //Surrender (Shift + B) case 48: { if (_shift) then { if (player getVariable ["playerSurrender",false]) then { player setVariable ["playerSurrender",false,true]; } else { [] spawn life_fnc_surrender; }; _handled = true; }; }; //Map Key case _mapKey: { switch (playerSide) do { case west: {if (!visibleMap) then {[] spawn life_fnc_copMarkers;}}; case independent: {if (!visibleMap) then {[] spawn life_fnc_medicMarkers;}}; case civilian: {if (!visibleMap) then {[] spawn life_fnc_civMarkers;}}; }; }; //Holster / recall weapon. (Shift + H) case 35: { if (_shift && !_ctrlKey && !(currentWeapon player isEqualTo "")) then { life_curWep_h = currentWeapon player; player action ["SwitchWeapon", player, player, 100]; player switchCamera cameraView; }; if (!_shift && _ctrlKey && !isNil "life_curWep_h" && {!(life_curWep_h isEqualTo "")}) then { if (life_curWep_h in [primaryWeapon player,secondaryWeapon player,handgunWeapon player]) then { player selectWeapon life_curWep_h; }; }; }; //Interaction key (default is Left Windows, can be mapped via Controls -> Custom -> User Action 10) case _interactionKey: { if (!life_action_inUse) then { [] spawn { private "_handle"; _handle = [] spawn life_fnc_actionKeyHandler; waitUntil {scriptDone _handle}; life_action_inUse = false; }; }; }; //Restraining (Shift + R) case 19: { if (_shift) then {_handled = true;}; if (_shift && playerSide isEqualTo west && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [civilian,independent])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { [] call life_fnc_restrainAction; }; //CIVS WITH ZIPTIES if (_shift && playerSide isEqualTo civilian && {!isNull cursorObject} && {cursorObject isKindOf "Man"} && {(isPlayer cursorObject)} && {(side cursorObject in [west,civilian])} && {alive cursorObject} && {cursorObject distance player < 3.5} && {!(cursorObject getVariable "Escorting")} && {!(cursorObject getVariable "restrained")} && {speed cursorObject < 1}) then { if (cursorObject getVariable ["playerSurrender",false] || cursorObject getVariable ["knockedOut",false]) then { //only on shift-j'd or knocked out players [] call life_fnc_restrainAction; }; }; }; //Knock out, this is experimental and yeah... (Shift + G) case 34: { if (_shift) then {_handled = true;}; if (_shift && playerSide isEqualTo civilian && !isNull cursorObject && cursorObject isKindOf "Man" && isPlayer cursorObject && alive cursorObject && cursorObject distance player < 4 && speed cursorObject < 1) then { if ((animationState cursorObject) != "Incapacitated" && (currentWeapon player == primaryWeapon player || currentWeapon player == handgunWeapon player) && currentWeapon player != "" && !life_knockout && !(player getVariable ["restrained",false]) && !life_istazed && !life_isknocked) then { [cursorObject] spawn life_fnc_knockoutAction; }; }; }; //T Key (Trunk) case 20: { if (!_alt && !_ctrlKey && !dialog && {!life_action_inUse}) then { if (vehicle player != player && alive vehicle player) then { if ((vehicle player) in life_vehicles) then { [vehicle player] spawn life_fnc_openInventory; }; } else { private "_list"; _list = ((ASLtoATL (getPosASL player)) nearEntities [["Box_IND_Grenades_F","B_supplyCrate_F"], 2.5]) select 0; if (!(isNil "_list")) then { _house = nearestObject [(ASLtoATL (getPosASL _list)), "House"]; if (_house getVariable ["locked", false]) then { hint localize "STR_House_ContainerDeny"; } else { [_list] spawn life_fnc_openInventory; }; } else { _list = ["landVehicle","Air","Ship"]; if (KINDOF_ARRAY(cursorObject,_list) && {player distance cursorObject < 7} && {isNull objectParent player} && {alive cursorObject} && {!life_action_inUse}) then { if (cursorObject in life_vehicles || {locked cursorObject isEqualTo 0}) then { [cursorObject] spawn life_fnc_openInventory; }; }; }; }; }; }; //L Key? case 38: { //If cop run checks for turning lights on. if (_shift && playerSide in [west,independent]) then { if (vehicle player != player && (typeOf vehicle player) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then { if (!isNil {vehicle player getVariable "lights"}) then { if (playerSide isEqualTo west) then { [vehicle player] call life_fnc_sirenLights; } else { [vehicle player] call life_fnc_medicSirenLights; }; _handled = true; }; }; }; if (!_alt && !_ctrlKey) then { [] call life_fnc_radar; }; }; //Y Player Menu case 21: { if (!_alt && !_ctrlKey && !dialog && !(player getVariable ["restrained",false]) && {!life_action_inUse}) then { [] call life_fnc_p_openMenu; }; }; //F Key case 33: { if (playerSide in [west,independent] && {vehicle player != player} && {!life_siren_active} && {((driver vehicle player) == player)}) then { [] spawn { life_siren_active = true; sleep 4.7; life_siren_active = false; }; _veh = vehicle player; if (isNil {_veh getVariable "siren"}) then {_veh setVariable ["siren",false,true];}; if ((_veh getVariable "siren")) then { titleText [localize "STR_MISC_SirensOFF","PLAIN"]; _veh setVariable ["siren",false,true]; } else { titleText [localize "STR_MISC_SirensON","PLAIN"]; _veh setVariable ["siren",true,true]; if (playerSide isEqualTo west) then { [_veh] remoteExec ["life_fnc_copSiren",RCLIENT]; } else { [_veh] remoteExec ["life_fnc_medicSiren",RCLIENT]; }; }; }; }; //O Key case 24: { if (_shift) then { if (soundVolume != 1) then { 1 fadeSound 1; systemChat localize "STR_MISC_soundnormal"; } else { 1 fadeSound 0.1; systemChat localize "STR_MISC_soundfade"; }; }; }; //U Key case 22: { if (!_alt && !_ctrlKey) then { if (isNull objectParent player) then { _veh = cursorObject; } else { _veh = vehicle player; }; if (_veh isKindOf "House_F" && {playerSide isEqualTo civilian}) then { if (_veh in life_vehicles && {player distance _veh < 20}) then { _door = [_veh] call life_fnc_nearestDoor; if (_door isEqualTo 0) exitWith {hint localize "STR_House_Door_NotNear"}; _locked = _veh getVariable [format ["bis_disabled_Door_%1",_door],0]; if (_locked isEqualTo 0) then { _veh setVariable [format ["bis_disabled_Door_%1",_door],1,true]; _veh animate [format ["door_%1_rot",_door],0]; systemChat localize "STR_House_Door_Lock"; } else { _veh setVariable [format ["bis_disabled_Door_%1",_door],0,true]; _veh animate [format ["door_%1_rot",_door],1]; systemChat localize "STR_House_Door_Unlock"; }; }; } else { _locked = locked _veh; if (_veh in life_vehicles && {player distance _veh < 20}) then { if (_locked isEqualTo 2) then { if (local _veh) then { _veh lock 0; // BI _veh animateDoor ["door_back_R",1]; _veh animateDoor ["door_back_L",1]; _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; _veh animateDoor ['Door_L_source',1]; _veh animateDoor ['Door_rear',1]; _veh animateDoor ['Door_rear_source',1]; _veh animateDoor ['Door_1_source',1]; _veh animateDoor ['Door_2_source',1]; _veh animateDoor ['Door_3_source',1]; _veh animateDoor ['Door_LM',1]; _veh animateDoor ['Door_RM',1]; _veh animateDoor ['Door_LF',1]; _veh animateDoor ['Door_RF',1]; _veh animateDoor ['Door_LB',1]; _veh animateDoor ['Door_RB',1]; _veh animateDoor ['DoorL_Front_Open',1]; _veh animateDoor ['DoorR_Front_Open',1]; _veh animateDoor ['DoorL_Back_Open',1]; _veh animateDoor ['DoorR_Back_Open ',1]; } else { [_veh,0] remoteExecCall ["life_fnc_lockVehicle",_veh]; _veh animateDoor ["door_back_R",1]; _veh animateDoor ["door_back_L",1]; _veh animateDoor ['door_R',1]; _veh animateDoor ['door_L',1]; _veh animateDoor ['Door_L_source',1]; _veh animateDoor ['Door_rear',1]; _veh animateDoor ['Door_rear_source',1]; _veh animateDoor ['Door_1_source',1]; _veh animateDoor ['Door_2_source',1]; _veh animateDoor ['Door_3_source',1]; _veh animateDoor ['Door_LM',1]; _veh animateDoor ['Door_RM',1]; _veh animateDoor ['Door_LF',1]; _veh animateDoor ['Door_RF',1]; _veh animateDoor ['Door_LB',1]; _veh animateDoor ['Door_RB',1]; _veh animateDoor ['DoorL_Front_Open',1]; _veh animateDoor ['DoorR_Front_Open',1]; _veh animateDoor ['DoorL_Back_Open',1]; _veh animateDoor ['DoorR_Back_Open ',1]; }; systemChat localize "STR_MISC_VehUnlock"; [_veh,"unlockCarSound"] remoteExec ["life_fnc_say3D",RANY]; } else { if (local _veh) then { _veh lock 2; _veh animateDoor ["door_back_R",0]; _veh animateDoor ["door_back_L",0]; _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; _veh animateDoor ['Door_L_source',0]; _veh animateDoor ['Door_rear',0]; _veh animateDoor ['Door_rear_source',0]; _veh animateDoor ['Door_1_source',0]; _veh animateDoor ['Door_2_source',0]; _veh animateDoor ['Door_3_source',0]; _veh animateDoor ['Door_LM',0]; _veh animateDoor ['Door_RM',0]; _veh animateDoor ['Door_LF',0]; _veh animateDoor ['Door_RF',0]; _veh animateDoor ['Door_LB',0]; _veh animateDoor ['Door_RB',0]; _veh animateDoor ['DoorL_Front_Open',0]; _veh animateDoor ['DoorR_Front_Open',0]; _veh animateDoor ['DoorL_Back_Open',0]; _veh animateDoor ['DoorR_Back_Open ',0]; } else { [_veh,2] remoteExecCall ["life_fnc_lockVehicle",_veh]; _veh animateDoor ["door_back_R",0]; _veh animateDoor ["door_back_L",0]; _veh animateDoor ['door_R',0]; _veh animateDoor ['door_L',0]; _veh animateDoor ['Door_L_source',0]; _veh animateDoor ['Door_rear',0]; _veh animateDoor ['Door_rear_source',0]; _veh animateDoor ['Door_1_source',0]; _veh animateDoor ['Door_2_source',0]; _veh animateDoor ['Door_3_source',0]; _veh animateDoor ['Door_LM',0]; _veh animateDoor ['Door_RM',0]; _veh animateDoor ['Door_LF',0]; _veh animateDoor ['Door_RF',0]; _veh animateDoor ['Door_LB',0]; _veh animateDoor ['Door_RB',0]; _veh animateDoor ['DoorL_Front_Open',0]; _veh animateDoor ['DoorR_Front_Open',0]; _veh animateDoor ['DoorL_Back_Open',0]; _veh animateDoor ['DoorR_Back_Open ',0]; }; systemChat localize "STR_MISC_VehLock"; [_veh,"lockCarSound"] remoteExec ["life_fnc_say3D",RANY]; }; }; }; }; }; }; _handled;
-
playerSide or side player - player side does not exist in any way.
This is my file, is all playerSide
Code
Alles anzeigenpp" /* File: fn_restrainAction.sqf Author: Bryan "Tonic" Boardwine Description: Retrains the target. */ private["_unit"]; _unit = cursorObject; if (isNull _unit) exitWith {}; //Not valid if (player distance _unit > 3) exitWith {}; if (_unit getVariable "restrained") exitWith {}; if (playerSide isEqualTo west && side _unit isEqualTo west) exitWith {}; //No cop on cop restraining if (player isEqualTo _unit) exitWith {}; if (!isPlayer _unit) exitWith {}; if (playerSide isEqualTo civilian) then { if (life_inv_ziptie < 1) exitWith {}; life_inv_ziptie = life_inv_ziptie - 1; _unit setVariable["ziptied",true,true]; }; //Broadcast! _unit setVariable["restrained",true,true]; [player] remoteExec ["life_fnc_restrain",_unit]; if (playerSide isEqualTo west) then { //only broadcast the restraining if it's a cop [0,"STR_NOTF_Restrained",true,[_unit getVariable["realname", name _unit], profileName]] remoteExecCall ["life_fnc_broadcast",west]; };
-
Anyone know a ziptie script that works for 4.5?
-