From 332dc68919ae916c021af465468fa13cb85047b8 Mon Sep 17 00:00:00 2001 From: "[VB]AWOL" Date: Sun, 10 Nov 2013 23:34:09 -0600 Subject: [PATCH] surrender test 2 --- SQF/dayz_code/actions/dayz_spaceInterrupt.sqf | 46 ++++++++----------- SQF/dayz_code/actions/surrender_gear.sqf | 7 +++ SQF/dayz_code/compile/fn_selfActions.sqf | 28 +++++++---- SQF/dayz_code/init/variables.sqf | 1 + 4 files changed, 47 insertions(+), 35 deletions(-) create mode 100644 SQF/dayz_code/actions/surrender_gear.sqf diff --git a/SQF/dayz_code/actions/dayz_spaceInterrupt.sqf b/SQF/dayz_code/actions/dayz_spaceInterrupt.sqf index 4436e8ab2..04b5d1ade 100644 --- a/SQF/dayz_code/actions/dayz_spaceInterrupt.sqf +++ b/SQF/dayz_code/actions/dayz_spaceInterrupt.sqf @@ -1,4 +1,4 @@ -private ["_dikCode", "_handled"]; +private ["_dikCode","_handled","_primaryWeapon","_secondaryWeapon","_nearbyObjects","_nill","_shift","_ctrl","_alt"]; _dikCode = _this select 1; _handled = false; @@ -14,43 +14,37 @@ if ((_dikCode == 0x3E or _dikCode == 0x0F or _dikCode == 0xD3) and (diag_tickTim // surrender if (_dikCode in actionKeys "Surrender") then { - - // Toggle on/off - if (DZE_Surrender) then { - DZE_Surrender = false; - - [objNull, player, rSwitchMove,""] call RE; - player playActionNow ""; - - player setVariable ["DZE_Surrendered", false, true]; - - } else { + if (!DZE_Surrender) then { DZE_Surrender = true; - // remove weaponns and ammo - if (primaryWeapon player != "") then { - player action ["dropWeapon",player, (primaryWeapon player)]; + _primaryWeapon = primaryWeapon player; + _secondaryWeapon = secondaryWeapon player; + if (_primaryWeapon != "") then { + player action ["dropWeapon",player, _primaryWeapon]; }; - if (secondaryWeapon player != "") then { - player action ["dropWeapon",player, (secondaryWeapon player)]; + if (_secondaryWeapon != "") then { + player action ["dropWeapon",player, _secondaryWeapon]; }; - // set publicvariable that allows other player to access gear player setVariable ["DZE_Surrendered", true, true]; - // surrender animation player playMove "AmovPercMstpSsurWnonDnon"; + + diag_log format["DZE_Surrender: %1", DZE_Surrender]; }; - - r_interrupt = true + _handled = true; }; +if (_dikCode in actionKeys "MoveForward") then {r_interrupt = true}; +if (_dikCode in actionKeys "MoveLeft") then {r_interrupt = true}; +if (_dikCode in actionKeys "MoveRight") then {r_interrupt = true}; +if (_dikCode in actionKeys "MoveBack") then {r_interrupt = true}; - -if (_dikCode in actionKeys "MoveForward") exitWith {r_interrupt = true}; -if (_dikCode in actionKeys "MoveLeft") exitWith {r_interrupt = true}; -if (_dikCode in actionKeys "MoveRight") exitWith {r_interrupt = true}; -if (_dikCode in actionKeys "MoveBack") exitWith {r_interrupt = true}; +if (DZE_Surrender and r_interrupt) then { + player setVariable ["DZE_Surrendered", false, true]; + DZE_Surrender = false; + diag_log format["DZE_Surrender2: %1", DZE_Surrender]; +}; //Prevent exploit of drag body if ((_dikCode in actionKeys "Prone") and r_drag_sqf) exitWith { force_dropBody = true; }; diff --git a/SQF/dayz_code/actions/surrender_gear.sqf b/SQF/dayz_code/actions/surrender_gear.sqf new file mode 100644 index 000000000..2a11a23d0 --- /dev/null +++ b/SQF/dayz_code/actions/surrender_gear.sqf @@ -0,0 +1,7 @@ +private ["_hasKnife","_qty","_item","_text","_string","_type","_started","_finished","_animState","_isMedic","_hasHarvested","_hasKnifeBlunt","_humanity"]; + +player removeAction s_player_SurrenderedGear; + +player action ["Gear", (_this select 3)]; + +s_player_SurrenderedGear = -1; \ No newline at end of file diff --git a/SQF/dayz_code/compile/fn_selfActions.sqf b/SQF/dayz_code/compile/fn_selfActions.sqf index 9c96f6535..c1d2cde84 100644 --- a/SQF/dayz_code/compile/fn_selfActions.sqf +++ b/SQF/dayz_code/compile/fn_selfActions.sqf @@ -4,7 +4,7 @@ scriptName "Functions\misc\fn_selfActions.sqf"; - Function - [] call fnc_usec_selfActions; ************************************************************/ -private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit"]; +private ["_isWreckBuilding","_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors","_player_deleteBuild","_player_flipveh","_player_lockUnlock_crtl","_player_butcher","_player_studybody","_player_cook","_player_boil","_hasFuelBarrelE","_hasHotwireKit","_player_SurrenderedGear","_isSurrendered"]; if (TradeInprogress) exitWith {}; // Do not allow if any script is running. @@ -307,6 +307,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu // logic vars for addactions _player_butcher = false; _player_studybody = false; + _player_SurrenderedGear = false; // CURSOR TARGET NOT ALIVE if (!_isAlive) then { @@ -328,15 +329,12 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu // gear access on surrendered player if(_isMan and !_isZombie and !_isAnimal) then { - if (_cursorTarget getVariable ["DZE_Surrendered",false]) then { - if (s_player_SurrenderedGear < 0) then { - //s_player_SurrenderedGear = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true, "", ""]; - s_player_SurrenderedGear = player addAction ["Gear",_text], (player action ["Gear", _cursorTarget]),_cursorTarget, 1, true, true, "", ""]; - }; + _isSurrendered = _cursorTarget getVariable ["DZE_Surrendered",false]; + + diag_log format["DZE_Surrendered: %1", _isSurrendered]; + if (_isSurrendered) then { + _player_SurrenderedGear = true; }; - } else { - player removeAction s_player_SurrenderedGear; - s_player_SurrenderedGear = -1; }; }; @@ -383,6 +381,15 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu }; }; + if (_player_SurrenderedGear) then { + if (s_player_SurrenderedGear < 0) then { + s_player_SurrenderedGear = player addAction ["Gear", "\z\addons\dayz_code\actions\surrender_gear.sqf",_cursorTarget, 1, true, true, "", ""]; + }; + } else { + player removeAction s_player_SurrenderedGear; + s_player_SurrenderedGear = -1; + }; + //Fireplace Actions check if (_player_cook) then { if (s_player_cook < 0) then { @@ -773,6 +780,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu player removeAction s_player_checkGear; s_player_checkGear = -1; + player removeAction s_player_SurrenderedGear; + s_player_SurrenderedGear = -1; + //Others player removeAction s_player_forceSave; s_player_forceSave = -1; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 68cc8b396..ae5eefae7 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -244,6 +244,7 @@ dayz_resetSelfActions = { s_player_downgrade_build = -1; s_player_towing = -1; s_halo_action = -1; + s_player_SurrenderedGear = -1; }; call dayz_resetSelfActions;