Guest User

Untitled

a guest
May 23rd, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include "_macros.fos"
  2. #define TIME_SPAWN (__FullSecond + REAL_MINUTE(5))
  3. import bool AddAttackPlane(Critter& npc, uint priority, uint critId, bool run) from "npc_planes";
  4.  
  5. uint[] sities = {667};
  6.  
  7. void AttacInit()
  8. {
  9. GameVar@ Attac = GetGlobalVar(GVAR_attac_on_sities);
  10. Attac = 1;
  11. CreateTimeEvent(TIME_SPAWN, "e_StartAttac", 0, false);
  12. }
  13.  
  14. uint e_StartAttac(uint[]@ values)
  15. {
  16. uint mapId = sities[Random(0,sities.length())];
  17. Map@ map = GetMap(mapId);
  18. for(uint i=0,j=4;i<j;i++)
  19. {
  20. uint16 HeX=0;
  21. uint16 HeY=0;
  22. map.GetEntireCoords(222,i,HeX,HeY);
  23. int[] params={ST_REPLICATION_TIME, -1, ST_TEAM_ID, 8};
  24. if(mapId==667)
  25. {
  26. for(uint i=0,j=(Random(1,2));i<j;i++)
  27. {
  28. Critter @ raider = map.AddNpc( 36, HeX, HeY, Random(0,5), params, null, "_RaiderInit");
  29. Critter @ raider1 = map.AddNpc( 38, HeX, HeY, Random(0,5), params, null, "_RaiderInit1");
  30. }
  31. }
  32.  
  33. }
  34. return 0;
  35. }
  36.  
  37. void _RaiderInit(Critter& raider, bool firstTime)
  38. {
  39. raider.SetEvent(CRITTER_EVENT_SHOW_CRITTER, "_ShowCritter");
  40. raider.SetEvent(CRITTER_EVENT_DEAD, "_DeadR");
  41. _CritAddItem (raider, 23, 1);
  42. _CritAddItem (raider, 36, 250);
  43. raider.SkillBase[SK_SMALL_GUNS]=300;
  44. }
  45.  
  46. void _RaiderInit1(Critter& raider, bool firstTime)
  47. {
  48. raider.SetEvent(CRITTER_EVENT_SHOW_CRITTER, "_ShowCritter");
  49. raider.SetEvent(CRITTER_EVENT_DEAD, "_DeadR");
  50. raider.SkillBase[SK_SMALL_GUNS]=300;
  51. raider.SkillBase[SK_THROWING] = 200;
  52. _CritAddItem (raider, 23, 1);
  53. _CritAddItem (raider, 26, 20);
  54. }
  55.  
  56. void _ShowCritter(Critter& raider, Critter& cr)
  57. {
  58. if(cr.Stat[ST_TEAM_ID]==8) return;
  59. raider.AddEnemyInStack(cr.Id);
  60. AddAttackPlane(raider, 0, cr.Id, true);
  61. }
  62.  
  63. void _DeadR(Critter& raider, Critter@ killer)
  64. {
  65. Map@ map = raider.GetMap();
  66. // if(Random(1,2)==1) map.AddItem(raider.HexX, raider.HexY, 40, Random(1,2)); // Loss items
  67. DeleteNpc(raider);
  68. if(valid(killer))
  69. {
  70. GameVar@ var = GetLocalVar(LVAR_zombie_points,killer.Id);
  71. var += 1;
  72. }
  73. }
Add Comment
Please, Sign In to add comment