Advertisement
Guest User

Tavi 2.0 - Control zombieAgent

a guest
Sep 18th, 2013
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. private["_myDest","_unitTypes","_group","_unit","_target","_bodies","_targetPos","_codeSpawns","_unitSpawn","_lead","_isAlive","_units"];
  2. //Definitions
  3. _agent = _this select 0;
  4.  
  5. //Add handlers
  6. //_id = _agent addeventhandler ["HandleDamage",{_this call local_zombieDamage}];
  7.  
  8. //Loop behaviour
  9. _list = (getposATL _agent) nearEntities ["Man",200];
  10. _isSomeone = ({isPlayer _x} count _list) > 0;
  11. while {_isAlive and _isSomeone} do {
  12. //NO TARGET
  13. _agent disableAI "FSM";
  14. _target = objNull;
  15. _targetPos = [];
  16.  
  17. //Spawn roaming script (individual to unit)
  18. _myDest = getPosATL _agent;
  19.  
  20. //Loop looking for targets
  21. while {isNull _target and _isAlive and _isSomeone} do {
  22. _isAlive = alive _agent;
  23. _list = (getposATL _agent) nearEntities ["Man",200];
  24. _isSomeone = ({isPlayer _x} count _list) > 0;
  25. _target = _agent call zombie_findTargetAgent;
  26. if (_isAlive and (_agent distance _myDest < 5)) then {
  27. [_agent,_myDest] call zombie_loiter;
  28. };
  29. _agent forceSpeed 2;
  30. sleep 1;
  31. };
  32.  
  33. //CHASE TARGET
  34.  
  35. //Leader cries out
  36. [_agent,"attack",0,false] call dayz_zombieSpeak;
  37.  
  38. //Start Movement loop
  39. while {!isNull _target and _isAlive and _isSomeone} do {
  40. _target = _agent call zombie_findTargetAgent;
  41. _isAlive = alive _agent;
  42. _targetPos = getPosATL _target;
  43. //Move to target
  44. _agent moveTo _targetPos;
  45. _agent forceSpeed 8;
  46. sleep 1;
  47. };
  48. //LOOP
  49. _agent setVariable ["targets",[],true];
  50. _isAlive = alive _agent;
  51. sleep 1;
  52. };
  53.  
  54. //Wait for a while then cleanup
  55. sleep 5;
  56. deleteVehicle _agent;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement