monster_race.txt 95 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978
  1. //===== rAthena Script =======================================
  2. //= Hugel Monster Races
  3. //===== By: ==================================================
  4. //= L0ne_W0lf
  5. //===== Current Version: =====================================
  6. //= 2.0
  7. //===== Compatible With: =====================================
  8. //= rAthena Project; SVN r12752+
  9. //===== Description: =========================================
  10. //= [Official Conversion]
  11. //= - Hugel Monster Races (Single and Double)
  12. //= - Prize Medal Exchanging, and Monster Track NPCs.
  13. //= - Contains both euRO and iRO dialog.
  14. //===== Additional Comments: =================================
  15. //= 1.0 First version. Please report bugs. [L0ne_W0lf]
  16. //= 1.1 Corrected a minor typo. [L0ne_W0lf]
  17. //= 1.2 Replaced effect numerics with constants. [L0ne_W0lf]
  18. //= 1.3 Ei'felle now gives Exercise. (Bugreport:4092) [L0ne_W0lf]
  19. //= 1.4 Fixed call to a non-existant event. [L0ne_W0lf]
  20. //= 1.5 Updated Dialog. [L0ne_W0lf]
  21. //= 1.6 Updated experience rewards. [L0ne_W0lf]
  22. //= 1.7 Optimization, -4000 lines (more can still be done). [Euphy]
  23. //= 1.8 Optimized.
  24. //= Fixed Medal Distributor (Dual Race) disappears accordingly. [Joseph]
  25. //= 1.9 Updated RE/Pre-RE EXP. [Euphy]
  26. //= 2.0 Added GM management NPC. [Euphy]
  27. //= 2.1 Fixed prize in dual race and optimization. [Capuche]
  28. //============================================================
  29. // Monster Race - Single Monster Race
  30. //============================================================
  31. hugel,51,61,0 script #race_timer1-1 -1,{
  32. OnEnable:
  33. enablenpc "#race_timer1-1";
  34. OnInit:
  35. $@mon_time_1_1 = 2;
  36. initnpctimer;
  37. end;
  38. OnTimer10000:
  39. mapannounce "hugel","The Single Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0x87ceeb";
  40. end;
  41. OnTimer30000:
  42. mapannounce "hugel","The Single Monster Race Arena has just opened.",bc_map,"0x87ceeb";
  43. $@mon_time_1_1 = 1;
  44. donpcevent "Race Progress Timer::OnEnable";
  45. end;
  46. OnTimer90000:
  47. mapannounce "hugel","The Single Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0x87ceeb";
  48. end;
  49. OnTimer210000:
  50. mapannounce "hugel","The entrance to the Single Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0x87ceeb";
  51. end;
  52. OnTimer270000:
  53. mapannounce "hugel","The Single Monster Race Arena's entrance will soon close.",bc_map,"0x87ceeb";
  54. end;
  55. OnTimer272000:
  56. mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0x87ceeb";
  57. end;
  58. OnTimer330000:
  59. mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0x87ceeb";
  60. $@mon_time_1_1 = 0;
  61. disablenpc "#race_timer1-1";
  62. stopnpctimer;
  63. end;
  64. }
  65. p_track01,58,0,0 script Race Progress Timer -1,{
  66. OnEnable:
  67. initnpctimer;
  68. enablenpc "Race Progress Timer";
  69. for ( .@c = 1; .@c < 7; .@c++ ) {
  70. .@line = rand(1,70);
  71. enablenpc "starting#"+.@c;
  72. enablenpc "Tire"+.@c+"#1";
  73. if ( .@line <= 10 ) {
  74. .@tired = rand(50,60);
  75. enablenpc "Luk"+.@c+"#5";
  76. enablenpc "Luk"+.@c+"#6";
  77. } else if ( .@line <= 30 ) {
  78. .@tired = rand(40,60);
  79. enablenpc "Luk"+.@c+"#5";
  80. if (.@tired >= 50) enablenpc "Tire"+.@c+"#2";
  81. } else if ( .@line <= 40 ) {
  82. .@tired = rand(30,50);
  83. enablenpc "Luk"+.@c+"#1";
  84. enablenpc "Tire"+.@c+"#2";
  85. if ( .@tired < 40 ) enablenpc "Tire"+.@c+"#3";
  86. } else if (.@line <= 50) {
  87. .@tired = rand(20,40);
  88. enablenpc "Luk"+.@c+"#1";
  89. enablenpc "Luk"+.@c+"#2";
  90. enablenpc "Tire"+.@c+"#2";
  91. enablenpc "Tire"+.@c+"#3";
  92. if (.@tired < 30) enablenpc "Tire"+.@c+"#4";
  93. } else if (.@line <= 60) {
  94. .@tired = rand(10,30);
  95. for ( .@i = 1; .@i <= 3; .@i++ )
  96. enablenpc "Luk"+.@c+"#"+.@i;
  97. for ( .@i = 2; .@i <= 4; .@i++ )
  98. enablenpc "Tire"+.@c+"#"+.@i;
  99. if ( .@tired < 20) enablenpc "Tire"+.@c+"#5";
  100. } else if (.@line <= 70) {
  101. .@tired = rand(0,20);
  102. for ( .@i = 1; .@i <= 4; .@i++ )
  103. enablenpc "Luk"+.@c+"#"+.@i;
  104. for ( .@i = 2; .@i <= 5; .@i++ )
  105. enablenpc "Tire"+.@c+"#"+.@i;
  106. if (.@tired < 10) enablenpc "Tire"+.@c+"#6";
  107. }
  108. setd "$@mr_1_luk"+.@c, .@line;
  109. setd "$@mr_1_tire"+.@c, .@tired;
  110. }
  111. end;
  112. OnTimer1000:
  113. enablenpc "Ticket Helper#single";
  114. end;
  115. OnTimer7000:
  116. mapannounce "p_track01","Welcome to the Monster Race Arena.",bc_map,"0xffb6c1";
  117. end;
  118. OnTimer10000:
  119. mapannounce "p_track01","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0xffb6c1";
  120. end;
  121. OnTimer120000:
  122. mapannounce "p_track01","The Single Monster Race will start in 3 minutes.",bc_map,"0xffb6c1";
  123. end;
  124. OnTimer123000:
  125. mapannounce "p_track01","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0xffb6c1";
  126. end;
  127. OnTimer240000:
  128. mapannounce "p_track01","The Single Monster Race will start shortly.",bc_map,"0xffb6c1";
  129. end;
  130. OnTimer243000:
  131. mapannounce "p_track01","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0xffb6c1";
  132. end;
  133. OnTimer300000:
  134. mapannounce "p_track01","The Monster Race has already begun. Good luck to all the participants.",bc_map,"0xffb6c1";
  135. $@monster_race = 0;
  136. disablenpc "Ticket Helper#single";
  137. for ( .@i = 1; .@i <= 6; .@i++ )
  138. donpcevent "Runner No. "+.@i+"#"+.@i+"::OnEnable";
  139. stopnpctimer;
  140. end;
  141. OnDisable:
  142. OnInit:
  143. disablenpc "Race Progress Timer";
  144. end;
  145. }
  146. p_track01,73,22,1 script Ticket Helper#single 899,{
  147. mes "[Ticket Helper]";
  148. mes "Welcome to the";
  149. mes "Monster Race Arena.";
  150. mes "If you'd like to participate";
  151. mes "in the ^3131FFSingle Monster Race^000000,";
  152. mes "then please select 1 out of";
  153. mes "the 6 monsters from the list.";
  154. next;
  155. if (!checkweight("Spawn",200)) {
  156. mes "[Ticket Helper]";
  157. mes "Wait, wait...";
  158. mes "I can't give you";
  159. mes "anything right now.";
  160. mes "You're carrying way";
  161. mes "too many things...";
  162. close;
  163. }
  164. .@m = select ("Monster Status", "Monster 1", "Monster 2", "Monster 3", "Monster 4", "Monster 5", "Monster 6") - 1;
  165. if (.@m == 0) {
  166. for ( .@i = 1; .@i <= 6; .@i++ )
  167. mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mr_1_luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mr_1_tire"+.@i) + "]";
  168. close;
  169. } else {
  170. if ($@mon_time_1_1 == 1) {
  171. if (monster_race_1) {
  172. mes "[Ticket Helper]";
  173. mes "You have selected";
  174. mes "Monster ^FF0000"+ monster_race_1 +"^000000 for the";
  175. mes "Single Monster Race.";
  176. mes "The start of the race";
  177. mes "will be announced soon,";
  178. mes "so please wait. Thank you.";
  179. close;
  180. }
  181. mes "[Ticket Helper]";
  182. mes "You've chosen Monster "+.@m+"?";
  183. mes "Alright then, please wait";
  184. mes "until the start of the race is";
  185. mes "announced. If the monster you";
  186. mes "picked wins, then please use this ticket to redeem your prize.";
  187. getitem 7514,1; //Monster_Ticket
  188. monster_race_1 = .@m;
  189. close;
  190. }
  191. mes "[Ticket Helper]";
  192. mes "I'm sorry, but a Monster";
  193. mes "Race is now in progress.";
  194. mes "If you'd like to participate, then please wait for the next race.";
  195. close;
  196. }
  197. OnInit:
  198. disablenpc "Ticket Helper#single";
  199. end;
  200. }
  201. - script Runner_main -1,{
  202. OnEnable:
  203. emotion ET_SURPRISE;
  204. enablenpc();
  205. getmapxy(.@m$,.@x,.@y,BL_NPC);
  206. setarray .@mob[1], 1725,1726,1727,1728,1730,1729;
  207. .@n = atoi( strnpcinfo(2) );
  208. monster "p_track01",58,.@y,"The "+ callfunc("F_GetNumSuffix",.@n) +" Racer",.@mob[.@n],1,strnpcinfo(0)+"::OnMyMobDead";
  209. end;
  210. OnDisable:
  211. disablenpc();
  212. killmonster "p_track01",strnpcinfo(0)+"::OnMyMobDead";
  213. end;
  214. OnTouchNPC:
  215. .@n = atoi( strnpcinfo(2) );
  216. $@monster_race = .@n;
  217. for ( .@i = 1; .@i <= 6; .@i++ ) {
  218. if (.@n == .@i) continue;
  219. donpcevent "Runner No. "+.@i+"#"+.@i+"::OnDisable";
  220. }
  221. sleep 1000;
  222. mapannounce "p_track01","We have a winner...!",bc_map,"0x33FF66";
  223. sleep 1000;
  224. mapannounce "p_track01","Monster "+.@n+" is the winner of this race!",bc_map,"0x33FF66";
  225. sleep 4000;
  226. mapannounce "p_track01","If you wagered on Monster "+.@n+" in this race, talk to the Medal Distributor to receive your prize!",bc_map,"0x33FF66";
  227. sleep 2000;
  228. mapannounce "p_track01","Please remember that we can distribute Prize Medals for only 5 minutes after each race.",bc_map,"0x33FF66";
  229. sleep 1000;
  230. donpcevent "Medal Distributor#single::OnEnable";
  231. donpcevent strnpcinfo(0)+"::OnDisable";
  232. killmonster "p_track01",strnpcinfo(0)+"::OnMyMobDead";
  233. end;
  234. OnInit:
  235. if (strnpcinfo(2) != "" )
  236. disablenpc();
  237. end;
  238. }
  239. p_track01,30,38,0 duplicate(Runner_main) Runner No. 1#1 -1,1,0
  240. p_track01,30,36,0 duplicate(Runner_main) Runner No. 2#2 -1,1,0
  241. p_track01,30,34,0 duplicate(Runner_main) Runner No. 3#3 -1,1,0
  242. p_track01,30,32,0 duplicate(Runner_main) Runner No. 4#4 -1,1,0
  243. p_track01,30,30,0 duplicate(Runner_main) Runner No. 5#5 -1,1,0
  244. p_track01,30,28,0 duplicate(Runner_main) Runner No. 6#6 -1,1,0
  245. p_track01,67,45,5 script Medal Distributor#single 845,{
  246. if (!checkweight("Spawn",200)) {
  247. mes "[Medal Distributor]";
  248. mes "I'm sorry, but I can't";
  249. mes "reward you with any medals";
  250. mes "until you make more space";
  251. mes "available in your Inventory.";
  252. close;
  253. }
  254. if (countitem("Monster_Ticket")) {// 7514
  255. mes "[Medal Distributor]";
  256. mes "Hello there~";
  257. mes "If you've wagered on the";
  258. mes "winning monster in a recent";
  259. mes "race, then you can exchange";
  260. mes "your game ticket here for";
  261. mes "some Prize Medals.";
  262. next;
  263. mes "[Medal Distributor]";
  264. mes "Please remember that you can";
  265. mes "only exchange winning Game";
  266. mes "Tickets for Prize Medals right";
  267. mes "after the race finishes. Prize";
  268. mes "Medals may be given to Wayne";
  269. mes "in Hugel in exchange for items.";
  270. next;
  271. if ($@monster_race) {
  272. if (monster_race_1 == $@monster_race) {
  273. mes "[Medal Distributor]";
  274. mes "Oh, congratulations, you";
  275. mes "have a winning ticket for";
  276. mes "a Single Monster Race! So ";
  277. mes "would you like to exchange your";
  278. mes "Racing Ticket for Prize Medals?";
  279. next;
  280. if (select("Yes, please.:No, thanks.") == 2) {
  281. mes "[Medal Distributor]";
  282. mes "Um, are you sure? You ";
  283. mes "can only exchange a winning";
  284. mes "Racing Ticket for Prize Medals";
  285. mes "for a short time after the race. If you made a mistake, you";
  286. mes "should ask me again quickly.";
  287. close;
  288. }
  289. mes "[Medal Distributor]";
  290. mes "Let me see your ticket...";
  291. mes "Oh! Congratulations, you";
  292. mes "won! May I have your name?";
  293. next;
  294. input .@input$;
  295. if (.@input$ == strcharinfo(0)) {
  296. .@insa = rand(1,1000);
  297. mes "[Medal Distributor]";
  298. mes "Ah, "+strcharinfo(0)+".";
  299. mes "You can exchange this";
  300. mes "ticket for a Prize Medal by";
  301. mes "entering your ticket exchange";
  302. mes "number now. Your ticket";
  303. mes "exchange number is ^FF0000" + .@insa + "^000000.";
  304. next;
  305. input .@input;
  306. if (!.@input) {
  307. mes "[Medal Distributor]";
  308. mes "Oh? You don't want";
  309. mes "to exchange your";
  310. mes "winning ticket?";
  311. close;
  312. } else if (.@input == .@insa) {
  313. mes "[Medal Distributor]";
  314. mes "Thank you! You entered";
  315. mes "the correct number...";
  316. mes "Everything seems to";
  317. mes "be in order. Alright!";
  318. next;
  319. mes "[Medal Distributor]";
  320. mes "Now please accept your";
  321. mes "Prize Medals! You can";
  322. mes "exchange these with";
  323. mes "Wayne in Hugel for some";
  324. mes "interesting items. Thank you~";
  325. delitem 7514,1; //Monster_Ticket
  326. monster_race_1 = 0;
  327. getitem 7515,4; //Marvelous_Medal
  328. close;
  329. }
  330. mes "[Medal Distributor]";
  331. mes "I'm sorry, but it seems";
  332. mes "that you entered the";
  333. mes "incorrect ticket number.";
  334. mes "Would you mind coming";
  335. mes "back again in a while?";
  336. close;
  337. }
  338. mes "[Medal Distributor]";
  339. mes "What's this...?";
  340. mes "I think there's a problem...";
  341. mes "Did you enter your name";
  342. mes "incorrectly? Please check";
  343. mes "your name, and then try again.";
  344. close;
  345. }
  346. mes "[Medal Distributor]";
  347. mes "You may not have wagered";
  348. mes "on the winning monster in";
  349. mes "the last race, but I hope that";
  350. mes "you get lucky next time~";
  351. close;
  352. }
  353. }
  354. mes "[Medal Distributor]";
  355. mes "Hello there~";
  356. mes "If you've wagered on the";
  357. mes "winning monster in a recent";
  358. mes "race, then you can exchange";
  359. mes "your game ticket here for";
  360. mes "some Prize Medals.";
  361. next;
  362. mes "[Medal Distributor]";
  363. mes "Please remember that you can";
  364. mes "only exchange winning Game";
  365. mes "Tickets for Prize Medals right";
  366. mes "after the race finishes. Prize";
  367. mes "Medals may be given to Wayne";
  368. mes "in Hugel in exchange for items.";
  369. close;
  370. OnEnable:
  371. enablenpc "Medal Distributor#single";
  372. emotion ET_SURPRISE;
  373. initnpctimer;
  374. end;
  375. OnTimer1000:
  376. mapannounce "p_track01","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00";
  377. end;
  378. OnTimer4000:
  379. mapannounce "p_track01","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00";
  380. end;
  381. OnTimer7000:
  382. mapannounce "p_track01","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00";
  383. end;
  384. OnTimer10000:
  385. mapannounce "p_track01","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00";
  386. end;
  387. OnTimer13000:
  388. mapannounce "p_track01","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00";
  389. end;
  390. OnTimer240000:
  391. mapannounce "p_track01","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00";
  392. end;
  393. OnTimer243000:
  394. mapannounce "p_track01","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00";
  395. end;
  396. OnTimer246000:
  397. mapannounce "p_track01","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00";
  398. end;
  399. OnTimer249000:
  400. mapannounce "p_track01","Thank you for your cooperation.",bc_map,"0xFFFF00";
  401. end;
  402. OnTimer252000:
  403. mapannounce "p_track01","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00";
  404. $@mr_1_luk1 = $@mr_1_tire1 = 0;
  405. for ( .@i = 1; .@i <= 6; .@i++ ) {
  406. for ( .@j = 1; .@j <= 6; .@j++ ) {
  407. disablenpc "Tire"+.@i+"#"+.@j;
  408. disablenpc "Luk"+.@i+"#"+.@j;
  409. }
  410. enablenpc "Luk1#"+.@i;
  411. enablenpc "Tire1#"+.@i;
  412. setd "$@mr_1_luk"+.@i,0;
  413. setd "$@mr_1_tire"+.@i,0;
  414. }
  415. end;
  416. OnTimer300000:
  417. donpcevent "#race_timer1-1::OnEnable";
  418. $@monster_race = 0;
  419. mapwarp "p_track01","hugel",63,73;
  420. end;
  421. OnTimer342000:
  422. stopnpctimer;
  423. OnInit:
  424. disablenpc "Medal Distributor#single";
  425. end;
  426. }
  427. p_track01,76,36,1 script Exit Guide#single 798,{
  428. mes "[Exit Guide]";
  429. mes "If you have a winning Racing";
  430. mes "Ticket, please make sure that";
  431. mes "you redeem it for Prize Medals";
  432. mes "now. All Racing Tickets become";
  433. mes "void once the next race begins.";
  434. next;
  435. mes "[Exit Guide]";
  436. mes "If you wish to leave";
  437. mes "the arena, then I can guide";
  438. mes "you outside. Would you like";
  439. mes "to leave the arena right now?";
  440. next;
  441. if (select("Yes:No") == 2) {
  442. mes "[Exit Guide]";
  443. mes "Alright, then.";
  444. mes "Just let me know";
  445. mes "whenever you're";
  446. mes "ready to leave.";
  447. close;
  448. }
  449. if (!countitem(7514)) {
  450. mes "[Exit Guide]";
  451. mes "Thank you for";
  452. mes "your patronage, and";
  453. mes "I hope that you come";
  454. mes "visit us again soon~";
  455. } else {
  456. mes "[Exit Guide]";
  457. mes "In accordance with our";
  458. mes "policies, I must take your";
  459. mes "Racing Ticket before you leave.";
  460. mes "Thank you for your patronage,";
  461. mes "and I hope you enjoy your time";
  462. mes "here in the Monster Race Arena.";
  463. delitem 7514,1; //Monster_Ticket
  464. }
  465. monster_race_1 = 0;
  466. close2;
  467. warp "hugel",63,73;
  468. end;
  469. }
  470. hugel,58,72,6 script Eckar Ellebird#single 798,{
  471. mes "[Eckar Ellebird]";
  472. mes "Welcome to the biggest";
  473. mes "attraction in Hugel, the";
  474. mes "Monster Race Arena.";
  475. mes "How may I help you today?";
  476. next;
  477. if (select("Monster Race Info:Enter Monster Race") == 1) {
  478. mes "[Eckar Ellebird]";
  479. mes "Monster Races originated from";
  480. mes "simple children's games in which";
  481. mes "Cute Pets would race against each other. This grew into an adult";
  482. mes "pastime that is so popular, we've built a racing arena in Hugel.";
  483. next;
  484. mes "[Eckar Ellebird]";
  485. mes "Our Monster Race Arena hosts";
  486. mes "two types of monster races. First, we have the Single Monster Race,";
  487. mes "in which those that wagered on the 1st place monster are rewarded.";
  488. next;
  489. mes "[Eckar Ellebird]";
  490. mes "Then, we have the Dual Monster";
  491. mes "Race in which the house odds and rewards are greater than in Single";
  492. mes "Monster Races: you must wager on 2 monsters, and they must place in";
  493. mes "1st and 2nd for you to win.";
  494. next;
  495. mes "[Eckar Ellebird]";
  496. mes "Although a small entrance";
  497. mes "fee is required, we only use";
  498. mes "the money to give rewards to";
  499. mes "participants and maintain this";
  500. mes "arena. Therefore, we're not";
  501. mes "profiting from this enterprise.";
  502. next;
  503. mes "[Eckar Ellebird]";
  504. mes "Also, we prohibit others";
  505. mes "from making personal bets";
  506. mes "and wagers, using items and";
  507. mes "zeny, based on the outcomes";
  508. mes "of these races. That kind of";
  509. mes "gambling is illegal here...";
  510. next;
  511. mes "[Eckar Ellebird]";
  512. mes "Once you enter the Race Arena, you will receive a Racing Ticket.";
  513. mes "Keep in mind that winning Racing Tickets can only be exchanged for";
  514. mes "Prize Medals during a 5 minute window after the end of the race.";
  515. next;
  516. }
  517. mes "[Eckar Ellebird]";
  518. mes "The entrance fee for all races";
  519. mes "in the Monster Race Arena is";
  520. mes "2,000 zeny. If you'd like to wager on a Dual Monster Race, then";
  521. mes "please ask my brother Erenes,";
  522. mes "and he will help you.";
  523. next;
  524. mes "[Eckar Ellebird]";
  525. mes "Otherwise, I'll help get you";
  526. mes "started if you're interested";
  527. mes "in a Single Monster Race.";
  528. mes "Would you like wager on";
  529. mes "a Single Monster Race?";
  530. next;
  531. if (select("Yes, please.:No, thanks.") == 2) {
  532. mes "[Eckar Ellebird]";
  533. mes "Very well. I hope that";
  534. mes "you enjoy your time here";
  535. mes "in the Monster Race Arena~";
  536. close;
  537. }
  538. if (!checkweight("Spawn",700)) {
  539. mes "[Eckar Ellebird]";
  540. mes "Oh, wow. You're carrying";
  541. mes "an awful lot of stuff... Yeah,";
  542. mes "you better put some of it away";
  543. mes "in Kafra Storage or something.";
  544. close;
  545. }
  546. if (Zeny < 2000) {
  547. mes "[Eckar Ellebird]";
  548. mes "I'm sorry, but you";
  549. mes "don't have enough";
  550. mes "money to pay the";
  551. mes "2,000 zeny entrance fee. ";
  552. close;
  553. }
  554. if (countitem("Monster_Ticket")) {
  555. mes "[Eckar Ellebird]";
  556. mes "Hm? What are you doing";
  557. mes "with an expired Racing Ticket?";
  558. mes "Well, I better get rid of it for you before it can get mixed up";
  559. mes "with your new Racing Ticket.";
  560. delitem 7514,1; //Monster_Ticket
  561. next;
  562. if ($@mon_time_1_1 == 1) {
  563. if (Zeny < 2000) {
  564. mes "[Eckar Ellebird]";
  565. mes "I'm sorry, but you";
  566. mes "don't have enough";
  567. mes "money to pay the";
  568. mes "2,000 zeny entrance fee. ";
  569. close;
  570. }
  571. mes "[Eckar Ellebird]";
  572. mes "Alright, I think you";
  573. mes "should be all set. I hope";
  574. mes "that you enjoy the race~";
  575. mes "Let me guide you inside";
  576. mes "the Monster Race Arena now.";
  577. Zeny -= 2000;
  578. monster_race_1 = 0;
  579. close2;
  580. warp "p_track01",75,41;
  581. end;
  582. }
  583. } else if ($@mon_time_1_1 == 1) {
  584. mes "[Eckar Ellebird]";
  585. mes "Thanks, I hope that";
  586. mes "you enjoy this race.";
  587. mes "Let me guide you now";
  588. mes "to the Monster Race Arena.";
  589. Zeny -= 2000;
  590. monster_race_1 = 0;
  591. close2;
  592. warp "p_track01",75,41;
  593. end;
  594. }
  595. if ($@mon_time_1_1 == 2) {
  596. mes "[Eckar Ellebird]";
  597. mes "We're still finishing our";
  598. mes "preparations for the next";
  599. mes "Single Monster Race, so";
  600. mes "we ask that you please";
  601. mes "wait a little while longer...";
  602. close;
  603. }
  604. if ($@monster_race == 0) {
  605. mes "[Eckar Ellebird]";
  606. mes "Right now, a Monster Race";
  607. mes "is in progress. It's too late to place a wager, but if you'd like";
  608. mes "to watch, the fee is 500 zeny";
  609. mes "for spectators. Would you like to enter the Monster Race Arena?";
  610. next;
  611. if (select("Enter:Cancel") == 2) {
  612. mes "[Eckar Ellebird]";
  613. mes "Alright, then. If you'd like";
  614. mes "to wager on a monster";
  615. mes "race, please wait for the";
  616. mes "current race to finish. I hope";
  617. mes "that you enjoy your time here";
  618. mes "in the Monster Race Arena~";
  619. close;
  620. }
  621. if (Zeny > 499) {
  622. mes "[Eckar Ellebird]";
  623. mes "Thank you~";
  624. mes "I hope you enjoy";
  625. mes "watching this race!";
  626. Zeny -= 500;
  627. monster_race_1 = 0;
  628. close2;
  629. warp "p_track01",75,41;
  630. end;
  631. }
  632. mes "[Eckar Ellebird]";
  633. mes "I'm sorry, but you don't";
  634. mes "have enough money to pay";
  635. mes "the 500 zeny spectator fee.";
  636. close;
  637. }
  638. mes "[Eckar Ellebird]";
  639. mes "I'm sorry, but a monster";
  640. mes "race has just ended, so we're";
  641. mes "having the 5 minute period in";
  642. mes "which the winners can claim";
  643. mes "their Prize Medals. The gate";
  644. mes "will open soon, so please wait.";
  645. close;
  646. OnEnable:
  647. enablenpc "Eckar Ellebird#single";
  648. end;
  649. OnDisable:
  650. disablenpc "Eckar Ellebird#single";
  651. end;
  652. }
  653. p_track01,39,49,3 script Game Guide#single 845,{
  654. mes "[Game Guide]";
  655. mes "Welcome to the";
  656. mes "Monster Race Arena.";
  657. mes "How can I help you?";
  658. next;
  659. switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) {
  660. case 1:
  661. mes "[Game Guide]";
  662. mes "Monster Races originated from";
  663. mes "simple children's games in which";
  664. mes "Cute Pets would race against each other. This grew into an adult";
  665. mes "pastime that is so popular, we've built a racing arena in Hugel.";
  666. next;
  667. mes "[Game Guide]";
  668. mes "Our Monster Race Arena hosts";
  669. mes "two types of monster races. First, we have the Single Monster Race,";
  670. mes "in which those that wagered on the 1st place monster are rewarded.";
  671. next;
  672. mes "[Game Guide]";
  673. mes "Then, we have the Dual Monster";
  674. mes "Race in which the house odds and rewards are greater than in Single";
  675. mes "Monster Races: you must wager on 2 monsters, and they must place in";
  676. mes "1st and 2nd for you to win.";
  677. next;
  678. mes "[Game Guide]";
  679. mes "Although a small entrance";
  680. mes "fee is required, we only use";
  681. mes "the money to give rewards to";
  682. mes "participants and maintain this";
  683. mes "arena. Therefore, we're not";
  684. mes "profiting from this enterprise.";
  685. next;
  686. mes "[Game Guide]";
  687. mes "Also, we prohibit others";
  688. mes "from making personal bets";
  689. mes "and wagers, using items and";
  690. mes "zeny, based on the outcomes";
  691. mes "of these races. That kind of";
  692. mes "gambling is illegal here...";
  693. next;
  694. mes "[Game Guide]";
  695. mes "Once you enter the Race Arena, you will receive a Racing Ticket.";
  696. mes "Keep in mind that winning Racing Tickets can only be exchanged for";
  697. mes "Prize Medals during a 5 minute window after the end of the race.";
  698. next;
  699. break;
  700. case 2:
  701. mes "[Game Guide]";
  702. mes "Before placing a wager, you";
  703. mes "must get a free Racing Ticket";
  704. mes "from the Ticket Helper. There,";
  705. mes "I've marked the Ticket Helper";
  706. mes "on your Mini-Map, so you can";
  707. mes "find him pretty easily.";
  708. viewpoint 1,73,22,1,0xFF3355;
  709. next;
  710. break;
  711. case 3:
  712. mes "[Game Guide]";
  713. mes "If you wagered on the winner";
  714. mes "of a Single Monster Race, or";
  715. mes "on the 1st or 2nd place winners";
  716. mes "in a Dual Monster Race, then";
  717. mes "you can exchange your Racing";
  718. mes "Ticket for Prize Medals.";
  719. next;
  720. mes "[Game Guide]";
  721. mes "However, you must exchange";
  722. mes "your Racing Ticket with the";
  723. mes "Medal Distributor within the";
  724. mes "5 minute window after the end";
  725. mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000";
  726. next;
  727. mes "[Game Guide]";
  728. mes "When this 5 minute window";
  729. mes "elapses, you will be teleported outside, and we will immediately";
  730. mes "begin preparing for the next race. Make sure that you remember this";
  731. mes "information when you wager.";
  732. next;
  733. mes "[Game Guide]";
  734. mes "If you haven't received";
  735. mes "your free Racing Ticket,";
  736. mes "then please visit the Ticket";
  737. mes "Helper. There, I've just marked";
  738. mes "his location on your Mini-Map.";
  739. viewpoint 1,67,45,2,0xCE6300;
  740. next;
  741. break;
  742. }
  743. mes "[Game Guide]";
  744. mes "Thank you, and";
  745. mes "I hope you enjoy";
  746. mes "your time here in the";
  747. mes "Monster Racing Arena.";
  748. close;
  749. }
  750. - script starting_1 -1,{
  751. OnTouchNPC:
  752. // .@speed = 10 * ( 6 + rand(100)/10 );// speed 60-150
  753. .@start = rand(1,100);
  754. if (.@start < 11) .@speed = 60;
  755. else if (.@start < 21) .@speed = 70;
  756. else if (.@start < 31) .@speed = 80;
  757. else if (.@start < 41) .@speed = 90;
  758. else if (.@start < 51) .@speed = 100;
  759. else if (.@start < 61) .@speed = 110;
  760. else if (.@start < 71) .@speed = 120;
  761. else if (.@start < 81) .@speed = 130;
  762. else if (.@start < 91) .@speed = 140;
  763. else .@speed = 150;
  764. sc_start SC_WALKSPEED,5000,.@speed;
  765. end;
  766. OnInit:
  767. disablenpc();
  768. end;
  769. }
  770. - script Luk_1 -1,{
  771. OnTouchNPC:
  772. .@start = rand(1,100);
  773. if (.@start < 61) .@speed = 110;
  774. else if (.@start < 71) .@speed = 120;
  775. else if (.@start < 81) .@speed = 130;
  776. else if (.@start < 91) .@speed = 140;
  777. else .@speed = 150;
  778. sc_start SC_WALKSPEED,10000,.@speed;
  779. end;
  780. OnInit:
  781. disablenpc();
  782. end;
  783. }
  784. - script Luk_2 -1,{
  785. OnTouchNPC:
  786. .@start = rand(1,100);
  787. if (.@start < 61) .@time = 1000;
  788. else if (.@start < 71) .@time = 2000;
  789. else if (.@start < 81) .@time = 3000;
  790. else if (.@start < 91) .@time = 4000;
  791. if (.@time) sc_start SC_STUN,.@time,0;
  792. end;
  793. OnInit:
  794. disablenpc();
  795. end;
  796. }
  797. - script Tire_1 -1,{
  798. OnTouchNPC:
  799. .@start = rand(1,100);
  800. if (.@start < 61) .@time = 1000;
  801. else if (.@start < 71) .@time = 2000;
  802. else if (.@start < 81) .@time = 3000;
  803. else if (.@start < 91) .@time = 4000;
  804. if (.@time) sc_start SC_SLEEP,.@time,0;
  805. end;
  806. OnInit:
  807. disablenpc();
  808. end;
  809. }
  810. p_track01,56,38,0 duplicate(starting_1) starting#1 -1,0,0
  811. p_track01,56,36,0 duplicate(starting_1) starting#2 -1,0,0
  812. p_track01,56,34,0 duplicate(starting_1) starting#3 -1,0,0
  813. p_track01,56,32,0 duplicate(starting_1) starting#4 -1,0,0
  814. p_track01,56,30,0 duplicate(starting_1) starting#5 -1,0,0
  815. p_track01,56,28,0 duplicate(starting_1) starting#6 -1,0,0
  816. p_track01,33,38,0 duplicate(Luk_1) Luk1#1 -1,0,0
  817. p_track01,37,38,0 duplicate(Luk_1) Luk1#2 -1,0,0
  818. p_track01,53,38,0 duplicate(Luk_1) Luk1#3 -1,0,0
  819. p_track01,45,38,0 duplicate(Luk_1) Luk1#4 -1,0,0
  820. p_track01,33,36,0 duplicate(Luk_1) Luk2#1 -1,0,0
  821. p_track01,37,36,0 duplicate(Luk_1) Luk2#2 -1,0,0
  822. p_track01,53,36,0 duplicate(Luk_1) Luk2#3 -1,0,0
  823. p_track01,45,36,0 duplicate(Luk_1) Luk2#4 -1,0,0
  824. p_track01,33,34,0 duplicate(Luk_1) Luk3#1 -1,0,0
  825. p_track01,37,34,0 duplicate(Luk_1) Luk3#2 -1,0,0
  826. p_track01,53,34,0 duplicate(Luk_1) Luk3#3 -1,0,0
  827. p_track01,45,34,0 duplicate(Luk_1) Luk3#4 -1,0,0
  828. p_track01,33,32,0 duplicate(Luk_1) Luk4#1 -1,0,0
  829. p_track01,37,32,0 duplicate(Luk_1) Luk4#2 -1,0,0
  830. p_track01,53,32,0 duplicate(Luk_1) Luk4#3 -1,0,0
  831. p_track01,45,32,0 duplicate(Luk_1) Luk4#4 -1,0,0
  832. p_track01,33,30,0 duplicate(Luk_1) Luk5#1 -1,0,0
  833. p_track01,37,30,0 duplicate(Luk_1) Luk5#2 -1,0,0
  834. p_track01,53,30,0 duplicate(Luk_1) Luk5#3 -1,0,0
  835. p_track01,45,30,0 duplicate(Luk_1) Luk5#4 -1,0,0
  836. p_track01,33,28,0 duplicate(Luk_1) Luk6#1 -1,0,0
  837. p_track01,37,28,0 duplicate(Luk_1) Luk6#2 -1,0,0
  838. p_track01,53,28,0 duplicate(Luk_1) Luk6#3 -1,0,0
  839. p_track01,45,28,0 duplicate(Luk_1) Luk6#4 -1,0,0
  840. p_track01,49,38,0 duplicate(Luk_2) Luk1#5 -1,0,0
  841. p_track01,41,38,0 duplicate(Luk_2) Luk1#6 -1,0,0
  842. p_track01,49,36,0 duplicate(Luk_2) Luk2#5 -1,0,0
  843. p_track01,41,36,0 duplicate(Luk_2) Luk2#6 -1,0,0
  844. p_track01,49,34,0 duplicate(Luk_2) Luk3#5 -1,0,0
  845. p_track01,41,34,0 duplicate(Luk_2) Luk3#6 -1,0,0
  846. p_track01,49,32,0 duplicate(Luk_2) Luk4#5 -1,0,0
  847. p_track01,41,32,0 duplicate(Luk_2) Luk4#6 -1,0,0
  848. p_track01,49,30,0 duplicate(Luk_2) Luk5#5 -1,0,0
  849. p_track01,41,30,0 duplicate(Luk_2) Luk5#6 -1,0,0
  850. p_track01,49,28,0 duplicate(Luk_2) Luk6#5 -1,0,0
  851. p_track01,41,28,0 duplicate(Luk_2) Luk6#6 -1,0,0
  852. p_track01,43,38,0 duplicate(Tire_1) Tire1#1 -1,0,0
  853. p_track01,39,38,0 duplicate(Tire_1) Tire1#2 -1,0,0
  854. p_track01,35,38,0 duplicate(Tire_1) Tire1#3 -1,0,0
  855. p_track01,55,38,0 duplicate(Tire_1) Tire1#4 -1,0,0
  856. p_track01,51,38,0 duplicate(Tire_1) Tire1#5 -1,0,0
  857. p_track01,47,38,0 duplicate(Tire_1) Tire1#6 -1,0,0
  858. p_track01,43,36,0 duplicate(Tire_1) Tire2#1 -1,0,0
  859. p_track01,39,36,0 duplicate(Tire_1) Tire2#2 -1,0,0
  860. p_track01,35,36,0 duplicate(Tire_1) Tire2#3 -1,0,0
  861. p_track01,55,36,0 duplicate(Tire_1) Tire2#4 -1,0,0
  862. p_track01,51,36,0 duplicate(Tire_1) Tire2#5 -1,0,0
  863. p_track01,47,36,0 duplicate(Tire_1) Tire2#6 -1,0,0
  864. p_track01,43,34,0 duplicate(Tire_1) Tire3#1 -1,0,0
  865. p_track01,39,34,0 duplicate(Tire_1) Tire3#2 -1,0,0
  866. p_track01,35,34,0 duplicate(Tire_1) Tire3#3 -1,0,0
  867. p_track01,55,34,0 duplicate(Tire_1) Tire3#4 -1,0,0
  868. p_track01,51,34,0 duplicate(Tire_1) Tire3#5 -1,0,0
  869. p_track01,47,34,0 duplicate(Tire_1) Tire3#6 -1,0,0
  870. p_track01,43,32,0 duplicate(Tire_1) Tire4#1 -1,0,0
  871. p_track01,39,32,0 duplicate(Tire_1) Tire4#2 -1,0,0
  872. p_track01,35,32,0 duplicate(Tire_1) Tire4#3 -1,0,0
  873. p_track01,55,32,0 duplicate(Tire_1) Tire4#4 -1,0,0
  874. p_track01,51,32,0 duplicate(Tire_1) Tire4#5 -1,0,0
  875. p_track01,47,32,0 duplicate(Tire_1) Tire4#6 -1,0,0
  876. p_track01,43,30,0 duplicate(Tire_1) Tire5#1 -1,0,0
  877. p_track01,39,30,0 duplicate(Tire_1) Tire5#2 -1,0,0
  878. p_track01,35,30,0 duplicate(Tire_1) Tire5#3 -1,0,0
  879. p_track01,55,30,0 duplicate(Tire_1) Tire5#4 -1,0,0
  880. p_track01,51,30,0 duplicate(Tire_1) Tire5#5 -1,0,0
  881. p_track01,47,30,0 duplicate(Tire_1) Tire5#6 -1,0,0
  882. p_track01,43,28,0 duplicate(Tire_1) Tire6#1 -1,0,0
  883. p_track01,39,28,0 duplicate(Tire_1) Tire6#2 -1,0,0
  884. p_track01,35,28,0 duplicate(Tire_1) Tire6#3 -1,0,0
  885. p_track01,55,28,0 duplicate(Tire_1) Tire6#4 -1,0,0
  886. p_track01,51,28,0 duplicate(Tire_1) Tire6#5 -1,0,0
  887. p_track01,47,28,0 duplicate(Tire_1) Tire6#6 -1,0,0
  888. // Monster Race - Dual Monster Race
  889. //============================================================
  890. hugel,47,56,0 script #race_timer2-1 -1,{
  891. OnEnable:
  892. enablenpc "#race_timer2-1";
  893. OnInit:
  894. $@mon_time_2_1 = 2;
  895. initnpctimer;
  896. end;
  897. OnTimer10000:
  898. mapannounce "hugel","The Dual Monster Race will soon begin. We hope to see many of you participate!",bc_map,"0xffb6c1";
  899. end;
  900. OnTimer30000:
  901. mapannounce "hugel","The Dual Monster Race Arena has just opened.",bc_map,"0xffb6c1";
  902. $@mon_time_2_1 = 1;
  903. donpcevent "#race_timer2-2::OnEnable";
  904. donpcevent "TrapGlobal#race02::OnEnable";
  905. enablenpc "Ticket Helper#2";
  906. end;
  907. OnTimer90000:
  908. mapannounce "hugel","The Dual Monster Race arena is now open. Participants should enter the Arena as soon as they can.",bc_map,"0xffb6c1";
  909. end;
  910. OnTimer210000:
  911. mapannounce "hugel","The entrance to the Dual Monster Race Arena will close shortly. Participants, please enter the arena now.",bc_map,"0xffb6c1";
  912. end;
  913. OnTimer270000:
  914. mapannounce "hugel","The Dual Monster Race Arena's entrance will soon close.",bc_map,"0xffb6c1";
  915. end;
  916. OnTimer272000:
  917. mapannounce "hugel","Participants, please enter the Arena before the doors close.",bc_map,"0xffb6c1";
  918. end;
  919. OnTimer330000:
  920. mapannounce "hugel","The race is now starting. If you missed your chance to enter this race, please try again next time~!",bc_map,"0xffb6c1";
  921. $@mon_time_2_1 = 0;
  922. disablenpc "#race_timer2-1";
  923. stopnpctimer;
  924. end;
  925. }
  926. p_track02,42,23,0 script #race_timer2-2 -1,{
  927. OnEnable:
  928. enablenpc "#race_timer2-2";
  929. $@mon_time_2_2 = 0;
  930. initnpctimer;
  931. end;
  932. OnTimer5000:
  933. mapannounce "p_track02","Welcome to the Monster Race Arena.",bc_map,"0x87ceeb";
  934. end;
  935. OnTimer7000:
  936. mapannounce "p_track02","Feel free to inquire at the help desk whenever you have questions.",bc_map,"0x87ceeb";
  937. end;
  938. OnTimer120000:
  939. mapannounce "p_track02","The Dual Monster Race will start in 3 minutes.",bc_map,"0x87ceeb";
  940. end;
  941. OnTimer122000:
  942. mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb";
  943. end;
  944. OnTimer240000:
  945. mapannounce "p_track02","The Dual Monster Race will start shortly.",bc_map,"0x87ceeb";
  946. end;
  947. OnTimer242000:
  948. mapannounce "p_track02","Please ask a Ticket Helper if you wish to wager on the race.",bc_map,"0x87ceeb";
  949. end;
  950. OnTimer300000:
  951. mapannounce "p_track02","The Monster Race is starting now. Good luck, everybody!",bc_map,"0x87ceeb";
  952. $@mon_time_2_2 = 1;
  953. disablenpc "Ticket Helper#2";
  954. donpcevent "#poring1::OnEnable";
  955. donpcevent "#lunatic1::OnEnable";
  956. donpcevent "#savagebebe1::OnEnable";
  957. donpcevent "#desertwolf1::OnEnable";
  958. donpcevent "#deviruchi1::OnEnable";
  959. donpcevent "#baphomet1::OnEnable";
  960. stopnpctimer;
  961. disablenpc "#race_timer2-2";
  962. end;
  963. OnInit:
  964. disablenpc "#race_timer2-2";
  965. $@mon_time_2_2 = 0;
  966. end;
  967. }
  968. p_track02,80,43,0 script #race_timer2-3 -1,{
  969. OnEnable:
  970. enablenpc "#race_timer2-3";
  971. initnpctimer;
  972. end;
  973. OnTimer3000:
  974. mapannounce "p_track02","The Monster Race is finished! Congratulations to all the winners!",bc_map,"0xFFFF00";
  975. end;
  976. OnTimer6000:
  977. mapannounce "p_track02","Please give your Racing Ticket to the Medal Distributor if you bet on the winning monster.",bc_map,"0xFFFF00";
  978. end;
  979. OnTimer9000:
  980. mapannounce "p_track02","You have 5 minutes to exchange a winning ticket for Prize Medals from the Medal Distributor.",bc_map,"0xFFFF00";
  981. end;
  982. OnTimer12000:
  983. mapannounce "p_track02","All tickets become void after this 5 minute period, so winners should claim their prize now.",bc_map,"0xFFFF00";
  984. end;
  985. OnTimer15000:
  986. mapannounce "p_track02","Please leave the Race Arena before this 5 minute period elapses. Thank you.",bc_map,"0xFFFF00";
  987. end;
  988. OnTimer240000:
  989. mapannounce "p_track02","Attention. We will being preparing for the next race shortly...",bc_map,"0xFFFF00";
  990. end;
  991. OnTimer243000:
  992. mapannounce "p_track02","We will close the Racing Arena in 1 minute to prepare for the next race.",bc_map,"0xFFFF00";
  993. end;
  994. OnTimer246000:
  995. mapannounce "p_track02","Participants in the last race should leave the arena as soon as possible.",bc_map,"0xFFFF00";
  996. end;
  997. OnTimer249000:
  998. mapannounce "p_track02","Thank you for your cooperation.",bc_map,"0xFFFF00";
  999. end;
  1000. OnTimer252000:
  1001. mapannounce "p_track02","We hope that you enjoyed the Monster Race arena. Come back again soon~",bc_map,"0xFFFF00";
  1002. end;
  1003. OnTimer300000:
  1004. mapwarp "p_track02","hugel",63,73;
  1005. disablenpc "Medal Distributor#medal";
  1006. donpcevent "#race_timer2-1::OnEnable";
  1007. stopnpctimer;
  1008. OnInit:
  1009. $@mon_race_2_1 = $@mon_race_2_2 = 0;
  1010. disablenpc "#race_timer2-3";
  1011. end;
  1012. }
  1013. hugel,62,69,1 script Eckar Erenes#double 798,{
  1014. mes "[Eckar Erenes]";
  1015. mes "Welcome to the";
  1016. mes "Monster Race Arena,";
  1017. mes "the pride and joy of";
  1018. mes "the village of Hugel!";
  1019. mes "How may I help you?";
  1020. next;
  1021. if (select("Monster Race Info:Enter Monster Race") == 1) {
  1022. mes "[Eckar Erenes]";
  1023. mes "Monster Races originated from";
  1024. mes "simple children's games in which";
  1025. mes "Cute Pets would race against each other. This grew into an adult";
  1026. mes "pastime that is so popular, we've built a racing arena in Hugel.";
  1027. next;
  1028. mes "[Eckar Erenes]";
  1029. mes "Our Monster Race Arena hosts";
  1030. mes "two types of monster races. First, we have the Single Monster Race,";
  1031. mes "in which those that wagered on the 1st place monster are rewarded.";
  1032. next;
  1033. mes "[Eckar Erenes]";
  1034. mes "Then, we have the Dual Monster";
  1035. mes "Race in which the house odds and rewards are greater than in Single";
  1036. mes "Monster Races: you must wager on 2 monsters, and they must place in";
  1037. mes "1st and 2nd for you to win.";
  1038. next;
  1039. mes "[Eckar Erenes]";
  1040. mes "Although a small entrance";
  1041. mes "fee is required, we only use";
  1042. mes "the money to give rewards to";
  1043. mes "participants and maintain this";
  1044. mes "arena. Therefore, we're not";
  1045. mes "profiting from this enterprise.";
  1046. next;
  1047. mes "[Eckar Erenes]";
  1048. mes "Also, we prohibit others";
  1049. mes "from making personal bets";
  1050. mes "and wagers, using items and";
  1051. mes "zeny, based on the outcomes";
  1052. mes "of these races. That kind of";
  1053. mes "gambling is illegal here...";
  1054. next;
  1055. mes "[Eckar Erenes]";
  1056. mes "Once you enter the Race Arena, you will receive a Racing Ticket.";
  1057. mes "Keep in mind that winning Racing Tickets can only be exchanged for";
  1058. mes "Prize Medals during a 5 minute window after the end of the race.";
  1059. next;
  1060. }
  1061. mes "[Eckar Erenes]";
  1062. mes "The entrance fee for all races";
  1063. mes "in the Monster Race Arena is";
  1064. mes "2,000 zeny. If you'd like to wager on a Single Monster Race,";
  1065. mes "then please ask my brother";
  1066. mes "Ellebird to help you.";
  1067. next;
  1068. mes "[Eckar Erenes]";
  1069. mes "Otherwise, I'll help get you";
  1070. mes "started if you're interested";
  1071. mes "in a Dual Monster Race.";
  1072. mes "Would you like to wager";
  1073. mes "on a Dual Monster Race?";
  1074. next;
  1075. if (select("Yes, please.:No, thanks.") == 2) {
  1076. mes "[Eckar Erenes]";
  1077. mes "Very well. I hope that";
  1078. mes "you enjoy your time here";
  1079. mes "in the Monster Race Arena~";
  1080. close;
  1081. }
  1082. if (!checkweight("Jellopy",700)) {
  1083. mes "[Eckar Erenes]";
  1084. mes "Hmm... You're toting";
  1085. mes "too many things with you";
  1086. mes "right now. You better put";
  1087. mes "some of your stuff away in";
  1088. mes "Kafra Storage before you can";
  1089. mes "wager on any monster races...";
  1090. close;
  1091. }
  1092. if (Zeny < 2000) {
  1093. mes "[Eckar Erenes]";
  1094. mes "I'm sorry, but you";
  1095. mes "don't have enough";
  1096. mes "money to pay the";
  1097. mes "2,000 zeny entrance fee. ";
  1098. close;
  1099. }
  1100. if (countitem(7514)) {
  1101. mes "[Eckar Erenes]";
  1102. mes "Hm? What are you doing";
  1103. mes "with an expired Racing Ticket?";
  1104. mes "Well, I better get rid of it for you before it can get mixed up";
  1105. mes "with your new Racing Ticket.";
  1106. delitem 7514,1; //Monster_Ticket
  1107. next;
  1108. if ($@mon_time_2_1 == 1) {
  1109. mes "[Eckar Erenes]";
  1110. mes "Alright, I think you";
  1111. mes "should be all set. I hope";
  1112. mes "that you enjoy the race~";
  1113. mes "Let me guide you inside";
  1114. mes "the Monster Race Arena now.";
  1115. Zeny -= 2000;
  1116. monster_race_2_1 = monster_race_2_2 = 0;
  1117. close2;
  1118. warp "p_track02",75,41;
  1119. end;
  1120. }
  1121. else if ($@mon_time_2_1 == 2) {
  1122. mes "[Eckar Erenes]";
  1123. mes "We're still finishing our";
  1124. mes "preparations for the next";
  1125. mes "Double Monster Race, so";
  1126. mes "we ask that you please";
  1127. mes "wait a little while longer...";
  1128. close;
  1129. }
  1130. } else {
  1131. if ($@mon_time_2_1 == 1) {
  1132. mes "[Eckar Erenes]";
  1133. mes "Thanks, I hope that";
  1134. mes "you enjoy this race.";
  1135. mes "Let me guide you now";
  1136. mes "to the Monster Race Arena.";
  1137. Zeny -= 2000;
  1138. monster_race_2_1 = monster_race_2_2 = 0;
  1139. close2;
  1140. warp "p_track02",75,41;
  1141. end;
  1142. } else if ($@mon_time_2_1 == 2) {
  1143. mes "[Eckar Erenes]";
  1144. mes "We're still finishing our";
  1145. mes "preparations for the next";
  1146. mes "Double Monster Race, so";
  1147. mes "we ask that you please";
  1148. mes "wait a little while longer...";
  1149. close;
  1150. }
  1151. }
  1152. if ($@mon_time_2_2 == 1) {
  1153. mes "[Eckar Erenes]";
  1154. mes "Right now, a Monster Race";
  1155. mes "is in progress. It's too late to place a wager, but if you'd like";
  1156. mes "to watch, the fee is 500 zeny";
  1157. mes "for spectators. Would you like to enter the Monster Race Arena?";
  1158. next;
  1159. if (select("Enter:Cancel") == 2) {
  1160. mes "[Eckar Erenes]";
  1161. mes "Alright, then. If you'd like";
  1162. mes "to wager on a monster";
  1163. mes "race, please wait for the";
  1164. mes "current race to finish. I hope";
  1165. mes "that you enjoy your time here";
  1166. mes "in the Monster Race Arena~";
  1167. close;
  1168. }
  1169. if (Zeny > 499) {
  1170. mes "[Eckar Erenes]";
  1171. mes "Thank you~";
  1172. mes "I hope you enjoy";
  1173. mes "watching this race!";
  1174. Zeny -= 500;
  1175. monster_race_2_1 = monster_race_2_2 = 0;
  1176. close2;
  1177. warp "p_track02",75,41;
  1178. end;
  1179. }
  1180. mes "[Eckar Erenes]";
  1181. mes "I'm sorry, but you don't";
  1182. mes "have enough money to pay";
  1183. mes "the 500 zeny spectator fee.";
  1184. close;
  1185. }
  1186. mes "[Eckar Erenes]";
  1187. mes "I'm sorry, but a monster";
  1188. mes "race has just ended, so we're";
  1189. mes "having the 5 minute period in";
  1190. mes "which the winners can claim";
  1191. mes "their Prize Medals. The gate";
  1192. mes "will open soon, so please wait.";
  1193. close;
  1194. OnEnable:
  1195. enablenpc "Eckar Erenes#double";
  1196. end;
  1197. OnDisable:
  1198. disablenpc "Eckar Erenes#double";
  1199. end;
  1200. }
  1201. p_track02,73,22,1 script Ticket Helper#2 899,{
  1202. if (!checkweight("Spawn",200)) {
  1203. mes "[Ticket Helper]";
  1204. mes "Welcome to the";
  1205. mes "Monster Race Arena.";
  1206. mes "If you'd like to participate";
  1207. mes "in the ^3131FFDouble Monster Race^000000,";
  1208. mes "then please select 1 out of";
  1209. mes "the 6 monsters from the list.";
  1210. next;
  1211. mes "[Ticket Helper]";
  1212. mes "Wait, wait...";
  1213. mes "I can't give you";
  1214. mes "anything right now.";
  1215. mes "You're carrying way";
  1216. mes "too many things...";
  1217. close;
  1218. }
  1219. if (!monster_race_2_1 && !monster_race_2_2) {
  1220. mes "[Ticket Helper]";
  1221. mes "Hello there!";
  1222. mes "Interested in wagering on";
  1223. mes "the Dual Monster Race?";
  1224. mes "I'm here to help you if you've";
  1225. mes "got any questions, or if you";
  1226. mes "want to place your wager.";
  1227. next;
  1228. switch(select("Check Monster Status:Wager on Race:Monster Race?:Cancel")) {
  1229. case 1:
  1230. for ( .@i = 1; .@i <= 6; .@i++ )
  1231. mes "Monster "+.@i+" [^CC6600Luck^000000: " + getd("$@mon_r02_Luk"+.@i) + "] [^EE0000HP^000000: " + getd("$@mon_r02_tire"+.@i) + "]";
  1232. close;
  1233. case 2:
  1234. mes "[Ticket Helper]";
  1235. mes "Alright, please choose which";
  1236. mes "two monsters that you think";
  1237. mes "will win 1st and 2nd place.";
  1238. mes "If both your monsters come";
  1239. mes "in 1st and 2nd, in any order,";
  1240. mes "you'll win the wager.";
  1241. next;
  1242. mes "[Ticket Helper]";
  1243. mes "Now, please tell me";
  1244. mes "your first choice for one";
  1245. mes "of the monsters that";
  1246. mes "will win this race.";
  1247. next;
  1248. for ( .@i = 1; .@i <= 6; .@i++ )
  1249. .@menu$ = .@menu$ + "Monster "+ .@i +":";
  1250. while (1) {
  1251. if ( .@m1 > 0 )
  1252. .@menu$ = replacestr( .@menu$, "Monster "+ .@m1, "" );
  1253. .@m = select (.@menu$);
  1254. switch (.@m) {
  1255. case 1: setarray .@string$, "a friendly","Poring type monster"; break;
  1256. case 2: setarray .@string$, "an adorable","Lunatic type monster"; break;
  1257. case 3: setarray .@string$, "a darling","Savage Babe monster"; break;
  1258. case 4: setarray .@string$, "a gentle baby","Desert Wolf monster"; break;
  1259. case 5: setarray .@string$, "a small, yet","demonic, Deviruchi"; break;
  1260. case 6: setarray .@string$, "a naughty","Baphomet Jr. monster"; break;
  1261. }
  1262. mes "[Ticket Helper]";
  1263. mes "You've chosen";
  1264. mes "^0000FFMonster "+.@m+"^000000, "+.@string$[0];
  1265. mes .@string$[1]+".";
  1266. mes "Are you sure you want";
  1267. mes "to choose this monster?";
  1268. next;
  1269. if (select("Yes:No") == 2) {
  1270. mes "[Ticket Helper]";
  1271. mes "You have canceled";
  1272. mes "your wager. Okay,";
  1273. mes "I understand. Perhaps";
  1274. mes "you'd feel more comfortable";
  1275. mes "checking the monsters first?";
  1276. close;
  1277. }
  1278. if (.@m1 == 0) {
  1279. mes "[Ticket Helper]";
  1280. mes "Now, please make";
  1281. mes "your second choice";
  1282. mes "for the monster that";
  1283. mes "you think will place";
  1284. mes "1st or 2nd in this race.";
  1285. next;
  1286. .@m1 = .@m;
  1287. } else {
  1288. if (!$@mon_time_2_2) {
  1289. mes "[Ticket Helper]";
  1290. mes "You've wagered on";
  1291. mes "^0000FFMonster "+.@m1+"^000000 and ^0000FFMonster "+.@m+"^000000";
  1292. mes "to win this race. Good luck!";
  1293. mes "I really hope that the odds";
  1294. mes "work out in your favor~";
  1295. emotion ET_CHUP;
  1296. monster_race_2_1 = .@m1;
  1297. monster_race_2_2 = .@m;
  1298. getitem 7514,1; //Monster_Ticket
  1299. } else {
  1300. mes "[Ticket Helper]";
  1301. mes "I'm very sorry, but a";
  1302. mes "monster race is underway.";
  1303. mes "Please wait, and then place";
  1304. mes "your wager for the next race.";
  1305. }
  1306. close;
  1307. }
  1308. }
  1309. case 3:
  1310. mes "[Ticket Helper]";
  1311. mes "Monster Races originated from";
  1312. mes "simple children's games in which";
  1313. mes "Cute Pets would race against each other. This grew into an adult";
  1314. mes "pastime that is so popular, we've built a racing arena in Hugel.";
  1315. next;
  1316. mes "[Ticket Helper]";
  1317. mes "Our Monster Race Arena hosts";
  1318. mes "two types of monster races. First, we have the Single Monster Race,";
  1319. mes "in which those that wagered on the 1st place monster are rewarded.";
  1320. next;
  1321. mes "[Eclar Ellbird]";
  1322. mes "Then, we have the Dual Monster";
  1323. mes "Race in which those that wagered on the 1st and 2nd place monsters";
  1324. mes "are equally rewarded. The house";
  1325. mes "odds and wager rewards are greater in Dual Races than Single Races.";
  1326. next;
  1327. mes "[Ticket Helper]";
  1328. mes "Although a small entrance";
  1329. mes "fee is required, we only use";
  1330. mes "the money to give rewards to";
  1331. mes "participants and maintain this";
  1332. mes "arena. Therefore, we're not";
  1333. mes "profiting from this enterprise.";
  1334. next;
  1335. mes "[Ticket Helper]";
  1336. mes "Also, we prohibit others";
  1337. mes "from making personal bets";
  1338. mes "and wagers, using items and";
  1339. mes "zeny, based on the outcomes";
  1340. mes "of these races. That kind of";
  1341. mes "gambling is illegal here...";
  1342. next;
  1343. mes "[Ticket Helper]";
  1344. mes "Once you enter the Race Arena, you will receive a Racing Ticket.";
  1345. mes "Keep in mind that winning Racing Tickets can only be exchanged for";
  1346. mes "Prize Medals during a 5 minute window after the end of the race.";
  1347. next;
  1348. mes "[Ticket Helper]";
  1349. mes "You're already here";
  1350. mes "inside the Monster Race";
  1351. mes "Arena, so you may as well";
  1352. mes "try placing a wager. It's";
  1353. mes "more fun than you'd think~";
  1354. close;
  1355. case 4:
  1356. mes "[Ticket Helper]";
  1357. mes "You have canceled";
  1358. mes "your wager. Okay,";
  1359. mes "I understand. Perhaps";
  1360. mes "you'd feel more comfortable";
  1361. mes "checking the monsters first?";
  1362. close;
  1363. }
  1364. } else {
  1365. if (countitem(7514)) {
  1366. mes "[Ticket Helper]";
  1367. mes "You've wagered on";
  1368. mes "^0000FFMonster " + monster_race_2_1 + "^000000 and ^0000FFMonster " + monster_race_2_2 + "^000000";
  1369. mes "for this Dual Monster Race.";
  1370. next;
  1371. }
  1372. mes "[Ticket Helper]";
  1373. mes "The start of the race will be";
  1374. mes "announced through a broadcast.";
  1375. mes "You can refer to your Mini-Map";
  1376. mes "to track the monsters' race";
  1377. mes "positions. Thank you, and";
  1378. mes "have a good time!";
  1379. viewpoint 1,43,35,0,0xFF0000;
  1380. close;
  1381. }
  1382. OnInit:
  1383. disablenpc "Ticket Helper#2";
  1384. end;
  1385. }
  1386. p_track02,39,49,3 script Game Guide#double 845,{
  1387. mes "[Game Guide]";
  1388. mes "Welcome to the";
  1389. mes "Monster Race Arena.";
  1390. mes "How can I help you?";
  1391. next;
  1392. switch(select("Monster Race Info:Wager Info:Ticket Redemption Info")) {
  1393. case 1:
  1394. mes "[Game Guide]";
  1395. mes "Monster Races originated from";
  1396. mes "simple children's games in which";
  1397. mes "Cute Pets would race against each other. This grew into an adult";
  1398. mes "pastime that is so popular, we've built a racing arena in Hugel.";
  1399. next;
  1400. mes "[Game Guide]";
  1401. mes "Our Monster Race Arena hosts";
  1402. mes "two types of monster races. First, we have the Single Monster Race,";
  1403. mes "in which those that wagered on the 1st place monster are rewarded.";
  1404. next;
  1405. mes "[Game Guide]";
  1406. mes "Then, we have the Dual Monster";
  1407. mes "Race in which the house odds and rewards are greater than in Single";
  1408. mes "Monster Races: you must wager on 2 monsters, and they must place in";
  1409. mes "1st and 2nd for you to win.";
  1410. next;
  1411. mes "[Game Guide]";
  1412. mes "Although a small entrance";
  1413. mes "fee is required, we only use";
  1414. mes "the money to give rewards to";
  1415. mes "participants and maintain this";
  1416. mes "arena. Therefore, we're not";
  1417. mes "profiting from this enterprise.";
  1418. next;
  1419. mes "[Game Guide]";
  1420. mes "Also, we prohibit others";
  1421. mes "from making personal bets";
  1422. mes "and wagers, using items and";
  1423. mes "zeny, based on the outcomes";
  1424. mes "of these races. That kind of";
  1425. mes "gambling is illegal here...";
  1426. next;
  1427. mes "[Game Guide]";
  1428. mes "Once you enter the Race Arena, you will receive a Racing Ticket.";
  1429. mes "Keep in mind that winning Racing Tickets can only be exchanged for";
  1430. mes "Prize Medals during a 5 minute window after the end of the race.";
  1431. next;
  1432. break;
  1433. case 2:
  1434. mes "[Game Guide]";
  1435. mes "Before placing a wager, you";
  1436. mes "must get a free Racing Ticket";
  1437. mes "from the Ticket Helper. There,";
  1438. mes "I've marked the Ticket Helper";
  1439. mes "on your Mini-Map, so you can";
  1440. mes "find him pretty easily.";
  1441. viewpoint 1,73,22,1,0xFF3355;
  1442. next;
  1443. break;
  1444. case 3:
  1445. mes "[Game Guide]";
  1446. mes "If you wagered on the winner";
  1447. mes "of a Single Monster Race, or";
  1448. mes "on the 1st or 2nd place winners";
  1449. mes "in a Dual Monster Race, then";
  1450. mes "you can exchange your Racing";
  1451. mes "Ticket for Prize Medals.";
  1452. next;
  1453. mes "[Game Guide]";
  1454. mes "However, you must exchange";
  1455. mes "your Racing Ticket with the";
  1456. mes "Medal Distributor within the";
  1457. mes "5 minute window after the end";
  1458. mes "of the race. ^FF0000Your ticket becomes^FFFFFF ^FF0000 void after these 5 minutes.^000000";
  1459. next;
  1460. mes "[Game Guide]";
  1461. mes "When this 5 minute window";
  1462. mes "elapses, you will be teleported outside, and we will immediately";
  1463. mes "begin preparing for the next race. Make sure that you remember this";
  1464. mes "information when you wager.";
  1465. next;
  1466. mes "[Game Guide]";
  1467. mes "If you haven't received";
  1468. mes "your free Racing Ticket,";
  1469. mes "then please visit the Ticket";
  1470. mes "Helper. There, I've just marked";
  1471. mes "his location on your Mini-Map.";
  1472. viewpoint 1,67,45,2,0xCE6300;
  1473. next;
  1474. break;
  1475. }
  1476. mes "[Game Guide]";
  1477. mes "Thank you, and";
  1478. mes "I hope you enjoy";
  1479. mes "your time here in the";
  1480. mes "Monster Racing Arena.";
  1481. close;
  1482. }
  1483. p_track02,67,45,5 script Medal Distributor#medal 845,{
  1484. if (!checkweight("Jellopy",20)) {
  1485. mes "[Medal Distributor]";
  1486. mes "I'm sorry, but I can't";
  1487. mes "reward you with any medals";
  1488. mes "until you make more space";
  1489. mes "available in your Inventory.";
  1490. close;
  1491. }
  1492. mes "[Medal Distributor]";
  1493. mes "Hello there~";
  1494. mes "If you've wagered on the";
  1495. mes "winning monster in a recent";
  1496. mes "race, then you can exchange";
  1497. mes "your game ticket here for";
  1498. mes "some Prize Medals.";
  1499. next;
  1500. if (!countitem(7514)) {
  1501. mes "[Medal Distributor]";
  1502. mes "Please remember that you can";
  1503. mes "only exchange winning Game";
  1504. mes "Tickets for Prize Medals right";
  1505. mes "after the race finishes. Prize";
  1506. mes "Medals may be given to Wayne";
  1507. mes "in Hugel in exchange for items.";
  1508. close;
  1509. }
  1510. mes "[Medal Distributor]";
  1511. mes "Please remember that you can";
  1512. mes "only exchange winning Game";
  1513. mes "Tickets for Prize Medals right";
  1514. mes "after the race finishes. Prize";
  1515. mes "Medals may be given to Wayne";
  1516. mes "in Hugel in exchange for items.";
  1517. next;
  1518. if ((monster_race_2_1 == $@mon_race_2_1 && monster_race_2_2 == $@mon_race_2_2) || (monster_race_2_1 == $@mon_race_2_2 && monster_race_2_2 == $@mon_race_2_1)) {
  1519. mes "[Medal Distributor]";
  1520. mes "Congratulations! It's really";
  1521. mes "difficult to guess the winners";
  1522. mes "of a Dual Monster Race, so you";
  1523. mes "must be really lucky! Would you";
  1524. mes "like to exchange your winning";
  1525. mes "Racing Ticket for Prize Medals?";
  1526. next;
  1527. if (select("Yes, please.:No, thanks.") == 1) {
  1528. mes "[Medal Distributor]";
  1529. mes "Okay, everything looks good,";
  1530. mes "so here's your Prize Medals~";
  1531. mes "If you want to trade these";
  1532. mes "medals for items, please";
  1533. mes "visit Wayne in Hugel. We hope";
  1534. mes "you enjoyed the Monster Race~";
  1535. monster_race_2_1 = monster_race_2_2 = 7;
  1536. delitem 7514,1; //Monster_Ticket
  1537. getitem 7515,15; //Marvelous_Medal
  1538. close;
  1539. }
  1540. mes "[Medal Distributor]";
  1541. mes "Um, are you sure? You ";
  1542. mes "can only exchange a winning";
  1543. mes "Racing Ticket for Prize Medals";
  1544. mes "for a short time after the race. If you made a mistake, you";
  1545. mes "should ask me again quickly.";
  1546. close;
  1547. } else if (!monster_race_2_1 && !monster_race_2_2) {
  1548. mes "[Medal Distributor]";
  1549. mes "Well, better luck next time...";
  1550. mes "Although you can't always";
  1551. mes "be lucky, it's always fun to";
  1552. mes "wager on the monster races!";
  1553. close;
  1554. } else if (monster_race_2_1 == 7 && monster_race_2_2 == 7) {
  1555. mes "[Medal Distributor]";
  1556. mes "Thanks for visiting the";
  1557. mes "Monster Race Arena, and";
  1558. mes "I hope you enjoy your time";
  1559. mes "here. I'll see you next time~";
  1560. close;
  1561. } else if (monster_race_2_1 != $@mon_race_2_1 || monster_race_2_2 != $@mon_race_2_2) {
  1562. mes "[Medal Distributor]";
  1563. mes "You may not have wagered";
  1564. mes "on the winning monster in";
  1565. mes "the last race, but I hope that";
  1566. mes "you get lucky next time~";
  1567. close;
  1568. }
  1569. OnInit:
  1570. disablenpc "Medal Distributor#medal";
  1571. end;
  1572. }
  1573. p_track02,76,38,1 script Exit Guide#double 798,{
  1574. mes "[Exit Guide]";
  1575. mes "If you have a winning Racing";
  1576. mes "Ticket, please make sure that";
  1577. mes "you redeem it for Prize Medals";
  1578. mes "now. All Racing Tickets become";
  1579. mes "void once the next race begins.";
  1580. next;
  1581. mes "[Exit Guide]";
  1582. mes "If you wish to leave";
  1583. mes "the arena, then I can guide";
  1584. mes "you outside. Would you like";
  1585. mes "to leave the arena right now?";
  1586. next;
  1587. if (select("Yes:No") == 2) {
  1588. mes "[Exit Guide]";
  1589. mes "Alright, then.";
  1590. mes "Just let me know";
  1591. mes "whenever you're";
  1592. mes "ready to leave.";
  1593. close;
  1594. }
  1595. if (!countitem(7514)) {
  1596. mes "[Exit Guide]";
  1597. mes "Thank you for";
  1598. mes "your patronage, and";
  1599. mes "I hope that you come";
  1600. mes "visit us again soon~";
  1601. } else {
  1602. mes "[Exit Guide]";
  1603. mes "In accordance with our";
  1604. mes "policies, I must take your";
  1605. mes "Racing Ticket before you leave.";
  1606. mes "Thank you for your patronage,";
  1607. mes "and I hope you enjoy your time";
  1608. mes "here in the Monster Race Arena.";
  1609. delitem 7514,1; //Monster_Ticket
  1610. }
  1611. monster_race_2_1 = monster_race_2_2 = 0;
  1612. close2;
  1613. warp "hugel",63,73;
  1614. end;
  1615. }
  1616. - script mob1#main -1,{
  1617. function MN {
  1618. setarray .@n$[1], "poring","lunatic","savagebebe","desertwolf","deviruchi","baphomet";
  1619. for ( .@i = 1; .@i <= 6; .@i++ ) {
  1620. if (compare(strnpcinfo(0),.@n$[.@i]))
  1621. break;
  1622. }
  1623. return .@i;
  1624. }
  1625. OnEnable:
  1626. enablenpc();
  1627. setarray .@n[1], 1725,1726,1727,1728,1730,1729;
  1628. getmapxy(.@m$,.@x,.@y,BL_NPC);
  1629. .@i = MN;
  1630. monster "p_track02",58,.@y,"Monster "+.@i,.@n[.@i],1,strnpcinfo(0)+"::OnMyMobDead";
  1631. end;
  1632. OnTouchNPC:
  1633. .@i = MN;
  1634. if (!$@mon_race_2_1) {
  1635. emotion ET_THROB;
  1636. specialeffect EF_MVP;
  1637. mapannounce "p_track02","Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC";
  1638. $@mon_race_2_1 = .@i;
  1639. donpcevent strnpcinfo(0)+"::OnDisable";
  1640. } else {
  1641. emotion ET_THROB;
  1642. specialeffect EF_MVP;
  1643. mapannounce "p_track02","The race is over! Monster "+.@i+" has reached the Finish Line!",bc_map,"0x66FFCC";
  1644. $@mon_race_2_2 = .@i;
  1645. donpcevent "#poring1::OnDisable";
  1646. donpcevent "#lunatic1::OnDisable";
  1647. donpcevent "#savagebebe1::OnDisable";
  1648. donpcevent "#desertwolf1::OnDisable";
  1649. donpcevent "#deviruchi1::OnDisable";
  1650. donpcevent "#baphomet1::OnDisable";
  1651. donpcevent "TrapGlobal#race02::OnDisable";
  1652. enablenpc "Medal Distributor#medal";
  1653. donpcevent "#race_timer2-3::OnEnable";
  1654. }
  1655. OnMyMobDead:
  1656. end;
  1657. OnDisable:
  1658. killmonster "p_track02",strnpcinfo(0)+"::OnMyMobDead";
  1659. OnInit:
  1660. if ( strnpcinfo(2) != "main" )
  1661. disablenpc();
  1662. end;
  1663. }
  1664. p_track02,30,38,0 duplicate(mob1#main) #poring1 139,0,0
  1665. p_track02,30,36,0 duplicate(mob1#main) #lunatic1 139,0,0
  1666. p_track02,30,34,0 duplicate(mob1#main) #savagebebe1 139,0,0
  1667. p_track02,30,32,0 duplicate(mob1#main) #desertwolf1 139,0,0
  1668. p_track02,30,30,0 duplicate(mob1#main) #deviruchi1 139,0,0
  1669. p_track02,30,28,0 duplicate(mob1#main) #baphomet1 139,0,0
  1670. p_track02,19,48,0 script TrapGlobal#race02 -1,{
  1671. OnEnable:
  1672. enablenpc "TrapGlobal#race02";
  1673. for ( .@c = 1; .@c <= 6; .@c++ ) {
  1674. .@line = rand(1,70);
  1675. enablenpc "starting#race02_"+.@c;
  1676. enablenpc "Tire#race02_"+.@c+"_1";
  1677. if (.@line <= 10) {
  1678. .@tired = rand(50,60);
  1679. enablenpc "Luk#race02_"+.@c+"_5";
  1680. enablenpc "Luk#race02_"+.@c+"_6";
  1681. } else if (.@line <= 30) {
  1682. .@tired = rand(40,60);
  1683. enablenpc "Luk#race02_"+.@c+"_5";
  1684. if ( .@tired < 50 ) enablenpc "Tire#race02_"+.@c+"_2";
  1685. } else if (.@line <= 40) {
  1686. .@tired = rand(30,50);
  1687. enablenpc "Luk#race02_"+.@c+"_1";
  1688. enablenpc "Tire#race02_"+.@c+"_2";
  1689. if ( .@tired < 40 ) enablenpc "Tire#race02_"+.@c+"_3";
  1690. } else if (.@line <= 50) {
  1691. .@tired = rand(20,40);
  1692. enablenpc "Luk#race02_"+.@c+"_1";
  1693. enablenpc "Luk#race02_"+.@c+"_2";
  1694. enablenpc "Tire#race02_"+.@c+"_2";
  1695. enablenpc "Tire#race02_"+.@c+"_3";
  1696. if ( .@tired < 30 ) enablenpc "Tire#race02_"+.@c+"_4";
  1697. } else if (.@line <= 60) {
  1698. .@tired = rand(10,30);
  1699. for ( .@i = 1; .@i <= 3; .@i++ )
  1700. enablenpc "Luk#race02_"+.@c+"_"+.@i;
  1701. for ( .@i = 2; .@i <= 4; .@i++ )
  1702. enablenpc "Tire#race02_"+.@c+"_"+.@i;
  1703. if ( .@tired < 20 ) enablenpc "Tire#race02_"+.@c+"_5";
  1704. } else if (.@line <= 70) {
  1705. .@tired = rand(0,20);
  1706. for ( .@i = 1; .@i <= 4; .@i++ )
  1707. enablenpc "Luk#race02_"+.@c+"_"+.@i;
  1708. for ( .@i = 2; .@i <= 5; .@i++ )
  1709. enablenpc "Tire#race02_"+.@c+"_"+.@i;
  1710. if ( .@tired < 10 ) enablenpc "Tire#race02_"+.@c+"_6";
  1711. }
  1712. setd "$@mon_r02_luk"+.@c, .@line;
  1713. setd "$@mon_r02_tire"+.@c, .@tired;
  1714. }
  1715. end;
  1716. OnDisable:
  1717. disablenpc "TrapGlobal#race02";
  1718. for ( .@i = 1; .@i <= 6; .@i++ )
  1719. donpcevent "starting#race02_"+.@i+"::OnDisable";
  1720. end;
  1721. OnInit:
  1722. for ( .@i = 1; .@i <= 6; .@i++ ) {
  1723. setd "$@mon_r02_luk"+.@i,0;
  1724. setd "$@mon_r02_tire"+.@i,0;
  1725. }
  1726. end;
  1727. }
  1728. - script starting_2 -1,{
  1729. OnTouchNPC:
  1730. .@start = rand(1,100);
  1731. if (.@start < 11) .@speed = 60;
  1732. else if (.@start < 21) .@speed = 70;
  1733. else if (.@start < 31) .@speed = 80;
  1734. else if (.@start < 41) .@speed = 90;
  1735. else if (.@start < 51) .@speed = 100;
  1736. else if (.@start < 61) .@speed = 110;
  1737. else if (.@start < 71) .@speed = 120;
  1738. else if (.@start < 81) .@speed = 130;
  1739. else if (.@start < 91) .@speed = 140;
  1740. else .@speed = 150;
  1741. sc_start SC_WALKSPEED,5000,.@speed;
  1742. end;
  1743. OnDisable:
  1744. for( .@i = 1; .@i < 7; .@i++ ) {
  1745. disablenpc "Luk#"+strnpcinfo(2)+"_"+.@i;
  1746. disablenpc "Tire#"+strnpcinfo(2)+"_"+.@i;
  1747. }
  1748. OnInit:
  1749. disablenpc();
  1750. end;
  1751. }
  1752. p_track02,56,38,0 duplicate(starting_2) starting#race02_1 -1,0,0
  1753. p_track02,56,36,0 duplicate(starting_2) starting#race02_2 -1,0,0
  1754. p_track02,56,34,0 duplicate(starting_2) starting#race02_3 -1,0,0
  1755. p_track02,56,32,0 duplicate(starting_2) starting#race02_4 -1,0,0
  1756. p_track02,56,30,0 duplicate(starting_2) starting#race02_5 -1,0,0
  1757. p_track02,56,28,0 duplicate(starting_2) starting#race02_6 -1,0,0
  1758. p_track02,33,38,0 duplicate(Luk_1) Luk#race02_1_1 -1,0,0
  1759. p_track02,37,38,0 duplicate(Luk_1) Luk#race02_1_2 -1,0,0
  1760. p_track02,53,38,0 duplicate(Luk_1) Luk#race02_1_3 -1,0,0
  1761. p_track02,45,38,0 duplicate(Luk_1) Luk#race02_1_4 -1,0,0
  1762. p_track02,33,36,0 duplicate(Luk_1) Luk#race02_2_1 -1,0,0
  1763. p_track02,37,36,0 duplicate(Luk_1) Luk#race02_2_2 -1,0,0
  1764. p_track02,53,36,0 duplicate(Luk_1) Luk#race02_2_3 -1,0,0
  1765. p_track02,45,36,0 duplicate(Luk_1) Luk#race02_2_4 -1,0,0
  1766. p_track02,33,34,0 duplicate(Luk_1) Luk#race02_3_1 -1,0,0
  1767. p_track02,37,34,0 duplicate(Luk_1) Luk#race02_3_2 -1,0,0
  1768. p_track02,53,34,0 duplicate(Luk_1) Luk#race02_3_3 -1,0,0
  1769. p_track02,45,34,0 duplicate(Luk_1) Luk#race02_3_4 -1,0,0
  1770. p_track02,33,32,0 duplicate(Luk_1) Luk#race02_4_1 -1,0,0
  1771. p_track02,37,32,0 duplicate(Luk_1) Luk#race02_4_2 -1,0,0
  1772. p_track02,53,32,0 duplicate(Luk_1) Luk#race02_4_3 -1,0,0
  1773. p_track02,45,32,0 duplicate(Luk_1) Luk#race02_4_4 -1,0,0
  1774. p_track02,33,30,0 duplicate(Luk_1) Luk#race02_5_1 -1,0,0
  1775. p_track02,37,30,0 duplicate(Luk_1) Luk#race02_5_2 -1,0,0
  1776. p_track02,53,30,0 duplicate(Luk_1) Luk#race02_5_3 -1,0,0
  1777. p_track02,45,30,0 duplicate(Luk_1) Luk#race02_5_4 -1,0,0
  1778. p_track02,33,28,0 duplicate(Luk_1) Luk#race02_6_1 -1,0,0
  1779. p_track02,37,28,0 duplicate(Luk_1) Luk#race02_6_2 -1,0,0
  1780. p_track02,53,28,0 duplicate(Luk_1) Luk#race02_6_3 -1,0,0
  1781. p_track02,45,28,0 duplicate(Luk_1) Luk#race02_6_4 -1,0,0
  1782. p_track02,49,38,0 duplicate(Luk_2) Luk#race02_1_5 -1,0,0
  1783. p_track02,41,38,0 duplicate(Luk_2) Luk#race02_1_6 -1,0,0
  1784. p_track02,49,36,0 duplicate(Luk_2) Luk#race02_2_5 -1,0,0
  1785. p_track02,41,36,0 duplicate(Luk_2) Luk#race02_2_6 -1,0,0
  1786. p_track02,49,34,0 duplicate(Luk_2) Luk#race02_3_5 -1,0,0
  1787. p_track02,41,34,0 duplicate(Luk_2) Luk#race02_3_6 -1,0,0
  1788. p_track02,49,32,0 duplicate(Luk_2) Luk#race02_4_5 -1,0,0
  1789. p_track02,41,32,0 duplicate(Luk_2) Luk#race02_4_6 -1,0,0
  1790. p_track02,49,30,0 duplicate(Luk_2) Luk#race02_5_5 -1,0,0
  1791. p_track02,41,30,0 duplicate(Luk_2) Luk#race02_5_6 -1,0,0
  1792. p_track02,49,28,0 duplicate(Luk_2) Luk#race02_6_5 -1,0,0
  1793. p_track02,41,28,0 duplicate(Luk_2) Luk#race02_6_6 -1,0,0
  1794. p_track02,43,38,0 duplicate(Tire_1) Tire#race02_1_1 -1,0,0
  1795. p_track02,39,38,0 duplicate(Tire_1) Tire#race02_1_2 -1,0,0
  1796. p_track02,35,38,0 duplicate(Tire_1) Tire#race02_1_3 -1,0,0
  1797. p_track02,55,38,0 duplicate(Tire_1) Tire#race02_1_4 -1,0,0
  1798. p_track02,51,38,0 duplicate(Tire_1) Tire#race02_1_5 -1,0,0
  1799. p_track02,47,38,0 duplicate(Tire_1) Tire#race02_1_6 -1,0,0
  1800. p_track02,43,36,0 duplicate(Tire_1) Tire#race02_2_1 -1,0,0
  1801. p_track02,39,36,0 duplicate(Tire_1) Tire#race02_2_2 -1,0,0
  1802. p_track02,35,36,0 duplicate(Tire_1) Tire#race02_2_3 -1,0,0
  1803. p_track02,55,36,0 duplicate(Tire_1) Tire#race02_2_4 -1,0,0
  1804. p_track02,51,36,0 duplicate(Tire_1) Tire#race02_2_5 -1,0,0
  1805. p_track02,47,36,0 duplicate(Tire_1) Tire#race02_2_6 -1,0,0
  1806. p_track02,43,34,0 duplicate(Tire_1) Tire#race02_3_1 -1,0,0
  1807. p_track02,39,34,0 duplicate(Tire_1) Tire#race02_3_2 -1,0,0
  1808. p_track02,35,34,0 duplicate(Tire_1) Tire#race02_3_3 -1,0,0
  1809. p_track02,55,34,0 duplicate(Tire_1) Tire#race02_3_4 -1,0,0
  1810. p_track02,51,34,0 duplicate(Tire_1) Tire#race02_3_5 -1,0,0
  1811. p_track02,47,34,0 duplicate(Tire_1) Tire#race02_3_6 -1,0,0
  1812. p_track02,43,32,0 duplicate(Tire_1) Tire#race02_4_1 -1,0,0
  1813. p_track02,39,32,0 duplicate(Tire_1) Tire#race02_4_2 -1,0,0
  1814. p_track02,35,32,0 duplicate(Tire_1) Tire#race02_4_3 -1,0,0
  1815. p_track02,55,32,0 duplicate(Tire_1) Tire#race02_4_4 -1,0,0
  1816. p_track02,51,32,0 duplicate(Tire_1) Tire#race02_4_5 -1,0,0
  1817. p_track02,47,32,0 duplicate(Tire_1) Tire#race02_4_6 -1,0,0
  1818. p_track02,43,30,0 duplicate(Tire_1) Tire#race02_5_1 -1,0,0
  1819. p_track02,39,30,0 duplicate(Tire_1) Tire#race02_5_2 -1,0,0
  1820. p_track02,35,30,0 duplicate(Tire_1) Tire#race02_5_3 -1,0,0
  1821. p_track02,55,30,0 duplicate(Tire_1) Tire#race02_5_4 -1,0,0
  1822. p_track02,51,30,0 duplicate(Tire_1) Tire#race02_5_5 -1,0,0
  1823. p_track02,47,30,0 duplicate(Tire_1) Tire#race02_5_6 -1,0,0
  1824. p_track02,43,28,0 duplicate(Tire_1) Tire#race02_6_1 -1,0,0
  1825. p_track02,39,28,0 duplicate(Tire_1) Tire#race02_6_2 -1,0,0
  1826. p_track02,35,28,0 duplicate(Tire_1) Tire#race02_6_3 -1,0,0
  1827. p_track02,55,28,0 duplicate(Tire_1) Tire#race02_6_4 -1,0,0
  1828. p_track02,51,28,0 duplicate(Tire_1) Tire#race02_6_5 -1,0,0
  1829. p_track02,47,28,0 duplicate(Tire_1) Tire#race02_6_6 -1,0,0
  1830. // NPCs for Redeeming Prize Medals (Einbroch and Hugel)
  1831. //============================================================
  1832. ein_in01,85,208,5 script Ei'felle#repay01 854,{
  1833. if (!ein_medal01) {
  1834. mes "[Ei'felle]";
  1835. mes "Curses! We need to deliver";
  1836. mes "what our customers ordered,";
  1837. mes "but we've been making nothing";
  1838. mes "but shipshod products! If we";
  1839. mes "only had that metal, we could";
  1840. mes "pump up our product quality!";
  1841. next;
  1842. select("What metal are you talking about?");
  1843. mes "[Ei'felle]";
  1844. mes "There's a small village";
  1845. mes "at the outskirts of the";
  1846. mes "Schwarzwald Republic that";
  1847. mes "gives these special medals";
  1848. mes "that are made of this metal";
  1849. mes "which we desperately need...";
  1850. next;
  1851. mes "[Ei'felle]";
  1852. mes "We've sent one of our best";
  1853. mes "guildsmen to get some of those";
  1854. mes "medals for us, but he hasn't";
  1855. mes "reported back to us quite yet.";
  1856. mes "I'm getting pretty anxious...";
  1857. next;
  1858. mes "[Ei'felle]";
  1859. mes "I mean, we need a whole";
  1860. mes "lot of that metal to fill out";
  1861. mes "our orders and finish our";
  1862. mes "manufacturing research,";
  1863. mes "but so far, none of us have";
  1864. mes "been able to get any medals...";
  1865. next;
  1866. if (countitem("Marvelous_Medal")) {//7515
  1867. mes "["+ strcharinfo(0) +"]";
  1868. mes "Oh! Are you talking";
  1869. mes "about the medals that";
  1870. mes "they give as rewards in";
  1871. mes "the Monster Race Arena?";
  1872. mes "I have some of those.";
  1873. next;
  1874. mes "[Ei'felle]";
  1875. mes "Huh? Show them to me...";
  1876. mes "Yes! That's exactly what";
  1877. mes "we need! Would you please";
  1878. mes "donate your medals so that we";
  1879. mes "can finally make some quality";
  1880. mes "products for our customers?";
  1881. next;
  1882. callsub S_Reward;
  1883. end;
  1884. }
  1885. mes "[Ei'felle]";
  1886. mes "If you happen to obtain any";
  1887. mes "medals from the Monster";
  1888. mes "Race Arena in Hugel, then";
  1889. mes "please bring some of them";
  1890. mes "to me. I'll be sure to repay";
  1891. mes "you for your kindness...";
  1892. close;
  1893. } else if (ein_medal01 < 500) {
  1894. mes "[Ei'felle]";
  1895. mes "Oh, how have you been?";
  1896. mes "Thank you so much for";
  1897. mes "donating so many medals,";
  1898. mes "they've been helpful in my";
  1899. mes "research. Still, I need more";
  1900. mes "and more of them everyday...";
  1901. next;
  1902. if (countitem("Marvelous_Medal")) {
  1903. mes "[Ei'felle]";
  1904. mes "The other Blacksmith";
  1905. mes "Guildsmen are doing their";
  1906. mes "best to collect Prize Medals";
  1907. mes "in Hugel, but they keep failing";
  1908. mes "to win them! If you have any";
  1909. mes "medals, then may I have some?";
  1910. next;
  1911. callsub S_Reward;
  1912. end;
  1913. }
  1914. mes "[Ei'felle]";
  1915. mes "If you happen to obtain any";
  1916. mes "medals from the Monster";
  1917. mes "Race Arena in Hugel, then";
  1918. mes "please bring some of them";
  1919. mes "to me. I'll be sure to repay";
  1920. mes "you for your kindness...";
  1921. close;
  1922. }
  1923. if (!checkweight("Knife",1)) {//1201
  1924. mes "[Ei'felle]";
  1925. mes "Goodness, you're carrying";
  1926. mes "so many things with you!";
  1927. mes "You'd better put some of";
  1928. mes "it away in Kafra Storage";
  1929. mes "before you're overwhelmed";
  1930. mes "by the bulk of your items!";
  1931. close;
  1932. }
  1933. if (ein_medal01 > 499 && ein_medal01 < 1500) {
  1934. if (ein_medal01 < 1000) {
  1935. mes "[Ei'felle]";
  1936. mes "Ah, welcome back! I've finally";
  1937. mes "made a breakthrough in my";
  1938. mes "metal research! Look, I've";
  1939. mes "developed this Glittering";
  1940. mes "Jacket! It's lightweight and";
  1941. mes "very durable, you see?";
  1942. next;
  1943. mes "[Ei'felle]";
  1944. mes "I wouldn't be able to have";
  1945. mes "completed this without your";
  1946. mes "help. Now, would you like to";
  1947. mes "receive this Glittering Jacket";
  1948. mes "as my way of repaying you?";
  1949. next;
  1950. if (select("Accept:Wait for Further Development") == 1) {
  1951. callsub S_BonusReward,500,2319;//Glittering_Clothes
  1952. end;
  1953. }
  1954. mes "[Ei'felle]";
  1955. mes "Ah, I see. You'd rather wait";
  1956. mes "until we develop something";
  1957. mes "more to your liking. In that";
  1958. mes "case, would you please donate";
  1959. mes "more medals to my research?";
  1960. mes "We're always low on them...";
  1961. next;
  1962. } else if (ein_medal01 < 1500) {
  1963. mes "[Ei'felle]";
  1964. mes "Oh, you're back!";
  1965. mes "Thanks to all the medals";
  1966. mes "that you've donated, I'm now";
  1967. mes "able to manufacture a set";
  1968. mes "of slotted armor imbued";
  1969. mes "with a property of your choice.";
  1970. next;
  1971. mes "[Ei'felle]";
  1972. mes "If you'd like, I can repay you";
  1973. mes "now by creating a set of slotted elemental armor for you, or we";
  1974. mes "can wait for you to donate more";
  1975. mes "medals until I can develop";
  1976. mes "something else for you.";
  1977. next;
  1978. switch(select("Accept Armor:Can I have something else?:Wait for Further Development")) {
  1979. case 1:
  1980. mes "[Ei'felle]";
  1981. mes "I can manufacture one set of";
  1982. mes "slotted Armor imbued with the";
  1983. mes "Fire, Earth, Wind, or Water";
  1984. mes "property. Which property would";
  1985. mes "you like your armor to have?";
  1986. next;
  1987. switch(select("Fire Property:Earth Property:Wind Property:Water Property")) {
  1988. case 1: callsub S_BonusReward,1000,2345; end;// Flame_Sprits_Armor_
  1989. case 2: callsub S_BonusReward,1000,2351; end;// Earth_Sprits_Armor_
  1990. case 3: callsub S_BonusReward,1000,2349; end;// Wind_Sprits_Armor_
  1991. case 4: callsub S_BonusReward,1000,2347; end;// Water_Sprits_Armor_
  1992. }
  1993. case 2:
  1994. mes "[Ei'felle]";
  1995. mes "Something else...?";
  1996. mes "Oh, you must mean";
  1997. mes "the Glittering Jacket that";
  1998. mes "I developed earlier. After";
  1999. mes "all, I have any other items";
  2000. mes "to offer you for now...";
  2001. next;
  2002. callsub S_BonusReward,500,2319;
  2003. end;
  2004. case 3:
  2005. mes "[Ei'felle]";
  2006. mes "Ah, I see. You'd rather wait";
  2007. mes "until we develop something";
  2008. mes "more to your liking. In that";
  2009. mes "case, would you please donate";
  2010. mes "more medals to my research?";
  2011. mes "We're always low on them...";
  2012. next;
  2013. break;
  2014. }
  2015. }
  2016. if (countitem("Marvelous_Medal")) {
  2017. mes "[Ei'felle]";
  2018. mes "The other Blacksmith";
  2019. mes "Guildsmen are doing their";
  2020. mes "best to collect Prize Medals";
  2021. mes "in Hugel, but they keep failing";
  2022. mes "to win them! If you have any";
  2023. mes "medals, then may I have some?";
  2024. next;
  2025. callsub S_Reward;
  2026. end;
  2027. }
  2028. mes "[Ei'felle]";
  2029. mes "If you happen to obtain any";
  2030. mes "medals from the Monster";
  2031. mes "Race Arena in Hugel, then";
  2032. mes "please bring some of them";
  2033. mes "to me. I'll be sure to repay";
  2034. mes "you for your kindness...";
  2035. close;
  2036. } else if (ein_medal01 > 1499) {
  2037. mes "[Ei'felle]";
  2038. mes "Ah, you're back! I've";
  2039. mes "extracted all the metal";
  2040. mes "from the medals you've";
  2041. mes "given me, and I think I have";
  2042. mes "enough to create a Level 4";
  2043. mes "Weapon. Isn't that incredible?";
  2044. next;
  2045. mes "[Ei'felle]";
  2046. mes "If you like, I can create";
  2047. mes "one of these weapons for you";
  2048. mes "as my way of repaying you for";
  2049. mes "your help. What do you think?";
  2050. next;
  2051. if (select("Yes, I want a Level 4 Weapon.:Can I have something else?") == 2) {
  2052. mes "[Ei'felle]";
  2053. mes "Something else?";
  2054. mes "Oh, alright then, would";
  2055. mes "you like to have a Glittering";
  2056. mes "Jacket, or a set of slotted";
  2057. mes "elemental Armor? Please go";
  2058. mes "ahead and make your choice~";
  2059. next;
  2060. switch (select("Glittering Jacket:Fire Property Armor:Earth Property Armor:Wind Property Armor:Water Property Armor:Cancel")) {
  2061. case 1: callsub S_BonusReward,500,2319; end;
  2062. case 2: callsub S_BonusReward,1000,2345; end;
  2063. case 3: callsub S_BonusReward,1000,2351; end;
  2064. case 4: callsub S_BonusReward,1000,2349; end;
  2065. case 5: callsub S_BonusReward,1000,2347; end;
  2066. case 6: end;
  2067. }
  2068. }
  2069. setarray .@type$, "Dagger","One Handed Sword","Two Handed Sword","Axe","Mace","Bow","Staff","Book","Spear","Katar","Knuckle","Whip","Musical Instrument";
  2070. .@m = select( implode(.@type$,":") ) - 1;
  2071. mes "[Ei'felle]";
  2072. mes "So you'd like to have a";
  2073. mes .@type$[.@m]+"? Please choose";
  2074. mes "which Level 4 Weapon";
  2075. mes "that you want me to create.";
  2076. next;
  2077. switch(.@m) {
  2078. case 0:
  2079. .@weapon$ = "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";
  2080. setarray .@weapon_id, 13002,1237,13001,1225,1231,1224,1230,1236,1229,1235,1233,1232,1234,1227,1241,1242,1228,1223;
  2081. break;
  2082. case 1:
  2083. .@weapon$ = "Nagan:Immaterial Sword:Mysteltainn:Byeollungum:Star Dust Blade:Caesar's Sword:Ice Falchion:Excalibur:Edge:Cutlus:Solar Sword:Tirfing:Fireblend";
  2084. setarray .@weapon_id, 1130,1141,1138,1140,1148,1134,1131,1137,1132,1135,1136,1139,1133;
  2085. break;
  2086. case 2:
  2087. .@weapon$ = "Dragon Slayer:Masamune:Muramasa:Schweizersabel:Executioner:Zweihander:Katzbalger";
  2088. setarray .@weapon_id, 1166,1165,1164,1167,1169,1168,1170;
  2089. break;
  2090. case 3:
  2091. .@weapon$ = "Great Axe:Guillotine:Light Epsilon:Bloody Axe:Sabbath:Slaughter:Cleaver:Tomahawk";
  2092. setarray .@weapon_id, 1364,1369,1366,1363,1365,1367,1305,1368;
  2093. break;
  2094. case 4:
  2095. .@weapon$ = "Golden Mace:Grand Cross:Long Mace:Spike:Slash:Quadrille";
  2096. setarray .@weapon_id, 1524,1528,1525,1523,1526,1527;
  2097. break;
  2098. case 5:
  2099. .@weapon$ = "Roguemaster's Bow:Dragon Wing:Rudra's Bow:Ballista";
  2100. setarray .@weapon_id, 1719,1724,1720,1722;
  2101. break;
  2102. case 6:
  2103. .@weapon$ = "Wing Staff:Wizardry Staff";
  2104. setarray .@weapon_id, 1616,1473;
  2105. case 7:
  2106. .@weapon$ = "Legacy of Dragon:Book of the Apocalypse:Girl's Diary:Hardcover Book";
  2107. setarray .@weapon_id, 1559,1557,1558,1561;
  2108. break;
  2109. case 8:
  2110. .@weapon$ = "Gae Bolg:Gelerdria:Gungnir:Skewer:Longinus's Spear:Brionac:Bill Guisarme:Zephyrus:Crescent Scythe:Tjungkuletti:Hellfire";
  2111. setarray .@weapon_id, 1474,1414,1413,1415,1469,1470,1467,1468,1466,1416,1471;
  2112. break;
  2113. case 9:
  2114. .@weapon$ = "Infiltrator:Bloody Roar:Unholy Touch";
  2115. setarray .@weapon_id, 1261,1265,1263;
  2116. break;
  2117. case 10:
  2118. .@weapon$ = "Hatii Claw:Berserk:Kaiser Knuckle";
  2119. setarray .@weapon_id, 1815,1814,1813;
  2120. break;
  2121. case 11:
  2122. .@weapon$ = "Lariat:Rapture Rose:Blade Whip:Chemeti:Queen's Whip";
  2123. setarray .@weapon_id, 1962,1963,1969,1964,1970;
  2124. break;
  2125. case 12:
  2126. .@weapon$ = "Oriental Lute:Electric Guitar";
  2127. setarray .@weapon_id, 1918,1913;
  2128. break;
  2129. }
  2130. .@j = select (.@weapon$+":Cancel") - 1;
  2131. explode(.@weapon$,.@weapon$,":");
  2132. if (.@j == getarraysize(.@weapon$)) close;
  2133. callsub S_BonusReward,1500,.@weapon_id[.@j];
  2134. end;
  2135. }
  2136. S_Reward:
  2137. if (select("Sure:No") == 2) {
  2138. mes "[Ei'felle]";
  2139. mes "Oh, alright...";
  2140. mes "Still, I really need";
  2141. mes "those medals, so if you";
  2142. mes "change your mind, please";
  2143. mes "come back as soon as you can.";
  2144. emotion ET_CRY;
  2145. close;
  2146. }
  2147. mes "[Ei'felle]";
  2148. mes "Oh, thank you so much!";
  2149. mes "I can use the metal in those";
  2150. mes "medals to produce some high";
  2151. mes "quality products. Now, how";
  2152. mes "shall I repay you for giving me";
  2153. mes "some of your Prize Medals?";
  2154. next;
  2155. switch(select("Base Experience:Job Experience:No, I'm just glad to help.:How's your research progressing?")) {
  2156. case 1:
  2157. mes "[Ei'felle]";
  2158. mes "You just want to improve";
  2159. mes "yourself, huh? Well, I dunno";
  2160. mes "if you want to get stronger,";
  2161. mes "smarter, or faster, but I can";
  2162. mes "coach you on some visualization if you like. Now, relax with me~";
  2163. mes "physical development.";
  2164. next;
  2165. mes "[Ei'felle]";
  2166. mes "Focus... and believe.";
  2167. mes "Believe that you are";
  2168. mes "becoming what you want";
  2169. mes "to be! B-believe... with";
  2170. mes "all of your freakin' heart!";
  2171. emotion ET_HUK, playerattached();
  2172. emotion ET_HUK;
  2173. next;
  2174. mes "[Ei'felle]";
  2175. mes "*Phew* How's that?";
  2176. mes "Now do you see the";
  2177. mes "power of hope?";
  2178. delitem 7515,1; //Marvelous_Medal
  2179. if (checkre(3)) {
  2180. if (BaseLevel < 21) getexp 110,0;
  2181. else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 280,0;
  2182. else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 1000,0;
  2183. else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 1200,0;
  2184. else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 1500,0;
  2185. else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 2800,0;
  2186. else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 4500,0;
  2187. else getexp 8500,0;
  2188. /* iRO EXP Table:
  2189. if (BaseLevel < 21) getexp 200,0;
  2190. else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 300,0;
  2191. else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 1000,0;
  2192. else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 1800,0;
  2193. else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 2500,0;
  2194. else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 4700,0;
  2195. else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 5500,0;
  2196. else if ((BaseLevel > 80) && (BaseLevel < 96)) getexp 7000,0;
  2197. else if ((BaseLevel > 95) && (BaseLevel < 111)) getexp 8800,0;
  2198. else if ((BaseLevel > 110) && (BaseLevel < 126)) getexp 10900,0;
  2199. else if ((BaseLevel > 125) && (BaseLevel < 141)) getexp 13300,0;
  2200. else getexp 16000,0;
  2201. */
  2202. } else {
  2203. if (BaseLevel < 21) getexp 150,0;
  2204. else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 300,0;
  2205. else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 2000,0;
  2206. else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 8000,0;
  2207. else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 25000,0;
  2208. else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 47000,0;
  2209. else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 55000,0;
  2210. else getexp 65000,0;
  2211. }
  2212. close;
  2213. case 2:
  2214. mes "[Ei'felle]";
  2215. mes "You want to become more";
  2216. mes "competent in your job? Um...";
  2217. mes "Alright, we can do that. Just";
  2218. mes "meditate with me, and we'll go";
  2219. mes "do some imagery work together.";
  2220. mes "I'm real good at this you know.";
  2221. next;
  2222. mes "[Ei'felle]";
  2223. mes "J-just... visualize";
  2224. mes "yourself... being...";
  2225. mes "t-totally... awesome!";
  2226. mes "You've gotta see it, and";
  2227. mes "you've gotta feel it in your";
  2228. mes "freakin' heart and mind!";
  2229. emotion ET_HUK, playerattached();
  2230. emotion ET_HUK;
  2231. next;
  2232. mes "[Ei'felle]";
  2233. mes "Yeap, it doesn't matter";
  2234. mes "if it's real or imagined...";
  2235. mes "Your mind will work on";
  2236. mes "whatever you feed it.";
  2237. mes "Placebos and psychosomatic symptoms-- it all ties together.";
  2238. delitem 7515,1; //Marvelous_Medal
  2239. if (checkre(3)) {
  2240. if (Class == Job_Novice) {
  2241. getexp 0,15;
  2242. } else if (Class == Job_Novice_High) {
  2243. getexp 0,25;
  2244. } else if ((Class >= Job_Swordman && Class <= Job_Thief) || Class == Job_Taekwon) {
  2245. if (JobLevel < 11) getexp 0,25;
  2246. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,200;
  2247. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,300;
  2248. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,950;
  2249. else getexp 0,1800;
  2250. } else if ((Class >= Job_Knight && Class <= Job_Crusader2) || (Class >= Job_Swordman_High && Class <= Job_Thief_High)) {
  2251. if (JobLevel < 11) getexp 0,40;
  2252. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,300;
  2253. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,550;
  2254. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,1080;
  2255. else getexp 0,2150;
  2256. } else {
  2257. if (JobLevel < 11) getexp 0,55;
  2258. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,330;
  2259. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,600;
  2260. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,1200;
  2261. else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,1750;
  2262. else getexp 0,2950;
  2263. }
  2264. /* iRO JEXP Table:
  2265. if (BaseLevel < 21) getexp 0,150;
  2266. else if ((BaseLevel > 20) && (BaseLevel < 31)) getexp 0,200;
  2267. else if ((BaseLevel > 30) && (BaseLevel < 41)) getexp 0,750;
  2268. else if ((BaseLevel > 40) && (BaseLevel < 51)) getexp 0,1800;
  2269. else if ((BaseLevel > 50) && (BaseLevel < 61)) getexp 0,2500;
  2270. else if ((BaseLevel > 60) && (BaseLevel < 71)) getexp 0,3525;
  2271. else if ((BaseLevel > 70) && (BaseLevel < 81)) getexp 0,4125;
  2272. else if ((BaseLevel > 80) && (BaseLevel < 96)) getexp 0,5250;
  2273. else if ((BaseLevel > 95) && (BaseLevel < 111)) getexp 0,6600;
  2274. else if ((BaseLevel > 110) && (BaseLevel < 126)) getexp 0,8175;
  2275. else if ((BaseLevel > 125) && (BaseLevel < 141)) getexp 0,9975;
  2276. else getexp 0,12000;
  2277. */
  2278. } else {
  2279. if (Class == Job_Novice) {
  2280. getexp 0,30;
  2281. } else if ((Class >= Job_Swordman && Class <= Job_Thief) || Class == Job_Taekwon) {
  2282. if (JobLevel < 11) getexp 0,50;
  2283. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,250;
  2284. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,1500;
  2285. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,7000;
  2286. else getexp 0,20000;
  2287. } else if (Class >= Job_Knight && Class <= Job_Crusader2) {
  2288. if (JobLevel < 11) getexp 0,80;
  2289. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,2000;
  2290. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,10000;
  2291. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,25000;
  2292. else getexp 0,38000;
  2293. } else if (Class == Job_Novice_High) {
  2294. getexp 0,40;
  2295. } else if (Class >= Job_Swordman_High && Class <= Job_Thief_High) {
  2296. if (JobLevel < 11) getexp 0,65;
  2297. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,300;
  2298. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,2500;
  2299. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,10000;
  2300. else getexp 0,25000;
  2301. } else if (Class >= Job_Lord_Knight && Class <= Job_Paladin_2) {
  2302. if (JobLevel < 11) getexp 0,150;
  2303. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,2200;
  2304. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,13000;
  2305. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,27000;
  2306. else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,38000;
  2307. else getexp 0,40000;
  2308. } else {
  2309. if (JobLevel < 11) getexp 0,50;
  2310. else if ((JobLevel > 10) && (JobLevel < 21)) getexp 0,250;
  2311. else if ((JobLevel > 20) && (JobLevel < 31)) getexp 0,1500;
  2312. else if ((JobLevel > 30) && (JobLevel < 41)) getexp 0,7000;
  2313. else if ((JobLevel > 40) && (JobLevel < 51)) getexp 0,20000;
  2314. else if ((JobLevel > 50) && (JobLevel < 61)) getexp 0,30000;
  2315. else getexp 0,38000;
  2316. }
  2317. }
  2318. close;
  2319. case 3:
  2320. mes "[Ei'felle]";
  2321. mes "What th--?! You sure";
  2322. mes "you don't want anything?";
  2323. mes "Hm, well, I think it's kind";
  2324. mes "of bad karma if I don't give";
  2325. mes "you anything in return, so...";
  2326. mes "Think of something. Quick.";
  2327. next;
  2328. mes "["+ strcharinfo(0) +"]";
  2329. mes "Er, just use the medals";
  2330. mes "to further your manufacturing";
  2331. mes "research, and then you can";
  2332. mes "pay me back if your develop";
  2333. mes "something new. It's, um, like";
  2334. mes "an investment in your work!";
  2335. next;
  2336. mes "[Ei'felle]";
  2337. mes "Yeah... Yeah.";
  2338. mes "Okay, I see where";
  2339. mes "you're coming from.";
  2340. mes "That's pretty smart.";
  2341. mes "Okay, I'll repay you when";
  2342. mes "we develop something new!";
  2343. next;
  2344. mes "[Ei'felle]";
  2345. mes "Anyway, I need as many";
  2346. mes "medals as I can get as";
  2347. mes "soon as I can. How many";
  2348. mes "medals do you think you";
  2349. mes "can give me right now?";
  2350. next;
  2351. switch(select("Take them all.:How about this much?:No, I changed my mind.")) {
  2352. case 1:
  2353. mes "[Ei'felle]";
  2354. mes "Th-thank you!";
  2355. mes "Thank you so much!";
  2356. mes "Your help will greatly";
  2357. mes "advance my research,";
  2358. mes "and I promise to repay";
  2359. mes "you as soon as I can!";
  2360. .@medals = countitem("Marvelous_Medal");
  2361. delitem 7515, .@medals; //Marvelous_Medal
  2362. ein_medal01 += .@medals;
  2363. close;
  2364. case 2:
  2365. mes "[Ei'felle]";
  2366. mes "Alright, please enter the";
  2367. mes "number of medals that";
  2368. mes "you're willing to give me.";
  2369. mes "Please don't enter any";
  2370. mes "number greater than 100.";
  2371. next;
  2372. while(1) {
  2373. input .@input;
  2374. if (!.@input) {
  2375. mes "[Ei'felle]";
  2376. mes "Aw, so you've decided";
  2377. mes "to cancel? Well, it's your";
  2378. mes "choice, but I'm still so";
  2379. mes "disappointed. Please come";
  2380. mes "back if you change your mind...";
  2381. close;
  2382. } else if (.@input < 1 || .@input > 100) {
  2383. mes "[Ei'felle]";
  2384. mes "Remember, you can only";
  2385. mes "enter a number from 1 to 100.";
  2386. mes "If you want to give me more";
  2387. mes "medals, then perhaps you";
  2388. mes "should just give them all to me~";
  2389. next;
  2390. } else break;
  2391. }
  2392. if (countitem("Marvelous_Medal") < .@input) {
  2393. mes "[Ei'felle]";
  2394. mes "I'm sorry, but I don't";
  2395. mes "think you have that many";
  2396. mes "medals with you. Make sure";
  2397. mes "that you offer me an amount of";
  2398. mes "medals that you actually have.";
  2399. emotion ET_SMILE;
  2400. close;
  2401. } else {
  2402. mes "[Ei'felle]";
  2403. mes "Th-thank you!";
  2404. mes "Thank you so much!";
  2405. mes "Your help will greatly";
  2406. mes "advance my research,";
  2407. mes "and I promise to repay";
  2408. mes "you as soon as I can!";
  2409. delitem 7515, .@input; //Marvelous_Medal
  2410. ein_medal01 += .@input;
  2411. close;
  2412. }
  2413. case 3:
  2414. mes "[Ei'felle]";
  2415. mes "Oh, alright...";
  2416. mes "Still, I really need";
  2417. mes "those medals, so if you";
  2418. mes "change your mind, please";
  2419. mes "come back as soon as you can.";
  2420. close;
  2421. }
  2422. case 4:
  2423. mes "[Ei'felle]";
  2424. mes "Well, I've been able to";
  2425. mes "create a Glittering Jacket";
  2426. mes "using the medals that you've";
  2427. mes "brought to me. But I just know";
  2428. mes "I can make something better";
  2429. mes "if you'd bring me more!";
  2430. next;
  2431. mes "[Ei'felle]";
  2432. mes "As of now, I have the metal";
  2433. mes "from ^FF0000"+ ein_medal01 +"^000000 Prizes Medals that";
  2434. mes "you've donated to me. The more";
  2435. mes "that you bring, the closer I can get to making a new breakthrough!";
  2436. close;
  2437. }
  2438. S_BonusReward:
  2439. mes "[Ei'felle]";
  2440. .@arg1 = getarg(1);
  2441. if (.@arg1 == 2319) {
  2442. mes "Do you really want";
  2443. mes "this "+getitemname(.@arg1)+"?";
  2444. mes "You may want to forego this";
  2445. mes "reward in favor of getting";
  2446. mes "something better later...";
  2447. } else if (.@arg1 == 2345 || .@arg1 == 2347 || .@arg1 == 2349 || .@arg1 == 2351) {
  2448. mes "Are you sure that you want";
  2449. mes "to accept this set of slotted";
  2450. if (.@arg1 == 2345) mes "Fire property Armor? If you do,";
  2451. else if (.@arg1 == 2351) mes "Earth property Armor? If you do,";
  2452. else if (.@arg1 == 2349) mes "Wind property Armor? If you do,";
  2453. else if (.@arg1 == 2347) mes "Water property Armor? If you do,";
  2454. mes "I'll need more medals from you";
  2455. mes "to make further advancements";
  2456. mes "in my manufacturing research.";
  2457. } else {
  2458. mes "So you wish to have a";
  2459. mes getitemname(.@arg1)+"? If you choose";
  2460. mes "to have this Level 4 Weapon,";
  2461. mes "I'll need to melt many of the";
  2462. mes "medals that you've donated";
  2463. mes "to me. Shall we proceed?";
  2464. }
  2465. next;
  2466. if (select("Decline:Accept") == 1) {
  2467. mes "["+ strcharinfo(0) +"]";
  2468. mes "W-wait, I changed my";
  2469. mes "mind. Would it be fine";
  2470. mes "if I asked you to give";
  2471. mes "me a reward later?";
  2472. next;
  2473. mes "[Ei'felle]";
  2474. if (getiteminfo( .@arg1, ITEMINFO_TYPE ) == IT_ARMOR) {
  2475. mes "Of course, of course.";
  2476. mes "Remember, if you donate";
  2477. mes "more medals to me, then";
  2478. mes "I'll be able to create items";
  2479. mes "of higher quality for you~";
  2480. } else {
  2481. mes "I don't think I can develop";
  2482. mes "anything better than these Level 4 Weapons, but after making";
  2483. mes "such a big investment, you should decide on what you want carefully.";
  2484. }
  2485. close;
  2486. }
  2487. mes "[Ei'felle]";
  2488. if (.@arg1 == 2319) {
  2489. mes "Here you are, I trust that";
  2490. mes "this "+getitemname(.@arg1)+" will";
  2491. mes "serve you well. Thank you";
  2492. mes "for your help, and I hope that";
  2493. mes "you'll continue to donate your";
  2494. mes "medals for my metal research~";
  2495. } else if (.@arg1 == 2345 || .@arg1 == 2347 || .@arg1 == 2349 || .@arg1 == 2351) {
  2496. mes "Great choice! I'm sure";
  2497. if (.@arg1 == 2345) mes "that this set of slotted Fire";
  2498. else if (.@arg1 == 2351) mes "that this set of slotted Earth";
  2499. else if (.@arg1 == 2349) mes "that this set of slotted Wind";
  2500. else if (.@arg1 == 2347) mes "that this set of slotted Water";
  2501. mes "property Armor will serve you";
  2502. mes "well. Thank you for your help,";
  2503. mes "and if you get more medals,";
  2504. mes "please donate them to me~";
  2505. } else {
  2506. mes "Once again, I'd like to";
  2507. mes "thank you for providing";
  2508. mes "me with all of those medals.";
  2509. mes "I imagine it must have been";
  2510. mes "difficult. In any case, I would";
  2511. mes "appreciate your continued help~";
  2512. }
  2513. ein_medal01 -= getarg(0);
  2514. getitem .@arg1,1;
  2515. close;
  2516. }
  2517. hugel,71,83,4 script Wayne 900,{
  2518. if (!checkweight("Knife",1)) {
  2519. mes "[Wayne]";
  2520. mes "Hold on a second...";
  2521. mes "If you want to exchange";
  2522. mes "your Prize Medals for items,";
  2523. mes "you'd better free up more space";
  2524. mes "in your Inventory first. Why don't you use your Kafra Storage?";
  2525. close;
  2526. }
  2527. mes "[Wayne]";
  2528. mes "Hello, there! Ever wonder";
  2529. mes "what you could do with all";
  2530. mes "the Prize Medals you can win";
  2531. mes "in Monster Race Arena? You";
  2532. mes "can donate them in Einbroch";
  2533. mes "to the Blacksmith Guild...";
  2534. next;
  2535. mes "[Wayne]";
  2536. mes "...Or you can exchange them";
  2537. mes "for items, right here and right";
  2538. mes "now, with me. As always, the";
  2539. mes "choice is really up to you.";
  2540. next;
  2541. if (select("Prize Medal Exchange:Cancel") == 2) {
  2542. mes "[Wayne]";
  2543. mes "Well, just keep in mind";
  2544. mes "that you can always come";
  2545. mes "to me to trade in your Prize";
  2546. mes "Medals for consumable items.";
  2547. mes "That guy in Einbroch? Not sure";
  2548. mes "what he'd give you for them...";
  2549. next;
  2550. mes "[Wayne]";
  2551. mes "All I know is that he";
  2552. mes "needs a whole lot of medals";
  2553. mes "for the work that he's doing.";
  2554. mes "Still, I hear that he just may";
  2555. mes "make your donations worth";
  2556. mes "all your effort, you know?";
  2557. close;
  2558. }
  2559. if (!checkweight("Jellopy",550)) {
  2560. mes "[Wayne]";
  2561. mes "Hold on a second...";
  2562. mes "If you want to exchange";
  2563. mes "your Prize Medals for items,";
  2564. mes "you'd better free up more space";
  2565. mes "in your Inventory first. Why don't you use your Kafra Storage?";
  2566. close;
  2567. } else {
  2568. mes "[Wayne]";
  2569. mes "Now, how many Prize Medals";
  2570. mes "would you like to exchange?";
  2571. mes "It doesn't take a genius to";
  2572. mes "figure out that you can get";
  2573. mes "more valuable items by trading";
  2574. mes "more Prize Medals at a time.";
  2575. next;
  2576. setarray .@pm, 1,3,7,8,16,25,42,59;
  2577. .@total_pm = getarraysize(.@pm);
  2578. for ( .@i = 0; .@i < .@total_pm; .@i++ )
  2579. .@menu$ = .@menu$ + .@pm[.@i] + " Prize medal:";
  2580. .@m = select(.@menu$) - 1;
  2581. switch (.@m) {
  2582. case 0:
  2583. .@items$ = "2 Hinale Leaflets:2 Aloe Leaflets:1 Mastela Fruit:5 Witch Starsands:4 Condensed Red Potions";
  2584. setarray .@item_array, 520,2,521,2,522,1,1061,5,545,4;
  2585. break;
  2586. case 1:
  2587. .@items$ = "1 Royal Jelly:6 Holy Waters";
  2588. setarray .@item_array, 526,1,523,6;
  2589. break;
  2590. case 2:
  2591. .@items$ = "1 Cookie Bag:1 First Aid Kit";
  2592. setarray .@item_array, 12130,1,12110,1;
  2593. break;
  2594. case 3:
  2595. .@items$ = "1 Gift Box";
  2596. setarray .@item_array, 644,1;
  2597. break;
  2598. case 4:
  2599. .@items$ = "1 Old Blue Box";
  2600. setarray .@item_array, 603,1;
  2601. break;
  2602. case 5:
  2603. .@items$ = "1 Taming Gift Set";
  2604. setarray .@item_array, 12105,1;
  2605. break;
  2606. case 6:
  2607. .@items$ = "1 Old Purple Box";
  2608. setarray .@item_array, 617,1;
  2609. break;
  2610. case 7:
  2611. .@items$ = "1 Poring Box";
  2612. setarray .@item_array, 12109,1;
  2613. break;
  2614. }
  2615. mes "[Wayne]";
  2616. mes "Now, please choose";
  2617. mes "which of the following item";
  2618. mes "sets that you'd like to receive";
  2619. mes "in exchange for "+.@pm[.@m]+" Prize Medal."+((getarraysize(.@item_array)<3)?" Well, we have only 1 set, but...":"");
  2620. next;
  2621. .@m2 = ( select(.@items$) -1 ) *2;
  2622. if (countitem("Marvelous_Medal") < .@pm[.@m]) {
  2623. mes "[Wayne]";
  2624. mes "Hey, you don't have";
  2625. mes "enough Prize Medals with";
  2626. mes "you. Go and get some more";
  2627. mes "if you want to exchange";
  2628. mes "them with me for anything.";
  2629. close;
  2630. }
  2631. mes "[Wayne]";
  2632. mes "There you go~";
  2633. mes "Thanks for using my";
  2634. mes "service, and I hope that";
  2635. mes "you come visit me again";
  2636. mes "soon. Enjoy the monster";
  2637. mes "races, fair adventurer~";
  2638. delitem 7515,.@pm[.@m];// Marvelous_Medal
  2639. getitem .@item_array[.@m2], .@item_array[(.@m2+1)];
  2640. close;
  2641. }
  2642. }
  2643. // Monster Race Affiliated NPCs
  2644. //============================================================
  2645. airplane,246,47,1 script Eocatt#decoy01 878,{
  2646. mes "[Eocatt]";
  2647. mes "There's an old, humble";
  2648. mes "village on the outskirts of";
  2649. mes "the Schwarzwald Republic.";
  2650. mes "It was just a tiny blip on the";
  2651. mes "map until they opened up";
  2652. mes "their Monster Race Arena!";
  2653. next;
  2654. mes "[Eocatt]";
  2655. mes "If you win wagers on the";
  2656. mes "monster race games, you'll";
  2657. mes "be rewarded with these Prize";
  2658. mes "Medals that are made of some";
  2659. mes "really rare metal. I hear this metal's in demand in Einbroch...";
  2660. next;
  2661. mes "[Eocatt]";
  2662. mes "Right, right...";
  2663. mes "I remember now, the";
  2664. mes "town was named Hugel.";
  2665. mes "I'm sure there's other fun";
  2666. mes "things to do there, but I'm sure that the Race Arena is a must!";
  2667. close;
  2668. }
  2669. hugel,85,93,5 script Mudie#dummy01 866,{
  2670. mes "[Mudie]";
  2671. mes "The Monster Races";
  2672. mes "are probably the biggest";
  2673. mes "attraction here in Hugel.";
  2674. mes "We don't have much else";
  2675. mes "going on here, I'm afraid.";
  2676. next;
  2677. mes "[Mudie]";
  2678. mes "If you want to go visit";
  2679. mes "the Monster Race Arena,";
  2680. mes "just head towards the";
  2681. mes "7 'o clock direction on";
  2682. mes "your Mini-Map, and look for";
  2683. mes "the hill surrounded by a fence.";
  2684. next;
  2685. mes "[Mudie]";
  2686. mes "You should find the arena";
  2687. mes "somewhere around that area.";
  2688. mes "Anyway, if you want to wager";
  2689. mes "or just watch the races, just";
  2690. mes "ask one of the Eckar brothers. I hope you enjoy our little town~";
  2691. close;
  2692. }
  2693. p_track02,32,45,5 script Eccentric Scholar#double 755,{
  2694. mes "[Eccentric Scholar]";
  2695. mes "Let's see now...";
  2696. mes "Monster 1's average speed";
  2697. mes "and luck, as affected by";
  2698. mes "wind resistance, fatigue...";
  2699. mes "What's the approximate";
  2700. mes "probability of winning...?";
  2701. next;
  2702. mes "[Eccentric Scholar]";
  2703. mes "Crunch it into my";
  2704. mes "algorithm... Carry the two...";
  2705. mes "Wait, how many significant";
  2706. mes "figures should I be using?";
  2707. mes "Ah, right, 7, to account for x,";
  2708. mes "a value representing--";
  2709. next;
  2710. mes "["+ strcharinfo(0) +"]";
  2711. mes "Excuse me, but";
  2712. mes "what are you doing?";
  2713. next;
  2714. mes "[Eccentric Scholar]";
  2715. mes "S-silence!";
  2716. mes "I must complete";
  2717. mes "my calculations!";
  2718. mes "Now, where was I...?";
  2719. specialeffect EF_CLAYMORE;
  2720. emotion ET_FRET;
  2721. close;
  2722. }
  2723. p_track02,69,31,1 script Blacksmith Guildsman#dou 726,{
  2724. if (!$@mon_time_2_2) {
  2725. mes "[Blacksmith Guildsman]";
  2726. mes "How many times must";
  2727. mes "I wager on these races?!";
  2728. mes "I haven't won even once!";
  2729. mes "Oh, I must have the worst";
  2730. mes "luck in wagering history!";
  2731. emotion ET_CRY;
  2732. next;
  2733. mes "[Blacksmith Guildsman]";
  2734. mes "I've been assigned by my";
  2735. mes "guild to bring back some";
  2736. mes "Prize Medals to Einbroch...";
  2737. mes "They're apparently made";
  2738. mes "with some rare metal, but...";
  2739. mes "It's too hard for me to win~!";
  2740. emotion ET_PROFUSELY_SWEAT;
  2741. close;
  2742. }
  2743. mes "[Blacksmith Guildsman]";
  2744. mes "Run! Go go go!";
  2745. mes "I need to win some";
  2746. mes "medals! Otherwise, I'll";
  2747. mes "be too ashamed to return";
  2748. mes "home to Einbroch! F-faster!";
  2749. emotion ET_FLAG;
  2750. close;
  2751. }
  2752. p_track02,53,45,3 script Valiant Knight#double 733,{
  2753. mes "[Valiant Knight]";
  2754. mes "Hey, have you been";
  2755. mes "wagering on the races?";
  2756. mes "If you've got a hot tip, then";
  2757. mes "would you share it with me?";
  2758. mes "I've won some wagers... But";
  2759. mes "I really wanna win more!";
  2760. next;
  2761. mes "[Valiant Knight]";
  2762. mes "Hah hah! It's like I tell";
  2763. mes "those Blacksmiths! If they";
  2764. mes "don't wanna lose all the time,";
  2765. mes "then they should just bet on the same monster. Me? I always";
  2766. mes "bet on the black Deviruchi~";
  2767. next;
  2768. mes "[Valiant Knight]";
  2769. mes "You too...!";
  2770. mes "Always bet";
  2771. mes "on Deviruchi!";
  2772. emotion ET_BEST;
  2773. close;
  2774. }
  2775. p_track01,27,47,5 script Drunkard#single 853,{
  2776. mes "[Familiar Drunkard]";
  2777. mes "Grrr...! ^333333*Hiccup*^000000";
  2778. mes "I just gotta win this";
  2779. mes "next game! I hafta do it!";
  2780. mes "Hey, you! Which number is";
  2781. mes "your lucky number? Huh?";
  2782. next;
  2783. mes "["+ strcharinfo(0) +"]";
  2784. mes "I, er...";
  2785. next;
  2786. mes "[Familiar Drunkard]";
  2787. mes "C'mon, I need your";
  2788. mes "lucky number cuz I ran";
  2789. mes "out of mine! Tell me!";
  2790. mes "Tell me! ^333333*Hiccup~*^000000";
  2791. close;
  2792. }
  2793. p_track01,69,31,1 script Blacksmith Guildsman#sin 107,{
  2794. mes "[Blacksmith Guildsman]";
  2795. mes "How can this be so hard?";
  2796. mes "Why can't I win at least";
  2797. mes "one of these races? Argh!";
  2798. mes "I can't go back until I get";
  2799. mes "at least one Prize Medal!";
  2800. next;
  2801. mes "[Blacksmith Guildsman]";
  2802. mes "Yeah, I've been assigned";
  2803. mes "by the Einbroch Factory to";
  2804. mes "get some Prize Medals since";
  2805. mes "they're made of this rare medal. But it looks like they picked";
  2806. mes "the wrong guy for this job...";
  2807. next;
  2808. mes "[Blacksmith Guildsman]";
  2809. mes "I mean, I've been here";
  2810. mes "forever and I haven't won";
  2811. mes "anything yet! Hey, do me";
  2812. mes "a favor and give any extra";
  2813. mes "Prize Medals you might have";
  2814. mes "to the Einbroch Factory, okay?";
  2815. close;
  2816. }
  2817. p_track01,45,42,3 script Absent Minded Man#single 881,{
  2818. mes "[Absent Minded Man]";
  2819. mes "Say, are you here to bet";
  2820. mes "on the monster races? I've";
  2821. mes "come all the way here, just";
  2822. mes "because some strange man";
  2823. mes "asked me to win medals. It's";
  2824. mes "the only reason I'm in Hugel...";
  2825. next;
  2826. mes "[Absent Minded Man]";
  2827. mes "But I've made more than";
  2828. mes "100 wagers, and haven't won";
  2829. mes "any of them! I mean, if I bet";
  2830. mes "on the same monster 6 times,";
  2831. mes "I should win at least once,";
  2832. mes "right? What's going on?!";
  2833. close;
  2834. }
  2835. hugel,5,5,3 script Monster Race Manager 868,{
  2836. callfunc "F_GM_NPC";
  2837. mes "[Monster Race Manager]";
  2838. mes "I can activate and";
  2839. mes "deactivate the Arena";
  2840. mes "Entry NPCs for the Single";
  2841. mes "and Dual Monster Races.";
  2842. next;
  2843. .@select = select("Single Race Entry - ON:Dual Race Entry - ON:Single Race Entry - OFF:Dual Race Entry - OFF");
  2844. mes "[Monster Race Manager]";
  2845. mes "Please enter";
  2846. mes "the password.";
  2847. next;
  2848. .@i = callfunc("F_GM_NPC",1854,0,0,2000);
  2849. if (.@i == -2) {
  2850. mes "[Monster Race Manager]";
  2851. mes "Error.";
  2852. } else if (.@i == -1) {
  2853. mes "[Monster Race Manager]";
  2854. mes "Incorrect password.";
  2855. } else if (.@i == 1) {
  2856. mes "[Monster Race Manager]";
  2857. switch(.@select) {
  2858. case 1:
  2859. mes "The Single Monster";
  2860. mes "Race Entry NPC is ON.";
  2861. donpcevent "Eckar Ellebird#single::OnEnable";
  2862. close;
  2863. case 2:
  2864. mes "The Dual Monster";
  2865. mes "Race Entry NPC is ON.";
  2866. donpcevent "Eckar Erenes#double::OnEnable";
  2867. close;
  2868. case 3:
  2869. mes "The Single Monster";
  2870. mes "Race Entry NPC is OFF.";
  2871. donpcevent "Eckar Ellebird#single::OnDisable";
  2872. close;
  2873. case 4:
  2874. mes "The Dual Monster";
  2875. mes "Race Entry NPC is OFF.";
  2876. donpcevent "Eckar Erenes#double::OnDisable";
  2877. close;
  2878. }
  2879. }
  2880. close;
  2881. }