diff options
Diffstat (limited to 'npc/other/monster_race.txt')
-rw-r--r-- | npc/other/monster_race.txt | 2967 |
1 files changed, 2967 insertions, 0 deletions
diff --git a/npc/other/monster_race.txt b/npc/other/monster_race.txt new file mode 100644 index 000000000..91db569e3 --- /dev/null +++ b/npc/other/monster_race.txt @@ -0,0 +1,2967 @@ +//===== rAthena Script ======================================= +//= Hugel Monster Races +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.8 +//===== Compatible With: ===================================== +//= rAthena SVN (Trunk, r12752+) +//===== Description: ========================================= +//= [Official Conversion] +//= - Hugel Monster Races (Single and Double) +//= - Prize Medal Exchanging, and Monster Track NPCs. +//= - Contains both euRO and iRO dialog. +//= - There are no permenent variables. +//===== Additional Comments: ================================= +//= 1.0 First version. Please report bugs. [L0ne_W0lf] +//= 1.1 Corrected a minor typo. [L0ne_W0lf] +//= 1.2 Replaced effect numerics with constants. [L0ne_W0lf] +//= 1.3 Ei'felle now gives Exercise. (Bugreport:4092) [L0ne_W0lf] +//= 1.4 Fixed call to a non-existant event. [L0ne_W0lf] +//= 1.5 Updated Dialog. [L0ne_W0lf] +//= 1.6 Updated experience rewards. [L0ne_W0lf] +//= 1.7 Optimization, -4000 lines (more can still be done). [Euphy] +//= 1.8 Optimized. +//= Fixed Medal Distributor (Dual Race) disappears accordingly. [Joseph] +//============================================================ + +// Monstrer Race - Single Monster Race +//============================================================ +hugel,51,61,0 script #race_timer1-1 -1,{ +OnInit: +OnEnable: + enablenpc "#race_timer1-1"; + set $@mon_time_1_1,2; + initnpctimer; + end; + +OnDisable: + disablenpc "#race_timer1-1"; + stopnpctimer; + end; + +OnTimer10000: + mapannounce "hugel","The Single Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0x87ceeb"; + end; + +OnTimer30000: + mapannounce "hugel","The Single Monster Race Arena has just opened.",bc_map,"0x87ceeb"; + set $@mon_time_1_1,1; + donpcevent "Race Progress Timer::OnEnable"; + end; + +OnTimer90000: + mapannounce "hugel","The Single Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0x87ceeb"; + end; + +OnTimer210000: + mapannounce "hugel","The entrance to the Single Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0x87ceeb"; + end; + +OnTimer270000: + mapannounce "hugel","The Single Monster Race Arena's entrance will soon close.",bc_map,"0x87ceeb"; + end; + +OnTimer272000: + mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0x87ceeb"; + end; + +OnTimer330000: + mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0x87ceeb"; + set $@mon_time_1_1,0; + donpcevent "#race_timer1-1::OnDisable"; + stopnpctimer; + end; +} + +p_track01,58,0,0 script Race Progress Timer -1,{ +OnEnable: + enablenpc "Race Progress Timer"; + initnpctimer; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + enablenpc "starting#"+.@i; + set .@c, 1; + while (.@c <= 6) { + setd ".@line_"+.@c,rand(1,70); + if (getd(".@line_"+.@c) <= 10) { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk"+.@c+"#5"; + enablenpc "Luk"+.@c+"#6"; + setd "$@mr_1_tire"+.@c,rand(50,60); + enablenpc "Tire"+.@c+"#1"; + } else if (getd(".@line_"+.@c) <= 30) { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk"+.@c+"#5"; + set getd(".@tired"+.@c),rand(40,60); + setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); + enablenpc "Tire"+.@c+"#1"; + if (getd(".@tired"+.@c) >= 50) enablenpc "Tire"+.@c+"#2"; + } else if (getd(".@line_"+.@c) <= 40) { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk"+.@c+"#1"; + set getd(".@tired"+.@c),rand(30,50); + setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); + enablenpc "Tire"+.@c+"#1"; + enablenpc "Tire"+.@c+"#2"; + if (getd(".@tired"+.@c) < 40) enablenpc "Tire"+.@c+"#3"; + } else if (getd(".@line_"+.@c) <= 50) { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk"+.@c+"#1"; + enablenpc "Luk"+.@c+"#2"; + set getd(".@tired"+.@c),rand(20,40); + setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); + for (set .@i, 1; .@i <= 3; set .@i, .@i + 1) + enablenpc "Tire"+.@c+"#"+.@i; + if (getd(".@tired"+.@c) < 30) enablenpc "Tire"+.@c+"#4"; + } else if (getd(".@line_"+.@c)) <= 60 { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + for (set .@i, 1; .@i <= 3; set .@i, .@i + 1) + enablenpc "Luk"+.@c+"#"+.@i; + set getd(".@tired"+.@c),rand(10,30); + setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); + for (set .@i, 1; .@i <= 4; set .@i, .@i + 1) + enablenpc "Tire"+.@c+"#"+.@i; + if (getd(".@tired"+.@c) < 20) enablenpc "Tire"+.@c+"#5"; + } else if (getd(".@line_"+.@c) <= 70) { + setd "$@mr_1_luk"+.@c,getd(".@line_"+.@c); + for (set .@i, 1; .@i <= 4; set .@i, .@i + 1) + enablenpc "Luk"+.@c+"#"+.@i; + set getd(".@tired"+.@c),rand(0,20); + setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); + for (set .@i, 1; .@i <= 5; set .@i, .@i + 1) + enablenpc "Tire"+.@c+"#"+.@i; + if (getd(".@tired"+.@c) < 10) enablenpc "Tire"+.@c+"#6"; + } + set .@c, .@c + 1; + } + end; + +OnDisable: + disablenpc "Race Progress Timer"; + stopnpctimer; + end; + +OnTimer1000: + enablenpc "Ticket Helper#single"; + end; + +OnTimer7000: + mapannounce "p_track01","Welcome to the Monster Race Arena.",bc_map,"0xffb6c1"; + end; + +OnTimer10000: + mapannounce "p_track01","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0xffb6c1"; + end; + +OnTimer120000: + mapannounce "p_track01","The Single Monster Race will start in 3 minutes.",bc_map,"0xffb6c1"; + end; + +OnTimer123000: + mapannounce "p_track01","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0xffb6c1"; + end; + +OnTimer240000: + mapannounce "p_track01","The Single Monster Race will start shortly.",bc_map,"0xffb6c1"; + end; + +OnTimer243000: + mapannounce "p_track01","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0xffb6c1"; + end; + +OnTimer300000: + mapannounce "p_track01","The Monster Race has already begun. Good luck to all the participants.",bc_map,"0xffb6c1"; + set $@mon_time_1_1,0; + set $@monster_race,0; + disablenpc "Ticket Helper#single"; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + donpcevent "Runner No. "+.@i+"::OnEnable"; + stopnpctimer; + end; + +OnInit: + disablenpc "Race Progress Timer"; + end; +} + +p_track01,73,22,1 script Ticket Helper#single 899,{ + mes "[Ticket Helper]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "If you'd like to participate"; + mes "in the ^3131FFSingle Monster Race^000000,"; + mes "then please select 1 out of"; + mes "the 6 monsters from the list."; + next; + if (!checkweight(908,200)) { + mes "[Ticket Helper]"; + mes "Wait, wait..."; + mes "I can't give you"; + mes "anything right now."; + mes "You're carrying way"; + mes "too many things..."; + close; + } + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + set .@m$, .@m$ + "Monster "+.@i+":"; + set .@m, select ("Monster Status:"+.@m$) - 1; + if (!.@m) { + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mr_1_luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mr_1_tire"+.@i) + "]"; + close; + } else { + if ($@mon_time_1_1 == 1) { + if (monster_race_1) { + mes "[Ticket Helper]"; + mes "You have selected"; + mes "Monster ^FF0000"+ monster_race_1 +"^000000 for the"; + mes "Single Monster Race."; + mes "The start of the race"; + mes "will be announced soon,"; + mes "so please wait. Thank you."; + close; + } + mes "[Ticket Helper]"; + mes "You've chosen Monster "+.@m+"?"; + mes "Alright then, please wait"; + mes "until the start of the race is"; + mes "announced. If the monster you"; + mes "picked wins, then please use this ticket to redeem your prize."; + getitem 7514,1; //Monster_Ticket + set monster_race_1,.@m; + close; + } + mes "[Ticket Helper]"; + mes "I'm sorry, but a Monster"; + mes "Race is now in progress."; + mes "If you'd like to participate, then please wait for the next race."; + close; + } + +OnInit: + disablenpc "Ticket Helper#single"; + end; +} + +- script Runner#main -1,{ + function WN; +OnEnable: + emotion e_gasp; + enablenpc strnpcinfo(0); + getmapxy(.@m$,.@x,.@y,1); + setarray .@mob[1], 1725,1726,1727,1728,1730,1729; + monster "p_track01",58,.@y,"The "+WN(1)+" Racer",.@mob[WN(0)],1,strnpcinfo(0)+"::OnMyMobDead"; + end; + +OnDisable: + disablenpc strnpcinfo(0); + killmonster "p_track01",strnpcinfo(0)+"::OnMyMobDead"; + end; + +OnTouchNPC: + initnpctimer; + set .@n, WN(0); + set $@monster_race,.@n; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) { + if (.@n == .@i) continue; + donpcevent "Runner No. "+.@i+"::OnDisable"; + } + end; + +OnTimer1000: + mapannounce "p_track01","We have a winner...!",bc_map,"0x33FF66"; + end; + +OnTimer2000: + mapannounce "p_track01","Monster "+WN(0)+" is the winner of this race!",bc_map,"0x33FF66"; + end; + +OnTimer6000: + mapannounce "p_track01","If you wagered on Monster "+WN(0)+" in this race, talk to the Medal Distributor to receive your prize!",bc_map,"0x33FF66"; + end; + +OnTimer8000: + mapannounce "p_track01","Please remember that we can distribute Prize Medals for only 5 minutes after each race.",bc_map,"0x33FF66"; + end; + +OnTimer9000: + donpcevent "Medal Distributor#single::OnEnable"; + donpcevent strnpcinfo(0)+"::OnDisable"; + killmonster "p_track01",strnpcinfo(0)+"::OnMyMobDead"; + stopnpctimer; + end; + + function WN { + set .@n, charat(strnpcinfo(0),getstrlen(strnpcinfo(0))-1); + if (!getarg(0)) return .@n; + return ((.@n <= 3)?((.@n == 1)?"1st":((.@n == 2)?"2nd":"3rd")):.@n+"th"); + } + +OnInit: + if (compare(strnpcinfo(0),"main")) end; + disablenpc strnpcinfo(0); + end; +} +p_track01,30,38,0 duplicate(Runner#main) Runner No. 1 -1,1,0 +p_track01,30,36,0 duplicate(Runner#main) Runner No. 2 -1,1,0 +p_track01,30,34,0 duplicate(Runner#main) Runner No. 3 -1,1,0 +p_track01,30,32,0 duplicate(Runner#main) Runner No. 4 -1,1,0 +p_track01,30,30,0 duplicate(Runner#main) Runner No. 5 -1,1,0 +p_track01,30,28,0 duplicate(Runner#main) Runner No. 6 -1,1,0 + +p_track01,67,45,5 script Medal Distributor#single 845,{ + if (!checkweight(908,200)) { + mes "[Medal Distributor]"; + mes "I'm sorry, but I can't"; + mes "reward you with any medals"; + mes "until you make more space"; + mes "available in your Inventory."; + close; + } + set .@insa,rand(1,1000); + if (countitem(7514)) { + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + next; + if ($@monster_race) { + if (monster_race_1 == $@monster_race) { + mes "[Medal Distributor]"; + mes "Oh, congratulations, you"; + mes "have a winning ticket for"; + mes "a Single Monster Race! So "; + mes "would you like to exchange your"; + mes "Racing Ticket for Prize Medals?"; + next; + if (select("Yes, please.:No, thanks.") == 2) { + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } + mes "[Medal Distributor]"; + mes "Let me see your ticket..."; + mes "Oh! Congratulations, you"; + mes "won! May I have your name?"; + next; + input .@input$; + if (.@input$ == strcharinfo(0)) { + mes "[Medal Distributor]"; + mes "Ah, "+strcharinfo(0)+"."; + mes "You can exchange this"; + mes "ticket for a Prize Medal by"; + mes "entering your ticket exchange"; + mes "number now. Your ticket"; + mes "exchange number is ^FF0000" + .@insa + "^000000."; + next; + input .@input; //,0,1000; + if (!.@input) { + mes "[Medal Distributor]"; + mes "Oh? You don't want"; + mes "to exchange your"; + mes "winning ticket?"; + close; + } else if (.@input == .@insa) { + mes "[Medal Distributor]"; + mes "Thank you! You entered"; + mes "the correct number..."; + mes "Everything seems to"; + mes "be in order. Alright!"; + next; + mes "[Medal Distributor]"; + mes "Now please accept your"; + mes "Prize Medals! You can"; + mes "exchange these with"; + mes "Wayne in Hugel for some"; + mes "interesting items. Thank you~"; + delitem 7514,1; //Monster_Ticket + set monster_race_1,0; + getitem 7515,4; //Marvelous_Medal + close; + } + mes "[Medal Distributor]"; + mes "I'm sorry, but it seems"; + mes "that you entered the"; + mes "incorrect ticket number."; + mes "Would you mind coming"; + mes "back again in a while?"; + close; + } + mes "[Medal Distributor]"; + mes "What's this...?"; + mes "I think there's a problem..."; + mes "Did you enter your name"; + mes "incorrectly? Please check"; + mes "your name, and then try again."; + close; + } + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + } + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; + +OnEnable: + emotion e_gasp; + enablenpc "Medal Distributor#single"; + initnpctimer; + end; + +OnTimer1000: + mapannounce "p_track01","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; + end; + +OnTimer4000: + mapannounce "p_track01","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; + end; + +OnTimer7000: + mapannounce "p_track01","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; + end; + +OnTimer10000: + mapannounce "p_track01","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; + end; + +OnTimer13000: + mapannounce "p_track01","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; + end; + +OnTimer240000: + mapannounce "p_track01","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; + end; + +OnTimer243000: + mapannounce "p_track01","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; + end; + +OnTimer246000: + mapannounce "p_track01","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; + end; + +OnTimer249000: + mapannounce "p_track01","Thank you for your cooperation.",bc_map,"0xFFFF00"; + end; + +OnTimer252000: + mapannounce "p_track01","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) { + donpcevent "starting#"+.@i+"::OnDisable"; + setd "$@mr_1_luk"+.@i,0; + setd "$@mr_1_tire"+.@i,0; + } + set .@c, 1; + while (.@c <= 6) { + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) { + disablenpc "Tire"+.@c+"#"+.@i; + disablenpc "Luk"+.@c+"#"+.@i; + } + set .@c, .@c + 1; + } + end; + +OnTimer300000: + donpcevent "#race_timer1-1::OnEnable"; + set $@mon_time_1_1,2; + set $@monster_race,0; + mapwarp "p_track01","hugel",63,73; + end; + +OnTimer306000: + donpcevent "Race Progress Timer::OnEnable"; + end; + +OnTimer342000: + disablenpc "Medal Distributor#single"; + stopnpctimer; + end; + +OnInit: + disablenpc "Medal Distributor#single"; + end; +} + +p_track01,76,36,1 script Exit Guide#single 798,{ + mes "[Exit Guide]"; + mes "If you have a winning Racing"; + mes "Ticket, please make sure that"; + mes "you redeem it for Prize Medals"; + mes "now. All Racing Tickets become"; + mes "void once the next race begins."; + next; + mes "[Exit Guide]"; + mes "If you wish to leave"; + mes "the arena, then I can guide"; + mes "you outside. Would you like"; + mes "to leave the arena right now?"; + next; + if (select("Yes:No") == 2) { + mes "[Exit Guide]"; + mes "Alright, then."; + mes "Just let me know"; + mes "whenever you're"; + mes "ready to leave."; + close; + } + if (!countitem(7514)) { + mes "[Exit Guide]"; + mes "Thank you for"; + mes "your patronage, and"; + mes "I hope that you come"; + mes "visit us again soon~"; + } else { + mes "[Exit Guide]"; + mes "In accordance with our"; + mes "policies, I must take your"; + mes "Racing Ticket before you leave."; + mes "Thank you for your patronage,"; + mes "and I hope you enjoy your time"; + mes "here in the Monster Race Arena."; + delitem 7514,1; //Monster_Ticket + } + set monster_race_1,0; + close2; + warp "hugel",63,73; + end; +} + +hugel,58,72,6 script Eckar Ellebird#single 798,{ + mes "[Eckar Ellebird]"; + mes "Welcome to the biggest"; + mes "attraction in Hugel, the"; + mes "Monster Race Arena."; + mes "How may I help you today?"; + next; + if (select("Monster Race Info:Enter Monster Race") == 1) { + mes "[Eckar Ellebird]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Eckar Ellebird]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eckar Ellebird]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Eckar Ellebird]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Eckar Ellebird]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Eckar Ellebird]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + } + mes "[Eckar Ellebird]"; + mes "The entrance fee for all races"; + mes "in the Monster Race Arena is"; + mes "2,000 zeny. If you'd like to wager on a Dual Monster Race, then"; + mes "please ask my brother Erenes,"; + mes "and he will help you."; + next; + mes "[Eckar Ellebird]"; + mes "Otherwise, I'll help get you"; + mes "started if you're interested"; + mes "in a Single Monster Race."; + mes "Would you like wager on"; + mes "a Single Monster Race?"; + next; + if (select("Yes, please.:No, thanks.") == 2) { + mes "[Eckar Ellebird]"; + mes "Very well. I hope that"; + mes "you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + if (!checkweight(908,700)) { + mes "[Eckar Ellebird]"; + mes "Oh, wow. You're carrying"; + mes "an awful lot of stuff... Yeah,"; + mes "you better put some of it away"; + mes "in Kafra Storage or something."; + close; + } + if (Zeny < 2000) { + mes "[Eckar Ellebird]"; + mes "I'm sorry, but you"; + mes "don't have enough"; + mes "money to pay the"; + mes "2,000 zeny entrance fee. "; + close; + } + if (countitem(7514)) { + mes "[Eckar Ellebird]"; + mes "Hm? What are you doing"; + mes "with an expired Racing Ticket?"; + mes "Well, I better get rid of it for you before it can get mixed up"; + mes "with your new Racing Ticket."; + delitem 7514,1; //Monster_Ticket + next; + if ($@mon_time_1_1 == 1) { + mes "[Eckar Ellebird]"; + mes "Alright, I think you"; + mes "should be all set. I hope"; + mes "that you enjoy the race~"; + mes "Let me guide you inside"; + mes "the Monster Race Arena now."; + set zeny,zeny-2000; + set monster_race_1,0; + close2; + warp "p_track01",75,41; + end; + } else if ($@mon_time_1_1 == 2) { + mes "[Eckar Ellebird]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Single Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer."; + close; + } + } else { + if ($@mon_time_1_1 == 1) { + mes "[Eckar Ellebird]"; + mes "Thanks, I hope that"; + mes "you enjoy this race."; + mes "Let me guide you now"; + mes "to the Monster Race Arena."; + set zeny,zeny-2000; + set monster_race_1,0; + close2; + warp "p_track01",75,41; + end; + } else if ($@mon_time_1_1 == 2) { + mes "[Eckar Ellebird]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Single Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + } + if (!.@monster_race) { + mes "[Eckar Ellebird]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + if (select("Enter:Cancel") == 2) { + mes "[Eckar Ellebird]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + if (Zeny > 499) { + mes "[Eckar Ellebird]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_1,0; + close2; + warp "p_track01",75,41; + end; + } + mes "[Eckar Ellebird]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + mes "[Eckar Ellebird]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; +} + +p_track01,39,49,3 script Game Guide#single 845,{ + mes "[Game Guide]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "How can I help you?"; + next; + switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { + case 1: + mes "[Game Guide]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Game Guide]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Game Guide]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Game Guide]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Game Guide]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Game Guide]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + mes "[Game Guide]"; + mes "Before placing a wager, you"; + mes "must get a free Racing Ticket"; + mes "from the Ticket Helper. There,"; + mes "I've marked the Ticket Helper"; + mes "on your Mini-Map, so you can"; + mes "find him pretty easily."; + viewpoint 1,73,22,1,0xFF3355; + next; + break; + case 3: + mes "[Game Guide]"; + mes "If you wagered on the winner"; + mes "of a Single Monster Race, or"; + mes "on the 1st or 2nd place winners"; + mes "in a Dual Monster Race, then"; + mes "you can exchange your Racing"; + mes "Ticket for Prize Medals."; + next; + mes "[Game Guide]"; + mes "However, you must exchange"; + mes "your Racing Ticket with the"; + mes "Medal Distributor within the"; + mes "5 minute window after the end"; + mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; + next; + mes "[Game Guide]"; + mes "When this 5 minute window"; + mes "elapses, you will be teleported outside, and we will immediately"; + mes "begin preparing for the next race. Make sure that you remember this"; + mes "information when you wager."; + next; + mes "[Game Guide]"; + mes "If you haven't received"; + mes "your free Racing Ticket,"; + mes "then please visit the Ticket"; + mes "Helper. There, I've just marked"; + mes "his location on your Mini-Map."; + viewpoint 1,67,45,2,0xCE6300; + next; + break; + } + mes "[Game Guide]"; + mes "Thank you, and"; + mes "I hope you enjoy"; + mes "your time here in the"; + mes "Monster Racing Arena."; + close; +} + +- script starting_1 -1,{ +OnDisable: + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Luk1#"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + enablenpc "Tire1#"+.@i; + setd "$@mr_1_luk"+strnpcinfo(2),0; + setd "$@mr_1_tire"+strnpcinfo(2),0; + end; + +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; + end; + +OnInit: + disablenpc strnpcinfo(0); + end; + +} + +- script Luk_1 -1,{ +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,10000,.@speed; + end; + +OnInit: + disablenpc strnpcinfo(0); + end; +} + +- script Luk_2 -1,{ +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_STUN,.@time,0; + end; + +OnInit: + disablenpc strnpcinfo(0); + end; +} + +- script Tire_1 -1,{ +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 61) set .@time,1000; + else if (.@start < 71) set .@time,2000; + else if (.@start < 81) set .@time,3000; + else if (.@start < 91) set .@time,4000; + if (.@time) sc_start SC_SLEEP,.@time,0; + end; + +OnInit: + disablenpc strnpcinfo(0); + end; +} + +p_track01,56,38,0 duplicate(starting_1) starting#1 -1,0,0 +p_track01,56,36,0 duplicate(starting_1) starting#2 -1,0,0 +p_track01,56,34,0 duplicate(starting_1) starting#3 -1,0,0 +p_track01,56,32,0 duplicate(starting_1) starting#4 -1,0,0 +p_track01,56,30,0 duplicate(starting_1) starting#5 -1,0,0 +p_track01,56,28,0 duplicate(starting_1) starting#6 -1,0,0 + +p_track01,33,38,0 duplicate(Luk_1) Luk1#1 -1,0,0 +p_track01,37,38,0 duplicate(Luk_1) Luk1#2 -1,0,0 +p_track01,53,38,0 duplicate(Luk_1) Luk1#3 -1,0,0 +p_track01,45,38,0 duplicate(Luk_1) Luk1#4 -1,0,0 +p_track01,33,36,0 duplicate(Luk_1) Luk2#1 -1,0,0 +p_track01,37,36,0 duplicate(Luk_1) Luk2#2 -1,0,0 +p_track01,53,36,0 duplicate(Luk_1) Luk2#3 -1,0,0 +p_track01,45,36,0 duplicate(Luk_1) Luk2#4 -1,0,0 +p_track01,33,34,0 duplicate(Luk_1) Luk3#1 -1,0,0 +p_track01,37,34,0 duplicate(Luk_1) Luk3#2 -1,0,0 +p_track01,53,34,0 duplicate(Luk_1) Luk3#3 -1,0,0 +p_track01,45,34,0 duplicate(Luk_1) Luk3#4 -1,0,0 +p_track01,33,32,0 duplicate(Luk_1) Luk4#1 -1,0,0 +p_track01,37,32,0 duplicate(Luk_1) Luk4#2 -1,0,0 +p_track01,53,32,0 duplicate(Luk_1) Luk4#3 -1,0,0 +p_track01,45,32,0 duplicate(Luk_1) Luk4#4 -1,0,0 +p_track01,33,30,0 duplicate(Luk_1) Luk5#1 -1,0,0 +p_track01,37,30,0 duplicate(Luk_1) Luk5#2 -1,0,0 +p_track01,53,30,0 duplicate(Luk_1) Luk5#3 -1,0,0 +p_track01,45,30,0 duplicate(Luk_1) Luk5#4 -1,0,0 +p_track01,33,28,0 duplicate(Luk_1) Luk6#1 -1,0,0 +p_track01,37,28,0 duplicate(Luk_1) Luk6#2 -1,0,0 +p_track01,53,28,0 duplicate(Luk_1) Luk6#3 -1,0,0 +p_track01,45,28,0 duplicate(Luk_1) Luk6#4 -1,0,0 + +p_track01,49,38,0 duplicate(Luk_2) Luk1#5 -1,0,0 +p_track01,41,38,0 duplicate(Luk_2) Luk1#6 -1,0,0 +p_track01,49,36,0 duplicate(Luk_2) Luk2#5 -1,0,0 +p_track01,41,36,0 duplicate(Luk_2) Luk2#6 -1,0,0 +p_track01,49,34,0 duplicate(Luk_2) Luk3#5 -1,0,0 +p_track01,41,34,0 duplicate(Luk_2) Luk3#6 -1,0,0 +p_track01,49,32,0 duplicate(Luk_2) Luk4#5 -1,0,0 +p_track01,41,32,0 duplicate(Luk_2) Luk4#6 -1,0,0 +p_track01,49,30,0 duplicate(Luk_2) Luk5#5 -1,0,0 +p_track01,41,30,0 duplicate(Luk_2) Luk5#6 -1,0,0 +p_track01,49,28,0 duplicate(Luk_2) Luk6#5 -1,0,0 +p_track01,41,28,0 duplicate(Luk_2) Luk6#6 -1,0,0 + +p_track01,43,38,0 duplicate(Tire_1) Tire1#1 -1,0,0 +p_track01,39,38,0 duplicate(Tire_1) Tire1#2 -1,0,0 +p_track01,35,38,0 duplicate(Tire_1) Tire1#3 -1,0,0 +p_track01,55,38,0 duplicate(Tire_1) Tire1#4 -1,0,0 +p_track01,51,38,0 duplicate(Tire_1) Tire1#5 -1,0,0 +p_track01,47,38,0 duplicate(Tire_1) Tire1#6 -1,0,0 +p_track01,43,36,0 duplicate(Tire_1) Tire2#1 -1,0,0 +p_track01,39,36,0 duplicate(Tire_1) Tire2#2 -1,0,0 +p_track01,35,36,0 duplicate(Tire_1) Tire2#3 -1,0,0 +p_track01,55,36,0 duplicate(Tire_1) Tire2#4 -1,0,0 +p_track01,51,36,0 duplicate(Tire_1) Tire2#5 -1,0,0 +p_track01,47,36,0 duplicate(Tire_1) Tire2#6 -1,0,0 +p_track01,43,34,0 duplicate(Tire_1) Tire3#1 -1,0,0 +p_track01,39,34,0 duplicate(Tire_1) Tire3#2 -1,0,0 +p_track01,35,34,0 duplicate(Tire_1) Tire3#3 -1,0,0 +p_track01,55,34,0 duplicate(Tire_1) Tire3#4 -1,0,0 +p_track01,51,34,0 duplicate(Tire_1) Tire3#5 -1,0,0 +p_track01,47,34,0 duplicate(Tire_1) Tire3#6 -1,0,0 +p_track01,43,32,0 duplicate(Tire_1) Tire4#1 -1,0,0 +p_track01,39,32,0 duplicate(Tire_1) Tire4#2 -1,0,0 +p_track01,35,32,0 duplicate(Tire_1) Tire4#3 -1,0,0 +p_track01,55,32,0 duplicate(Tire_1) Tire4#4 -1,0,0 +p_track01,51,32,0 duplicate(Tire_1) Tire4#5 -1,0,0 +p_track01,47,32,0 duplicate(Tire_1) Tire4#6 -1,0,0 +p_track01,43,30,0 duplicate(Tire_1) Tire5#1 -1,0,0 +p_track01,39,30,0 duplicate(Tire_1) Tire5#2 -1,0,0 +p_track01,35,30,0 duplicate(Tire_1) Tire5#3 -1,0,0 +p_track01,55,30,0 duplicate(Tire_1) Tire5#4 -1,0,0 +p_track01,51,30,0 duplicate(Tire_1) Tire5#5 -1,0,0 +p_track01,47,30,0 duplicate(Tire_1) Tire5#6 -1,0,0 +p_track01,43,28,0 duplicate(Tire_1) Tire6#1 -1,0,0 +p_track01,39,28,0 duplicate(Tire_1) Tire6#2 -1,0,0 +p_track01,35,28,0 duplicate(Tire_1) Tire6#3 -1,0,0 +p_track01,55,28,0 duplicate(Tire_1) Tire6#4 -1,0,0 +p_track01,51,28,0 duplicate(Tire_1) Tire6#5 -1,0,0 +p_track01,47,28,0 duplicate(Tire_1) Tire6#6 -1,0,0 + +// Monstrer Race - Dual Monster Race +//============================================================ +hugel,47,56,0 script #race_timer2-1 -1,{ +OnEnable: + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; + end; + +OnDisable: + disablenpc "#race_timer2-1"; + stopnpctimer; + end; + +OnTimer10000: + mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1"; + end; + +OnTimer30000: + mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1"; + set $@mon_time_2_1,1; + donpcevent "#race_timer2-2::OnEnable"; + enablenpc "Ticket Helper#2"; + donpcevent "TrapGlobal#race02::OnEnable"; + end; + +OnTimer90000: + mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1"; + end; + +OnTimer210000: + mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1"; + end; + +OnTimer270000: + mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1"; + end; + +OnTimer272000: + mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1"; + end; + +OnTimer330000: + mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1"; + set $@mon_time_2_1,0; + donpcevent "#race_timer2-1::OnDisable"; + stopnpctimer; + end; + +OnInit: + enablenpc "#race_timer2-1"; + set $@mon_time_2_1,2; + initnpctimer; + end; +} + +p_track02,42,23,0 script #race_timer2-2 -1,{ +OnEnable: + enablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; + initnpctimer; + end; + +OnDisable: + disablenpc "#race_timer2-2"; + stopnpctimer; + end; + +OnTimer5000: + mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb"; + end; + +OnTimer7000: + mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb"; + end; + +OnTimer120000: + mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb"; + end; + +OnTimer122000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; + end; + +OnTimer240000: + mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb"; + end; + +OnTimer242000: + mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb"; + end; + +OnTimer300000: + mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb"; + set $@mon_time_2_2,1; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + disablenpc "Ticket Helper#2"; + donpcevent "#poring1::OnEnable"; + donpcevent "#lunatic1::OnEnable"; + donpcevent "#savagebebe1::OnEnable"; + donpcevent "#desertwolf1::OnEnable"; + donpcevent "#deviruchi1::OnEnable"; + donpcevent "#baphomet1::OnEnable"; + stopnpctimer; + end; + +OnInit: + disablenpc "#race_timer2-2"; + set $@mon_time_2_2,0; + end; +} + +p_track02,80,43,0 script #race_timer2-3 -1,{ +OnInit: + disablenpc "#race_timer2-3"; + end; + +OnEnable: + enablenpc "#race_timer2-3"; + initnpctimer; + end; + +OnDisable: + disablenpc "#race_timer2-3"; + stopnpctimer; + end; + +OnTimer3000: + mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00"; + end; + +OnTimer6000: + mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00"; + end; + +OnTimer9000: + mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00"; + end; + +OnTimer12000: + mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00"; + end; + +OnTimer15000: + mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00"; + end; + +OnTimer240000: + mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00"; + end; + +OnTimer243000: + mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00"; + end; + +OnTimer246000: + mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00"; + end; + +OnTimer249000: + mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00"; + end; + +OnTimer252000: + mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00"; + end; + +OnTimer300000: + mapwarp "p_track02","hugel",63,73; + disablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-1::OnEnable"; + set $@mon_race_2_1,0; + set $@mon_race_2_2,0; + donpcevent "#race_timer2-3::OnDisable"; + stopnpctimer; + end; +} + +hugel,62,69,1 script Eckar Erenes#double 798,{ + mes "[Eckar Erenes]"; + mes "Welcome to the"; + mes "Monster Race Arena,"; + mes "the pride and joy of"; + mes "the village of Hugel!"; + mes "How may I help you?"; + next; + if (select("Monster Race Info:Enter Monster Race") == 1) { + mes "[Eckar Erenes]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Eckar Erenes]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eckar Erenes]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Eckar Erenes]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Eckar Erenes]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Eckar Erenes]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + } + mes "[Eckar Erenes]"; + mes "The entrance fee for all races"; + mes "in the Monster Race Arena is"; + mes "2,000 zeny. If you'd like to wager on a Single Monster Race,"; + mes "then please ask my brother"; + mes "Ellebird to help you."; + next; + mes "[Eckar Erenes]"; + mes "Otherwise, I'll help get you"; + mes "started if you're interested"; + mes "in a Dual Monster Race."; + mes "Would you like to wager"; + mes "on a Dual Monster Race?"; + next; + if (select("Yes, please.:No, thanks.") == 2) { + mes "[Eckar Erenes]"; + mes "Very well. I hope that"; + mes "you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + if (!checkweight(909,700)) { + mes "[Eckar Erenes]"; + mes "Hmm... You're toting"; + mes "too many things with you"; + mes "right now. You better put"; + mes "some of your stuff away in"; + mes "Kafra Storage before you can"; + mes "wager on any monster races..."; + close; + } + if (Zeny < 2000) { + mes "[Eckar Erenes]"; + mes "I'm sorry, but you"; + mes "don't have enough"; + mes "money to pay the"; + mes "2,000 zeny entrance fee. "; + close; + } + if (countitem(7514)) { + mes "[Eckar Erenes]"; + mes "Hm? What are you doing"; + mes "with an expired Racing Ticket?"; + mes "Well, I better get rid of it for you before it can get mixed up"; + mes "with your new Racing Ticket."; + delitem 7514,1; //Monster_Ticket + next; + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Alright, I think you"; + mes "should be all set. I hope"; + mes "that you enjoy the race~"; + mes "Let me guide you inside"; + mes "the Monster Race Arena now."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + } else { + if ($@mon_time_2_1 == 1) { + mes "[Eckar Erenes]"; + mes "Thanks, I hope that"; + mes "you enjoy this race."; + mes "Let me guide you now"; + mes "to the Monster Race Arena."; + set zeny,zeny-2000; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } else if ($@mon_time_2_1 == 2) { + mes "[Eckar Erenes]"; + mes "We're still finishing our"; + mes "preparations for the next"; + mes "Double Monster Race, so"; + mes "we ask that you please"; + mes "wait a little while longer..."; + close; + } + } + if (!$@mon_time_2_1 || !$@mon_time_2_2) { + mes "[Eckar Erenes]"; + mes "Right now, a Monster Race"; + mes "is in progress. It's too late to place a wager, but if you'd like"; + mes "to watch, the fee is 500 zeny"; + mes "for spectators. Would you like to enter the Monster Race Arena?"; + next; + if (select("Enter:Cancel") == 2) { + mes "[Eckar Erenes]"; + mes "Alright, then. If you'd like"; + mes "to wager on a monster"; + mes "race, please wait for the"; + mes "current race to finish. I hope"; + mes "that you enjoy your time here"; + mes "in the Monster Race Arena~"; + close; + } + if (Zeny > 499) { + mes "[Eckar Erenes]"; + mes "Thank you~"; + mes "I hope you enjoy"; + mes "watching this race!"; + set zeny,zeny-500; + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "p_track02",75,41; + end; + } + mes "[Eckar Erenes]"; + mes "I'm sorry, but you don't"; + mes "have enough money to pay"; + mes "the 500 zeny spectator fee."; + close; + } + mes "[Eckar Erenes]"; + mes "I'm sorry, but a monster"; + mes "race has just ended, so we're"; + mes "having the 5 minute period in"; + mes "which the winners can claim"; + mes "their Prize Medals. The gate"; + mes "will open soon, so please wait."; + close; +} + +p_track02,73,22,1 script Ticket Helper#2 899,{ + if (!checkweight(908,200)) { + mes "[Ticket Helper]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "If you'd like to participate"; + mes "in the ^3131FFDouble Monster Race^000000,"; + mes "then please select 1 out of"; + mes "the 6 monsters from the list."; + next; + mes "[Ticket Helper]"; + mes "Wait, wait..."; + mes "I can't give you"; + mes "anything right now."; + mes "You're carrying way"; + mes "too many things..."; + close; + } + if (!monster_race_2_1 && !monster_race_2_2) { + mes "[Ticket Helper]"; + mes "Hello there!"; + mes "Interested in wagering on"; + mes "the Dual Monster Race?"; + mes "I'm here to help you if you've"; + mes "got any questions, or if you"; + mes "want to place your wager."; + next; + switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) { + case 1: + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mon_r02_Luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mon_r02_tire"+.@i) + "]"; + close; + case 2: + mes "[Ticket Helper]"; + mes "Alright, please choose which"; + mes "two monsters that you think"; + mes "will win 1st and 2nd place."; + mes "If both your monsters come"; + mes "in 1st and 2nd, in any order,"; + mes "you'll win the wager."; + next; + mes "[Ticket Helper]"; + mes "Now, please tell me"; + mes "your first choice for one"; + mes "of the monsters that"; + mes "will win this race."; + next; + while (1) { + set .@m$, ""; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + set .@m$, .@m$ + ((.@i != .@m1)?"Monster "+.@i:"")+":"; + set .@m, 0; + set .@m, select (.@m$); + switch (.@m) { + Case 1: setarray .@w$, "a friendly","Poring type monster"; break; + Case 2: setarray .@w$, "an adorable","Lunatic type monster"; break; + Case 3: setarray .@w$, "a darling","Savage Babe monster"; break; + Case 4: setarray .@w$, "a gentle baby","Desert Wolf monster"; break; + Case 5: setarray .@w$, "a small, yet","demonic, Deviruchi"; break; + Case 6: setarray .@w$, "a naughty","Baphomet Jr. monster"; break; + } + mes "[Ticket Helper]"; + mes "You've chosen"; + mes "^0000FFMonster "+.@m+"^000000, "+.@w$[0]; + mes .@w$[1]+"."; + mes "Are you sure you want"; + mes "to choose this monster?"; + if (select("Yes:No") == 2) { + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + next; + if (!.@m1) { + mes "[Ticket Helper]"; + mes "Now, please make"; + mes "your second choice"; + mes "for the monster that"; + mes "you think will place"; + mes "1st or 2nd in this race."; + next; + set .@m1, .@m; + } else { + if (!$@mon_time_2_2) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster "+.@m1+"^000000 and ^0000FFMonster "+.@m+"^000000"; + mes "to win this race. Good luck!"; + mes "I really hope that the odds"; + mes "work out in your favor~"; + emotion e_kis; + set monster_race_2_1,.@m1; + set monster_race_2_2,.@m; + getitem 7514,1; //Monster_Ticket + close; + } else { + mes "[Ticket Helper]"; + mes "I'm very sorry, but a"; + mes "monster race is underway."; + mes "Please wait, and then place"; + mes "your wager for the next race."; + close; + } + } + } + case 3: + mes "[Ticket Helper]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Ticket Helper]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Eclar Ellbird]"; + mes "Then, we have the Dual Monster"; + mes "Race in which those that wagered on the 1st and 2nd place monsters"; + mes "are equally rewarded. The house"; + mes "odds and wager rewards are greater in Dual Races than Single Races."; + next; + mes "[Ticket Helper]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Ticket Helper]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Ticket Helper]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + mes "[Ticket Helper]"; + mes "You're already here"; + mes "inside the Monster Race"; + mes "Arena, so you may as well"; + mes "try placing a wager. It's"; + mes "more fun than you'd think~"; + close; + case 4: + mes "[Ticket Helper]"; + mes "You have canceled"; + mes "your wager. Okay,"; + mes "I understand. Perhaps"; + mes "you'd feel more comfortable"; + mes "checking the monsters first?"; + close; + } + } else { + if (countitem(7514)) { + mes "[Ticket Helper]"; + mes "You've wagered on"; + mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000"; + mes "for this Dual Monster Race."; + next; + } + mes "[Ticket Helper]"; + mes "The start of the race will be"; + mes "announced through a broadcast."; + mes "You can refer to your Mini-Map"; + mes "to track the monsters' race"; + mes "positions. Thank you, and"; + mes "have a good time!"; + viewpoint 1,43,35,0,0xFF0000; + close; + } + +OnInit: + disablenpc "Ticket Helper#2"; + end; +} + +p_track02,39,49,3 script Game Guide#double 845,{ + mes "[Game Guide]"; + mes "Welcome to the"; + mes "Monster Race Arena."; + mes "How can I help you?"; + next; + switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) { + case 1: + mes "[Game Guide]"; + mes "Monster Races originated from"; + mes "simple children's games in which"; + mes "Cute Pets would race against each other. This grew into an adult"; + mes "pastime that is so popular, we've built a racing arena in Hugel."; + next; + mes "[Game Guide]"; + mes "Our Monster Race Arena hosts"; + mes "two types of monster races. First, we have the Single Monster Race,"; + mes "in which those that wagered on the 1st place monster are rewarded."; + next; + mes "[Game Guide]"; + mes "Then, we have the Dual Monster"; + mes "Race in which the house odds and rewards are greater than in Single"; + mes "Monster Races: you must wager on 2 monsters, and they must place in"; + mes "1st and 2nd for you to win."; + next; + mes "[Game Guide]"; + mes "Although a small entrance"; + mes "fee is required, we only use"; + mes "the money to give rewards to"; + mes "participants and maintain this"; + mes "arena. Therefore, we're not"; + mes "profiting from this enterprise."; + next; + mes "[Game Guide]"; + mes "Also, we prohibit others"; + mes "from making personal bets"; + mes "and wagers, using items and"; + mes "zeny, based on the outcomes"; + mes "of these races. That kind of"; + mes "gambling is illegal here..."; + next; + mes "[Game Guide]"; + mes "Once you enter the Race Arena, you will receive a Racing Ticket."; + mes "Keep in mind that winning Racing Tickets can only be exchanged for"; + mes "Prize Medals during a 5 minute window after the end of the race."; + next; + break; + case 2: + mes "[Game Guide]"; + mes "Before placing a wager, you"; + mes "must get a free Racing Ticket"; + mes "from the Ticket Helper. There,"; + mes "I've marked the Ticket Helper"; + mes "on your Mini-Map, so you can"; + mes "find him pretty easily."; + viewpoint 1,73,22,1,0xFF3355; + next; + break; + case 3: + mes "[Game Guide]"; + mes "If you wagered on the winner"; + mes "of a Single Monster Race, or"; + mes "on the 1st or 2nd place winners"; + mes "in a Dual Monster Race, then"; + mes "you can exchange your Racing"; + mes "Ticket for Prize Medals."; + next; + mes "[Game Guide]"; + mes "However, you must exchange"; + mes "your Racing Ticket with the"; + mes "Medal Distributor within the"; + mes "5 minute window after the end"; + mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000"; + next; + mes "[Game Guide]"; + mes "When this 5 minute window"; + mes "elapses, you will be teleported outside, and we will immediately"; + mes "begin preparing for the next race. Make sure that you remember this"; + mes "information when you wager."; + next; + mes "[Game Guide]"; + mes "If you haven't received"; + mes "your free Racing Ticket,"; + mes "then please visit the Ticket"; + mes "Helper. There, I've just marked"; + mes "his location on your Mini-Map."; + viewpoint 1,67,45,2,0xCE6300; + next; + break; + } + mes "[Game Guide]"; + mes "Thank you, and"; + mes "I hope you enjoy"; + mes "your time here in the"; + mes "Monster Racing Arena."; + close; +} + +p_track02,67,45,5 script Medal Distributor#medal 845,{ + if (!checkweight(909,20)) { + mes "[Medal Distributor]"; + mes "I'm sorry, but I can't"; + mes "reward you with any medals"; + mes "until you make more space"; + mes "available in your Inventory."; + close; + } + mes "[Medal Distributor]"; + mes "Hello there~"; + mes "If you've wagered on the"; + mes "winning monster in a recent"; + mes "race, then you can exchange"; + mes "your game ticket here for"; + mes "some Prize Medals."; + next; + if (!countitem(7514)) { + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + close; + } + mes "[Medal Distributor]"; + mes "Please remember that you can"; + mes "only exchange winning Game"; + mes "Tickets for Prize Medals right"; + mes "after the race finishes. Prize"; + mes "Medals may be given to Wayne"; + mes "in Hugel in exchange for items."; + next; + if (monster_race_2_1 == $@mon_race_2_1 && monster_race_2_2 == $@mon_race_2_2) { + mes "[Medal Distributor]"; + mes "Congratulations! It's really"; + mes "difficult to guess the winners"; + mes "of a Dual Monster Race, so you"; + mes "must be really lucky! Would you"; + mes "like to exchange your winning"; + mes "Racing Ticket for Prize Medals?"; + next; + if (select("Yes, please.:No, thanks.") == 1) { + mes "[Medal Distributor]"; + mes "Okay, everything looks good,"; + mes "so here's your Prize Medals~"; + mes "If you want to trade these"; + mes "medals for items, please"; + mes "visit Wayne in Hugel. We hope"; + mes "you enjoyed the Monster Race~"; + delitem 7514,1; //Monster_Ticket + set monster_race_2_1,7; + set monster_race_2_2,7; + getitem 7515,15; //Marvelous_Medal + close; + } + mes "[Medal Distributor]"; + mes "Um, are you sure? You "; + mes "can only exchange a winning"; + mes "Racing Ticket for Prize Medals"; + mes "for a short time after the race. If you made a mistake, you"; + mes "should ask me again quickly."; + close; + } else if (!monster_race_2_1 && !monster_race_2_2) { + mes "[Medal Distributor]"; + mes "Well, better luck next time..."; + mes "Although you can't always"; + mes "be lucky, it's always fun to"; + mes "wager on the monster races!"; + close; + } else if (monster_race_2_1 == 7 && monster_race_2_2 == 7) { + mes "[Medal Distributor]"; + mes "Thanks for visiting the"; + mes "Monster Race Arena, and"; + mes "I hope you enjoy your time"; + mes "here. I'll see you next time~"; + close; + } else if (monster_race_2_1 != $@mon_race_2_1 || monster_race_2_2 != $@mon_race_2_2) { + mes "[Medal Distributor]"; + mes "You may not have wagered"; + mes "on the winning monster in"; + mes "the last race, but I hope that"; + mes "you get lucky next time~"; + close; + } + +OnInit: + disablenpc "Medal Distributor#medal"; + end; +} + +p_track02,76,38,1 script Exit Guide#double 798,{ + mes "[Exit Guide]"; + mes "If you have a winning Racing"; + mes "Ticket, please make sure that"; + mes "you redeem it for Prize Medals"; + mes "now. All Racing Tickets become"; + mes "void once the next race begins."; + next; + mes "[Exit Guide]"; + mes "If you wish to leave"; + mes "the arena, then I can guide"; + mes "you outside. Would you like"; + mes "to leave the arena right now?"; + next; + if (select("Yes:No") == 2) { + mes "[Exit Guide]"; + mes "Alright, then."; + mes "Just let me know"; + mes "whenever you're"; + mes "ready to leave."; + close; + } + if (!countitem(7514)) { + mes "[Exit Guide]"; + mes "Thank you for"; + mes "your patronage, and"; + mes "I hope that you come"; + mes "visit us again soon~"; + } else { + mes "[Exit Guide]"; + mes "In accordance with our"; + mes "policies, I must take your"; + mes "Racing Ticket before you leave."; + mes "Thank you for your patronage,"; + mes "and I hope you enjoy your time"; + mes "here in the Monster Race Arena."; + delitem 7514,1; //Monster_Ticket + } + set monster_race_2_1,0; + set monster_race_2_2,0; + close2; + warp "hugel",63,73; + end; +} + +- script mob1#main -1,{ + function MN; +OnEnable: + enablenpc strnpcinfo(0); + setarray .@n[1], 1725,1726,1727,1728,1730,1729; + getmapxy(.@m$,.@x,.@y,1); + set .@i, MN; + monster "p_track02",58,.@y,"Monster "+.@i,.@n[.@i],1,strnpcinfo(0)+"::OnMyMobDead"; + end; + +OnDisable: + killmonster "p_track02",strnpcinfo(0)+"::OnMyMobDead"; + disablenpc strnpcinfo(0); + end; + +OnTouchNPC: + set .@i, MN; + if (!$@mon_race_2_1) { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_1,1; + donpcevent strnpcinfo(0)+"::OnDisable"; + } else { + emotion e_lv; + specialeffect EF_MVP; + mapannounce "p_track02","The race is over! Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC"; + set $@mon_race_2_2,1; + donpcevent "#poring1::OnDisable"; + donpcevent "#lunatic1::OnDisable"; + donpcevent "#savagebebe1::OnDisable"; + donpcevent "#desertwolf1::OnDisable"; + donpcevent "#deviruchi1::OnDisable"; + donpcevent "#baphomet1::OnDisable"; + donpcevent "TrapGlobal#race02::OnDisable"; + enablenpc "Medal Distributor#medal"; + donpcevent "#race_timer2-3::OnEnable"; + } + end; + +OnMyMobDead: + end; + + function MN { + setarray .@n$[1], "poring","lunatic","savagebebe","desertwolf","deviruchi","baphomet"; + for (set .@i, 1; .@i <= getarraysize(.@n$); set .@i, .@i + 1) { + if (compare(strnpcinfo(0),.@n$[.@i])) + break; + } + return .@i; + } + +OnInit: + if (compare(strnpcinfo(0),"main")) end; + disablenpc strnpcinfo(0); + end; +} +p_track02,30,38,0 duplicate(mob1#main) #poring1 139,0,0 +p_track02,30,36,0 duplicate(mob1#main) #lunatic1 139,0,0 +p_track02,30,34,0 duplicate(mob1#main) #savagebebe1 139,0,0 +p_track02,30,32,0 duplicate(mob1#main) #desertwolf1 139,0,0 +p_track02,30,30,0 duplicate(mob1#main) #deviruchi1 139,0,0 +p_track02,30,28,0 duplicate(mob1#main) #baphomet1 139,0,0 + +p_track02,19,48,0 script TrapGlobal#race02 -1,{ +OnEnable: + enablenpc "TrapGlobal#race02"; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + enablenpc "starting#race02_"+.@i; + set .@c, 1; + while (.@c <= 6) { + setd ".@line_"+.@c,rand(1,70); + if (getd(".@line_"+.@c) <= 10) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk#race02_"+.@c+"_5"; + enablenpc "Luk#race02_"+.@c+"_6"; + setd ".@tired_"+.@c,rand(50,60); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + enablenpc "Tire#race02_"+.@c+"_1"; + } else if (getd(".@line_"+.@c) <= 30) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk#race02_"+.@c+"_5"; + setd ".@tired_"+.@c,rand(40,60); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + enablenpc "Tire#race02_"+.@c+"_1"; + if (getd(".@tired_"+.@c) < 50) enablenpc "Tire#race02_"+.@c+"_2"; + } else if (getd(".@line_"+.@c) <= 40) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk#race02_"+.@c+"_1"; + setd ".@tired_"+.@c,rand(30,50); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + enablenpc "Tire#race02_"+.@c+"_1"; + enablenpc "Tire#race02_"+.@c+"_2"; + if (getd(".@tired_"+.@c) < 40) enablenpc "Tire#race02_"+.@c+"_3"; + } else if (getd(".@line_"+.@c) <= 50) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + enablenpc "Luk#race02_"+.@c+"_1"; + enablenpc "Luk#race02_"+.@c+"_2"; + setd ".@tired_"+.@c,rand(20,40); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + for (set .@i, 1; .@i <= 3; set .@i, .@i + 1) + enablenpc "Tire#race02_"+.@c+"_"+.@i; + if (getd(".@tired_"+.@c) < 30) enablenpc "Tire#race02_"+.@c+"_4"; + } else if (getd(".@line_"+.@c) <= 60) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + for (set .@i, 1; .@i <= 3; set .@i, .@i + 1) + enablenpc "Luk#race02_"+.@c+"_"+.@i; + setd ".@tired_"+.@c,rand(10,30); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + for (set .@i, 1; .@i <= 4; set .@i, .@i + 1) + enablenpc "Tire#race02_"+.@c+"_"+.@i; + if (getd(".@tired_"+.@c) < 20) enablenpc "Tire#race02_"+.@c+"_5"; + } else if (getd(".@line_"+.@c) <= 70) { + setd "$@mon_r02_luk"+.@c,getd(".@line_"+.@c); + for (set .@i, 1; .@i <= 4; set .@i, .@i + 1) + enablenpc "Luk#race02_"+.@c+"_"+.@i; + setd ".@tired_"+.@c,rand(0,20); + setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); + for (set .@i, 1; .@i <= 5; set .@i, .@i + 1) + enablenpc "Tire#race02_"+.@c+"_"+.@i; + if (getd(".@tired_"+.@c) < 10) enablenpc "Tire#race02_"+.@c+"_6"; + } + set .@c, .@c + 1; + } + end; + +OnDisable: + disablenpc "TrapGlobal#race02"; + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) + donpcevent "starting#race02_"+.@i+"::OnDisable"; + end; + +OnInit: + for (set .@i, 1; .@i <= 6; set .@i, .@i + 1) { + setd "$@mon_r02_luk"+.@i,0; + setd "$@mon_r02_tire"+.@i,0; + } + end; +} + +- script starting_2 -1,{ +OnDisable: + disablenpc strnpcinfo(0); + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i; + for(set .@i,1; .@i<7; set .@i,.@i+1) + disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i; + end; + +OnTouchNPC: + set .@start,rand(1,100); + if (.@start < 11) set .@speed,60; + else if (.@start < 21) set .@speed,70; + else if (.@start < 31) set .@speed,80; + else if (.@start < 41) set .@speed,90; + else if (.@start < 51) set .@speed,100; + else if (.@start < 61) set .@speed,110; + else if (.@start < 71) set .@speed,120; + else if (.@start < 81) set .@speed,130; + else if (.@start < 91) set .@speed,140; + else set .@speed,150; + sc_start SC_WALKSPEED,5000,.@speed; + end; + +OnInit: + disablenpc strnpcinfo(0); + end; +} + +p_track02,56,38,0 duplicate(starting_2) starting#race02_1 -1,0,0 +p_track02,56,36,0 duplicate(starting_2) starting#race02_2 -1,0,0 +p_track02,56,34,0 duplicate(starting_2) starting#race02_3 -1,0,0 +p_track02,56,32,0 duplicate(starting_2) starting#race02_4 -1,0,0 +p_track02,56,30,0 duplicate(starting_2) starting#race02_5 -1,0,0 +p_track02,56,28,0 duplicate(starting_2) starting#race02_6 -1,0,0 + +p_track02,33,38,0 duplicate(Luk_1) Luk#race02_1_1 -1,0,0 +p_track02,37,38,0 duplicate(Luk_1) Luk#race02_1_2 -1,0,0 +p_track02,53,38,0 duplicate(Luk_1) Luk#race02_1_3 -1,0,0 +p_track02,45,38,0 duplicate(Luk_1) Luk#race02_1_4 -1,0,0 +p_track02,33,36,0 duplicate(Luk_1) Luk#race02_2_1 -1,0,0 +p_track02,37,36,0 duplicate(Luk_1) Luk#race02_2_2 -1,0,0 +p_track02,53,36,0 duplicate(Luk_1) Luk#race02_2_3 -1,0,0 +p_track02,45,36,0 duplicate(Luk_1) Luk#race02_2_4 -1,0,0 +p_track02,33,34,0 duplicate(Luk_1) Luk#race02_3_1 -1,0,0 +p_track02,37,34,0 duplicate(Luk_1) Luk#race02_3_2 -1,0,0 +p_track02,53,34,0 duplicate(Luk_1) Luk#race02_3_3 -1,0,0 +p_track02,45,34,0 duplicate(Luk_1) Luk#race02_3_4 -1,0,0 +p_track02,33,32,0 duplicate(Luk_1) Luk#race02_4_1 -1,0,0 +p_track02,37,32,0 duplicate(Luk_1) Luk#race02_4_2 -1,0,0 +p_track02,53,32,0 duplicate(Luk_1) Luk#race02_4_3 -1,0,0 +p_track02,45,32,0 duplicate(Luk_1) Luk#race02_4_4 -1,0,0 +p_track02,33,30,0 duplicate(Luk_1) Luk#race02_5_1 -1,0,0 +p_track02,37,30,0 duplicate(Luk_1) Luk#race02_5_2 -1,0,0 +p_track02,53,30,0 duplicate(Luk_1) Luk#race02_5_3 -1,0,0 +p_track02,45,30,0 duplicate(Luk_1) Luk#race02_5_4 -1,0,0 +p_track02,33,28,0 duplicate(Luk_1) Luk#race02_6_1 -1,0,0 +p_track02,37,28,0 duplicate(Luk_1) Luk#race02_6_2 -1,0,0 +p_track02,53,28,0 duplicate(Luk_1) Luk#race02_6_3 -1,0,0 +p_track02,45,28,0 duplicate(Luk_1) Luk#race02_6_4 -1,0,0 + +p_track02,49,38,0 duplicate(Luk_2) Luk#race02_1_5 -1,0,0 +p_track02,41,38,0 duplicate(Luk_2) Luk#race02_1_6 -1,0,0 +p_track02,49,36,0 duplicate(Luk_2) Luk#race02_2_5 -1,0,0 +p_track02,41,36,0 duplicate(Luk_2) Luk#race02_2_6 -1,0,0 +p_track02,49,34,0 duplicate(Luk_2) Luk#race02_3_5 -1,0,0 +p_track02,41,34,0 duplicate(Luk_2) Luk#race02_3_6 -1,0,0 +p_track02,49,32,0 duplicate(Luk_2) Luk#race02_4_5 -1,0,0 +p_track02,41,32,0 duplicate(Luk_2) Luk#race02_4_6 -1,0,0 +p_track02,49,30,0 duplicate(Luk_2) Luk#race02_5_5 -1,0,0 +p_track02,41,30,0 duplicate(Luk_2) Luk#race02_5_6 -1,0,0 +p_track02,49,28,0 duplicate(Luk_2) Luk#race02_6_5 -1,0,0 +p_track02,41,28,0 duplicate(Luk_2) Luk#race02_6_6 -1,0,0 + +p_track02,43,38,0 duplicate(Tire_1) Tire#race02_1_1 -1,0,0 +p_track02,39,38,0 duplicate(Tire_1) Tire#race02_1_2 -1,0,0 +p_track02,35,38,0 duplicate(Tire_1) Tire#race02_1_3 -1,0,0 +p_track02,55,38,0 duplicate(Tire_1) Tire#race02_1_4 -1,0,0 +p_track02,51,38,0 duplicate(Tire_1) Tire#race02_1_5 -1,0,0 +p_track02,47,38,0 duplicate(Tire_1) Tire#race02_1_6 -1,0,0 +p_track02,43,36,0 duplicate(Tire_1) Tire#race02_2_1 -1,0,0 +p_track02,39,36,0 duplicate(Tire_1) Tire#race02_2_2 -1,0,0 +p_track02,35,36,0 duplicate(Tire_1) Tire#race02_2_3 -1,0,0 +p_track02,55,36,0 duplicate(Tire_1) Tire#race02_2_4 -1,0,0 +p_track02,51,36,0 duplicate(Tire_1) Tire#race02_2_5 -1,0,0 +p_track02,47,36,0 duplicate(Tire_1) Tire#race02_2_6 -1,0,0 +p_track02,43,34,0 duplicate(Tire_1) Tire#race02_3_1 -1,0,0 +p_track02,39,34,0 duplicate(Tire_1) Tire#race02_3_2 -1,0,0 +p_track02,35,34,0 duplicate(Tire_1) Tire#race02_3_3 -1,0,0 +p_track02,55,34,0 duplicate(Tire_1) Tire#race02_3_4 -1,0,0 +p_track02,51,34,0 duplicate(Tire_1) Tire#race02_3_5 -1,0,0 +p_track02,47,34,0 duplicate(Tire_1) Tire#race02_3_6 -1,0,0 +p_track02,43,32,0 duplicate(Tire_1) Tire#race02_4_1 -1,0,0 +p_track02,39,32,0 duplicate(Tire_1) Tire#race02_4_2 -1,0,0 +p_track02,35,32,0 duplicate(Tire_1) Tire#race02_4_3 -1,0,0 +p_track02,55,32,0 duplicate(Tire_1) Tire#race02_4_4 -1,0,0 +p_track02,51,32,0 duplicate(Tire_1) Tire#race02_4_5 -1,0,0 +p_track02,47,32,0 duplicate(Tire_1) Tire#race02_4_6 -1,0,0 +p_track02,43,30,0 duplicate(Tire_1) Tire#race02_5_1 -1,0,0 +p_track02,39,30,0 duplicate(Tire_1) Tire#race02_5_2 -1,0,0 +p_track02,35,30,0 duplicate(Tire_1) Tire#race02_5_3 -1,0,0 +p_track02,55,30,0 duplicate(Tire_1) Tire#race02_5_4 -1,0,0 +p_track02,51,30,0 duplicate(Tire_1) Tire#race02_5_5 -1,0,0 +p_track02,47,30,0 duplicate(Tire_1) Tire#race02_5_6 -1,0,0 +p_track02,43,28,0 duplicate(Tire_1) Tire#race02_6_1 -1,0,0 +p_track02,39,28,0 duplicate(Tire_1) Tire#race02_6_2 -1,0,0 +p_track02,35,28,0 duplicate(Tire_1) Tire#race02_6_3 -1,0,0 +p_track02,55,28,0 duplicate(Tire_1) Tire#race02_6_4 -1,0,0 +p_track02,51,28,0 duplicate(Tire_1) Tire#race02_6_5 -1,0,0 +p_track02,47,28,0 duplicate(Tire_1) Tire#race02_6_6 -1,0,0 + +// NPCs for Redeeming Prize Medals (Einbroch and Hugel) +//============================================================ +ein_in01,85,208,5 script Ei'felle#repay01 854,{ + if (!ein_medal01) { + mes "[Ei'felle]"; + mes "Curses! We need to deliver"; + mes "what our customers ordered,"; + mes "but we've been making nothing"; + mes "but shipshod products! If we"; + mes "only had that metal, we could"; + mes "pump up our product quality!"; + next; + select("What metal are you talking about?"); + mes "[Ei'felle]"; + mes "There's a small village"; + mes "at the outskirts of the"; + mes "Schwaltzvalt Republic that"; + mes "gives these special medals"; + mes "that are made of this metal"; + mes "which we desperately need..."; + next; + mes "[Ei'felle]"; + mes "We've sent one of our best"; + mes "guildsmen to get some of those"; + mes "medals for us, but he hasn't"; + mes "reported back to us quite yet."; + mes "I'm getting pretty anxious..."; + next; + mes "[Ei'felle]"; + mes "I mean, we need a whole"; + mes "lot of that metal to fill out"; + mes "our orders and finish our"; + mes "manufacturing research,"; + mes "but so far, none of us have"; + mes "been able to get any medals..."; + next; + if (countitem(7515)) { + mes "["+ strcharinfo(0) +"]"; + mes "Oh! Are you talking"; + mes "about the medals that"; + mes "they give as rewards in"; + mes "the Monster Race Arena?"; + mes "I have some of those."; + next; + mes "[Ei'felle]"; + mes "Huh? Show them to me..."; + mes "Yes! That's exactly what"; + mes "we need! Would you please"; + mes "donate your medals so that we"; + mes "can finally make some quality"; + mes "products for our customers?"; + next; + callsub S_Reward; + end; + } + mes "[Ei'felle]"; + mes "If you happen to obtain any"; + mes "medals from the Monster"; + mes "Race Arena in Hugel, then"; + mes "please bring some of them"; + mes "to me. I'll be sure to repay"; + mes "you for your kindness..."; + close; + } else if (ein_medal01 < 500) { + mes "[Ei'felle]"; + mes "Oh, how have you been?"; + mes "Thank you so much for"; + mes "donating so many medals,"; + mes "they've been helpful in my"; + mes "research. Still, I need more"; + mes "and more of them everyday..."; + next; + if (countitem(7515)) { + mes "[Ei'felle]"; + mes "The other Blacksmith"; + mes "Guildsmen are doing their"; + mes "best to collect Prize Medals"; + mes "in Hugel, but they keep failing"; + mes "to win them! If you have any"; + mes "medals, then may I have some?"; + next; + callsub S_Reward; + end; + } + mes "[Ei'felle]"; + mes "If you happen to obtain any"; + mes "medals from the Monster"; + mes "Race Arena in Hugel, then"; + mes "please bring some of them"; + mes "to me. I'll be sure to repay"; + mes "you for your kindness..."; + close; + } + if (!checkweight(1201,1)) { + mes "[Ei'felle]"; + mes "Goodness, you're carrying"; + mes "so many things with you!"; + mes "You'd better put some of"; + mes "it away in Kafra Storage"; + mes "before you're overwhelmed"; + mes "by the bulk of your items!"; + close; + } + if (ein_medal01 > 499 && ein_medal01 < 1500) { + if (ein_medal01 < 1000) { + mes "[Ei'felle]"; + mes "Ah, welcome back! I've finally"; + mes "made a breakthrough in my"; + mes "metal research! Look, I've"; + mes "developed this Glittering"; + mes "Jacket! It's lightweight and"; + mes "very durable, you see?"; + next; + mes "[Ei'felle]"; + mes "I wouldn't be able to have"; + mes "completed this without your"; + mes "help. Now, would you like to"; + mes "receive this Glittering Jacket"; + mes "as my way of repaying you?"; + next; + if (select("Accept:Wait for Further Development") == 1) { + callsub S_BonusReward,500,2319; + end; + } + mes "[Ei'felle]"; + mes "Ah, I see. You'd rather wait"; + mes "until we develop something"; + mes "more to your liking. In that"; + mes "case, would you please donate"; + mes "more medals to my research?"; + mes "We're always low on them..."; + next; + } else if (ein_medal01 < 1500) { + mes "[Ei'felle]"; + mes "Oh, you're back!"; + mes "Thanks to all the medals"; + mes "that you've donated, I'm now"; + mes "able to manufacture a set"; + mes "of slotted armor imbued"; + mes "with a property of your choice."; + next; + mes "[Ei'felle]"; + mes "If you'd like, I can repay you"; + mes "now by creating a set of slotted elemental armor for you, or we"; + mes "can wait for you to donate more"; + mes "medals until I can develop"; + mes "something else for you."; + next; + switch(select("Accept Armor:Can I have something else?:Wait for Further Development")) { + case 1: + mes "[Ei'felle]"; + mes "I can manufacture one set of"; + mes "slotted Armor imbued with the"; + mes "Fire, Earth, Wind, or Water"; + mes "property. Which property would"; + mes "you like your armor to have?"; + next; + switch(select("Fire Property:Earth Property:Wind Property:Water Property")) { + case 1: callsub S_BonusReward,1000,2345; end; + case 2: callsub S_BonusReward,1000,2351; end; + case 3: callsub S_BonusReward,1000,2349; end; + case 4: callsub S_BonusReward,1000,2347; end; + } + case 2: + mes "[Ei'felle]"; + mes "Something else...?"; + mes "Oh, you must mean"; + mes "the Glittering Jacket that"; + mes "I developed earlier. After"; + mes "all, I have any other items"; + mes "to offer you for now..."; + next; + callsub S_BonusReward,500,2319; + end; + case 3: + mes "[Ei'felle]"; + mes "Ah, I see. You'd rather wait"; + mes "until we develop something"; + mes "more to your liking. In that"; + mes "case, would you please donate"; + mes "more medals to my research?"; + mes "We're always low on them..."; + next; + break; + } + } + if (countitem(7515)) { + mes "[Ei'felle]"; + mes "The other Blacksmith"; + mes "Guildsmen are doing their"; + mes "best to collect Prize Medals"; + mes "in Hugel, but they keep failing"; + mes "to win them! If you have any"; + mes "medals, then may I have some?"; + next; + callsub S_Reward; + end; + } + mes "[Ei'felle]"; + mes "If you happen to obtain any"; + mes "medals from the Monster"; + mes "Race Arena in Hugel, then"; + mes "please bring some of them"; + mes "to me. I'll be sure to repay"; + mes "you for your kindness..."; + close; + } else if (ein_medal01 > 1499) { + mes "[Ei'felle]"; + mes "Ah, you're back! I've"; + mes "extracted all the metal"; + mes "from the medals you've"; + mes "given me, and I think I have"; + mes "enough to create a Level 4"; + mes "Weapon. Isn't that incredible?"; + next; + mes "[Ei'felle]"; + mes "If you like, I can create"; + mes "one of these weapons for you"; + mes "as my way of repaying you for"; + mes "your help. What do you think?"; + next; + if (select("Yes, I want a Level 4 Weapon.:Can I have something else?") == 2) { + mes "[Ei'felle]"; + mes "Something else?"; + mes "Oh, alright then, would"; + mes "you like to have a Glittering"; + mes "Jacket, or a set of slotted"; + mes "elemental Armor? Please go"; + mes "ahead and make your choice~"; + next; + switch (select("Glittering Jacket:Fire Property Armor:Earth Property Armor:Wind Property Armor:Water Property Armor:Cancel")) { + case 1: callsub S_BonusReward,500,2319; end; + case 2: callsub S_BonusReward,1000,2345; end; + case 3: callsub S_BonusReward,1000,2351; end; + case 4: callsub S_BonusReward,1000,2349; end; + case 5: callsub S_BonusReward,1000,2347; end; + case 6: close; + } + } + setarray .@m$, "Dagger","One Handed Sword","Two Handed Sword","Axe","Mace","Bow","Staff","Book","Spear","Katar","Knuckle","Whip","Musical Instrument"; + set .@m, select (implode(.@m$,":")) - 1; + mes "[Ei'felle]"; + mes "So you'd like to have a"; + mes .@m$[.@m]+"? Please choose"; + mes "which Level 4 Weapon"; + mes "that you want me to create."; + next; + switch (.@m) { + Case 0: + setarray .@mw$, "Ginnungagap:Grimtooth:Dragon Killer:Mail Breaker:Bazerald:Sword Breaker:Ice Pick:Sucsamad:Kitchen Knife:Azoth:Exorciser:Assassin Dagger:Moonlight Dagger:Weeder Knife:Cursed Dagger:Dagger of Counter:Combat Knife:Fortune Sword"; + setarray .@mw, 13002,1237,13001,1225,1231,1224,1230,1236,1229,1235,1233,1232,1234,1227,1241,1242,1228,1223; + break; + Case 1: + setarray .@mw$, "Nagan:Immaterial Sword:Mysteltainn:Byeollungum:Star Dust Blade:Caesar's Sword:Ice Falchion:Excalibur:Edge:Cutlus:Solar Sword:Tirfing:Fireblend"; + setarray .@mw, 1130,1141,1138,1140,1148,1134,1131,1137,1132,1135,1136,1139,1133; + break; + Case 2: + setarray .@mw$, "Dragon Slayer:Masamune:Muramasa:Schweizersabel:Executioner:Zweihander:Katzbalger"; + setarray .@mw, 1166,1165,1164,1167,1169,1168,1170; + break; + Case 3: + setarray .@mw$, "Great Axe:Guillotine:Light Epsilon:Bloody Axe:Sabbath:Slaughter:Cleaver:Tomahawk"; + setarray .@mw, 1364,1369,1366,1363,1365,1367,1305,1368; + break; + Case 4: + setarray .@mw$, "Golden Mace:Grand Cross:Long Mace:Spike:Slash:Quadrille"; + setarray .@mw, 1524,1528,1525,1523,1526,1527; + break; + Case 5: + setarray .@mw$, "Roguemaster's Bow:Dragon Wing:Rudra's Bow:Ballista"; + setarray .@mw, 1719,1724,1720,1722; + break; + Case 6: + setarray .@mw$, "Wing Staff:Wizardry Staff"; + setarray .@mw, 1616,1473; + Case 7: + setarray .@mw$, "Legacy of Dragon:Book of the Apocalypse:Girl's Diary:Hardcover Book"; + setarray .@mw, 1559,1557,1558,1561; + break; + Case 8: + setarray .@mw$, "Gae Bolg:Gelerdria:Gungnir:Skewer:Longinus's Spear:Brionac:Bill Guisarme:Zephyrus:Crescent Scythe:Tjungkuletti:Hellfire"; + setarray .@mw, 1474,1414,1413,1415,1469,1470,1467,1468,1466,1416,1471; + break; + Case 9: + setarray .@mw$, "Infiltrator:Bloody Roar:Unholy Touch"; + setarray .@mw, 1261,1265,1263; + break; + Case 10: + setarray .@mw$, "Hatii Claw:Berserk:Kaiser Knuckle"; + setarray .@mw, 1815,1814,1813; + break; + Case 11: + setarray .@mw$, "Lariat:Rapture Rose:Blade Whip:Chemeti:Queen's Whip"; + setarray .@mw, 1962,1963,1969,1964,1970; + break; + Case 12: + setarray .@mw$, "Oriental Lute:Electric Guitar"; + setarray .@mw, 1918,1913; + break; + } + set .@j, select (.@mw$+":Cancel") - 1; + explode(.@mw$,.@mw$,":"); + if (.@j == getarraysize(.@mw$)) close; + callsub S_BonusReward,1500,.@mw[.@j]; + end; + } + +S_Reward: + if (select("Sure:No") == 2) { + mes "[Ei'felle]"; + mes "Oh, alright..."; + mes "Still, I really need"; + mes "those medals, so if you"; + mes "change your mind, please"; + mes "come back as soon as you can."; + emotion e_sob; + close; + } + mes "[Ei'felle]"; + mes "Oh, thank you so much!"; + mes "I can use the metal in those"; + mes "medals to produce some high"; + mes "quality products. Now, how"; + mes "shall I repay you for giving me"; + mes "some of your Prize Medals?"; + next; + switch(select("Base Experience:Job Experience:No, I'm just glad to help.:How's your research progressing?")) { + case 1: + mes "[Ei'felle]"; + mes "You just want to improve"; + mes "yourself, huh? Well, I dunno"; + mes "if you want to get stronger,"; + mes "smarter, or faster, but I can"; + mes "coach you on some visualization if you like. Now, relax with me~"; + mes "physical development."; + next; + mes "[Ei'felle]"; + mes "Focus... and believe."; + mes "Believe that you are"; + mes "becoming what you want"; + mes "to be! B-believe... with"; + mes "all of your freakin' heart!"; + emotion e_omg,1; + emotion e_omg; + next; + mes "[Ei'felle]"; + mes "*Phew* How's that?"; + mes "Now do you see the"; + mes "power of hope?"; + delitem 7515,1; //Marvelous_Medal + if (BaseLevel < 21) getexp 200,0; + else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 300,0; + else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 1000,0; + else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 1800,0; + else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 2500,0; + else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 4700,0; + else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 5500,0; + else if ((BaseLevel > 80) && (BaseLevel < 96)) getexp 7000,0; + else if ((BaseLevel > 95) && (BaseLevel < 111)) getexp 8800,0; + else if ((BaseLevel > 110) && (BaseLevel < 126)) getexp 10900,0; + else if ((BaseLevel > 125) && (BaseLevel < 141)) getexp 13300,0; + else getexp 16000,0; + close; + case 2: + mes "[Ei'felle]"; + mes "You want to become more"; + mes "competent in your job? Um..."; + mes "Alright, we can do that. Just"; + mes "meditate with me, and we'll go"; + mes "do some imagery work together."; + mes "I'm real good at this you know."; + next; + mes "[Ei'felle]"; + mes "J-just... visualize"; + mes "yourself... being..."; + mes "t-totally... awesome!"; + mes "You've gotta see it, and"; + mes "you've gotta feel it in your"; + mes "freakin' heart and mind!"; + emotion e_omg,1; + emotion e_omg; + next; + mes "[Ei'felle]"; + mes "Yeap, it doesn't matter"; + mes "if it's real or imagined..."; + mes "Your mind will work on"; + mes "whatever you feed it."; + mes "Placebos and psychosomatic symptoms-- it all ties together."; + delitem 7515,1; //Marvelous_Medal + if (BaseLevel < 21) getexp 0,150; + else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 0,200; + else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 0,750; + else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 0,1800; + else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 0,2500; + else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 0,3525; + else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 0,4125; + else if ((BaseLevel > 80) && (BaseLevel < 96)) getexp 0,5250; + else if ((BaseLevel > 95) && (BaseLevel < 111)) getexp 0,6600; + else if ((BaseLevel > 110) && (BaseLevel < 126)) getexp 0,8175; + else if ((BaseLevel > 125) && (BaseLevel < 141)) getexp 0,9975; + else getexp 0,12000; + close; + case 3: + mes "[Ei'felle]"; + mes "What th--?! You sure"; + mes "you don't want anything?"; + mes "Hm, well, I think it's kind"; + mes "of bad karma if I don't give"; + mes "you anything in return, so..."; + mes "Think of something. Quick."; + next; + mes "["+ strcharinfo(0) +"]"; + mes "Er, just use the medals"; + mes "to further your manufacturing"; + mes "research, and then you can"; + mes "pay me back if your develop"; + mes "something new. It's, um, like"; + mes "an investment in your work!"; + next; + mes "[Ei'felle]"; + mes "Yeah... Yeah."; + mes "Okay, I see where"; + mes "you're coming from."; + mes "That's pretty smart."; + mes "Okay, I'll repay you when"; + mes "we develop something new!"; + next; + mes "[Ei'felle]"; + mes "Anyway, I need as many"; + mes "medals as I can get as"; + mes "soon as I can. How many"; + mes "medals do you think you"; + mes "can give me right now?"; + next; + switch(select("Take them all.:How about this much?:No, I changed my mind.")) { + case 1: + mes "[Ei'felle]"; + mes "Th-thank you!"; + mes "Thank you so much!"; + mes "Your help will greatly"; + mes "advance my research,"; + mes "and I promise to repay"; + mes "you as soon as I can!"; + set .@medals,countitem(7515); + delitem 7515,.@medals; //Marvelous_Medal + set ein_medal01,ein_medal01+.@medals; + close; + case 2: + mes "[Ei'felle]"; + mes "Alright, please enter the"; + mes "number of medals that"; + mes "you're willing to give me."; + mes "Please don't enter any"; + mes "number greater than 100."; + next; + while(1) { + input .@input; + if (!.@input) { + mes "[Ei'felle]"; + mes "Aw, so you've decided"; + mes "to cancel? Well, it's your"; + mes "choice, but I'm still so"; + mes "disappointed. Please come"; + mes "back if you change your mind..."; + close; + } else if (.@input < 1 || .@input > 100) { + mes "[Ei'felle]"; + mes "Remember, you can only"; + mes "enter a number from 1 to 100."; + mes "If you want to give me more"; + mes "medals, then perhaps you"; + mes "should just give them all to me~ ^FFFFFF ^000000"; + next; + } else break; + } + if (countitem(7515) < .@input) { + mes "[Ei'felle]"; + mes "I'm sorry, but I don't"; + mes "think you have that many"; + mes "medals with you. Make sure"; + mes "that you offer me an amount of"; + mes "medals that you actually have."; + emotion e_heh; + close; + } else { + mes "[Ei'felle]"; + mes "Th-thank you!"; + mes "Thank you so much!"; + mes "Your help will greatly"; + mes "advance my research,"; + mes "and I promise to repay"; + mes "you as soon as I can!"; + delitem 7515,.@input; //Marvelous_Medal + set ein_medal01,ein_medal01+.@input; + close; + } + case 3: + mes "[Ei'felle]"; + mes "Oh, alright..."; + mes "Still, I really need"; + mes "those medals, so if you"; + mes "change your mind, please"; + mes "come back as soon as you can."; + close; + } + delitem 7515,1; //Marvelous_Medal + set ein_medal01,1; + close; + case 4: + mes "[Ei'felle]"; + mes "Well, I've been able to"; + mes "create a Glittering Jacket"; + mes "using the medals that you've"; + mes "brought to me. But I just know"; + mes "I can make something better"; + mes "if you'd bring me more!"; + next; + mes "[Ei'felle]"; + mes "As of now, I have the metal"; + mes "from ^FF0000"+ ein_medal01 +"^000000 Prizes Medals that"; + mes "you've donated to me. The more"; + mes "that you bring, the closer I can get to making a new breakthrough!"; + close; + } + +S_BonusReward: + mes "[Ei'felle]"; + if (getarg(1) == 2319) { + mes "Do you really want"; + mes "this "+getitemname(getarg(1))+"?"; + mes "You may want to forego this"; + mes "reward in favor of getting"; + mes "something better later..."; + } else if ((getarg(1) == 2345) || (getarg(1) == 2347) || (getarg(1) == 2349) || (getarg(1) == 2351)) { + mes "Are you sure that you want"; + mes "to accept this set of slotted"; + if (getarg(1) == 2345) mes "Fire property Armor? If you do,"; + else if (getarg(1) == 2351) mes "Earth property Armor? If you do,"; + else if (getarg(1) == 2349) mes "Wind property Armor? If you do,"; + else if (getarg(1) == 2347) mes "Water property Armor? If you do,"; + mes "I'll need more medals from you"; + mes "to make further advancements"; + mes "in my manufacturing research."; + } else { + mes "So you wish to have a"; + mes getitemname(getarg(1))+"? If you choose"; + mes "to have this Level 4 Weapon,"; + mes "I'll need to melt many of the"; + mes "medals that you've donated"; + mes "to me. Shall we proceed?"; + } + next; + if (select("Decline:Accept") == 1) { + mes "["+ strcharinfo(0) +"]"; + mes "W-wait, I changed my"; + mes "mind. Would it be fine"; + mes "if I asked you to give"; + mes "me a reward later?"; + next; + mes "[Ei'felle]"; + if (!getiteminfo(getarg(1),13)) { //use item level to determine if the item is armor (no weapon level) + mes "Of course, of course."; + mes "Remember, if you donate"; + mes "more medals to me, then"; + mes "I'll be able to create items"; + mes "of higher quality for you~"; + } else { + mes "I don't think I can develop"; + mes "anything better than these Level 4 Weapons, but after making"; + mes "such a big investment, you should decide on what you want carefully."; + } + close; + } + mes "[Ei'felle]"; + if (getarg(1) == 2319) { + mes "Here you are, I trust that"; + mes "this "+getitemname(getarg(1))+" will"; + mes "serve you well. Thank you"; + mes "for your help, and I hope that"; + mes "you'll continue to donate your"; + mes "medals for my metal research~"; + } + else if ((getarg(1) == 2345) || (getarg(1) == 2347) || (getarg(1) == 2349) || (getarg(1) == 2351)) { + mes "Great choice! I'm sure"; + if (getarg(1) == 2345) mes "that this set of slotted Fire"; + else if (getarg(1) == 2351) mes "that this set of slotted Earth"; + else if (getarg(1) == 2349) mes "that this set of slotted Wind"; + else if (getarg(1) == 2347) mes "that this set of slotted Water"; + mes "property Armor will serve you"; + mes "well. Thank you for your help,"; + mes "and if you get more medals,"; + mes "please donate them to me~"; + } else { + mes "Once again, I'd like to"; + mes "thank you for providing"; + mes "me with all of those medals."; + mes "I imagine it must have been"; + mes "difficult. In any case, I would"; + mes "appreciate your continued help~"; + } + set ein_medal01,ein_medal01-getarg(0); + getitem getarg(1),1; + close; +} + +hugel,71,83,4 script Wayne 900,{ + if (!checkweight(1201,1)) { + mes "[Wayne]"; + mes "Hold on a second..."; + mes "If you want to exchange"; + mes "your Prize Medals for items,"; + mes "you'd better free up more space"; + mes "in your Inventory first. Why don't you use your Kafra Storage?"; + close; + } + mes "[Wayne]"; + mes "Hello, there! Ever wonder"; + mes "what you could do with all"; + mes "the Prize Medals you can win"; + mes "in Monster Race Arena? You"; + mes "can donate them in Einbroch"; + mes "to the Blacksmith Guild..."; + next; + mes "[Wayne]"; + mes "...Or you can exchange them"; + mes "for items, right here and right"; + mes "now, with me. As always, the"; + mes "choice is really up to you."; + next; + if (select("Prize Medal Exchange:Cancel") == 2) { + mes "[Wayne]"; + mes "Well, just keep in mind"; + mes "that you can always come"; + mes "to me to trade in your Prize"; + mes "Medals for consumable items."; + mes "That guy in Einbroch? Not sure"; + mes "what he'd give you for them..."; + next; + mes "[Wayne]"; + mes "All I know is that he"; + mes "needs a whole lot of medals"; + mes "for the work that he's doing."; + mes "Still, I hear that he just may"; + mes "make your donations worth"; + mes "all your effort, you know?"; + close; + } + if (!checkweight(909,550)) { + mes "[Wayne]"; + mes "Hold on a second..."; + mes "If you want to exchange"; + mes "your Prize Medals for items,"; + mes "you'd better free up more space"; + mes "in your Inventory first. Why don't you use your Kafra Storage?"; + close; + } else { + mes "[Wayne]"; + mes "Now, how many Prize Medals"; + mes "would you like to exchange?"; + mes "It doesn't take a genius to"; + mes "figure out that you can get"; + mes "more valuable items by trading"; + mes "more Prize Medals at a time."; + next; + setarray .@pm, 1,3,7,8,16,25,42,59; + for (set .@i, 0; .@i < getarraysize(.@pm); set .@i, .@i + 1) + set .@m$, .@m$ + .@pm[.@i] + " Prize medal:"; + set .@m, select (.@m$) - 1; + switch (.@m) { + Case 0: + setarray .@mr$, "2 Hinale Leaflets:2 Aloe Leaflets:1 Mastela Fruit:5 Witch Starsands:4 Condensed Red Potions"; + setarray .@mr, 520,2,521,2,522,1,1061,5,545,4; + break; + Case 1: + setarray .@mr$, "1 Royal Jelly:6 Holy Waters"; + setarray .@mr, 526,1,523,6; + break; + Case 2: + setarray .@mr$, "1 Cookie Bag:1 First Aid Kit"; + setarray .@mr, 12130,1,12110,1; + break; + Case 3: + set .@mr$, "1 Gift Box"; + setarray .@mr, 644,1; + break; + Case 4: + set .@mr$, "1 Old Blue Box"; + setarray .@mr, 603,1; + break; + Case 5: + set .@mr$, "1 Taming Gift Set"; + setarray .@mr, 12105,1; + break; + Case 6: + set .@mr$, "1 Old Purple Box"; + setarray .@mr, 617,1; + break; + Case 7: + set .@mr$, "1 Poring Box"; + setarray .@mr, 12109,1; + break; + } + mes "[Wayne]"; + mes "Now, please choose"; + mes "which of the following item"; + mes "sets that you'd like to receive"; + mes "in exchange for "+.@pm[.@m]+" Prize Medal."+((getarraysize(.@mr)<3)?" Well, we have only 1 set, but...":""); + next; + set .@m2, select (.@mr$) - 1; + if (countitem(7515) < .@pm[.@m]) { + mes "[Wayne]"; + mes "Hey, you don't have"; + mes "enough Prize Medals with"; + mes "you. Go and get some more"; + mes "if you want to exchange"; + mes "them with me for anything."; + close; + } + mes "[Wayne]"; + mes "There you go~"; + mes "Thanks for using my"; + mes "service, and I hope that"; + mes "you come visit me again"; + mes "soon. Enjoy the monster"; + mes "races, fair adventurer~"; + delitem 7515,.@pm[.@m]; + getitem .@mr[.@m2*2],.@mr[((.@m2*2)+1)]; + close; + } +} + +// Monstrer Race Affiliated NPCs +//============================================================ +airplane,246,47,1 script Eocatt#decoy01 878,{ + mes "[Eocatt]"; + mes "There's an old, humble"; + mes "village on the outskirts of"; + mes "the Schwaltzvalt Republic."; + mes "It was just a tiny blip on the"; + mes "map until they opened up"; + mes "their Monster Race Arena!"; + next; + mes "[Eocatt]"; + mes "If you win wagers on the"; + mes "monster race games, you'll"; + mes "be rewarded with these Prize"; + mes "Medals that are made of some"; + mes "really rare metal. I hear this metal's in demand in Einbroch..."; + next; + mes "[Eocatt]"; + mes "Right, right..."; + mes "I remember now, the"; + mes "town was named Hugel."; + mes "I'm sure there's other fun"; + mes "things to do there, but I'm sure that the Race Arena is a must!"; + close; +} + +hugel,85,93,5 script Mudie#dummy01 866,{ + mes "[Mudie]"; + mes "The Monster Races"; + mes "are probably the biggest"; + mes "attraction here in Hugel."; + mes "We don't have much else"; + mes "going on here, I'm afraid."; + next; + mes "[Mudie]"; + mes "If you want to go visit"; + mes "the Monster Race Arena,"; + mes "just head towards the"; + mes "7 'o clock direction on"; + mes "your Mini-Map, and look for"; + mes "the hill surrounded by a fence."; + next; + mes "[Mudie]"; + mes "You should find the arena"; + mes "somewhere around that area."; + mes "Anyway, if you want to wager"; + mes "or just watch the races, just"; + mes "ask one of the Eckar brothers. I hope you enjoy our little town~"; + close; +} + +p_track02,32,45,5 script Eccentric Scholar#double 755,{ + mes "[Eccentric Scholar]"; + mes "Let's see now..."; + mes "Monster 1's average speed"; + mes "and luck, as affected by"; + mes "wind resistance, fatigue..."; + mes "What's the approximate"; + mes "probability of winning...?"; + next; + mes "[Eccentric Scholar]"; + mes "Crunch it into my"; + mes "algorithm... Carry the two..."; + mes "Wait, how many significant"; + mes "figures should I be using?"; + mes "Ah, right, 7, to account for x,"; + mes "a value representing--"; + next; + mes "["+ strcharinfo(0) +"]"; + mes "Excuse me, but"; + mes "what are you doing?"; + next; + mes "[Eccentric Scholar]"; + mes "S-silence!"; + mes "I must complete"; + mes "my calculations!"; + mes "Now, where was I...?"; + specialeffect EF_CLAYMORE; + emotion e_an; + close; +} + +p_track02,69,31,1 script Blacksmith Guildsman#dou 726,{ + if (!$@mon_time_2_2) { + mes "[Blacksmith Guildsman]"; + mes "How many times must"; + mes "I wager on these races?!"; + mes "I haven't won even once!"; + mes "Oh, I must have the worst"; + mes "luck in wagering history!"; + emotion e_sob; + next; + mes "[Blacksmith Guildsman]"; + mes "I've been assigned by my"; + mes "guild to bring back some"; + mes "Prize Medals to Einbroch..."; + mes "They're apparently made"; + mes "with some rare metal, but..."; + mes "It's too hard for me to win~!"; + emotion e_swt2; + close; + } + mes "[Blacksmith Guildsman]"; + mes "Run! Go go go!"; + mes "I need to win some"; + mes "medals! Otherwise, I'll"; + mes "be too ashamed to return"; + mes "home to Einbroch! F-faster!"; + emotion e_korea; + close; +} + +p_track02,53,45,3 script Valiant Knight#double 733,{ + mes "[Valiant Knight]"; + mes "Hey, have you been"; + mes "wagering on the races?"; + mes "If you've got a hot tip, then"; + mes "would you share it with me?"; + mes "I've won some wagers... But"; + mes "I really wanna win more!"; + next; + mes "[Valiant Knight]"; + mes "Hah hah! It's like I tell"; + mes "those Blacksmiths! If they"; + mes "don't wanna lose all the time,"; + mes "then they should just bet on the same monster. Me? I always"; + mes "bet on the black Deviruchi~"; + next; + mes "[Valiant Knight]"; + mes "You too...!"; + mes "Always bet"; + mes "on Deviruchi!"; + emotion e_no1; + close; +} + +p_track01,27,47,5 script Drunkard#single 853,{ + mes "[Familiar Drunkard]"; + mes "Grrr...! ^333333*Hiccup*^000000"; + mes "I just gotta win this"; + mes "next game! I hafta do it!"; + mes "Hey, you! Which number is"; + mes "your lucky number? Huh?"; + next; + mes "["+ strcharinfo(0) +"]"; + mes "I, er..."; + next; + mes "[Familiar Drunkard]"; + mes "C'mon, I need your"; + mes "lucky number cuz I ran"; + mes "out of mine! Tell me!"; + mes "Tell me! ^333333*Hiccup~*^000000"; + close; +} + +p_track01,69,31,1 script Blacksmith Guildsman#sin 107,{ + mes "[Blacksmith Guildsman]"; + mes "How can this be so hard?"; + mes "Why can't I win at least"; + mes "one of these races? Argh!"; + mes "I can't go back until I get"; + mes "at least one Prize Medal!"; + next; + mes "[Blacksmith Guildsman]"; + mes "Yeah, I've been assigned"; + mes "by the Einbroch Factory to"; + mes "get some Prize Medals since"; + mes "they're made of this rare medal. But it looks like they picked"; + mes "the wrong guy for this job..."; + next; + mes "[Blacksmith Guildsman]"; + mes "I mean, I've been here"; + mes "forever and I haven't won"; + mes "anything yet! Hey, do me"; + mes "a favor and give any extra"; + mes "Prize Medals you might have"; + mes "to the Einbroch Factory, okay?"; + close; +} + +p_track01,45,42,3 script Absent Minded Man#single 881,{ + mes "[Absent Minded Man]"; + mes "Say, are you here to bet"; + mes "on the monster races? I've"; + mes "come all the way here, just"; + mes "because some strange man"; + mes "asked me to win medals. It's"; + mes "the only reason I'm in Hugel..."; + next; + mes "[Absent Minded Man]"; + mes "But I've made more than"; + mes "100 wagers, and haven't won"; + mes "any of them! I mean, if I bet"; + mes "on the same monster 6 times,"; + mes "I should win at least once,"; + mes "right? What's going on?!"; + close; +}
\ No newline at end of file |