Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- File: fn_boltcutter.sqf
- Author: Bryan "Tonic" Boardwine
- Description:
- Breaks the lock on a single door (Closet door to the player).
- */
- private["_building","_door","_doors","_cpRate","_title","_progressBar","_titleText","_cp","_ui","_Pos","_msg","_msgpos"];
- _building = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
- if(isNull _building) exitWith {};
- if(!(_building isKindOf "House_F")) exitWith {hint "You are not looking at a house door."};
- if(isNil "life_boltcutter_uses") then {life_boltcutter_uses = 0;};
- if((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _building OR (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _building) then {
- [[[1,2],"STR_ISTR_Bolt_AlertFed",true,[]],"life_fnc_broadcast",true,false] spawn life_fnc_MP;
- [[_building],"life_fnc_bankAlarmSound",nil,true] spawn life_fnc_MP;
- } else {
- [[0,"STR_ISTR_Bolt_AlertHouse",true,[profileName]],"life_fnc_broadcast",true,false] spawn life_fnc_MP;
- if(_building getVariable["alarm",false]) then {
- _Pos = position player;
- _msg = "Alarm wegen unautorisierten Zugriff auf Haus ausgelöst.";
- _msgpos = format["%1, %2",_Pos select 0,_Pos select 1];
- [[_msg,_msgpos,8],"TON_fnc_clientMessage",west,false] spawn life_fnc_MP;
- /*
- _marker = createMarker ["Marker200", _Pos];
- "Marker200" setMarkerColor "ColorRed";
- "Marker200" setMarkerText "! HAUSEINBRUCH !";
- "Marker200" setMarkerType "mil_warning";
- //deleteMarker "Marker200";
- */
- [[_building],"life_fnc_houseAlarmSound",nil,true] spawn life_fnc_MP;
- };
- };
- _doors = getNumber(configFile >> "CfgVehicles" >> (typeOf _building) >> "NumberOfDoors");
- _door = 0;
- //Find the nearest door
- for "_i" from 1 to _doors do {
- _selPos = _building selectionPosition format["Door_%1_trigger",_i];
- _worldSpace = _building modelToWorld _selPos;
- if(player distance _worldSpace < 5) exitWith {_door = _i;};
- };
- if(_door == 0) exitWith {hint localize "STR_Cop_NotaDoor"}; //Not near a door to be broken into.
- if((_building getVariable[format["bis_disabled_Door_%1",_door],0]) == 0) exitWith {hint localize "STR_House_Raid_DoorUnlocked"};
- life_action_inUse = true;
- //Setup the progress bar
- disableSerialization;
- _title = localize "STR_ISTR_Bolt_Process";
- 5 cutRsc ["life_progress","PLAIN"];
- _ui = uiNamespace getVariable "life_progress";
- _progressBar = _ui displayCtrl 38201;
- _titleText = _ui displayCtrl 38202;
- _titleText ctrlSetText format["%2 (1%1)...","%",_title];
- _progressBar progressSetPosition 0.01;
- _cP = 0.01;
- switch (typeOf _building) do {
- case "Land_Dome_Big_F": {_cpRate = 0.003;};
- case "Land_Research_house_V1_F": {_cpRate = 0.0015;};
- default {_cpRate = 0.01;}
- };
- while {true} do
- {
- if(animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then {
- [[player,"AinvPknlMstpSnonWnonDnon_medic_1"],"life_fnc_animSync",true,false] spawn life_fnc_MP;
- player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
- };
- sleep 0.26;
- if(isNull _ui) then {
- 5 cutRsc ["life_progress","PLAIN"];
- _ui = uiNamespace getVariable "life_progress";
- _progressBar = _ui displayCtrl 38201;
- _titleText = _ui displayCtrl 38202;
- };
- _cP = _cP + _cpRate;
- _progressBar progressSetPosition _cP;
- _titleText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_title];
- if(_cP >= 1 OR !alive player) exitWith {};
- if(life_istazed) exitWith {}; //Tazed
- if(life_isrubbered) exitWith {}; //Rubbered
- if(life_interrupted) exitWith {};
- };
- //Kill the UI display and check for various states
- 5 cutText ["","PLAIN"];
- player playActionNow "stop";
- if(!alive player OR life_istazed OR life_isrubbered) exitWith {life_action_inUse = false;};
- if((player getVariable["restrained",false])) exitWith {life_action_inUse = false;};
- if(life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;};
- life_boltcutter_uses = life_boltcutter_uses + 1;
- life_action_inUse = false;
- if(life_boltcutter_uses >= 5) then {
- [false,"boltcutter",1] call life_fnc_handleInv;
- life_boltcutter_uses = 0;
- };
- _building setVariable[format["bis_disabled_Door_%1",_door],0,true]; //Unlock the door.
- if((_building getVariable["locked",false])) then {
- _building setVariable["locked",false,true];
- };
- [[getPlayerUID player,profileName,"459"],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement