Advertisement
Guest User

Elevator Script Modification

a guest
Jul 18th, 2017
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.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 = ; // Change this to change the cost of the elevator. Leave it undefined to make it free.
  10. level.elevate_height = -348; //This is how far the elevator will travel up.
  11. level.elevator_transition_time = 10; //How long it will take for the elevator travel.
  12. level.elevator_cooldown_time = 30; // Cooldown time of the elevator.
  13. level.zk_debug = false; //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_left = GetEnt("top_door", "targetname" );
  23. level.elevator_top_door_right = GetEnt("top_door", "targetname" );
  24. level.elevator_bottom_door_left = GetEnt("bottom_door", "targetname" );
  25. level.elevator_bottom_door_right = GetEnt("bottom_door", "targetname" );
  26. level.elevator_door_in_left = GetEnt("bottom_door", "targetname" );
  27. level.elevator_door_in_right = GetEnt("bottom_door", "targetname" );
  28. level.elevator_called = false;
  29. main();
  30. }
  31.  
  32. function main()
  33. {
  34. level endon( "intermission" );
  35. thread bottom_door_left_open();
  36. thread bottom_door_right_open();
  37. thread door_in_left_open();
  38. thread door_in_right_open();
  39. level.elevator_trigger_top SetHintString( "" );
  40.  
  41. while(1)
  42. {
  43. thread wait_for_buy_bottom();
  44. thread wait_for_call_top();
  45. thread zk_print("Waiting for Buy or Call");
  46. level waittill("Elevator_Used");
  47. level notify("elevator_moving");
  48. thread zk_print("Elevator Moving");
  49. thread clear_trigger_text();
  50.  
  51. thread bottom_door_left_close();
  52. thread bottom_door_right_close();
  53. thread door_in_left_close();
  54. thread door_in_right_close();
  55. wait(1);
  56. thread elevator_rise( level.elevate_height, level.elevator_transition_time );
  57. wait( level.elevator_transition_time );
  58. thread top_door_left_open();
  59. thread top_door_right_open();
  60. level.elevator_trigger_top SetHintString( "Elevator is cooling down." );
  61. level.elevator_trigger_outside_bottom SetHintString( "Elevator is cooling down." );
  62. wait( level.elevator_cooldown_time );
  63.  
  64. thread wait_for_buy_top();
  65. thread wait_for_call_bottom();
  66. thread zk_print("Waiting for Buy or Call");
  67. level waittill("Elevator_Used");
  68. level notify("elevator_moving");
  69. thread zk_print("Elevator Moving");
  70. thread clear_trigger_text();
  71.  
  72. level.elevator_trigger_top SetHintString( "" );
  73. thread top_door_left_close();
  74. thread top_door_right_close();
  75. thread door_in_left_close();
  76. thread door_in_right_close();
  77. wait(1);
  78. thread elevator_fall( level.elevate_height, level.elevator_transition_time );
  79. wait( level.elevator_transition_time );
  80. thread bottom_door__left_open();
  81. thread bottom_door__right_open();
  82. thread door_in_left_open();
  83. thread door_in_right_open();
  84. level.elevator_trigger SetHintString( "Elevator is cooling down." );
  85. level.elevator_trigger_outside_top SetHintString( "Elevator is cooling down." );
  86. wait( level.elevator_cooldown_time );
  87. }
  88. }
  89.  
  90. function elevator_rise( height, speed )
  91. {
  92. level.elevator_model movez (height, speed);
  93. level.elevator_model waittill ("movedone");
  94. level.elevator_door_in_left movez (height, speed)
  95. level.elevator_door_in_left waittill ("movedone")
  96. level.elevator_door_in_right movez (height, speed)
  97. level.elevator_door_in_right waittill ("movedone")
  98. }
  99.  
  100. function elevator_fall( height, speed )
  101. {
  102. level.elevator_model movez (height - (height * 2), speed);
  103. level.elevator_model waittill ("movedone");
  104. level.elevator_door_in_left movez (height - (height * 2), speed)
  105. level.elevator_door_in_left waittill ("movedone")
  106. level.elevator_door_in_right movez (height - (height * 2), speed)
  107. level.elevator_door_in_right waittill ("movedone")
  108. }
  109.  
  110. function door_in_left_open()
  111. {
  112. if(!level.change_door_direction == true)
  113. {
  114. level.elevator_bottom_door_right movex (32, 1);
  115. }
  116. else
  117. {
  118. level.elevator_bottom_door_right movey (32, 1);
  119. }
  120. }
  121.  
  122. function door_in_right_open()
  123. {
  124. if(!level.change_door_direction == true)
  125. {
  126. level.elevator_bottom_door_right movex (-32, 1);
  127. }
  128. else
  129. {
  130. level.elevator_bottom_door_right movey (-32, 1);
  131. }
  132. }
  133.  
  134. function door_in_left_close()
  135. {
  136. if(!level.change_door_direction == true)
  137. {
  138. level.elevator_bottom_door_left movex ((-32), 1);
  139. }
  140. else
  141. {
  142. level.elevator_bottom_door_left movey ((-32), 1);
  143. }
  144. }
  145.  
  146. function door_in_right_close()
  147. {
  148. if(!level.change_door_direction == true)
  149. {
  150. level.elevator_bottom_door_right movex ((32), 1);
  151. }
  152. else
  153. {
  154. level.elevator_bottom_door_right movey ((32), 1);
  155. }
  156. }
  157.  
  158.  
  159. function bottom_door_left_open()
  160. {
  161. if(!level.change_door_direction == true)
  162. {
  163. level.elevator_bottom_door_right movex (32, 1);
  164. }
  165. else
  166. {
  167. level.elevator_bottom_door_right movey (32, 1);
  168. }
  169. }
  170.  
  171. function bottom_door_right_open()
  172. {
  173. if(!level.change_door_direction == true)
  174. {
  175. level.elevator_bottom_door_right movex (-32, 1);
  176. }
  177. else
  178. {
  179. level.elevator_bottom_door_right movey (-32, 1);
  180. }
  181. }
  182.  
  183. function bottom_door_left_close()
  184. {
  185. if(!level.change_door_direction == true)
  186. {
  187. level.elevator_bottom_door_left movex ((-32), 1);
  188. }
  189. else
  190. {
  191. level.elevator_bottom_door_left movey ((-32), 1);
  192. }
  193. }
  194.  
  195. function bottom_door_right_close()
  196. {
  197. if(!level.change_door_direction == true)
  198. {
  199. level.elevator_bottom_door_right movex ((32), 1);
  200. }
  201. else
  202. {
  203. level.elevator_bottom_door_right movey ((32), 1);
  204. }
  205. }
  206.  
  207. function top_door_left_open()
  208. {
  209. if(!level.change_door_direction == true)
  210. {
  211. level.elevator_top_door movex (32, 1);
  212. }
  213. else
  214. {
  215. level.elevator_top_door movey (32, 1);
  216. }
  217. }
  218.  
  219. function top_door_right_open()
  220. {
  221. if(!level.change_door_direction == true)
  222. {
  223. level.elevator_top_door movex (-32, 1);
  224. }
  225. else
  226. {
  227. level.elevator_top_door movey (-32, 1);
  228. }
  229. }
  230.  
  231. function top_door_left_close()
  232. {
  233. if(!level.change_door_direction == true)
  234. {
  235. level.elevator_top_door movex (-32, 1);
  236. }
  237. else
  238. {
  239. level.elevator_top_door movey (-32, 1);
  240. }
  241. }
  242.  
  243. function top_door_right_close()
  244. {
  245. if(!level.change_door_direction == true)
  246. {
  247. level.elevator_top_door movex (32, 1);
  248. }
  249. else
  250. {
  251. level.elevator_top_door movey (32, 1);
  252. }
  253. }
  254.  
  255. function wait_for_buy_bottom()
  256. {
  257. level endon("elevator_moving");
  258. if( isDefined(level.elevator_cost) )
  259. {
  260. while(1)
  261. {
  262. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  263. level.elevator_trigger waittill( "trigger", player );
  264. if( isDefined(level.elevator_cost) && player.score >= level.elevator_cost )
  265. {
  266. player zm_score::minus_to_player_score( level.elevator_cost );
  267. level notify("Elevator_Used");
  268. thread zk_print("Elevator Bought");
  269. break;
  270. }
  271. else if( isDefined( level.elevator_cost ) && player.score < level.elevator_cost )
  272. {
  273. level.elevator_trigger SetHintString( "You do not have enough money." );
  274. wait(4);
  275. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  276. continue;
  277. }
  278. }
  279. }
  280. else
  281. {
  282. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator" );
  283. level.elevator_trigger waittill( "trigger", player );
  284. level.elevator_trigger SetHintString( "" );
  285. level notify("Elevator_Used");
  286. thread zk_print("Elevator Bought [Free]");
  287. }
  288. }
  289.  
  290. function wait_for_buy_top()
  291. {
  292. level endon("elevator_moving");
  293. if( isDefined(level.elevator_cost) )
  294. {
  295. while(1)
  296. {
  297. level.elevator_trigger_top SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  298. level.elevator_trigger_top waittill( "trigger", player );
  299. if( isDefined(level.elevator_cost) && player.score >= level.elevator_cost )
  300. {
  301. player zm_score::minus_to_player_score( level.elevator_cost );
  302. level notify("Elevator_Used");
  303. thread zk_print("Elevator Bought");
  304. break;
  305. }
  306. else if( isDefined( level.elevator_cost ) && player.score < level.elevator_cost )
  307. {
  308. level.elevator_trigger_top SetHintString( "You do not have enough money." );
  309. wait(4);
  310. level.elevator_trigger_top SetHintString( "Hold ^3&&1^7 to Use Elevator [Cost: "+level.elevator_cost+"]" );
  311. continue;
  312. }
  313. }
  314. }
  315. else
  316. {
  317. level.elevator_trigger SetHintString( "Hold ^3&&1^7 to Use Elevator" );
  318. level.elevator_trigger waittill( "trigger", player );
  319. level.elevator_trigger SetHintString( "" );
  320. level notify("Elevator_Used");
  321. thread zk_print("Elevator Bought [Free]");
  322. }
  323. }
  324.  
  325. function wait_for_call_bottom()
  326. {
  327. self endon("elevator_moving");
  328. level.elevator_trigger_outside_bottom SetHintString( "Hold ^3&&1^7 to Call Elevator" );
  329. level.elevator_trigger_outside_bottom waittill( "trigger", player );
  330. level.elevator_trigger_outside_bottom SetHintString( "" );
  331. level notify("Elevator_Used");
  332. thread zk_print("Elevator Called");
  333. }
  334.  
  335. function wait_for_call_top()
  336. {
  337. self endon("elevator_moving");
  338. level.elevator_trigger_outside_top SetHintString( "Hold ^3&&1^7 to Call Elevator" );
  339. level.elevator_trigger_outside_top waittill( "trigger", player );
  340. level.elevator_trigger_outside_top SetHintString( "" );
  341. level notify("Elevator_Used");
  342. thread zk_print("Elevator Called");
  343. }
  344.  
  345. function zk_print( string )
  346. {
  347. if( level.zk_debug == true )
  348. {
  349. iprintlnbold( "Debug: "+string );
  350. }
  351. }
  352.  
  353. function clear_trigger_text()
  354. {
  355. level.elevator_trigger_outside_top SetHintString( "" );
  356. level.elevator_trigger_outside_bottom SetHintString( "" );
  357. level.elevator_trigger SetHintString( "" );
  358. level.elevator_trigger_top SetHintString( "" );
  359. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement