Advertisement
Abnormal202

Untitled

Jun 19th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.03 KB | None | 0 0
  1. // ZombieKid164's buyable elevator
  2. #using scripts\zm\_zm_score;
  3. #using scripts\shared\flag_shared;
  4.  
  5. function init()
  6. {
  7.  
  8. //Things you can edit below \/
  9. level.elevator_cost = 10; // Change this to change the cost of the elevator. Leave it undefined to make it free.
  10. level.elevate_height = 250; //This is how far the elevator will travel up.
  11. level.elevator_transition_time = 5; //How long it will take for the elevator travel.
  12. level.elevator_cooldown_time = 30; // Cooldown time of the elevator.
  13. level.zk_debug = true; //Enable or disable this to show action text in game. (Ex: "Debug: Elevator Moving" will be shown on the screen)
  14. level.change_door_direction = false; //Change this to true if your doors slide backwards or forwards instead of side to side.
  15. //Things you can edit above /\
  16.  
  17. level.elevator_trigger = GetEnt( "elevator_trigger", "targetname" );
  18. level.elevator_trigger_top = GetEnt( "elevator_trigger_top", "targetname" );
  19. level.elevator_trigger_outside_bottom = GetEnt( "elevator_trigger_outside_bottom", "targetname");
  20. level.elevator_trigger_outside_top = GetEnt( "elevator_trigger_outside_top", "targetname");
  21. level.elevator_model = GetEnt("elevator", "targetname" );
  22. level.elevator_top_door = GetEnt("top_door", "targetname" );
  23. level.elevator_bottom_door = GetEnt("bottom_door", "targetname" );
  24. level.elevator_called = false;
  25. main();
  26. }
  27.  
  28. function main()
  29. {
  30. level endon( "intermission" );
  31. wait_for_power();
  32. thread bottom_door_open();
  33. level.elevator_trigger_top SetHintString( "" );
  34.  
  35. while(1)
  36. {
  37. thread wait_for_buy_bottom();
  38. thread wait_for_call_top();
  39. thread zk_print("Waiting for Buy or Call");
  40. level waittill("Elevator_Used");
  41. level notify("elevator_moving");
  42. thread zk_print("Elevator Moving");
  43. thread clear_trigger_text();
  44.  
  45. thread bottom_door_close();
  46. wait(1);
  47. thread elevator_rise( level.elevate_height, level.elevator_transition_time );
  48. wait( level.elevator_transition_time );
  49. thread top_door_open();
  50. level.elevator_trigger_top SetHintString( "Elevator is cooling down." );
  51. level.elevator_trigger_outside_bottom SetHintString( "Elevator is cooling down." );
  52. wait( level.elevator_cooldown_time );
  53.  
  54. thread wait_for_buy_top();
  55. thread wait_for_call_bottom();
  56. thread zk_print("Waiting for Buy or Call");
  57. level waittill("Elevator_Used");
  58. level notify("elevator_moving");
  59. thread zk_print("Elevator Moving");
  60. thread clear_trigger_text();
  61.  
  62. level.elevator_trigger_top SetHintString( "" );
  63. thread top_door_close();
  64. wait(1);
  65. thread elevator_fall( level.elevate_height, level.elevator_transition_time );
  66. wait( level.elevator_transition_time );
  67. thread bottom_door_open();
  68. level.elevator_trigger SetHintString( "Elevator is cooling down." );
  69. level.elevator_trigger_outside_top SetHintString( "Elevator is cooling down." );
  70. wait( level.elevator_cooldown_time );
  71. }
  72. }
  73.  
  74. function elevator_rise( height, speed )
  75. {
  76. level.elevator_model movez (height, speed);
  77. level.elevator_model waittill ("movedone");
  78. }
  79.  
  80. function elevator_fall( height, speed )
  81. {
  82. level.elevator_model movez (height - (height * 2), speed);
  83. level.elevator_model waittill ("movedone");
  84. }
  85.  
  86. function bottom_door_open()
  87. {
  88. if(isDefined(level.elevator_bottom_door.script_vector))
  89. {
  90. level.elevator_bottom_door MoveTo(level.elevator_bottom_door.origin + level.elevator_bottom_door.script_vector, 1);
  91. }
  92. else
  93. {
  94. if(!level.change_door_direction == true)
  95. {
  96. level.elevator_bottom_door movex (130, 1);
  97. }
  98. else
  99. {
  100. level.elevator_bottom_door movey (130, 1);
  101. }
  102. }
  103.  
  104. }
  105.  
  106. function bottom_door_close()
  107. {
  108. if(isDefined(level.elevator_bottom_door.script_vector))
  109. {
  110. level.elevator_bottom_door MoveTo(level.elevator_bottom_door.origin - level.elevator_bottom_door.script_vector, 1);
  111. }
  112. else
  113. {
  114. if(!level.change_door_direction == true)
  115. {
  116. level.elevator_bottom_door movex ((-130), 1);
  117. }
  118. else
  119. {
  120. level.elevator_bottom_door movey ((-130), 1);
  121. }
  122. }
  123. }
  124.  
  125. function top_door_open()
  126. {
  127. if(!level.change_door_direction == true)
  128. {
  129. level.elevator_top_door movex (130, 1);
  130. }
  131. else
  132. {
  133. level.elevator_top_door movey (130, 1);
  134. }
  135. }
  136.  
  137. function top_door_close()
  138. {
  139. if(!level.change_door_direction == true)
  140. {
  141. level.elevator_top_door movex ((-130), 1);
  142. }
  143. else
  144. {
  145. level.elevator_top_door movey ((-130), 1);
  146. }
  147. }
  148.  
  149. function wait_for_power()
  150. {
  151. level.elevator_trigger_outside_bottom SetHintString( &"ZOMBIE_NEED_POWER" );
  152. level.elevator_trigger_outside_top SetHintString( &"ZOMBIE_NEED_POWER" );
  153. level flag::wait_till( "power_on" );
  154. level.elevator_trigger_outside_bottom SetHintString( "" );
  155. level.elevator_trigger_outside_top SetHintString( "" );
  156. thread zk_print("Starting Elevator");
  157. }
  158.  
  159. function wait_for_buy_bottom()
  160. {
  161. level endon("elevator_moving");
  162. if( isDefined(level.elevator_cost) )
  163. {
  164. while(1)
  165. {
  166. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  167. level.elevator_trigger waittill( "trigger", player );
  168. if( isDefined(level.elevator_cost) && player.score >= level.elevator_cost )
  169. {
  170. player zm_score::minus_to_player_score( level.elevator_cost );
  171. level notify("Elevator_Used");
  172. thread zk_print("Elevator Bought");
  173. break;
  174. }
  175. else if( isDefined( level.elevator_cost ) && player.score < level.elevator_cost )
  176. {
  177. level.elevator_trigger SetHintString( "You do not have enough money." );
  178. wait(4);
  179. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  180. continue;
  181. }
  182. }
  183. }
  184. else
  185. {
  186. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator" );
  187. level.elevator_trigger waittill( "trigger", player );
  188. level.elevator_trigger SetHintString( "" );
  189. level notify("Elevator_Used");
  190. thread zk_print("Elevator Bought [Free]");
  191. }
  192. }
  193.  
  194. function wait_for_buy_top()
  195. {
  196. level endon("elevator_moving");
  197. if( isDefined(level.elevator_cost) )
  198. {
  199. while(1)
  200. {
  201. level.elevator_trigger_top SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  202. level.elevator_trigger_top waittill( "trigger", player );
  203. if( isDefined(level.elevator_cost) && player.score >= level.elevator_cost )
  204. {
  205. player zm_score::minus_to_player_score( level.elevator_cost );
  206. level notify("Elevator_Used");
  207. thread zk_print("Elevator Bought");
  208. break;
  209. }
  210. else if( isDefined( level.elevator_cost ) && player.score < level.elevator_cost )
  211. {
  212. level.elevator_trigger_top SetHintString( "You do not have enough money." );
  213. wait(4);
  214. level.elevator_trigger_top SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  215. continue;
  216. }
  217. }
  218. }
  219. else
  220. {
  221. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator" );
  222. level.elevator_trigger waittill( "trigger", player );
  223. level.elevator_trigger SetHintString( "" );
  224. level notify("Elevator_Used");
  225. thread zk_print("Elevator Bought [Free]");
  226. }
  227. }
  228.  
  229. function wait_for_call_bottom()
  230. {
  231. self endon("elevator_moving");
  232. level.elevator_trigger_outside_bottom SetHintString( "Hold ^3&&1^7 to Call Elevator" );
  233. level.elevator_trigger_outside_bottom waittill( "trigger", player );
  234. level.elevator_trigger_outside_bottom SetHintString( "" );
  235. level notify("Elevator_Used");
  236. thread zk_print("Elevator Called");
  237. }
  238.  
  239. function wait_for_call_top()
  240. {
  241. self endon("elevator_moving");
  242. level.elevator_trigger_outside_top SetHintString( "Hold ^3&&1^7 to Call Elevator" );
  243. level.elevator_trigger_outside_top waittill( "trigger", player );
  244. level.elevator_trigger_outside_top SetHintString( "" );
  245. level notify("Elevator_Used");
  246. thread zk_print("Elevator Called");
  247. }
  248.  
  249. function zk_print( string )
  250. {
  251. if( level.zk_debug == true )
  252. {
  253. iprintlnbold( "Debug: "+string );
  254. }
  255. }
  256.  
  257. function clear_trigger_text()
  258. {
  259. level.elevator_trigger_outside_top SetHintString( "" );
  260. level.elevator_trigger_outside_bottom SetHintString( "" );
  261. level.elevator_trigger SetHintString( "" );
  262. level.elevator_trigger_top SetHintString( "" );
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement