Advertisement
Zratinel

Maze Event

Dec 25th, 2015
489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.64 KB | None | 0 0
  1. // ===== eAthena Script =======================================
  2. // = Maze Event
  3. // ===== By: ==================================================
  4. // = Cruxiaer
  5. // ===== Current Version: =====================================
  6. // = 1.00
  7. // ===== Compatible With: =====================================
  8. // = eAthena 1.x
  9. // ===== Description: =========================================
  10. // = Maze Game where players have to walk into portals
  11. // = till they win.
  12. // ===== How to use: ==========================================
  13. // $@prize = amount of Event Points to be won
  14. // @chance = the difficulty of winning, higher is harder
  15. // Edit OnClock events to change when will the Event start
  16. // ===== Changelog: ===========================================
  17. // 1.00 - First release
  18. // 1.01 - Fixed 500EP bonus and added active upon PM func
  19. //===== Credits: =============================================
  20. //= Euph for original Maze Game script
  21. //============================================================
  22.  
  23. prontera,156,170,0 script mazeevent 45,2,2,{
  24.  
  25. if ( $mazeinit == 0 ) {
  26. disablenpc "mazeevent";
  27. end;
  28. }
  29.  
  30. // Check for equipment that would give an advantage.
  31. if ( countitem(1363) ||
  32. countitem(1372) ||
  33. countitem(1373) ||
  34. countitem(2410) ||
  35. countitem(2515) ||
  36. countitem(4131) ||
  37. countitem(4210) ||
  38. countitem(5150) ||
  39. countitem(5203) ||
  40. countitem(5273) ||
  41. countitem(5274) ||
  42. countitem(5275) ) {
  43. mes "[^FF0000Maze^000000]";
  44. mes "Please store any equipment that increases your movement speed.";
  45. close;
  46. end;
  47. }
  48.  
  49. // Check for any consumable items that would give an advantage.
  50. if ( countitem(662) ||
  51. countitem(12016) ||
  52. countitem(12028) ||
  53. countitem(12262) ) {
  54. mes "[^FF0000Maze^000000]";
  55. mes "Please store any consumables that increases your movement speed.";
  56. close;
  57. end;
  58. }
  59.  
  60. // Remove Peco / Cart
  61. atcommand strcharinfo(0)+":@option 0 0 0";
  62.  
  63.  
  64. // Remove Any Speed Buffs
  65. sc_end SC_SPEEDUP0;
  66. sc_end SC_SPEEDUP1;
  67. sc_end SC_INCREASEAGI;
  68. sc_end SC_WINDWALK;
  69. sc_end SC_CARTBOOST;
  70. sc_end SC_CLOAKING;
  71. sc_end SC_BERSERK;
  72. sc_end SC_RUN;
  73. sc_end SC_AVOID;
  74.  
  75. // Grant 5 Minute Walking Speed Increase
  76. sc_start SC_INCREASEAGI,600000,1;
  77.  
  78.  
  79. // Warp to Event
  80. warp "force_1-3", 19, 189;
  81. set #EVENTPOINTS, #EVENTPOINTS+500;
  82. dispbottom "500 Event Points are awarded for joining this Event.";
  83. }
  84.  
  85.  
  86. - script Maze#announcer -1,{
  87.  
  88. OnInit:
  89. // Unload NPCs except this one at server start.
  90. disablenpc "mazeevent";
  91. disablenpc "mz_portal#1";
  92. disablenpc "mz_portal#2";
  93. disablenpc "mz_portal#3";
  94. disablenpc "mz_portal#4";
  95. disablenpc "mz_portal#5";
  96. disablenpc "mz_portal#6";
  97. disablenpc "mz_portal#7";
  98. disablenpc "mz_portal#8";
  99. disablenpc "mz_portal#9";
  100. disablenpc "mz_portal#10";
  101. disablenpc "mz_portal#11";
  102. disablenpc "mz_portal#12";
  103. disablenpc "mz_portal#13";
  104. disablenpc "mz_portal#14";
  105. disablenpc "mz_portal#15";
  106. disablenpc "mz_portal#16";
  107. disablenpc "mz_portal#17";
  108. disablenpc "mz_portal#18";
  109. disablenpc "mz_portal#19";
  110. disablenpc "mz_portal#20";
  111. disablenpc "mz_portal#21";
  112. disablenpc "mz_portal#22";
  113. disablenpc "mz_portal#23";
  114. disablenpc "mz_portal#24";
  115. disablenpc "Maze#asdf";
  116. end;
  117.  
  118. OnClock0100:
  119. OnClock0200:
  120. OnClock0300:
  121. OnClock0400:
  122. OnClock0500:
  123. OnClock0600:
  124. OnClock0700:
  125. OnClock0800:
  126. OnClock0900:
  127. OnClock1000:
  128. OnClock1100:
  129. OnClock1200:
  130. OnClock1300:
  131. OnClock1400:
  132. OnClock1500:
  133. OnClock1600:
  134. OnClock1700:
  135. OnClock1800:
  136. OnClock1900:
  137. OnClock2000:
  138. OnClock2100:
  139. OnClock2200:
  140. OnClock2300:
  141. OnClock0000:
  142.  
  143. announce "Maze: A maze event will begin in 2 minutes in Prontera.",0,0x99FFCC;
  144. sleep2 90000;
  145. announce "Maze: Enter the Warp in Prontera to join the Maze event.",0,0x99FFCC;
  146.  
  147. // Clear up the map.
  148. areawarp "force_1-3",104,18,189,10,"prontera",159,116;
  149.  
  150. // Load NPCs + hide the Maze guy
  151. set $mazeinit, 1;
  152. enablenpc "mazeevent";
  153. enablenpc "Maze#asdf";
  154. hideonnpc "Maze#asdf";
  155. initnpctimer;
  156. end;
  157.  
  158. OnTimer30000:
  159. mapannounce "prontera","Maze: Last 30 seconds.",0,0x99FFCC;
  160. sleep2 5000;
  161. mapannounce "prontera","Maze: If you want to join please enter the Warp Portal.",0,0x99FFCC;
  162. end;
  163.  
  164. OnTimer50000:
  165. mapannounce "prontera","Maze: Last 10 seconds.",0,0x99FFCC;
  166. end;
  167.  
  168. OnTimer60000:
  169. mapannounce "prontera","Maze: Time's up.",0,0x99FFCC;
  170. end;
  171.  
  172. OnTimer61000:
  173. disablenpc "mazeevent";
  174. donpcevent "Maze#asdf::OnEnable";
  175. stopnpctimer;
  176. end;
  177. }
  178.  
  179. force_1-3,100,187,4 script Maze#asdf 702,{
  180. set $@prize, rand(5000,10000);
  181. mes "[Maze Manager]";
  182. mes "Here is your prize:^336699";
  183. mes $@prize+"^000000 Event Points!";
  184. set #EVENTPOINTS, #EVENTPOINTS+$@prize;
  185. logmes "EP won from Maze Event :"+$@prize;
  186. goto L_EndIt;
  187.  
  188. L_EndIt:
  189. next;
  190. warp "prontera",155,175;
  191. // Hide the NPC
  192. disablenpc "Maze#asdf";
  193. end;
  194.  
  195. OnEnable:
  196. if(getmapusers("force_1-3")<2) goto L_NotEnough;
  197. mapannounce "force_1-3","Maze: We are about to start the maze... here's how to play.",0,0x99FFCC;
  198. sleep2 4000;
  199. mapannounce "force_1-3","Maze: Everybody must keep running through portals.",0,0x99FFCC;
  200. sleep2 4000;
  201. mapannounce "force_1-3","Maze: Each portal will warp you to a random room.",0,0x99FFCC;
  202. sleep2 4000;
  203. mapannounce "force_1-3","Maze: With some luck, somebody will find the finish!",0,0x99FFCC;
  204. sleep2 4000;
  205. mapannounce "force_1-3","Maze: And then, they will win the event.",0,0x99FFCC;
  206. sleep2 4000;
  207. mapannounce "force_1-3","Maze: Is everybody ready?! We're going to start!",0,0x99FFCC;
  208. sleep2 4000;
  209. mapannounce "force_1-3","Maze: 3....",0,0x99FFCC;
  210. sleep2 2000;
  211. mapannounce "force_1-3","Maze: 2...",0,0x99FFCC;
  212. sleep2 2000;
  213. mapannounce "force_1-3","Maze: 1..",0,0x99FFCC;
  214. sleep2 2000;
  215. mapannounce "force_1-3","Maze: GO!",0,0x99FFCC;
  216. enablenpc "mz_portal#1";
  217. enablenpc "mz_portal#2";
  218. enablenpc "mz_portal#3";
  219. enablenpc "mz_portal#4";
  220. enablenpc "mz_portal#5";
  221. enablenpc "mz_portal#6";
  222. enablenpc "mz_portal#7";
  223. enablenpc "mz_portal#8";
  224. enablenpc "mz_portal#9";
  225. enablenpc "mz_portal#10";
  226. enablenpc "mz_portal#11";
  227. enablenpc "mz_portal#12";
  228. enablenpc "mz_portal#13";
  229. enablenpc "mz_portal#14";
  230. enablenpc "mz_portal#15";
  231. enablenpc "mz_portal#16";
  232. enablenpc "mz_portal#17";
  233. enablenpc "mz_portal#18";
  234. enablenpc "mz_portal#19";
  235. enablenpc "mz_portal#20";
  236. enablenpc "mz_portal#21";
  237. enablenpc "mz_portal#22";
  238. enablenpc "mz_portal#23";
  239. enablenpc "mz_portal#24";
  240. end;
  241.  
  242. L_NotEnough:
  243. mapannounce "force_1-3","Maze: Not enough players. Cancelling this round.",0,0x99FFCC;
  244. areawarp "force_1-3",10,189,189,10,"prontera",143,171;
  245. disablenpc "mz_portal#1";
  246. disablenpc "mz_portal#2";
  247. disablenpc "mz_portal#3";
  248. disablenpc "mz_portal#4";
  249. disablenpc "mz_portal#5";
  250. disablenpc "mz_portal#6";
  251. disablenpc "mz_portal#7";
  252. disablenpc "mz_portal#8";
  253. disablenpc "mz_portal#9";
  254. disablenpc "mz_portal#10";
  255. disablenpc "mz_portal#11";
  256. disablenpc "mz_portal#12";
  257. disablenpc "mz_portal#13";
  258. disablenpc "mz_portal#14";
  259. disablenpc "mz_portal#15";
  260. disablenpc "mz_portal#16";
  261. disablenpc "mz_portal#17";
  262. disablenpc "mz_portal#18";
  263. disablenpc "mz_portal#19";
  264. disablenpc "mz_portal#20";
  265. disablenpc "mz_portal#21";
  266. disablenpc "mz_portal#22";
  267. disablenpc "mz_portal#23";
  268. disablenpc "mz_portal#24";
  269. end;
  270.  
  271. }
  272.  
  273. - script mazer -1,{
  274. OnWhisperGlobal:
  275. if (getgmlevel()==99) {
  276. announce "Maze: A maze event will begin in 2 minutes in Prontera.",0,0x99FFCC;
  277. sleep2 90000;
  278. announce "Maze: Enter the Warp in Prontera to join the Maze event.",0,0x99FFCC;
  279.  
  280. // Clear up the map.
  281. areawarp "force_1-3",104,18,189,10,"prontera",159,116;
  282.  
  283. // Load NPCs + hide the Maze guy
  284. set $mazeinit, 1;
  285. enablenpc "mazeevent";
  286. enablenpc "Maze#asdf";
  287. hideonnpc "Maze#asdf";
  288. initnpctimer;
  289. end;
  290.  
  291. OnTimer30000:
  292. mapannounce "prontera","Maze: Last 30 seconds.",0,0x99FFCC;
  293. sleep2 5000;
  294. mapannounce "prontera","Maze: If you want to join please enter the Warp Portal.",0,0x99FFCC;
  295. end;
  296.  
  297. OnTimer50000:
  298. mapannounce "prontera","Maze: Last 10 seconds.",0,0x99FFCC;
  299. end;
  300.  
  301. OnTimer60000:
  302. mapannounce "prontera","Maze: Time's up.",0,0x99FFCC;
  303. end;
  304.  
  305. OnTimer61000:
  306. disablenpc "mazeevent";
  307. donpcevent "Maze#asdf::OnEnable";
  308. stopnpctimer;
  309. end;
  310. } else {
  311. dispbottom "You are not authorised for this function.";
  312. }
  313. }
  314.  
  315. - script mz_portal::maze_portal -1,{
  316. OnTouch:
  317. set @chance, rand(20,30);
  318. set .@win_chance, (getmapusers("force_1-3")*@chance);
  319. if ( rand(1,.@win_chance) == .@win_chance ) {
  320. warp "force_1-3",100,184;
  321. announce "Maze: "+strcharinfo(0)+" has solved the maze event! Next round is in 1 hour.",0,0x99FFCC;
  322. disablenpc "mz_portal#1";
  323. disablenpc "mz_portal#2";
  324. disablenpc "mz_portal#3";
  325. disablenpc "mz_portal#4";
  326. disablenpc "mz_portal#5";
  327. disablenpc "mz_portal#6";
  328. disablenpc "mz_portal#7";
  329. disablenpc "mz_portal#8";
  330. disablenpc "mz_portal#9";
  331. disablenpc "mz_portal#10";
  332. disablenpc "mz_portal#11";
  333. disablenpc "mz_portal#12";
  334. disablenpc "mz_portal#13";
  335. disablenpc "mz_portal#14";
  336. disablenpc "mz_portal#15";
  337. disablenpc "mz_portal#16";
  338. disablenpc "mz_portal#17";
  339. disablenpc "mz_portal#18";
  340. disablenpc "mz_portal#19";
  341. disablenpc "mz_portal#20";
  342. disablenpc "mz_portal#21";
  343. disablenpc "mz_portal#22";
  344. disablenpc "mz_portal#23";
  345. disablenpc "mz_portal#24";
  346. sleep 5000;
  347. areawarp "force_1-3",10,189,29,170,"prontera",155,175;
  348. areawarp "force_1-3",170,189,189,170,"prontera",155,175;
  349. areawarp "force_1-3",10,147,189,11,"prontera",155,175;
  350. mapannounce "force_1-3","Maze: Congratulations! Talk to me for a prize.",0,0x99FFCC;
  351. hideoffnpc "Maze#asdf";
  352. end;
  353. }
  354. set .@this_entry, rand(1,15);
  355. switch (.@this_entry) {
  356. case 1:
  357. warp "force_1-3",19,189;
  358. end;
  359. case 2:
  360. warp "force_1-3",170,179;
  361. end;
  362. case 3:
  363. warp "force_1-3",19,147;
  364. end;
  365. case 4:
  366. warp "force_1-3",59,128;
  367. end;
  368. case 5:
  369. warp "force_1-3",90,138;
  370. end;
  371. case 6:
  372. warp "force_1-3",179,128;
  373. end;
  374. case 7:
  375. warp "force_1-3",109,100;
  376. end;
  377. case 8:
  378. warp "force_1-3",140,50;
  379. end;
  380. case 9:
  381. warp "force_1-3",170,99;
  382. end;
  383. case 10:
  384. warp "force_1-3",19,50;
  385. end;
  386. case 11:
  387. warp "force_1-3",100,10;
  388. end;
  389. case 12:
  390. warp "force_1-3",170,60;
  391. end;
  392. case 13:
  393. warp "force_1-3",20,29;
  394. end;
  395. case 14:
  396. warp "force_1-3",60,29;
  397. end;
  398. case 15:
  399. warp "force_1-3",130,20;
  400. end;
  401. }
  402. }
  403.  
  404. force_1-3,29,179,0 duplicate(maze_portal) mz_portal#1 45,2,2
  405. force_1-3,180,170,0 duplicate(maze_portal) mz_portal#2 45,2,2
  406. force_1-3,29,99,0 duplicate(maze_portal) mz_portal#3 45,2,2
  407. force_1-3,69,138,0 duplicate(maze_portal) mz_portal#4 45,2,2
  408. force_1-3,109,137,0 duplicate(maze_portal) mz_portal#5 45,2,2
  409. force_1-3,140,147,0 duplicate(maze_portal) mz_portal#6 45,2,2
  410. force_1-3,60,90,0 duplicate(maze_portal) mz_portal#7 45,2,2
  411. force_1-3,130,100,0 duplicate(maze_portal) mz_portal#8 45,2,2
  412. force_1-3,180,90,0 duplicate(maze_portal) mz_portal#9 45,2,2
  413. force_1-3,69,59,0 duplicate(maze_portal) mz_portal#10 45,2,2
  414. force_1-3,90,59,0 duplicate(maze_portal) mz_portal#11 45,2,2
  415. force_1-3,179,50,0 duplicate(maze_portal) mz_portal#12 45,2,2
  416. force_1-3,20,10,0 duplicate(maze_portal) mz_portal#13 45,2,2
  417. force_1-3,69,19,0 duplicate(maze_portal) mz_portal#14 45,2,2
  418. force_1-3,179,29,0 duplicate(maze_portal) mz_portal#15 45,2,2
  419. force_1-3,139,109,0 duplicate(maze_portal) mz_portal#16 45,2,2
  420. force_1-3,10,99,0 duplicate(maze_portal) mz_portal#17 45,2,2
  421. force_1-3,130,137,0 duplicate(maze_portal) mz_portal#18 45,2,2
  422. force_1-3,59,69,0 duplicate(maze_portal) mz_portal#19 45,2,2
  423. force_1-3,109,59,0 duplicate(maze_portal) mz_portal#20 45,2,2
  424. force_1-3,60,109,0 duplicate(maze_portal) mz_portal#21 45,2,2
  425. force_1-3,100,147,0 duplicate(maze_portal) mz_portal#22 45,2,2
  426. force_1-3,100,128,0 duplicate(maze_portal) mz_portal#23 45,2,2
  427. force_1-3,180,109,0 duplicate(maze_portal) mz_portal#24 45,2,2
  428.  
  429. force_1-3 mapflag nobranch
  430. force_1-3 mapflag nomemo
  431. force_1-3 mapflag nopenalty
  432. force_1-3 mapflag nosave SavePoint
  433. force_1-3 mapflag noskill
  434. force_1-3 mapflag noteleport
  435. force_1-3 mapflag nowarpto
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement