Guest User

Untitled

a guest
May 23rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. main()
  2. {
  3. precacheShellshock("explosion");
  4.  
  5. level.zapperCost = 0;
  6. level.zapperDuration = 60;
  7. level.usageDelay = 5;
  8.  
  9. precache();
  10.  
  11. zappers = GetEntArray("zapper", "targetname");
  12. for(i=0;i<zappers.size;i++)
  13. zappers[i] thread trigger_watch();
  14. }
  15.  
  16. precache()
  17. {
  18. level._effect["zapper"] = loadfx( "misc/fx_zombie_electric_trap" );
  19. level._effect["character_fire_death_torso"] = loadfx( "env/fire/fx_fire_player_torso_mp" );
  20. level._effect["character_fire_player_sm"] = loadfx( "misc/fx_zombie_elec_gen_idle" );
  21. level._effect["character_fire_death_sm"] = loadfx( "misc/fx_zombie_mini_nuke_hotness" );
  22. level._effect["fx_fire_player_sm_smk_2sec"] = loadfx( "env/fire/fx_fire_player_sm_smk_2sec" );
  23. }
  24.  
  25. trigger_watch()
  26. {
  27. if(!isDefined(self.target))
  28. {
  29. AssertMsg("zapper trigger does not have a target: add trigger_multiple as target");
  30. return;
  31. }
  32.  
  33. killzones = GetEntArray(self.target, "targetname");
  34. if(!killzones.size)
  35. {
  36. AssertMsg("trigger_multiple/s has not been defined");
  37. return;
  38. }
  39.  
  40. for(i=0;i<killzones.size;i++)
  41. {
  42. killzones[i].fxSpots = GetEntArray(killzones[i].target, "targetname");
  43. if(!killzones[i].fxSpots.size)
  44. {
  45. AssertMsg( "fxSpots not defined, add two script_origins and target them with the trigger_multiple" );
  46. return;
  47. }
  48. }
  49.  
  50. while(1)
  51. {
  52. self waittill("trigger", player);
  53. if(player.sessionstate != "playing")
  54. continue;
  55. else if(isDefined(player.score) && player.score >= level.zapperCost && player.team == "allies")
  56. {
  57. self DisableTrigger();
  58. self playLocalSound( "purchase" );
  59.  
  60. for(i=0;i<killzones.size;i++)
  61. {
  62. killzones[i] thread EnableZap();
  63. killzones[i].zapperFXOne = playLoopedFx(level._effect["zapper"], 4, killzones[i].fxSpots[0].origin, 0, anglesToForward((90,0,0)), anglesToUp((90,0,0)));
  64. killzones[i].zapperFXTwo = playLoopedFx(level._effect["zapper"], 4, killzones[i].fxSpots[1].origin, 0, anglesToForward((90,0,0)), anglesToUp((90,0,0)));
  65. killzones[i].zapperFXThree = playLoopedFx(level._effect["zapper"], 4, killzones[i].fxSpots[2].origin, 0, anglesToForward((90,0,0)), anglesToUp((90,0,0)));
  66. killzones[i].zapperFXFour = playLoopedFx(level._effect["zapper"], 4, killzones[i].fxSpots[3].origin, 0, anglesToForward((90,0,0)), anglesToUp((90,0,0)));
  67. }
  68.  
  69. player.score -= level.zapperCost;
  70. player.pers["score"] = player.score;
  71.  
  72. wait level.zapperDuration;
  73.  
  74. for(i=0;i<killzones.size;i++)
  75. {
  76. killzones[i] notify("disable");
  77. killzones[i].zapperFXOne Delete();
  78. killzones[i].zapperFXTwo Delete();
  79. killzones[i].zapperFXThree Delete();
  80. killzones[i].zapperFXFour Delete();
  81. }
  82. wait level.usageDelay;
  83. self EnableTrigger();
  84. }
  85. }
  86. }
  87.  
  88. EnableZap(attacker)
  89. {
  90. self endon("disable");
  91. while(1)
  92. {
  93. self waittill("trigger", player);
  94. if(player.sessionstate != "playing")
  95. continue;
  96. player maps\mp\_burnplayer::walkedThroughFlames();
  97. player shellShock("explosion", 2);
  98. if(player.team == "axis" && isPlayer(attacker) && attacker.team == "allies")
  99. player thread [[level.callbackPlayerDamage]](attacker,attacker,60,0,"MOD_EXPLOSIVE","",player.origin,(0,0,0),"none",0);
  100. else
  101. radiusDamage(player.origin, 60, 80, 30);
  102. }
  103. }
  104.  
  105. DisableTrigger()
  106. {
  107. self.oldOrigin = self.origin;
  108. self.origin -= ( 0, 0, 10000 );
  109. }
  110.  
  111. EnableTrigger()
  112. {
  113. self.origin = self.oldOrigin;
  114. }
Add Comment
Please, Sign In to add comment