mvm.txt 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896
  1. //===== eAthena Script =======================================
  2. //= Monster vs Monster
  3. //===== By: ==================================================
  4. //= acky - god@acky.com
  5. //===== Current Version: =====================================
  6. //= 1.1.3
  7. //===== Compatible With: =====================================
  8. //= eAthena SVN
  9. //===== Description: =========================================
  10. //= Players train monsters and battle other players.
  11. //= Experience can be earned and monsters upgraded.
  12. //===== Additional Comments: =================================
  13. //= To add monsters, add lines after the commends labled:
  14. //= '// #. ---Change to Add Monsters--- //'
  15. //= There are 6 steps to add a monster at the moment.
  16. //= Added Duel Room
  17. //= ---------------------------------------------------------
  18. //= Script is messy! Be careful!
  19. //= 1.1.2 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
  20. //= 1.1.3 Removed Duplicate Names [Silent]
  21. //= 1.1.4 Fixed SummonPad syntax. [KarLaeda]
  22. //============================================================
  23. // Entrance //
  24. prontera.gat,158,193,6 script Monster Arena 702,{
  25. mes "[Monster Arena]";
  26. mes "Would you like to enter the Monster Arena?";
  27. mes "Currently ^FF0000" + getmapusers("gon_test.gat") + "^000000 players";
  28. mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry.";
  29. L_Menu:
  30. next;
  31. menu "Enter",-,"Information",L_Info,"Cancel",L_Exit;
  32. set @marena,1;
  33. savepoint "gon_test.gat",56,99;
  34. set @battle,0;
  35. warp "gon_test.gat",57,99;
  36. close;
  37. L_Exit:
  38. mes "[Monster Arena]";
  39. mes "Come back any time.";
  40. close;
  41. L_Info:
  42. mes "[Monster Arena]";
  43. mes "You must purchase a pet from the Monster Tamer to start fighting.";
  44. next;
  45. mes "[Monster Arena]";
  46. mes "Then talk to the Usher and tell him you would like to compete.";
  47. next;
  48. mes "[Monster Arena]";
  49. mes "Talk to the referee to summon your monster.";
  50. mes "Once your monster has fought, you must talk to the Usher again and choose to spectate.";
  51. next;
  52. mes "[Monster Arena]";
  53. mes "Talk to the Monster Trainer, he will ask you to heal your pet.";
  54. next;
  55. mes "[Monster Arena]";
  56. mes "To do this, click the Nurse repearedly until it says your pet is healed.";
  57. next;
  58. mes "[Monster Arena]";
  59. mes "The more monsters you kill, the more exp you get and the quicker you can upgrade.";
  60. next;
  61. mes "[Monster Arena]";
  62. mes "The stronger your monster is, the longer it will take to summon again.";
  63. goto L_Menu;
  64. }
  65. // Monster Summon Function //
  66. function script monstersummon {
  67. // 1. ---Change to Add Monsters--- //
  68. if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled";
  69. if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled";
  70. if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled";
  71. if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled";
  72. if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled";
  73. if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled";
  74. if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled";
  75. if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled";
  76. if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled";
  77. if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled";
  78. if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled";
  79. if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled";
  80. if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled";
  81. if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled";
  82. if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled";
  83. if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled";
  84. if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled";
  85. if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled";
  86. if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled";
  87. if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled";
  88. if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1017, "OnThiefFemaleKilled";
  89. close;
  90. }
  91. // Referee //
  92. - script monsterreferee 61,{
  93. if (@fighting == 1) end;
  94. if (@battle == 1) goto L_Start;
  95. end;
  96. L_Start:
  97. mes "[Referee]";
  98. mes "Your monster is:";
  99. // 2. ---Change to Add Monsters--- //
  100. if (#monster == 10) mes "Poring";
  101. if (#monster == 20) mes "Faber";
  102. if (#monster == 30) mes "Lunatic";
  103. if (#monster == 31) mes "Drops";
  104. if (#monster == 32) mes "Picky";
  105. if (#monster == 40) mes "ChonChon";
  106. if (#monster == 41) mes "Super Picky";
  107. if (#monster == 42) mes "Willow";
  108. if (#monster == 50) mes "Roda Frog";
  109. if (#monster == 51) mes "Condor";
  110. if (#monster == 60) mes "Thief Bug Larva";
  111. if (#monster == 70) mes "Savage Babe";
  112. if (#monster == 80) mes "Familiar";
  113. if (#monster == 81) mes "Hornet";
  114. if (#monster == 90) mes "Desert Wolf Puppy";
  115. if (#monster == 91) mes "Spore";
  116. if (#monster == 92) mes "Rocker";
  117. if (#monster == 100) mes "Skeleton";
  118. if (#monster == 101) mes "Plankton";
  119. if (#monster == 102) mes "Antonio";
  120. if (#monster == 103) mes "Thief Bug Female";
  121. mes "Would you like to fight?";
  122. next;
  123. menu "Fight",-,"Cancel",L_Exit;
  124. set @fighting,1;
  125. set #heal,1;
  126. set @special,rand (100); // Chance of special summon
  127. if (@special == 1) goto Special1;
  128. if (@special == 2) goto Special2;
  129. if (@special == 3) goto Special3;
  130. if (@special == 4) goto Special4;
  131. if (@special == 5) goto Special5;
  132. callfunc "monstersummon";
  133. close;
  134. // Special Summons //
  135. Special1:
  136. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  137. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  138. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  139. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  140. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  141. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  142. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  143. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  144. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  145. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  146. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  147. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  148. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  149. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  150. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  151. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  152. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  153. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  154. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  155. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  156. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  157. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  158. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  159. summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled";
  160. close;
  161. Special2:
  162. summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled";
  163. close;
  164. Special3:
  165. summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled";
  166. close;
  167. Special4:
  168. summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled";
  169. close;
  170. Special5:
  171. summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled";
  172. close;
  173. L_Exit:
  174. mes "[Referee]";
  175. mes "Alright";
  176. close;
  177. }
  178. gon_test.gat,56,91,6 duplicate(monsterreferee) Referee#01 61
  179. // Usher //
  180. gon_test.gat,58,94,6 script Usher 86,{
  181. set @marena,1;
  182. mes "[Usher]";
  183. mes "What would you like to do?";
  184. next;
  185. menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel;
  186. if (#monster == 0) goto L_NoMon;
  187. if (#heal == 1) goto L_Heal;
  188. if (#monster < 40) goto L_Low;
  189. if (#monster > 30 && #monster < 80) goto L_Med;
  190. if (#monster > 70) goto L_High;
  191. L_Low:
  192. menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High;
  193. close;
  194. L_Med:
  195. menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High;
  196. close;
  197. L_High:
  198. savepoint "gon_test.gat",56,99;
  199. set @battle,1;
  200. warp "gon_test.gat",72,87;
  201. atcommand strcharinfo(0) + "@option 64 0 64";
  202. close;
  203. L_4to6:
  204. savepoint "gon_test.gat",56,99;
  205. set @battle,1;
  206. warp "gon_test.gat",57,86;
  207. atcommand strcharinfo(0) + "@option 64 0 64";
  208. close;
  209. L_1to3:
  210. savepoint "gon_test.gat",56,99;
  211. set @battle,1;
  212. warp "gon_test.gat",43,87;
  213. atcommand strcharinfo(0) + "@option 64 0 64";
  214. close;
  215. L_Exit:
  216. savepoint "prontera.gat",149,186;
  217. set @battle,0;
  218. atcommand strcharinfo(0) + "@option 0 0 0";
  219. warp "prontera.gat",149,186;
  220. end;
  221. close;
  222. L_Spec:
  223. atcommand strcharinfo(0) + "@option 0 0 0";
  224. savepoint "gon_test.gat",56,99;
  225. set @battle,0;
  226. warp "gon_test.gat",57,99;
  227. close;
  228. L_NoMon:
  229. mes "[Usher]";
  230. mes "You haven't got a monster, you can only spectate.";
  231. close;
  232. L_Heal:
  233. mes "[Usher]";
  234. mes "You have to heal your monster before you can fight again.";
  235. close;
  236. L_Cancel:
  237. close;
  238. }
  239. // Monster Trainer //
  240. gon_test.gat,52,103,6 script Monster Trainer 87,{
  241. mes "[Monster Trainer]";
  242. if (#monster != 0) goto L_Mon;
  243. mes "Welcome to the monster arena, would you like to start training?";
  244. next;
  245. menu "Yes",-,"No",L_Exit;
  246. mes "[Monster Trainer]";
  247. mes "New trainers may only start with Porings.";
  248. mes "They cost 1000z, Would you like to buy one?";
  249. next;
  250. menu "Yes",-,"No",L_Exit;
  251. if (zeny < 1000) goto L_NoZeny;
  252. set zeny,zeny-1000;
  253. set #monster,10;
  254. mes "[Monster Trainer]";
  255. mes "Congratulations!";
  256. mes "When your Poring earns enough experience, talk to me to upgrade.";
  257. close;
  258. L_Mon:
  259. mes "Welcome back, " + strcharinfo(0) + ".";
  260. mes "Your monster has " + #monpoints + " exp points.";
  261. next;
  262. if (@fighting == 1) goto L_Heal;
  263. menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit;
  264. L_Abandon:
  265. mes "[Monster Trainer]";
  266. mes "Are you sure you want to abandon your monster?";
  267. next;
  268. menu "Yes",-,"No",L_Exit;
  269. set #monster,0;
  270. set #monpoints,0;
  271. mes "[Monster Trainer]";
  272. mes "Monster released into the wild.";
  273. close;
  274. L_Sell:
  275. mes "[Monster Trainer]";
  276. mes "You can sell your monster's experience for 100z each.";
  277. next;
  278. menu "Sell",-,"Cancel",L_Exit;
  279. mes "[Monster Trainer]";
  280. mes "You have: ^FF0000" + #monpoints + "^000000 experience points";
  281. mes "How many would you like to sell?";
  282. next;
  283. input @sellexp;
  284. if (@sellexp > #monpoints) goto L_NoExp;
  285. set #monpoints,#monpoints-@sellexp;
  286. set @sellearn,100*@sellexp; // Price of exp
  287. set zeny,zeny+@sellearn;
  288. mes "[Monster Trainer]";
  289. mes "You earned ^0000FF" + @sellearn + "^000000z.";
  290. close;
  291. L_NoExp:
  292. mes "[Monster Trainer]";
  293. mes "You do not have enough experience.";
  294. next;
  295. goto L_Exit;
  296. // Monster Upgrades //
  297. L_Upgrade:
  298. mes "[Monster Trainer]";
  299. // 3. ---Change to Add Monsters - May not be required--- //
  300. if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster.";
  301. if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster.";
  302. if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster.";
  303. if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster.";
  304. if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster.";
  305. if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster.";
  306. if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster.";
  307. if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster.";
  308. if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster.";
  309. next;
  310. menu "Continue",-,"Cancel",L_Exit;
  311. mes "[Monster Trainer]";
  312. // 4. ---Change to Add Monsters - May not be required--- //
  313. if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1;
  314. if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2;
  315. if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3;
  316. if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4;
  317. if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5;
  318. if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6;
  319. if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7;
  320. if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8;
  321. if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9;
  322. mes "Unable to upgrade.";
  323. close;
  324. // 5. ---Change to Add Monsters--- //
  325. L_Up1:
  326. set #monster,20;
  327. set #monpoints,#monpoints-10;
  328. mes "Upgraded to Fabre!";
  329. close;
  330. L_Up2:
  331. mes "Which monster would you like to upgrade to?";
  332. next;
  333. menu "Lunatic",U_Lunatic,"Drops",U_Drops,"Picky",U_Picky;
  334. U_Drops:
  335. set #monster,31;
  336. set #monpoints,#monpoints-20;
  337. mes "[Monster Trainer]";
  338. mes "Upgraded to Drops!";
  339. close;
  340. U_Picky:
  341. set #monster,32;
  342. set #monpoints,#monpoints-20;
  343. mes "[Monster Trainer]";
  344. mes "Upgraded to Picky!";
  345. close;
  346. U_Lunatic:
  347. set #monster,30;
  348. set #monpoints,#monpoints-20;
  349. mes "[Monster Trainer]";
  350. mes "Upgraded to Lunatic!";
  351. close;
  352. L_Up3:
  353. mes "Which monster would you like to upgrade to?";
  354. next;
  355. menu "ChonChon",U_ChonChon,"Super Picky",U_SPicky,"Willow",U_Willow;
  356. U_ChonChon:
  357. set #monster,40;
  358. set #monpoints,#monpoints-40;
  359. mes "[Monster Trainer]";
  360. mes "Upgraded to ChonChon!";
  361. close;
  362. U_SPicky:
  363. set #monster,41;
  364. set #monpoints,#monpoints-40;
  365. mes "[Monster Trainer]";
  366. mes "Upgraded to Super Picky!";
  367. close;
  368. U_Willow:
  369. set #monster,42;
  370. set #monpoints,#monpoints-40;
  371. mes "[Monster Trainer]";
  372. mes "Upgraded to Willow!";
  373. close;
  374. L_Up4:
  375. mes "Which monster would you like to upgrade to?";
  376. next;
  377. menu "Condor",U_Condor,"Roda Frog",U_Roda;
  378. U_Condor:
  379. set #monster,51;
  380. set #monpoints,#monpoints-80;
  381. mes "[Monster Trainer]";
  382. mes "Upgraded to Condor!";
  383. close;
  384. U_Roda:
  385. set #monster,50;
  386. set #monpoints,#monpoints-80;
  387. mes "[Monster Trainer]";
  388. mes "Upgraded to Roda Frog!";
  389. close;
  390. L_Up5:
  391. set #monster,60;
  392. set #monpoints,#monpoints-160;
  393. mes "Upgraded to Thief Bug Larva!";
  394. close;
  395. L_Up6:
  396. set #monster,70;
  397. set #monpoints,#monpoints-320;
  398. mes "Upgraded to Savage Babe!";
  399. close;
  400. L_Up7:
  401. mes "Which monster would you like to upgrade to?";
  402. next;
  403. menu "Familiar",U_Familiar,"Hornet",U_Hornet;
  404. U_Hornet:
  405. set #monster,81;
  406. set #monpoints,#monpoints-640;
  407. mes "[Monster Trainer]";
  408. mes "Upgraded to Hornet!";
  409. close;
  410. U_Familiar:
  411. set #monster,80;
  412. set #monpoints,#monpoints-640;
  413. mes "[Monster Trainer]";
  414. mes "Upgraded to Familiar!";
  415. close;
  416. L_Up8:
  417. mes "[Monster Trainer]";
  418. mes "Which monster would you like to upgrade to?";
  419. next;
  420. menu "Desert Wolf Puppy",U_Puppy,"Spore",U_Spore,"Rocker",U_Rocker;
  421. U_Spore:
  422. set #monster,91;
  423. set #monpoints,#monpoints-1280;
  424. mes "[Monster Trainer]";
  425. mes "Upgraded to Spore!";
  426. close;
  427. U_Rocker:
  428. set #monster,92;
  429. set #monpoints,#monpoints-1280;
  430. mes "[Monster Trainer]";
  431. mes "Upgraded to Rocker!";
  432. close;
  433. U_Puppy:
  434. set #monster,90;
  435. set #monpoints,#monpoints-1280;
  436. mes "[Monster Trainer]";
  437. mes "Upgraded to Desert Wolf Puppy!";
  438. close;
  439. L_Up9:
  440. mes "Which monster would you like to upgrade to?";
  441. next;
  442. menu "Skeleton",U_Skeleton,"Antonio",U_Antonio,"Plankton",U_Plankton,"Thief Bug Female",U_ThiefFemale;
  443. U_Plankton:
  444. set #monster,101;
  445. set #monpoints,#monpoints-2560;
  446. mes "[Monster Trainer]";
  447. mes "Upgraded to Plankton!";
  448. close;
  449. U_Antonio:
  450. set #monster,102;
  451. set #monpoints,#monpoints-2560;
  452. mes "[Monster Trainer]";
  453. mes "Upgraded to Antonio!";
  454. close;
  455. U_ThiefFemale:
  456. set #monster,103;
  457. set #monpoints,#monpoints-2560;
  458. mes "[Monster Trainer]";
  459. mes "Upgraded to Thief Bug Female!";
  460. close;
  461. U_Skeleton:
  462. set #monster,100;
  463. set #monpoints,#monpoints-2560;
  464. mes "[Monster Trainer]";
  465. mes "Upgraded to Skeleton!";
  466. close;
  467. L_NoZeny:
  468. mes "[Monster Trainer]";
  469. mes "You don't have enough zeny!";
  470. close;
  471. L_Exit:
  472. mes "[Monster Trainer]";
  473. mes "Goodbye.";
  474. close;
  475. L_Heal:
  476. mes "[Monster Trainer]";
  477. mes "Your monster needs to heal.";
  478. mes "It will heal faster if you click the nurse faster.";
  479. set #heal,1;
  480. close;
  481. }
  482. // Kill Trigger //
  483. // 6/Final. ---Change to Add Monsters--- //
  484. gon_test.gat,56,91,6 script OnPoringKilled -1,{
  485. if (@marena == 0) callfunc "illegalkill";
  486. set #monpoints,#monpoints+1;
  487. announce "You killed a Poring - Gained 1 exp",19;
  488. callfunc "duelkill";
  489. }
  490. gon_test.gat,56,91,6 script OnFaberKilled -1,{
  491. if (@marena == 0) callfunc "illegalkill";
  492. set #monpoints,#monpoints+2;
  493. announce "You killed a Faber - Gained 2 exp",19;
  494. callfunc "duelkill";
  495. }
  496. gon_test.gat,56,91,6 script OnLunaticKilled -1,{
  497. if (@marena == 0) callfunc "illegalkill";
  498. set #monpoints,#monpoints+4;
  499. announce "You killed a Lunatic - Gained 4 exp",19;
  500. callfunc "duelkill";
  501. }
  502. gon_test.gat,56,91,6 script OnDropsKilled -1,{
  503. if (@marena == 0) callfunc "illegalkill";
  504. set #monpoints,#monpoints+4;
  505. announce "You killed a Drops - Gained 4 exp",19;
  506. callfunc "duelkill";
  507. }
  508. gon_test.gat,56,91,6 script OnPickyKilled -1,{
  509. if (@marena == 0) callfunc "illegalkill";
  510. set #monpoints,#monpoints+4;
  511. announce "You killed a Picky - Gained 4 exp",19;
  512. callfunc "duelkill";
  513. }
  514. gon_test.gat,56,91,6 script OnChonChonKilled -1,{
  515. if (@marena == 0) callfunc "illegalkill";
  516. set #monpoints,#monpoints+8;
  517. announce "You killed a ChonChon - Gained 8 exp",19;
  518. callfunc "duelkill";
  519. }
  520. gon_test.gat,56,91,6 script OnSPickyKilled -1,{
  521. if (@marena == 0) callfunc "illegalkill";
  522. set #monpoints,#monpoints+8;
  523. announce "You killed a Super Picky - Gained 8 exp",19;
  524. callfunc "duelkill";
  525. }
  526. gon_test.gat,56,91,6 script OnWillowKilled -1,{
  527. if (@marena == 0) callfunc "illegalkill";
  528. set #monpoints,#monpoints+8;
  529. announce "You killed a Willow - Gained 8 exp",19;
  530. callfunc "duelkill";
  531. }
  532. gon_test.gat,56,91,6 script OnRodaKilled -1,{
  533. if (@marena == 0) callfunc "illegalkill";
  534. set #monpoints,#monpoints+16;
  535. announce "You killed a Roda Frog - Gained 16 exp",19;
  536. callfunc "duelkill";
  537. }
  538. gon_test.gat,56,91,6 script OnCondorKilled -1,{
  539. if (@marena == 0) callfunc "illegalkill";
  540. set #monpoints,#monpoints+16;
  541. announce "You killed a Condor - Gained 16 exp",19;
  542. callfunc "duelkill";
  543. }
  544. gon_test.gat,56,91,6 script OnThiefKilled -1,{
  545. if (@marena == 0) callfunc "illegalkill";
  546. set #monpoints,#monpoints+32;
  547. announce "You killed a Theif Bug Larva - Gained 32 exp",19;
  548. callfunc "duelkill";
  549. }
  550. gon_test.gat,56,91,6 script OnSavageKilled -1,{
  551. if (@marena == 0) callfunc "illegalkill";
  552. set #monpoints,#monpoints+64;
  553. announce "You killed a Savage Babe - Gained 64 exp",19;
  554. callfunc "duelkill";
  555. }
  556. gon_test.gat,56,91,6 script OnFamiliarKilled -1,{
  557. if (@marena == 0) callfunc "illegalkill";
  558. set #monpoints,#monpoints+128;
  559. announce "You killed a Familiar - Gained 128 exp",19;
  560. callfunc "duelkill";
  561. }
  562. gon_test.gat,56,91,6 script OnHornetKilled -1,{
  563. if (@marena == 0) callfunc "illegalkill";
  564. set #monpoints,#monpoints+128;
  565. announce "You killed a Hornet - Gained 128 exp",19;
  566. callfunc "duelkill";
  567. }
  568. gon_test.gat,56,91,6 script OnPuppyKilled -1,{
  569. if (@marena == 0) callfunc "illegalkill";
  570. set #monpoints,#monpoints+256;
  571. announce "You killed a Desert Wolf Puppy - Gained 256 exp",19;
  572. callfunc "duelkill";
  573. }
  574. gon_test.gat,56,91,6 script OnRockerKilled -1,{
  575. if (@marena == 0) callfunc "illegalkill";
  576. set #monpoints,#monpoints+256;
  577. announce "You killed a Rocker - Gained 256 exp",19;
  578. callfunc "duelkill";
  579. }
  580. gon_test.gat,56,91,6 script OnSporeKilled -1,{
  581. if (@marena == 0) callfunc "illegalkill";
  582. set #monpoints,#monpoints+256;
  583. announce "You killed a Spore - Gained 256 exp",19;
  584. callfunc "duelkill";
  585. }
  586. gon_test.gat,56,91,6 script OnSkeletonKilled -1,{
  587. if (@marena == 0) callfunc "illegalkill";
  588. set #monpoints,#monpoints+512;
  589. announce "You killed a Skeleton - Gained 512 exp",19;
  590. callfunc "duelkill";
  591. }
  592. gon_test.gat,56,91,6 script OnPlanktonKilled -1,{
  593. if (@marena == 0) callfunc "illegalkill";
  594. set #monpoints,#monpoints+512;
  595. announce "You killed a Plankton - Gained 512 exp",19;
  596. callfunc "duelkill";
  597. }
  598. gon_test.gat,56,91,6 script OnAntonioKilled -1,{
  599. if (@marena == 0) callfunc "illegalkill";
  600. set #monpoints,#monpoints+512;
  601. announce "You killed an Antonio - Gained 512 exp",19;
  602. callfunc "duelkill";
  603. }
  604. gon_test.gat,56,91,6 script OnThiefFemaleKilled -1,{
  605. if (@marena == 0) callfunc "illegalkill";
  606. set #monpoints,#monpoints+512;
  607. announce "You killed a Thief Bug Female - Gained 512 exp",19;
  608. callfunc "duelkill";
  609. }
  610. gon_test.gat,56,91,6 script OnSpecialKilled -1,{
  611. if (@marena == 0) callfunc "illegalkill";
  612. set #monpoints,#monpoints+512;
  613. announce "You killed a Special Monster - Gained 1024 exp",19;
  614. callfunc "duelkill";
  615. }
  616. function script duelkill {
  617. if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal;
  618. end;
  619. L_Heal:
  620. announce strcharinfo(0) + " won the Duel",1;
  621. set @fighting,0;
  622. set #heal,0;
  623. set @healing,0;
  624. end;
  625. }
  626. function script illegalkill {
  627. announce "Illegal Kill by " + strcharinfo(0) + " Detected",1;
  628. percentheal -100,-100;
  629. end;
  630. }
  631. // Healer //
  632. gon_test.gat,55,103,6 script Nurse 90,{
  633. if (@battle == 1 || #heal == 0) goto L_NoHeal;
  634. if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required
  635. set @fighting,0;
  636. set #heal,0;
  637. set @healing,0;
  638. specialeffect2 364;
  639. announce "Your monster has healed.",19;
  640. end;
  641. L_Heal:
  642. set @healrate,140 / #monster; //Rate of heal per click
  643. set @healing,@healing + @healrate;
  644. end;
  645. L_NoHeal:
  646. announce "Your monster does not need healing yet.",19;
  647. end;
  648. }
  649. // Warps players //
  650. gon_test.gat,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{
  651. end;
  652. OnTouch:
  653. set @marena,1;
  654. warp "gon_test.gat",57,99;
  655. }
  656. gon_test.gat,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2
  657. gon_test.gat,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2
  658. // Skill Disabler //
  659. gon_test.gat,57,99,5 script Skill Disable 111,3,3,{
  660. atcommand strcharinfo(0) + "@skilloff";
  661. disablenpc "Skill Disable";
  662. end;
  663. }
  664. // Duel Arena //
  665. gon_test.gat,58,103,5 script Duel Master#01 92,{
  666. if ($@duelist1$ == "") set @duel,0;
  667. if ($@monster1 == "") set @duel,0;
  668. set @marena,1;
  669. if (#monster == 0) goto L_NoMon;
  670. mes "[Duel Master]";
  671. if ($@duel == 1) goto L_Waiting;
  672. if ($@duel == 2) goto L_Dueling;
  673. mes "There are currently no players dueling.";
  674. next;
  675. menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit;
  676. // Player 1 Enters Duel Area //
  677. if (#heal == 1) goto L_NeedHeal;
  678. if ($@duel == 1) goto L_Duel2;
  679. set $@duel,1;
  680. if (#monster > 1 && #monster < 20) set $@monster1,1;
  681. if (#monster > 19 && #monster < 30) set $@monster1,2;
  682. if (#monster > 29 && #monster < 40) set $@monster1,3;
  683. if (#monster > 39 && #monster < 50) set $@monster1,4;
  684. if (#monster > 49 && #monster < 60) set $@monster1,5;
  685. if (#monster > 59 && #monster < 70) set $@monster1,6;
  686. if (#monster > 69 && #monster < 80) set $@monster1,7;
  687. if (#monster > 79 && #monster < 90) set $@monster1,8;
  688. if (#monster > 89 && #monster < 100) set $@monster1,9;
  689. if (#monster > 99 && #monster < 110) set $@monster1,10;
  690. set $@duelist1$,strcharinfo(0);
  691. set @battle,1;
  692. announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1;
  693. atcommand strcharinfo(0) + "@option 64 0 64";
  694. warp "gon_test.gat",49,5;
  695. close;
  696. L_Waiting:
  697. mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]";
  698. mes "Is waiting for an opponent";
  699. next;
  700. menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit;
  701. // Player 2 Enters Duel Area //
  702. if (#heal == 1) goto L_NeedHeal;
  703. L_Duel2:
  704. if ($@duel == 2) goto L_Spec;
  705. set $@duel,2;
  706. if (#monster > 1 && #monster < 20) set $@monster2,1;
  707. if (#monster > 19 && #monster < 30) set $@monster2,2;
  708. if (#monster > 29 && #monster < 40) set $@monster2,3;
  709. if (#monster > 39 && #monster < 50) set $@monster2,4;
  710. if (#monster > 49 && #monster < 60) set $@monster2,5;
  711. if (#monster > 59 && #monster < 70) set $@monster2,6;
  712. if (#monster > 69 && #monster < 80) set $@monster2,7;
  713. if (#monster > 79 && #monster < 90) set $@monster2,8;
  714. if (#monster > 89 && #monster < 100) set $@monster2,9;
  715. if (#monster > 99 && #monster < 110) set $@monster2,10;
  716. set $@duelist2$,strcharinfo(0);
  717. set @battle,1;
  718. announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1;
  719. atcommand strcharinfo(0) + "@option 64 0 64";
  720. warp "gon_test.gat",49,5;
  721. close;
  722. L_Dueling:
  723. mes "^0000FF" + $@duelist1$ + "^000000 [Monster Level: ^0000FF" + $@monster1 + "^000000]";
  724. mes " VS.";
  725. mes "^FF0000" + $@duelist2$ + "^000000 [Monster Level: ^FF0000" + $@monster2 + "^000000]";
  726. next;
  727. menu "Spectate",L_Spec,"Cancel",L_Exit;
  728. L_Spec:
  729. set @battle,0;
  730. atcommand strcharinfo(0) + "@option 64 0 64";
  731. warp "gon_test.gat",49,5;
  732. close;
  733. L_Exit:
  734. mes "[Duel Master]";
  735. mes "Goodbye.";
  736. close;
  737. L_NoMon:
  738. mes "[Duel Master]";
  739. mes "You haven't got a monster, you can't participate.";
  740. close;
  741. L_NeedHeal:
  742. mes "[Duel Master]";
  743. mes "You need to heal before you can join.";
  744. close;
  745. }
  746. // Duel Exit //
  747. gon_test.gat,42,8,5 script Duel Master#02 92,{
  748. mes "[Duel Master]";
  749. mes "Would you like to return?";
  750. menu "Yes",L_Leave,"No",-;
  751. mes "Alright";
  752. close;
  753. L_Leave:
  754. if ($@duelist1$ == strcharinfo(0)) goto L_Leave1;
  755. if ($@duelist2$ == strcharinfo(0)) goto L_Leave2;
  756. L_Leave3:
  757. atcommand strcharinfo(0) + "@option 0 0 0";
  758. set @battle,0;
  759. warp "gon_test.gat",57,99;
  760. close;
  761. L_Leave1:
  762. set $@duelist1$,$@duelist2$;
  763. set $@monster1,$@monster2;
  764. set $@duel,$@duel-1;
  765. announce strcharinfo(0) + " stopped dueling",1;
  766. goto L_Leave3;
  767. L_Leave2:
  768. set $@duelist2$,"";
  769. set $@monster2,0;
  770. set $@duel,$@duel-1;
  771. announce strcharinfo(0) + " stopped dueling",1;
  772. goto L_Leave3;
  773. }
  774. gon_test.gat,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2
  775. gon_test.gat,55,8,6 duplicate(monsterreferee) Referee#02 61