diff options
Diffstat (limited to 'npc/other/monster_race.txt')
-rw-r--r-- | npc/other/monster_race.txt | 3117 |
1 files changed, 0 insertions, 3117 deletions
diff --git a/npc/other/monster_race.txt b/npc/other/monster_race.txt deleted file mode 100644 index 30dd66bab..000000000 --- a/npc/other/monster_race.txt +++ /dev/null @@ -1,3117 +0,0 @@ -//===== Hercules Script ====================================== -//= Hugel Monster Races -//===== By: ================================================== -//= L0ne_W0lf -//===== Current Version: ===================================== -//= 2.0 -//===== Description: ========================================= -//= [Official Conversion] -//= - Hugel Monster Races (Single and Double) -//= - Prize Medal Exchanging, and Monster Track NPCs. -//= - Contains both euRO and iRO dialog. -//===== 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] -//= 1.9 Updated RE/Pre-RE EXP. [Euphy] -//= 2.0 Added GM management NPC. [Euphy] -//============================================================ - -// Monster Race - Single Monster Race -//============================================================ -hugel,51,61,0 script #race_timer1-1 -1,{ -OnInit: -OnEnable: - enablenpc "#race_timer1-1"; - $@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"; - $@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"; - $@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 (.@i = 1; .@i <= 6; ++.@i) - enablenpc "starting#"+.@i; - .@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 (.@i = 1; .@i <= 3; ++.@i) - 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 (.@i = 1; .@i <= 3; ++.@i) - enablenpc "Luk"+.@c+"#"+.@i; - set getd(".@tired"+.@c),rand(10,30); - setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); - for (.@i = 1; .@i <= 4; ++.@i) - 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 (.@i = 1; .@i <= 4; ++.@i) - enablenpc "Luk"+.@c+"#"+.@i; - set getd(".@tired"+.@c),rand(0,20); - setd "$@mr_1_tire"+.@c,getd(".@tired"+.@c); - for (.@i = 1; .@i <= 5; ++.@i) - enablenpc "Tire"+.@c+"#"+.@i; - if (getd(".@tired"+.@c) < 10) enablenpc "Tire"+.@c+"#6"; - } - ++.@c; - } - 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"; - $@mon_time_1_1 = 0; - $@monster_race = 0; - disablenpc "Ticket Helper#single"; - for (.@i = 1; .@i <= 6; ++.@i) - donpcevent "Runner No. "+.@i+"::OnEnable"; - stopnpctimer; - end; - -OnInit: - disablenpc "Race Progress Timer"; - end; -} - -p_track01,73,22,1 script Ticket Helper#single 4_M_HUMAN_02,{ - 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 (.@i = 1; .@i <= 6; ++.@i) - .@m$ += "Monster "+.@i+":"; - .@m = select ("Monster Status:"+.@m$) - 1; - if (!.@m) { - for (.@i = 1; .@i <= 6; ++.@i) - 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 - 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; - .@n = WN(0); - $@monster_race = .@n; - for (.@i = 1; .@i <= 6; ++.@i) { - 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 { - .@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 4_F_RACING,{ - 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; - } - .@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 - 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 (.@i = 1; .@i <= 6; ++.@i) { - donpcevent "starting#"+.@i+"::OnDisable"; - setd "$@mr_1_luk"+.@i,0; - setd "$@mr_1_tire"+.@i,0; - } - .@c = 1; - while (.@c <= 6) { - for (.@i = 1; .@i <= 6; ++.@i) { - disablenpc "Tire"+.@c+"#"+.@i; - disablenpc "Luk"+.@c+"#"+.@i; - } - ++.@c; - } - end; - -OnTimer300000: - donpcevent "#race_timer1-1::OnEnable"; - $@mon_time_1_1 = 2; - $@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 4_M_NFMAN,{ - 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 - } - monster_race_1 = 0; - close2; - warp "hugel",63,73; - end; -} - -hugel,58,72,6 script Eckar Ellebird#single 4_M_NFMAN,{ - 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."; - Zeny -= 2000; - 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."; - Zeny -= 2000; - 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!"; - Zeny -= 500; - 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; -OnEnable: - enablenpc "Eckar Ellebird#single"; - end; -OnDisable: - disablenpc "Eckar Ellebird#single"; - end; -} - -p_track01,39,49,3 script Game Guide#single 4_F_RACING,{ - 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(.@i = 1; .@i<7; ++.@i) - enablenpc "Luk1#"+.@i; - for(.@i = 1; .@i<7; ++.@i) - enablenpc "Tire1#"+.@i; - setd "$@mr_1_luk"+strnpcinfo(2),0; - setd "$@mr_1_tire"+strnpcinfo(2),0; - end; - -OnTouchNPC: - .@start = rand(1,100); - if (.@start < 11) .@speed = 60; - else if (.@start < 21) .@speed = 70; - else if (.@start < 31) .@speed = 80; - else if (.@start < 41) .@speed = 90; - else if (.@start < 51) .@speed = 100; - else if (.@start < 61) .@speed = 110; - else if (.@start < 71) .@speed = 120; - else if (.@start < 81) .@speed = 130; - else if (.@start < 91) .@speed = 140; - else .@speed = 150; - sc_start SC_WALKSPEED,5000,.@speed; - end; - -OnInit: - disablenpc strnpcinfo(0); - end; - -} - -- script Luk_1 -1,{ -OnTouchNPC: - .@start = rand(1,100); - if (.@start < 61) .@speed = 110; - else if (.@start < 71) .@speed = 120; - else if (.@start < 81) .@speed = 130; - else if (.@start < 91) .@speed = 140; - else .@speed = 150; - sc_start SC_WALKSPEED,10000,.@speed; - end; - -OnInit: - disablenpc strnpcinfo(0); - end; -} - -- script Luk_2 -1,{ -OnTouchNPC: - .@start = rand(1,100); - if (.@start < 61) .@time = 1000; - else if (.@start < 71) .@time = 2000; - else if (.@start < 81) .@time = 3000; - else if (.@start < 91) .@time = 4000; - if (.@time) sc_start SC_STUN,.@time,0; - end; - -OnInit: - disablenpc strnpcinfo(0); - end; -} - -- script Tire_1 -1,{ -OnTouchNPC: - .@start = rand(1,100); - if (.@start < 61) .@time = 1000; - else if (.@start < 71) .@time = 2000; - else if (.@start < 81) .@time = 3000; - else if (.@start < 91) .@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 - -// Monster Race - Dual Monster Race -//============================================================ -hugel,47,56,0 script #race_timer2-1 -1,{ -OnEnable: - enablenpc "#race_timer2-1"; - $@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"; - $@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"; - $@mon_time_2_1 = 0; - donpcevent "#race_timer2-1::OnDisable"; - stopnpctimer; - end; - -OnInit: - enablenpc "#race_timer2-1"; - $@mon_time_2_1 = 2; - initnpctimer; - end; -} - -p_track02,42,23,0 script #race_timer2-2 -1,{ -OnEnable: - enablenpc "#race_timer2-2"; - $@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"; - $@mon_time_2_2 = 1; - $@mon_race_2_1 = 0; - $@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"; - $@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"; - $@mon_race_2_1 = 0; - $@mon_race_2_2 = 0; - donpcevent "#race_timer2-3::OnDisable"; - stopnpctimer; - end; -} - -hugel,62,69,1 script Eckar Erenes#double 4_M_NFMAN,{ - 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."; - Zeny -= 2000; - monster_race_2_1 = 0; - 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."; - Zeny -= 2000; - monster_race_2_1 = 0; - 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!"; - Zeny -= 500; - monster_race_2_1 = 0; - 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; -OnEnable: - enablenpc "Eckar Erenes#double"; - end; -OnDisable: - disablenpc "Eckar Erenes#double"; - end; -} - -p_track02,73,22,1 script Ticket Helper#2 4_M_HUMAN_02,{ - 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 (.@i = 1; .@i <= 6; ++.@i) - 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) { - .@m$ = ""; - for (.@i = 1; .@i <= 6; ++.@i) - .@m$ += ((.@i != .@m1)?"Monster "+.@i:"")+":"; - .@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; - .@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; - monster_race_2_1 = .@m1; - 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 4_F_RACING,{ - 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 4_F_RACING,{ - 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 - monster_race_2_1 = 7; - 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 4_M_NFMAN,{ - 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 - } - monster_race_2_1 = 0; - 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); - .@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: - .@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"; - $@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"; - $@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 (.@i = 1; .@i <= getarraysize(.@n$); ++.@i) { - 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 HIDDEN_WARP_NPC,0,0 -p_track02,30,36,0 duplicate(mob1#main) #lunatic1 HIDDEN_WARP_NPC,0,0 -p_track02,30,34,0 duplicate(mob1#main) #savagebebe1 HIDDEN_WARP_NPC,0,0 -p_track02,30,32,0 duplicate(mob1#main) #desertwolf1 HIDDEN_WARP_NPC,0,0 -p_track02,30,30,0 duplicate(mob1#main) #deviruchi1 HIDDEN_WARP_NPC,0,0 -p_track02,30,28,0 duplicate(mob1#main) #baphomet1 HIDDEN_WARP_NPC,0,0 - -p_track02,19,48,0 script TrapGlobal#race02 -1,{ -OnEnable: - enablenpc "TrapGlobal#race02"; - for (.@i = 1; .@i <= 6; ++.@i) - enablenpc "starting#race02_"+.@i; - .@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 (.@i = 1; .@i <= 3; ++.@i) - 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 (.@i = 1; .@i <= 3; ++.@i) - enablenpc "Luk#race02_"+.@c+"_"+.@i; - setd ".@tired_"+.@c,rand(10,30); - setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); - for (.@i = 1; .@i <= 4; ++.@i) - 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 (.@i = 1; .@i <= 4; ++.@i) - enablenpc "Luk#race02_"+.@c+"_"+.@i; - setd ".@tired_"+.@c,rand(0,20); - setd "$@mon_r02_tire"+.@c,getd(".@tired_"+.@c); - for (.@i = 1; .@i <= 5; ++.@i) - enablenpc "Tire#race02_"+.@c+"_"+.@i; - if (getd(".@tired_"+.@c) < 10) enablenpc "Tire#race02_"+.@c+"_6"; - } - ++.@c; - } - end; - -OnDisable: - disablenpc "TrapGlobal#race02"; - for (.@i = 1; .@i <= 6; ++.@i) - donpcevent "starting#race02_"+.@i+"::OnDisable"; - end; - -OnInit: - for (.@i = 1; .@i <= 6; ++.@i) { - setd "$@mon_r02_luk"+.@i,0; - setd "$@mon_r02_tire"+.@i,0; - } - end; -} - -- script starting_2 -1,{ -OnDisable: - disablenpc strnpcinfo(0); - for(.@i = 1; .@i<7; ++.@i) - disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i; - for(.@i = 1; .@i<7; ++.@i) - disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i; - end; - -OnTouchNPC: - .@start = rand(1,100); - if (.@start < 11) .@speed = 60; - else if (.@start < 21) .@speed = 70; - else if (.@start < 31) .@speed = 80; - else if (.@start < 41) .@speed = 90; - else if (.@start < 51) .@speed = 100; - else if (.@start < 61) .@speed = 110; - else if (.@start < 71) .@speed = 120; - else if (.@start < 81) .@speed = 130; - else if (.@start < 91) .@speed = 140; - else .@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 4_M_EINMAN2,{ - 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"; - .@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; - } - .@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 (checkre(3)) { - if (BaseLevel < 21) getexp 110,0; - else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 280,0; - else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 1000,0; - else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 1200,0; - else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 1500,0; - else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 2800,0; - else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 4500,0; - else getexp 8500,0; - - /* iRO EXP Table: - 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; - */ - - } else { - if (BaseLevel < 21) getexp 150,0; - else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 300,0; - else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 2000,0; - else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 8000,0; - else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 25000,0; - else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 47000,0; - else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 55000,0; - else getexp 65000,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 (checkre(3)) { - if (Class == Job_Novice) { - getexp 0,15; - } else if (Class == Job_Novice_High) { - getexp 0,25; - } else if ((Class >= Job_Swordman && Class <= Job_Thief) || Class == Job_Taekwon) { - if (JobLevel < 11) getexp 0,25; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,200; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,300; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,950; - else getexp 0,1800; - } else if ((Class >= Job_Knight && Class <= Job_Crusader2) || (Class >= Job_Swordman_High && Class <= Job_Thief_High)) { - if (JobLevel < 11) getexp 0,40; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,300; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,550; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,1080; - else getexp 0,2150; - } else { - if (JobLevel < 11) getexp 0,55; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,330; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,600; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,1200; - else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,1750; - else getexp 0,2950; - } - - /* iRO JEXP Table: - 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; - */ - - } else { - if (Class == Job_Novice) { - getexp 0,30; - } else if ((Class >= Job_Swordman && Class <= Job_Thief) || Class == Job_Taekwon) { - if (JobLevel < 11) getexp 0,50; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,250; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,1500; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,7000; - else getexp 0,20000; - } else if (Class >= Job_Knight && Class <= Job_Crusader2) { - if (JobLevel < 11) getexp 0,80; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,2000; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,10000; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,25000; - else getexp 0,38000; - } else if (Class == Job_Novice_High) { - getexp 0,40; - } else if (Class >= Job_Swordman_High && Class <= Job_Thief_High) { - if (JobLevel < 11) getexp 0,65; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,300; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,2500; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,10000; - else getexp 0,25000; - } else if (Class >= Job_Lord_Knight && Class <= Job_Paladin_2) { - if (JobLevel < 11) getexp 0,150; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,2200; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,13000; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,27000; - else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,38000; - else getexp 0,40000; - } else { - if (JobLevel < 11) getexp 0,50; - else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,250; - else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,1500; - else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,7000; - else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,20000; - else if ((JobLevel > 50) && (JobLevel < 61)) getexp 0,30000; - else getexp 0,38000; - } - } - 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!"; - .@medals = countitem(7515); - delitem 7515,.@medals; //Marvelous_Medal - 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~"; - 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 - 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; - } - 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~"; - } - ein_medal01 -= getarg(0); - getitem getarg(1),1; - close; -} - -hugel,71,83,4 script Wayne 4_M_HUMERCHANT,{ - 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 (.@i = 0; .@i < getarraysize(.@pm); ++.@i) - .@m$ += .@pm[.@i] + " Prize medal:"; - .@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: - .@mr$ = "1 Gift Box"; - setarray .@mr, 644,1; - break; - case 4: - .@mr$ = "1 Old Blue Box"; - setarray .@mr, 603,1; - break; - case 5: - .@mr$ = "1 Taming Gift Set"; - setarray .@mr, 12105,1; - break; - case 6: - .@mr$ = "1 Old Purple Box"; - setarray .@mr, 617,1; - break; - case 7: - .@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; - .@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; - } -} - -// Monster Race Affiliated NPCs -//============================================================ -airplane,246,47,1 script Eocatt#decoy01 4_M_OILMAN,{ - 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 4_M_LGTGRAND,{ - 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 4_M_SAGE_C,{ - 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 4_F_JOB_BLACKSMITH,{ - 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 4_M_JOB_KNIGHT1,{ - 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 4_M_YURI,{ - 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 1_M_PAY_ELDER,{ - 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 4_M_SITDOWN,{ - 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; -} - -hugel,5,5,3 script Monster Race Manager 4_M_LGTGUARD,{ - callfunc "F_GM_NPC"; - mes "[Monster Race Manager]"; - mes "I can activate and"; - mes "deactivate the Arena"; - mes "Entry NPCs for the Single"; - mes "and Dual Monster Races."; - next; - .@select = select("Single Race Entry - ON:Dual Race Entry - ON:Single Race Entry - OFF:Dual Race Entry - OFF"); - mes "[Monster Race Manager]"; - mes "Please enter"; - mes "the password."; - next; - .@i = callfunc("F_GM_NPC",1854,0,0,2000); - if (.@i == -2) { - mes "[Monster Race Manager]"; - mes "Error."; - close; - } else if (.@i == -1) { - mes "[Monster Race Manager]"; - mes "Incorrect password."; - close; - } else if (.@i == 0) { - close; - } else { - mes "[Monster Race Manager]"; - switch(.@select) { - case 1: - mes "The Single Monster"; - mes "Race Entry NPC is ON."; - donpcevent "Eckar Ellebird#single::OnEnable"; - close; - case 2: - mes "The Dual Monster"; - mes "Race Entry NPC is ON."; - donpcevent "Eckar Erenes#double::OnEnable"; - close; - case 3: - mes "The Single Monster"; - mes "Race Entry NPC is OFF."; - donpcevent "Eckar Ellebird#single::OnDisable"; - close; - case 4: - mes "The Dual Monster"; - mes "Race Entry NPC is OFF."; - donpcevent "Eckar Erenes#double::OnDisable"; - close; - } - } -} |