Advertisement
Abnormal202

Untitled

Mar 25th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.33 KB | None | 0 0
  1. function easter_egg()
  2. {
  3. level.reward = "door"; //what happens when you place the objects. Right now, options are: ("door","powerup","gun")
  4. level.reward_2 = "gun"; //add another reward if you want. just say "false" or delete the line if you don't want an extra reward.
  5. level.reward_3 = "false"; //add yet another reward if you want. Note that you cannot do more than one of the same reward.
  6. level.powerup_type = "random"; //if using a powerup as one of your rewards, this is what type. can be ("full_ammo","nuke","insta_kill","free_perk","fire_sale","double_points","carpenter","minigun",and "random")
  7. level.place_the_objects = "true"; //whether or not you have to place the objects ("true") or just collect them ("false") to get the reward.
  8. level.reward_weapons = array( "ar_damage", "lmg_cqb", "shotgun_pump", "smg_versatile" ); //weapons it can give you in the "gun" reward. put as many or as little as you like.
  9. level.gun_expire = true; //whether or not the gun will go away in time.
  10.  
  11. level.trigger_hintstring = "Press ^3[{+activate}]^7 to pickup object"; //hintstring for picking up objects. If you don't want a hintstring for picking up objects delete this entire line.
  12. level.trigger_place_hintstring = "Press ^3[{+activate}]^7 to place objects"; //hintstring for placing objects after collecting all of them. If you don't want a hintstring for placing objects delete this entire line.
  13. level.gun_hintstring = "Press ^3[{+activate}]^7 to take weapon"; //if gun reward is activated, hintstring for picking up gun.
  14. level.one_gun_per_player = "true"; //for gun powerup, set "true" if you want a gun to spawn for each player, "false" for just one gun no matter what.
  15. level.different_guns_per_player = "false"; //for gun powerup, set "true" if you want each gun to be randomly different, false if you want them to be the same random gun. if one_gun_per_player = "false" this doesn't matter.
  16.  
  17. level.placed_objects = GetEntArray("placed_object","targetname");
  18. if(isdefined(level.placed_objects))
  19. {
  20. for(i=0;i<level.placed_objects.size;i++)
  21. {
  22. level.placed_objects[i] Hide();
  23. }
  24. }
  25. level.objects_picked_up = 0;
  26. level.objects = GetEntArray("easter_egg_object","targetname");
  27. for(i=0;i<level.objects.size;i++)
  28. {
  29. level.objects[i] thread wait_for_pickup();
  30. }
  31. }
  32. function wait_for_pickup()
  33. {
  34. trig = GetEnt(self.target,"targetname");
  35. trig SetCursorHint( "HINT_NOICON" );
  36. if(isdefined(level.trigger_hintstring))
  37. trig SetHintString(level.trigger_hintstring);
  38. trig waittill("trigger",player);
  39. self Delete();
  40. trig Delete();
  41. level.objects_picked_up ++;
  42. if(level.objects_picked_up == level.objects)
  43. {
  44. if(level.place_the_objects == true)
  45. {
  46. trig_place = GetEnt("trig_place","targetname");
  47. trig_place SetCursorHint( "HINT_NOICON" );
  48. if(isDefined(level.trigger_place_hintstring))
  49. trig_place SetHintString(level.trigger_place_hintstring);
  50. trig_place waittill("trigger",player);
  51. if(isdefined(level.placed_objects))
  52. {
  53. for(i=0;i<level.placed_objects.size;i++)
  54. {
  55. level.placed_objects[i] Show();
  56. }
  57. }
  58. }
  59. reward();
  60. }
  61. }
  62. function reward()
  63. {
  64. if(level.reward == "door" || level.reward_2 == "door" || level.reward_3 == "door")
  65. {
  66. time = 2; //2 is amount of time in seconds door takes to move.
  67. door_parts = GetEntArray("easter_egg_door","targetname");
  68. for(i=0;i<door_parts.size;i++)
  69. {
  70. struct = struct::get(door_parts[i].target,"targetname");
  71. door_parts[i] MoveTo(struct.origin, time);
  72. }
  73. wait(time);
  74. for(i=0;i<door_parts.size;i++)
  75. {
  76. struct = struct::get(door_parts[i].target,"targetname");
  77. struct Delete();
  78. door_parts[i] Delete(); //Delete this line if you don't want the door to go away after its done moving.
  79. }
  80. }
  81. if(level.reward == "powerup" || level.reward_2 == "powerup" || level.reward_3 == "powerup")
  82. {
  83. powerup_struct = GetEnt("powerup_struct","targetname");
  84. if(level.powerup_type != "random")
  85. thread zm_powerups::specific_powerup_drop( level.powerup_type, powerup_struct.origin);
  86. if(level.powerup_type == "random")
  87. {
  88. rand = RandomIntRange( 0, 7 ); //("full_ammo","nuke","insta_kill","free_perk","fire_sale","double_points","carpenter","minigun")
  89. if(rand == 0)
  90. thread zm_powerups::specific_powerup_drop( "full_ammo", powerup_struct.origin);
  91. if(rand == 1)
  92. thread zm_powerups::specific_powerup_drop( "nuke", powerup_struct.origin);
  93. if(rand == 2)
  94. thread zm_powerups::specific_powerup_drop( "insta_kill", powerup_struct.origin);
  95. if(rand == 3)
  96. thread zm_powerups::specific_powerup_drop( "free_perk", powerup_struct.origin);
  97. if(rand == 4)
  98. thread zm_powerups::specific_powerup_drop( "fire_sale", powerup_struct.origin);
  99. if(rand == 5)
  100. thread zm_powerups::specific_powerup_drop( "double_points", powerup_struct.origin);
  101. if(rand == 6)
  102. thread zm_powerups::specific_powerup_drop( "carpenter", powerup_struct.origin);
  103. if(rand == 7)
  104. thread zm_powerups::specific_powerup_drop( "minigun", powerup_struct.origin);
  105. }
  106. }
  107. if(level.reward == "gun" || level.reward_2 == "gun" || level.reward_3 == "gun")
  108. {
  109. if(level.one_gun_per_player == false)
  110. gun_struct = struct::get("gun_struct","targetname");
  111. thread RewardGun(gun_struct.origin+(0,0,40), array::randomize(level.reward_weapons)[0]);
  112. if(level.one_gun_per_player == true && level.different_guns_per_player == true)
  113. {
  114. gun_structs = struct::get_array("gun_struct","targetname");
  115. for(i=0;i<level.players.size;i++)
  116. {
  117. thread RewardGun(gun_structs[i].origin+(0,0,40), array::randomize(level.reward_weapons)[0]);
  118. }
  119. }
  120. if(level.one_gun_per_player == true && level.different_guns_per_player == false)
  121. {
  122. rand = RandomIntRange( 0, level.reward_weapons.size );
  123. gun_structs = struct::get_array("gun_struct","targetname");
  124. for(i=0;i<level.players.size;i++)
  125. {
  126. thread RewardGun(gun_structs[i].origin+(0,0,40), level.reward_weapons[rand]);
  127. }
  128. }
  129. }
  130. }
  131. function RewardGun(pos, weapon) //below here is slightly edited stuff from MakeCents's Growing Soulbox script
  132. {
  133. gun = spawn("script_model", pos);
  134. playsoundatposition("zmb_spawn_powerup", pos);
  135.  
  136. gun SetModel(GetWeaponWorldModel(GetWeapon(weapon)));
  137. PlayFX(level._effect["powerup_grabbed_solo"], gun.origin);
  138. trig = spawn("trigger_radius", gun.origin, 0, 20, 50);
  139. gun thread SpinMe();
  140. gun thread GiveMe(weapon, trig);
  141. if(level.gun_expire == true)
  142. gun thread LifeTime(trig);
  143. }
  144. function LifeTime(trig)
  145. {
  146. self endon("death");
  147. wait(120);//wait 2 minutes then delete
  148. if(isdefined(self))
  149. {
  150. self notify("rewardgun_delete");
  151. }
  152. if(isdefined(trig))
  153. {
  154. trig delete();
  155. }
  156. if(isdefined(self))
  157. {
  158. self delete();
  159. }
  160. }
  161. function GiveMe(weapon, trig)
  162. {
  163. self endon("rewardgun_delete");
  164. while(1)
  165. {
  166. trig waittill("trigger", player);
  167. player thread SetGunHint(level.gun_hintstring, trig);
  168. if(player HasWeapon(getweapon("minigun")))
  169. {
  170. continue;
  171. }
  172. if(!(player UseButtonPressed()))
  173. {
  174. continue;
  175. }
  176. if(player laststand::player_is_in_laststand())
  177. {
  178. continue;
  179. }
  180. trig delete();
  181. self delete();
  182. player zm_weapons::weapon_give(getweapon(weapon));
  183. player SwitchToWeapon(getweapon(weapon));
  184. break;
  185. wait(.1);
  186. }
  187. }
  188.  
  189. function SpinMe()
  190. {
  191. self endon("rewardgun_delete");
  192. self endon("death");
  193. while(isdefined(self))
  194. {
  195. if(isdefined(self))
  196. {
  197. self rotateyaw(360,2);
  198. }
  199. wait(1.9);
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement