arena_room.txt 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022
  1. //===== rAthena Script =======================================
  2. //= Izlude Arena Room
  3. //===== By: ==================================================
  4. //= SinSloth
  5. //===== Current Version: =====================================
  6. //= 1.4
  7. //===== Compatible With: =====================================
  8. //= rAthena Project
  9. //===== Description: =========================================
  10. //= Izlude Battle Arena Main Room
  11. //===== Additional Comments: =================================
  12. //= 1.0 First version.
  13. //= 1.1 Fixed a small reward typo (was giving potato.) [L0ne_W0lf]
  14. //= 1.2 Label standardization, disabled GM NPCs. [Euphy]
  15. //= 1.2a Added Renewal level checksk. [Euphy]
  16. //= 1.3 Script updates. [Euphy]
  17. //= 1.4 Added GM management function. [Euphy]
  18. //============================================================
  19. arena_room,94,93,5 script Vendigos 97,{
  20. mes "[Vendigos]";
  21. mes "Welcome to the world of Arena, the battle against a time limit.";
  22. mes "My name is Vendigos, I am here to help you.";
  23. next;
  24. mes "[Vendigos]";
  25. mes "If you have any questions, feel free to ask me.";
  26. next;
  27. while(1) {
  28. switch(select("How to challenge:About Arena Points:My Current Arena Points:Cancel")) {
  29. case 1:
  30. mes "[Vendigos]";
  31. mes "There are two different kinds of arena mode such as ^3131FFPlayer Mode^000000 and ^3131FFParty Mode^000000.";
  32. next;
  33. mes "[Vendigos]";
  34. mes "^3131FFPlayer Mode^000000 consists of 4 different stages based on character level from 50~80.";
  35. mes "For a party with 5 members, they can participate in ^3131FFParty Mode^000000.";
  36. next;
  37. mes "[Vendigos]";
  38. mes "For ^3131FFeach Player Mode Stage^000000, characters who are 20 levels higher than the level requirement on each stage cannot enter. This is to prevent high level characters preoccupying a low level stage.";
  39. next;
  40. mes "[Vendigos]";
  41. mes "There are the NPCs for Player Mode Stages from 12 o'clock direction to the reversed clock direction.";
  42. mes "While you're waiting in a chat room, you will be automatically guided to an arena room by the waiting order.";
  43. break;
  44. case 2:
  45. mes "[Vendigos]";
  46. mes "Let me explain about the ^3131FFArena Point^000000.";
  47. mes "It is a reward point for players who ^3131FFsuccessfully cleared a arena stage^000000, a player can possess the maximum 30,000 points.";
  48. next;
  49. mes "[Vendigos]";
  50. mes "Even if you did not clear a stage due to time-over or other errors, you will be given a very small amount of arena points.";
  51. next;
  52. mes "[Vendigos]";
  53. mes "Regarding the use of Arena Points,";
  54. mes "we are providing various services such as souvenir photograph services through an NPC named Givu.";
  55. break;
  56. case 3:
  57. mes "[Vendigos]";
  58. mes "Let me check "+strcharinfo(0)+"'s current arena points.";
  59. next;
  60. mes "[Vendigos]";
  61. mes ""+strcharinfo(0)+" has total ^3131FF"+arena_point+"^000000 points.";
  62. next;
  63. mes "[Vendigos]";
  64. mes "If you wish to know how to use arena points, please refer to the 2nd menu ^3131FF'About Arena Points'^000000.";
  65. break;
  66. case 4:
  67. mes "[Vendigos]";
  68. mes "Okay then,";
  69. mes "please have";
  70. mes "a good time.";
  71. close;
  72. }
  73. next;
  74. mes "[Vendigos]";
  75. mes "Is there anything";
  76. mes "more I can help you with?";
  77. next;
  78. }
  79. close;
  80. OnLineRec_50:
  81. mapannounce "arena_room",""+$arena_50topn$+" has renewed the top record in the Arena Time Force Battle level 50. Congratulations!",0;
  82. end;
  83. OnLineRec_60:
  84. mapannounce "arena_room",""+$arena_60topn$+" has renewed the top record in the Arena Time Force Battle level 60. Congratulations!",0;
  85. end;
  86. OnLineRec_70:
  87. mapannounce "arena_room",""+$arena_70topn$+" has renewed the top record in the Arena Time Force Battle level 70. Congratulations!",0;
  88. end;
  89. OnLineRec_80:
  90. mapannounce "arena_room",""+$arena_80topn$+" has renewed the top record in the Arena Time Force Battle level 80. Congratulations!",0;
  91. end;
  92. OnLineRec_pt:
  93. mapannounce "arena_room","Party "+$arena_pttopn$+" has renewed the top record in the Arena Time Force Battle. Congratulations!",0;
  94. end;
  95. //OnLineRec_vs:
  96. // mapannounce "arena_room","Party "+$040611_arn_vstopn$+" has renewed the top record in the Arena Time Force Battle. Congratulations!",0;
  97. // end;
  98. }
  99. arena_room,105,82,5 script Arena Record Staff 57,{
  100. mes "[Owen Kheuv]";
  101. mes "Hello, my name is Own Kheuv";
  102. mes "in charge of every arena stage record of players.";
  103. next;
  104. mes "[Owen Kheuv]";
  105. mes "Would you like to check the top record players in each stage?";
  106. mes "If so, please choose a menu below.";
  107. next;
  108. switch(select("Lv 50 Stage:Lv 60 Stage:Lv 70 Stage:Lv 80 Stage:Party Stage")) {
  109. case 1:
  110. mes "[Owen Kheuv]";
  111. mes "Currently the top player of the arena Lv 50 stage is ^3131FF "+$arena_50topn$+"^000000, the top record is ^3131FF"+$top_50min+"^000000 minutes ^3131FF"+$top_50sec+"^000000 seconds.";
  112. close;
  113. case 2:
  114. mes "[Owen Kheuv]";
  115. mes "Currenly the top player of the arena Lv 60 stage is ^3131FF"+$arena_60topn$+"^000000, the top record is ^3131FF"+$top_60min+"^000000 minutes ^3131FF"+$top_60sec+"^000000 seconds.";
  116. close;
  117. case 3:
  118. mes "[Owen Kheuv]";
  119. mes "Currenly the top player of the arena Lv 70 stage is ^3131FF"+$arena_70topn$+"^000000, the top record is ^3131FF"+$top_70min+"^000000 minutes ^3131FF"+$top_70sec+"^000000 seconds.";
  120. close;
  121. case 4:
  122. mes "[Owen Kheuv]";
  123. mes "Currenly the top player of the arena Lv 80 stage is ^3131FF"+$arena_80topn$+"^000000, the top record is ^3131FF"+$top_80min+"^000000 minutes ^3131FF"+$top_80sec+"^000000 seconds.";
  124. close;
  125. case 5:
  126. mes "[Owen Kheuv]";
  127. mes "Currenly the top party is ^3131FF"+$arena_pttopn$+"^000000, the top record is ^3131FF"+$top_ptmin+"^000000 minutes ^3131FF"+$top_ptsec+"^000000 seconds.";
  128. close;
  129. }
  130. }
  131. arena_room,68,135,3 script Helper Pat 726,{
  132. mes "[Pat]";
  133. mes "Welcome, welcome.";
  134. mes "I am a helper of the Lv 50 arena stage.";
  135. next;
  136. mes "[Pat]";
  137. mes "This ^3131FFLv 50 arena stage^000000";
  138. mes "is accessable to characters from ^FF0000level 50^000000 to ^FF0000level 69^000000.";
  139. next;
  140. mes "[Pat]";
  141. mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
  142. mes "Also we accept an entrance fee, 1,000 zeny.";
  143. next;
  144. mes "[Pat]";
  145. mes "Let me introduce you about the play rules of arena.";
  146. next;
  147. mes "[Pat]";
  148. mes "^3131FFWait in a chat room for your turn coming.^000000";
  149. mes "When it's your turn, you will be automatically warped to an arena map.";
  150. next;
  151. mes "[Pat]";
  152. mes "As immediately as you enter, a timer to check your play time will be activated.";
  153. mes "Please follow what ^3131FFHeel and Toe^000000 guides you. ";
  154. next;
  155. mes "[Pat]";
  156. mes "You have a ^3131FF5 minutes^000000 battle time.";
  157. next;
  158. mes "[Pat]";
  159. mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
  160. mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
  161. next;
  162. mes "[Pat]";
  163. mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
  164. next;
  165. mes "[Pat]";
  166. mes "I hope you will have a good time.";
  167. close;
  168. }
  169. arena_room,41,93,5 script Helper Ben 750,{
  170. mes "[Ben]";
  171. mes "Welcome, welcome.";
  172. mes "I am a helper of the Lv 60 arena stage.";
  173. next;
  174. mes "[Ben]";
  175. mes "This ^3131FFLv 60 arena stage^000000";
  176. mes "is accessable to characters from ^FF0000level 60^000000 to ^FF0000level 79^000000.";
  177. next;
  178. mes "[Ben]";
  179. mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
  180. mes "Also we accept an entrance fee, 1,000 zeny.";
  181. next;
  182. mes "[Ben]";
  183. mes "Let me introduce you about the play rules of arena.";
  184. next;
  185. mes "[Ben]";
  186. mes "^3131FFWait in a chat room for your turn coming.^000000";
  187. mes "When it's your turn, you will be automatically warped to an arena map.";
  188. next;
  189. mes "[Ben]";
  190. mes "As immediately as you enter, a timer to check your play time will be activated.";
  191. mes "Please follow what ^3131FFMinilover^000000 guides you. ";
  192. next;
  193. mes "[Ben]";
  194. mes "You have a ^3131FF6 minutes^000000 battle time.";
  195. next;
  196. mes "[Ben]";
  197. mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
  198. mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
  199. next;
  200. mes "[Ben]";
  201. mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
  202. next;
  203. mes "[Ben]";
  204. mes "I hope you will have a good time.";
  205. close;
  206. }
  207. arena_room,53,49,5 script Helper Vicious 730,{
  208. mes "[Vicious]";
  209. mes "Hey there.";
  210. mes "My name is Vicious, I am a helper of Lv 70 arena stage.";
  211. mes "(...I have no clue how the hell I put myself into this crappy work...mumble mumble...grumble grumble..)";
  212. next;
  213. mes "[Vicious]";
  214. mes "This ^3131FFLv 70 arena stage^000000";
  215. mes "is accessable to characters from ^FF0000level 70^000000 to ^FF0000level 89^000000.";
  216. next;
  217. mes "[Vicious]";
  218. mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
  219. mes "Also we accept an entrance fee, 1,000 zeny.";
  220. next;
  221. mes "[Vicious]";
  222. mes "Let me introduce you about the play rules of arena.";
  223. next;
  224. mes "[Vicious]";
  225. mes "^3131FFWait in a chat room for your turn coming.^000000";
  226. mes "When it's your turn, you will be automatically warped to an arena map.";
  227. next;
  228. mes "[Vicious]";
  229. mes "As immediately as you enter, a timer to check your play time will be activated.";
  230. mes "Please follow what ^3131FFCadilac^000000 guides you. ";
  231. next;
  232. mes "[Vicious]";
  233. mes "You have a ^3131FF7 minutes^000000 battle time.";
  234. next;
  235. mes "[Vicious]";
  236. mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
  237. mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
  238. next;
  239. mes "[Vicious]";
  240. mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Remember that.";
  241. next;
  242. mes "[Vicious]";
  243. mes "Okay, take care now.";
  244. close;
  245. }
  246. arena_room,147,49,3 script Helper Epin 727,{
  247. mes "[Epin]";
  248. mes "Good day,";
  249. mes "I am a helper of Lv 80 arena stage and my name is Epin.";
  250. mes "I like reading and I am 19 years old...huh...? Don't you want to hear about me...?";
  251. next;
  252. emotion ET_CRY;
  253. mes "[Epin]";
  254. mes "Okay...";
  255. next;
  256. mes "[Epin]";
  257. mes "This ^3131FFLv 80 arena stage^000000";
  258. mes "is accessable to characters from ^FF0000level 80^000000 to ^FF0000level "+(checkre(0)?"160":"99")+"^000000.";
  259. next;
  260. mes "[Epin]";
  261. mes "This level limitation is to prevent high level characters abusing low level arena stages. I hope you will understand.";
  262. mes "Also we accept an entrance fee, 1,000 zeny.";
  263. next;
  264. mes "[Epin]";
  265. mes "Let me introduce you about the play rules of arena.";
  266. next;
  267. mes "[Epin]";
  268. mes "^3131FFWait in a chat room for your turn coming.^000000";
  269. mes "When it's your turn, you will be automatically warped to an arena map.";
  270. next;
  271. mes "[Epin]";
  272. mes "As immediately as you enter, a timer to check your play time will be activated.";
  273. mes "Please follow what ^3131FFActus^000000 guides you. ";
  274. next;
  275. mes "[Epin]";
  276. mes "You have a ^3131FF8 minutes^000000 battle time.";
  277. next;
  278. mes "[Epin]";
  279. mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
  280. mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
  281. next;
  282. mes "[Epin]";
  283. mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
  284. next;
  285. mes "[Epin]";
  286. mes "I hope you will have a good time.";
  287. close;
  288. }
  289. arena_room,158,93,5 script Helper Lunic 828,{
  290. mes "[Lunic]";
  291. mes "Welcome to party arena stage.";
  292. mes "I hope you will listen carefully to my introduction";
  293. mes "since this party arena stage is a little bit different from player mode stages.";
  294. next;
  295. mes "[Lunic]";
  296. mes "^3131FFParty Arena Stage^000000";
  297. mes "is accessible to players from ^FF0000level 10^000000 to ^FF0000level "+(checkre(0)?"160":"99")+"^000000.";
  298. next;
  299. mes "[Lunic]";
  300. mes "Also, arena will be not be started until all of 5 party members enter the room. We accept an entrance fee 1,000 zeny.";
  301. next;
  302. mes "[Lunic]";
  303. mes "Let me introduce you about the play rules of arena.";
  304. next;
  305. mes "[Lunic]";
  306. mes "^3131FFGroup a party with your friends and wait in a chat room^000000.";
  307. mes "You must form a party beforehand. If you didn't do, you could still play but you would have a lot of inconvenience.";
  308. next;
  309. mes "[Lunic]";
  310. mes "Also please remember 5 players automatically warped to the arena room will be in order of ^FF0000entering a chat room^000000 not in order of ^FF0000party^000000. Please remember that.";
  311. next;
  312. mes "[Lunic]";
  313. mes "And please form a party with ^3131FF5 players^000000 before you enter a chat room.";
  314. next;
  315. mes "[Lunic]";
  316. mes "When it becomes your turn, you will be warped into a small map where a warp and a help NPC are located.";
  317. mes "In case you enter with members of a different party, use the warp to escape the map. Then you will return to the waiting room.";
  318. next;
  319. mes "[Lunic]";
  320. mes "In case you enter with your party members, please proceed speaking with the help NPC in the small map.";
  321. mes "The help NPC is only accessible to talk ^FF0000 1 player ^000000at a time.";
  322. next;
  323. mes "[Lunic]";
  324. mes "The NPC will guide you and your party members to the actual arena room.";
  325. mes "However, if anyone in the party ^3131FFdoes not have enough money to pay the entrance fee, he will be warped outside^000000.";
  326. next;
  327. mes "[Lunic]";
  328. mes "Also be aware that you can only stay inside the map for ^FF0000 1 minute^000000.";
  329. next;
  330. mes "[Lunic]";
  331. mes "As immediately as you enter the arena map, a timer which calculates your battle time will be activated.";
  332. mes "Please follow what ^3131FFSlipslowrun^000000 guides you. ";
  333. next;
  334. mes "[Lunic]";
  335. mes "You will have ^3131FF10 minutes^000000 to clear the stage however it is not that easy to do. And you're advised to use the time wisely.";
  336. next;
  337. mes "[Lunic]";
  338. mes "After you clear every room including a boss room, you will be warped again to an ^3131FFending waiting room^000000.";
  339. mes "You can only allow to stay in the waiting room for ^3131FF1 minute^000000, please hurry up to receive the arena points and leave.";
  340. next;
  341. mes "[Lunic]";
  342. mes "If you stay over 1 minute inside the ending waiting room, you will be forced outside and will not receive any arena points. Please remember that.";
  343. next;
  344. mes "[Lunic]";
  345. mes "Besides, if a party make a new record on time to clear the map,";
  346. mes "^3131FFthe party master^000000 can record ^3131FFthe party name^000000.";
  347. next;
  348. mes "[Lunic]";
  349. mes "In this case, if a party has more than one master or none, it is impossible to write ^FF0000the top party record^000000.";
  350. mes "Therefore, it is strongly suggested to form one party before entering the arena map.";
  351. next;
  352. mes "[Lunic]";
  353. mes "Thank you for listening and";
  354. mes "I hope you will have a good time.";
  355. close;
  356. }
  357. arena_room,158,82,1 script Helper Lonik 828,{
  358. emotion ET_BEST;
  359. mes "[Lonik]";
  360. mes "Tah dah! Here I am!";
  361. next;
  362. mes "[Lonik]";
  363. mes "You are curious if there is anyone inside or not, aren't you?";
  364. next;
  365. mes "[Lonik]";
  366. mes "My answer is...";
  367. mes ".............";
  368. if (getmapusers("force_1-2")) {
  369. emotion ET_O;
  370. mes "Yes!";
  371. mes "There is someone inside.";
  372. next;
  373. mes "[Lonik]";
  374. mes "You'd better wait a little bit longer!";
  375. } else {
  376. emotion ET_X;
  377. mes "No!";
  378. mes "Go for it, good luck!";
  379. }
  380. close;
  381. }
  382. sec_in02,72,180,3 script Arena Manager#arena 802,{
  383. set .@i, callfunc("F_GM_NPC",1357,0);
  384. if (.@i == -1) {
  385. mes "[Arena Manager]";
  386. mes "Command has been canceled.";
  387. close;
  388. } else if (.@i == 0) {
  389. mes "Password is incorrect.";
  390. close;
  391. } else {
  392. mes "[Arena Manager]";
  393. mes "Select an option.";
  394. next;
  395. switch(select("Restart arena:Rearrange the Ranking Time")) {
  396. case 1:
  397. switch(select("Lv 50:Lv 60:Lv 70:Lv 80:Party Mode")) {
  398. case 1:
  399. set .@arena,50;
  400. break;
  401. case 2:
  402. set .@arena,60;
  403. break;
  404. case 3:
  405. set .@arena,70;
  406. break;
  407. case 4:
  408. set .@arena,80;
  409. break;
  410. case 5:
  411. mes "[Arena Manager]";
  412. mes "== Caution ==";
  413. mes "You have chosen to restart party arena stage.";
  414. mes "Do you wish to proceed?";
  415. next;
  416. switch(select("Yes:No")) {
  417. case 1:
  418. donpcevent "Ponox::OnStart";
  419. mes "[Arena Manager]";
  420. mes "The arena stage has been successfuly reactivated.";
  421. close;
  422. case 2:
  423. mes "[Arena Manager]";
  424. mes "Command has been canceled.";
  425. close;
  426. }
  427. }
  428. mes "[Arena Manager]";
  429. mes "== Caution ==";
  430. mes "You have chosen to restart Lv "+.@arena+" arena stage.";
  431. mes "Do you wish to proceed?";
  432. next;
  433. switch(select("Yes:No")) {
  434. case 1:
  435. donpcevent "Lv"+.@arena+" Waiting Room::OnStart";
  436. mes "[Arena Manager]";
  437. mes "The arena stage has been successfuly reactivated.";
  438. close;
  439. case 2:
  440. mes "[Arena Manager]";
  441. mes "Command has been canceled.";
  442. close;
  443. }
  444. case 2:
  445. mes "[Arena Manager]";
  446. mes "== Caution ==";
  447. mes "^CE0000You have chosen to rearrange the ranking time. Make sure this is not a good decision unless if something serious was happened!^000000";
  448. next;
  449. mes "[Arena Manager]";
  450. mes "Are you sure you want to rearrange the ranking time?";
  451. next;
  452. switch(select("No:Yes")) {
  453. case 1:
  454. mes "[Arena Manager]";
  455. mes "Phew~ :)";
  456. close;
  457. case 2:
  458. switch(select("Lv 50:Lv 60:Lv 70:Lv 80:Party Mode")) {
  459. case 1:
  460. set .@min$,"$top50min";
  461. set .@sec$,"$top50sec";
  462. set .@mode$,"Lv 50";
  463. break;
  464. case 2:
  465. set .@min$,"$top60min";
  466. set .@sec$,"$top60sec";
  467. set .@mode$,"Lv 60";
  468. break;
  469. case 3:
  470. set .@min$,"$top70min";
  471. set .@sec$,"$top70sec";
  472. set .@mode$,"Lv 70";
  473. break;
  474. case 4:
  475. set .@min$,"$top80min";
  476. set .@sec$,"$top80sec";
  477. set .@mode$,"Lv 80";
  478. break;
  479. case 5:
  480. set .@min$,"$top_ptmin";
  481. set .@sec$,"$top_ptsec";
  482. set .@mode$,"party";
  483. break;
  484. }
  485. mes "[Arena Manager]";
  486. // Doesn't work with Athena's implementation.
  487. //mes "Please enter 0 to cancel.";
  488. //mes "If not, please enter a value for minutes first and then seconds.";
  489. mes "Please enter a value for minutes first and then seconds.";
  490. next;
  491. input .@arenamin;
  492. setd .@min$,.@arenamin;
  493. input .@arenasec;
  494. setd .@sec$,.@arenasec;
  495. mes "[Arena Manager]";
  496. mes "Current "+.@mode$+" ranker's play time has been rearranged to ^FF0000"+getd(.@min$)+"^000000 minutes and ^FF0000"+getd(.@sec$)+"^000000 seconds.";
  497. close;
  498. }
  499. }
  500. }
  501. }
  502. sec_in02,79,171,3 script Reward Manager#arena 802,{
  503. set .@i, callfunc("F_GM_NPC",1357,0);
  504. if (.@i == -1) {
  505. mes "[Reward Manager]";
  506. mes "Command has been canceled.";
  507. close;
  508. } else if (.@i == 0) {
  509. mes "[Reward Manager]";
  510. mes "Password is incorrect.";
  511. close;
  512. } else {
  513. mes "[Reward Manager]";
  514. mes "You have chosen to hide the teleporter NPC.";
  515. next;
  516. switch(select("Cancel:Yes:Turn on")) {
  517. case 1:
  518. mes "[Reward Manager]";
  519. mes "You have canceled the command.";
  520. close;
  521. case 2:
  522. mes "[Reward Manager]";
  523. mes "NPC has been hidden.";
  524. disablenpc "Teleporter#arena";
  525. close;
  526. case 3:
  527. mes "[Reward Manager]";
  528. mes "NPC has been enabled.";
  529. enablenpc "Teleporter#arena";
  530. close;
  531. }
  532. }
  533. }
  534. arena_room,105,93,5 script Teleporter#arena 55,{
  535. mes "[Teleporter]";
  536. mes "I can move you to the reward arena!";
  537. mes "Would you like to go there?";
  538. next;
  539. switch(select("Yes:No.")) {
  540. case 1:
  541. mes "[Teleporter]";
  542. mes "Let me guide you.";
  543. close2;
  544. warp "prt_are_in",60,14;
  545. end;
  546. case 2:
  547. mes "[Teleporter]";
  548. mes "No problem, feel free to come back any time.";
  549. close;
  550. }
  551. }
  552. prt_are_in,98,14,3 script Givu#arena 728,{
  553. if (checkweight(526,5) == 0) {
  554. mes "- Wait a moment! -";
  555. mes "- Currently you're carrying -";
  556. mes "- too many items with you. -";
  557. mes "- Please lighten your weight -";
  558. mes "- and try again. -";
  559. close;
  560. }
  561. mes "[Givu]";
  562. mes "Hello, there. Welcome to the world of Arena.";
  563. mes "My name is Givu, I am in charge of arena point exchange program.";
  564. next;
  565. mes "[Givu]";
  566. mes "You can exchange your arena points with various stuffs.";
  567. mes "Please choose a menu below.";
  568. next;
  569. switch(select("Exchange with Consumable items:Exchange with EXP points:Take a Souvenir Picture:Check Current Arena Points")) {
  570. case 1:
  571. mes "[Givu]";
  572. mes "What consumable item do you wish to exchange?";
  573. next;
  574. switch(select("Honey:Royal Jelly:Mastela Fruit:Condensed White Potion:Anodyne:Yggdrasil Seed:Yggdrasilberry:Old Blue Box:Old Purple Box:Old Card Album")) {
  575. case 1: callfunc "Func_Are_Rew",518,5,20;
  576. case 2: callfunc "Func_Are_Rew",526,5,30;
  577. case 3: callfunc "Func_Are_Rew",522,5,30;
  578. case 4: callfunc "Func_Are_Rew",547,8,30;
  579. case 5: callfunc "Func_Are_Rew",605,3,20;
  580. case 6: callfunc "Func_Are_Rew",608,1,20;
  581. case 7: callfunc "Func_Are_Rew",607,1,40;
  582. case 8: callfunc "Func_Are_Rew",603,1,100;
  583. case 9: callfunc "Func_Are_Rew",617,1,300;
  584. case 10: callfunc "Func_Are_Rew",616,1,1000;
  585. }
  586. case 2:
  587. mes "[Givu]";
  588. mes "Would you like to exchange your arena points with experience points?";
  589. mes "It requires 40 arena points.";
  590. next;
  591. switch(select("Cancel:Yes")) {
  592. case 1:
  593. mes "[Givu]";
  594. mes "You have canceled your request.";
  595. close;
  596. case 2:
  597. if (arena_point < 40) {
  598. mes "[Givu]";
  599. mes "You do not have enough arena points.";
  600. mes "Please check the total amount of arena points you have.";
  601. close;
  602. }
  603. set arena_point, arena_point-40;
  604. if (checkre(3)) {
  605. if (BaseLevel < 70) getexp 300,0;
  606. else if (BaseLevel < 80) getexp 900,0;
  607. else if (BaseLevel < 90) getexp 1000,0;
  608. else getexp 3000,0;
  609. } else {
  610. if (BaseLevel < 70) getexp 3000,0;
  611. else if (BaseLevel < 80) getexp 9000,0;
  612. else if (BaseLevel < 90) getexp 10000,0;
  613. else getexp 30000,0;
  614. }
  615. mes "[Givu]";
  616. mes "You have gained experience points. Thank you.";
  617. close;
  618. }
  619. case 3:
  620. mes "[Givu]";
  621. mes "You have chosen a souvenir picture services.";
  622. next;
  623. switch(select("About souvenir Picture Services:Take a picture")) {
  624. case 1:
  625. mes "[Givu]";
  626. mes "Do you see stairs at the right side of me?";
  627. next;
  628. mes "[Givu]";
  629. mes "At the stairs, you can take a screenshot with an NPC or a monster.";
  630. next;
  631. mes "[Givu]";
  632. mes "When you choose an NPC or a monster, it will show some emotion icons ^FF0000for 1 minute^000000.";
  633. next;
  634. mes "[Givu]";
  635. mes "Don't miss the chance to take a picture with your favorite NPC!";
  636. close;
  637. case 2:
  638. if ($@arena_picture) {
  639. mes "[Givu]";
  640. mes "A souvenir picture services is on progress. Please wait.";
  641. close;
  642. }
  643. mes "[Givu]";
  644. mes "Please choose an NPC at below.";
  645. mes "The NPC will appear for 1 minute and this service requires 10 arena points.";
  646. next;
  647. switch(select("Baphomet:Dark Lord:Doppelganger:Eddga:Dracula:Samurai:Stormy Knight:Phreeoni:Girl:Valkyrie")) {
  648. case 1: set $@arena_picture_id,1039; break;
  649. case 2: set $@arena_picture_id,1272; break;
  650. case 3: set $@arena_picture_id,1046; break;
  651. case 4: set $@arena_picture_id,1115; break;
  652. case 5: set $@arena_picture_id,1389; break;
  653. case 6: set $@arena_picture_id,1492; break;
  654. case 7: set $@arena_picture_id,1251; break;
  655. case 8: set $@arena_picture_id,1159; break;
  656. case 9: set $@arena_picture_id,6969; break;
  657. case 10: set $@arena_picture_id,7777; break;
  658. }
  659. if (arena_point < 10) {
  660. mes "[Givu]";
  661. mes "You do not have enough arena points.";
  662. mes "Please check the total amount of arena points you have.";
  663. close;
  664. }
  665. mes "[Givu]";
  666. if ($@arena_picture_id == 6969)
  667. mes "Would you like to take a picture with pretty girls?";
  668. else if ($@arena_picture_id == 7777)
  669. mes "Would you like to take a picture with a Valkyrie?";
  670. else
  671. mes "Would you like to take a picture with a "+getmonsterinfo($@arena_picture_id, MOB_NAME)+"?";
  672. next;
  673. switch(select("Yes:No")) {
  674. case 1:
  675. set arena_point, arena_point-10;
  676. set $@arena_picture,1;
  677. enablenpc "#arena_"+$@arena_picture_id+"";
  678. movenpc "#arena_"+$@arena_picture_id+"",96,28;
  679. if ($@arena_picture_id == 6969) {
  680. enablenpc "#arena_ss_2";
  681. enablenpc "#arena_ss_3";
  682. enablenpc "#arena_ss_4";
  683. }
  684. donpcevent "npctime#arena::OnStart";
  685. mes "[Givu]";
  686. mes "Thank you.";
  687. close;
  688. case 2:
  689. mes "[Givu]";
  690. mes "Would you like to consider a little longer?";
  691. close;
  692. }
  693. }
  694. case 4:
  695. mes "[Givu]";
  696. mes "Let me check "+strcharinfo(0)+"'s current arena points.";
  697. next;
  698. mes "[Givu]";
  699. mes ""+strcharinfo(0)+" has total ^3131FF"+arena_point+"^000000 points.";
  700. close;
  701. }
  702. }
  703. prt_are_in,1,1,5 script #arena_1039 1039,{
  704. end;
  705. OnInit:
  706. disablenpc "#arena_6969";
  707. disablenpc "#arena_ss_2";
  708. disablenpc "#arena_ss_3";
  709. disablenpc "#arena_ss_4";
  710. disablenpc "#arena_1272";
  711. disablenpc "#arena_1046";
  712. disablenpc "#arena_1115";
  713. disablenpc "#arena_1389";
  714. disablenpc "#arena_1492";
  715. disablenpc "#arena_1251";
  716. disablenpc "#arena_1159";
  717. disablenpc "#arena_7777";
  718. disablenpc "#arena_1039";
  719. end;
  720. OnHeart:
  721. emotion ET_THROB;
  722. end;
  723. OnSci:
  724. emotion ET_SCISSOR;
  725. end;
  726. OnBest:
  727. emotion ET_BEST;
  728. end;
  729. OnOmg:
  730. emotion ET_HUK;
  731. end;
  732. OnKik:
  733. emotion ET_KIK;
  734. end;
  735. OnKis:
  736. emotion ET_CHUP;
  737. end;
  738. }
  739. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_6969 714
  740. prt_are_in,94,26,5 duplicate(#arena_1039) #arena_ss_2 714
  741. prt_are_in,100,28,3 duplicate(#arena_1039) #arena_ss_3 714
  742. prt_are_in,102,26,3 duplicate(#arena_1039) #arena_ss_4 714
  743. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1272 1272
  744. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1046 1046
  745. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1115 1115
  746. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1389 1389
  747. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1492 1492
  748. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1251 1251
  749. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_1159 1159
  750. prt_are_in,1,1,5 duplicate(#arena_1039) #arena_7777 811
  751. - script npctime#arena -1,{
  752. OnStop:
  753. stopnpctimer;
  754. end;
  755. OnStart:
  756. initnpctimer;
  757. end;
  758. OnTimer2000:
  759. mapannounce "prt_are_in","Givu : You should keep time with popping emotion icons~",1,0xFFCE00;
  760. end;
  761. OnTimer5000:
  762. mapannounce "prt_are_in","Emoticon : /lv",1,0xFFCE00;
  763. end;
  764. OnTimer7000:
  765. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  766. end;
  767. OnTimer8000:
  768. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  769. end;
  770. OnTimer9000:
  771. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  772. end;
  773. OnTimer10000:
  774. mapannounce "prt_are_in"," ",1,0xFFCE00;
  775. donpcevent "#arena_"+$@arena_picture_id+"::OnHeart";
  776. if ($@arena_picture_id == 6969) {
  777. donpcevent "#arena_ss_2::OnHeart";
  778. donpcevent "#arena_ss_3::OnHeart";
  779. donpcevent "#arena_ss_4::OnHeart";
  780. }
  781. end;
  782. OnTimer15000:
  783. mapannounce "prt_are_in","Emoticon : /gawi",1,0xFFCE00;
  784. end;
  785. OnTimer17000:
  786. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  787. end;
  788. OnTimer18000:
  789. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  790. end;
  791. OnTimer19000:
  792. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  793. end;
  794. OnTimer20000:
  795. mapannounce "prt_are_in"," ",1,0xFFCE00;
  796. donpcevent "#arena_"+$@arena_picture_id+"::OnSci";
  797. if ($@arena_picture_id == 6969) {
  798. donpcevent "#arena_ss_2::OnSci";
  799. donpcevent "#arena_ss_3::OnSci";
  800. donpcevent "#arena_ss_4::OnSci";
  801. }
  802. end;
  803. OnTimer25000:
  804. mapannounce "prt_are_in","Emoticon : /no1",1,0xFFCE00;
  805. end;
  806. OnTimer27000:
  807. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  808. end;
  809. OnTimer28000:
  810. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  811. end;
  812. OnTimer29000:
  813. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  814. end;
  815. OnTimer30000:
  816. mapannounce "prt_are_in"," ",1,0xFFCE00;
  817. donpcevent "#arena_"+$@arena_picture_id+"::OnBest";
  818. if ($@arena_picture_id == 6969) {
  819. donpcevent "#arena_ss_2::OnBest";
  820. donpcevent "#arena_ss_3::OnBest";
  821. donpcevent "#arena_ss_4::OnBest";
  822. }
  823. end;
  824. OnTimer35000:
  825. mapannounce "prt_are_in","Emoticon : /huk",1,0xFFCE00;
  826. end;
  827. OnTimer37000:
  828. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  829. end;
  830. OnTimer38000:
  831. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  832. end;
  833. OnTimer39000:
  834. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  835. end;
  836. OnTimer40000:
  837. mapannounce "prt_are_in"," ",1,0xFFCE00;
  838. donpcevent "#arena_"+$@arena_picture_id+"::OnOmg";
  839. if ($@arena_picture_id == 6969) {
  840. donpcevent "#arena_ss_2::OnOmg";
  841. donpcevent "#arena_ss_3::OnOmg";
  842. donpcevent "#arena_ss_4::OnOmg";
  843. }
  844. end;
  845. OnTimer45000:
  846. mapannounce "prt_are_in","Emoticon : /gg",1,0xFFCE00;
  847. end;
  848. OnTimer47000:
  849. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  850. end;
  851. OnTimer48000:
  852. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  853. end;
  854. OnTimer49000:
  855. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  856. end;
  857. OnTimer50000:
  858. mapannounce "prt_are_in"," ",1,0xFFCE00;
  859. donpcevent "#arena_"+$@arena_picture_id+"::OnKik";
  860. if ($@arena_picture_id == 6969) {
  861. donpcevent "#arena_ss_2::OnKik";
  862. donpcevent "#arena_ss_3::OnKik";
  863. donpcevent "#arena_ss_4::OnKik";
  864. }
  865. end;
  866. OnTimer55000:
  867. mapannounce "prt_are_in","Emoticon : /kis",1,0xFFCE00;
  868. end;
  869. OnTimer57000:
  870. mapannounce "prt_are_in"," 3 ",1,0xFFCE00;
  871. end;
  872. OnTimer58000:
  873. mapannounce "prt_are_in"," 2 ",1,0xFFCE00;
  874. end;
  875. OnTimer59000:
  876. mapannounce "prt_are_in"," 1 ",1,0xFFCE00;
  877. end;
  878. OnTimer60000:
  879. mapannounce "prt_are_in"," ",1,0xFFCE00;
  880. donpcevent "#arena_"+$@arena_picture_id+"::OnKis";
  881. if ($@arena_picture_id == 6969) {
  882. donpcevent "#arena_ss_2::OnKis";
  883. donpcevent "#arena_ss_3::OnKis";
  884. donpcevent "#arena_ss_4::OnKis";
  885. }
  886. end;
  887. OnTimer62000:
  888. mapannounce "prt_are_in","Time is over. Thank you for using my services.",1,0xFFCE00;
  889. movenpc "#arena_"+$@arena_picture_id+"",1,1;
  890. donpcevent "#arena_1039::OnInit";
  891. set $@arena_picture,0;
  892. stopnpctimer;
  893. end;
  894. }
  895. sec_in02,72,171,3 script Picture Manager#arena 802,{
  896. set .@i, callfunc("F_GM_NPC",1357,0);
  897. if (.@i == -1) {
  898. mes "[Picture Manager]";
  899. mes "Command has been canceled.";
  900. close;
  901. } else if (.@i == 0) {
  902. mes "[Picture Manager]";
  903. mes "Password is incorrect.";
  904. close;
  905. } else {
  906. mes "[Picture Manager]";
  907. mes "Would you like to reset Picture Reward variable to 0?";
  908. next;
  909. switch(select("Cancel:Yes")) {
  910. case 1:
  911. mes "[Picture Manager]";
  912. mes "You have canceled your request.";
  913. close;
  914. case 2:
  915. mes "[Picture Manager]";
  916. mes "Picture rewarding reseted.";
  917. set $@arena_picture,0;
  918. close;
  919. }
  920. }
  921. }
  922. sec_in02,76,176,5 script Live Broadcast#arena 802,{
  923. callfunc "F_GM_NPC";
  924. mes "[Live Broadcast]";
  925. mes "Currently there are "+getmapusers("force_1-1")+" people in Lv 50s map.";
  926. mes "Currently there are "+getmapusers("force_2-1")+" people in Lv 60s map.";
  927. mes "Currently there are "+getmapusers("force_3-1")+" people in Lv 70s map.";
  928. mes "Currently there are "+getmapusers("force_4-1")+" people in Lv 80s map.";
  929. mes "Currently there are "+getmapusers("force_1-2")+" people in party map.";
  930. mes "Currently there are "+getmapusers("arena_room")+" people in the waiting room.";
  931. close;
  932. }
  933. function script Func_Are_Rew {
  934. .@item_id = getarg(0);
  935. .@amount = getarg(1);
  936. .@arena_point = getarg(2);
  937. mes "[Givu]";
  938. mes "Would you like to exchange your arena points with "+ getitemname(.@item_id) +"?";
  939. mes "You can exchange ^3131FF"+ .@arena_point +" arena points with "+ .@amount +" "+ getitemname(.@item_id) +"^000000.";
  940. mes "If you wish to cancel, please enter 0. If you don't, please enter how many ^3131FFtimes^000000 of arena points you wish to spend.";
  941. next;
  942. input .@reward;
  943. if (.@reward <= 0) {
  944. mes "[Givu]";
  945. mes "You have canceled your request.";
  946. close;
  947. } else if (.@reward > 1500) {
  948. mes "[Givu]";
  949. mes "You have exceeded the maximum capacity.";
  950. close;
  951. }
  952. if (arena_point < (.@reward * .@arena_point)) {
  953. mes "[Givu]";
  954. mes "You do not have enough arena points.";
  955. mes "Please check the total amount of arena points you have.";
  956. close;
  957. }
  958. arena_point = arena_point - (.@reward * .@arena_point);
  959. getitem .@item_id,.@reward * .@amount;
  960. mes "[Givu]";
  961. mes "Thank you, please come again.";
  962. close;
  963. }