From 177138f7ac329bf736ab7cc94ffba3c794007e51 Mon Sep 17 00:00:00 2001 From: "[VB]AWOL" Date: Wed, 27 Nov 2013 20:36:47 -0600 Subject: [PATCH] test new way of zombie attack using PEH --- SQF/dayz_code/compile/player_zombieAttack.sqf | 18 ++++++++---------- SQF/dayz_code/init/compiles.sqf | 19 +++++++++++++++++++ SQF/dayz_code/init/publicEH.sqf | 4 +++- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/SQF/dayz_code/compile/player_zombieAttack.sqf b/SQF/dayz_code/compile/player_zombieAttack.sqf index 06af043a1..2c402a57b 100644 --- a/SQF/dayz_code/compile/player_zombieAttack.sqf +++ b/SQF/dayz_code/compile/player_zombieAttack.sqf @@ -17,23 +17,21 @@ if ((speed _vehicle > 10)) exitWith { if (r_player_unconscious && _vehicle == player && _type == "zombie") then { _rnd = (round(random 4)) + 1; _move = "ZombieFeed" + str(_rnd); + _zattacktype = 0; } else { - if (_type == "zombie") then { - _rnd = (round(random 9)) + 1; - _move = "ZombieStandingAttack" + str(_rnd); - } else { - _move = "Dog_Attack"; - }; + _zattacktype = 1; + _rnd = (round(random 9)) + 1; + _move = "ZombieStandingAttack" + str(_rnd); }; -_dir = [_unit,player] call BIS_Fnc_dirTo; -_unit setDir _dir; -// _unit playMove _move; +_dir = [_unit,player] call BIS_Fnc_dirTo; if (local _unit) then { + _unit setDir _dir; _unit switchMove _move; } else { - [objNull, _unit, rSwitchMove, _move] call RE; + PVDZE_zmb_switchMove = [_unit,_zattacktype,_rnd,_dir]; + (owner _unit) publicVariableClient "PVDZE_zmb_switchMove"; }; //Wait diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index bcb82aab3..acd54788f 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -298,6 +298,25 @@ if (!isDedicated) then { //_pos = getPosATL _unit; //_id = [_pos,_unit] execFSM "\z\AddOns\dayz_code\system\zombie_agent.fsm"; }; + + // perform attack locally [_zattacktype,_rnd,_dir] + local_animateZed = { + private ["_move","_rnd","_animtype","_animnum","_dir","_unit"]; + _unit = _this select 0; + if (local _unit) then { + _animtype = _this select 1; + _animnum = _this select 2; + _dir = _this select 3; + if (_animtype == 0) then { + _move = "ZombieFeed" + str(_rnd); + } else { + _move = "ZombieStandingAttack" + str(_rnd); + }; + _unit setDir _dir; + _unit switchMove _move; + }; + }; + dayz_equipCheck = { private ["_empty", "_needed","_diff","_success"]; diff --git a/SQF/dayz_code/init/publicEH.sqf b/SQF/dayz_code/init/publicEH.sqf index ae900a567..ca75ef2b2 100644 --- a/SQF/dayz_code/init/publicEH.sqf +++ b/SQF/dayz_code/init/publicEH.sqf @@ -79,7 +79,9 @@ if (!isDedicated) then { "PVDZE_obj_Fire" addPublicVariableEventHandler {nul=(_this select 1) spawn BIS_Effects_Burn}; "PVDZE_plr_FriendRQ" addPublicVariableEventHandler {cutText[(_this select 1),"PLAIN DOWN"];}; - "PVDZE_obj_Debris" addPublicVariableEventHandler {(_this select 1) call local_roadDebris}; + "PVDZE_zmb_switchMove" addPublicVariableEventHandler {(_this select 1) call local_animateZed}; + + //"PVDZE_obj_Debris" addPublicVariableEventHandler {(_this select 1) call local_roadDebris}; "norrnRaDrag" addPublicVariableEventHandler {(_this select 1) execVM "\z\addons\dayz_code\medical\publicEH\animDrag.sqf"}; "norrnRnoAnim" addPublicVariableEventHandler {(_this select 1) execVM "\z\addons\dayz_code\medical\publicEH\noAnim.sqf"};