OSDN Git Service

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