Advertisement
Guest User

Untitled

a guest
Oct 16th, 2018
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. spawn_ghosts(org)
  2. {
  3. ghost = spawnStruct();
  4. ghost.model = spawn("script_model", org.origin);
  5. ghost.model.angle(org.origin);
  6. ghost.model setModel("ghost_model");
  7.  
  8. ghost.damagePer = 1;
  9. ghost.maxDealtDamage = 10;
  10. ghost.damageDealt = 0;
  11.  
  12. ghost thread handleDamage();
  13. }
  14.  
  15. handleDamage() {
  16. while( true ) {
  17. if( !isDefined(self.model) )
  18. return;
  19.  
  20. if( distance(self.model.origin, closestPlayer) < 10 ) {
  21. closestPlayer doDamage(self.damagePer);
  22. self.damageDealt += self.damagePer;
  23. }
  24.  
  25. if( self.damageDealt > self.maxDealtDamage ) {
  26. self.model delete();
  27. return;
  28. }
  29. }
  30. }
  31.  
  32.  
  33. playersAlive()
  34. {
  35. players = getentarray("player", "classname");
  36. level.ghost_spawns = 0;
  37.  
  38. for(i=0;i<players.size;i++)
  39. {
  40. level.ghost_spawns++;
  41. player[i] thread player_death();
  42. }
  43. wait 0.05;
  44. }
  45.  
  46. player_death()
  47. {
  48. self waittill("death");
  49. level.ghost_spawns--;
  50. }
  51.  
  52. ghosts_script()
  53. {
  54. org1=getent("trap1_org1","targetname");
  55. org2=getent("trap1_org2","targetname");
  56. org3=getent("trap1_org3","targetname");
  57.  
  58. org_numb = RandomIntRange( 1, 3 );
  59.  
  60. for(level.ghost_spawns)
  61. {
  62. thread spawn_ghosts("org"+org_numb);
  63. wait 0.8;
  64. }
  65. wait 0.5;
  66. }
  67.  
  68. spawn_ghosts(org)
  69. {
  70. model = spawn("script_model", org.origin);
  71. model.angle(org.origin);
  72. model setModel("ghost_model");
  73. model thread moveToPlayer();
  74. model thread rotateToPlayer();
  75. model thread damageToPlayer();
  76. model thread modelHealth();
  77. }
  78.  
  79. moveToPlayer()
  80. {
  81. self endon( "ghost_death" );
  82.  
  83. for(;;)
  84. {
  85. self MoveTo( closestPlayer, 0.8 );
  86. wait 0.8;
  87. }
  88. wait 0,05;
  89. }
  90.  
  91. rotateToPlayer()
  92. {
  93. self endon( "ghost_death" );
  94.  
  95. for(;;)
  96. {
  97. self RotateTo( closestPlayer, 0.8 );
  98. wait 0.8;
  99. }
  100. wait 0,05;
  101. }
  102.  
  103. damageToPlayer()
  104. {
  105. self endon( "ghost_death" );
  106. RadiusDamage( model.origin, 50, 25, 25, attacker );
  107. }
  108.  
  109. modelHealth()
  110. {
  111. tank doDamage( self.health + 10, (0,0,0) );
  112.  
  113. self notify("ghost_death");
  114. self delete();
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement