//===== eAthena Script =======================================
//= Turbo Track NPCs
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.4
//===== Compatible With: =====================================
//= eAthena SVN
//===== Description: =========================================
//= [Aegis Conversion]
//= General Turbo Track NPCs, includes Kafra and Tool Merchant
//===== Additional Comments: =================================
//= 1.0 First version. [L0ne_W0lf]
//= 1.1 Fixed exp rewarding working backwards.[L0ne_W0lf]
//= Fixed a bug in the while loop in the guide.
//= 1.2 Fix to prevent point converter from hanging. [L0ne_W0lf]
//= 1.3 Slight optimization to the point exchanger. [L0ne_W0lf]
//= 1.4 Added missing checkweights. [L0ne_W0lf]
//============================================================
turbo_room,130,92,3 script Kafra Staff#tt 115,{
cutin "kafra_03",2;
mes "[Kafra Staff]";
mes "Welcome~ The Kafra Services";
mes "are always on your side. Let me";
mes "remind you that using the Save";
mes "Service here will change your";
mes "Respawn Point to Al De Baran.";
mes "Now, how may I assist you?";
callfunc "F_Kafra",5,8,1,40,0;
M_Save:
savepoint "aldebaran",168,112;
callfunc "F_KafEnd",0,1,"in Al De Baran";
}
turbo_room,124,86,0 shop Turbo Track Merchant 90,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,1065:-1,1750:-1
//This is the name on iRO as well. [Confirmed]
turbo_room,99,120,4 script TBT_Guide#Broadcast 124,{
mes "[Turbo Track Guide]";
mes "Good day~";
mes "Is there anything that";
mes "you would like to know";
mes "about the Turbo Track?";
mes "Feel free to ask me";
mes "any questions.";
next;
while(1) {
switch(select("Race Rules:Game Courses:Game Modes:Prohibited Items and Skills:Cancel")) {
case 1:
mes "[Turbo Track Guide]";
mes "The rules for all the races";
mes "are pretty simple. Just get";
mes "past all the obstacles and";
mes "try to get to the Finish Line";
mes "as quickly as you can.";
next;
mes "[Turbo Track Guide]";
mes "Of course, some of the courses";
mes "in the races may present a few";
mes "unexpected situations, but I can't really illustrate an example...";
mes "Just know that there will";
mes "be traps lying about.";
next;
mes "[Turbo Track Guide]";
mes "Classes that can mount";
mes "a Peco Peco, such as Knight,";
mes "Lord Knight, Crusader and";
mes "Paladin, must get off their";
mes "Peco Pecos before entering";
mes "the Turbo Track Arena.";
next;
mes "[Turbo Track Guide]";
mes "Well, more accurately,";
mes "someone at the Turbo Track";
mes "entrance will ask you to get";
mes "off and will give you a ticket";
mes "so that you can rent your";
mes "Peco again free of charge.";
next;
mes "[Turbo Track Guide]";
mes "Now, the winner of the race";
mes "is the person who reaches the";
mes "Finish Line first. Once someone";
mes "crosses the Finish Line, the race ends and everyone is automatically transported to a Waiting Room.";
next;
mes "[Turbo Track Guide]";
mes "Keep in mind that every";
mes "race is only 15 minutes long.";
mes "If no one can reach the Finish";
mes "Line within that time, the race";
mes "will end without a winner.";
next;
mes "[Turbo Track Guide]";
mes "There are no character";
mes "class or level requirements";
mes "to participate in the Turbo";
mes "Track. However, there is a";
mes "participation fee of 1,000 zeny. ^FFFFFFcobo^000000";
next;
break;
case 2:
mes "[Turbo Track Guide]";
mes "Races in the Turbo Track";
mes "consist of various courses:";
mes "^4d4dffLog Bridge, Cube Hills, the";
mes "Single Snail, Snake Dice, Small";
mes "Cave and the Invisible Maze.";
next;
mes "[Turbo Track Guide]";
mes "The availability of specific";
mes "courses is determined by the";
mes "game mode. Would you like to";
mes "learn more about a certain course? ^FFFFFFcobo^000000";
next;
set .@exitloop,1;
while (.@exitloop) {
switch(select("Log Bridge and Cube Hills:Cursed Desert and Flasher Maze:Single Snail and Invisible Maze:Snake Dice and Small Cave:No, thanks.")) {
case 1:
mes "[Turbo Track Guide]";
mes "In the Log Bridge";
mes "course, you must cross";
mes "over a single log. If you";
mes "fall off, you'll be brought";
mes "back to the beginning of";
mes "the Log Bridge.";
next;
mes "[Turbo Track Guide]";
mes "The Cube Hills is a maze";
mes "consisting of piles and piles";
mes "of boxes. You can climb over";
mes "some boxes, but cannot pass";
mes ",through others. You'll have to navigate and find the best path.";
next;
break;
case 2:
mes "[Turbo Track Guide]";
mes "The Cursed Desert is";
mes "a short course that is full";
mes "of surprises. If you're really";
mes "unlucky, you may find yourself";
mes "confused or even cursed!";
next;
mes "[Turbo Track Guide]";
mes "The Flasher Maze";
mes "is full of traps that will";
mes "blind so you better be extra";
mes "careful in navigating this maze. It might be wiser to try to slow down and avoid the traps...";
next;
break;
case 3:
mes "[Turbo Track Guide]";
mes "The Single Snail is";
mes "a narrow, spiral path";
mes "shaped like a snail's shell.";
mes "There aren't many obstacles,";
mes "but it will be tough to race at your top speed in this course.";
next;
mes "[Turbo Track Guide]";
mes "The Invisible Maze";
mes "looks like a huge, open";
mes "room, but it's actually full";
mes "of invisible walls. You'll";
mes "be given some hints, so";
mes "it's not impossible.";
next;
break;
case 4:
mes "[Turbo Track Guide]";
mes "The Snake Dice course";
mes "offers winding paths, much";
mes "like the body of a snake. The";
mes "factor of luck also plays a role in this course, which you'll";
mes "have to see for yourself.";
next;
mes "[Turbo Track Guide]";
mes "The Small Cave is simply";
mes "a replica of the Payon Cave.";
mes "This part should be a breeze";
mes "if you're pretty comfortable with hunting in the Payon Cave.";
next;
break;
case 5:
mes "[Turbo Track Guide]";
mes "I see.";
mes "Okay then,";
mes "best of luck to";
mes "you in the races!";
next;
set .@exitloop,0;
}
}
mes "[Turbo Track Guide]";
mes "Would you like to";
mes "know anything else";
mes "about Turbo Track?";
next;
break;
case 3:
mes "[Turbo Track Guide]";
mes "There are three different";
mes "game modes available for";
mes "races in the Turbo Track:";
mes "Normal, Expert and Solo.";
next;
mes "[Turbo Track Guide]";
mes "Unlike the other game";
mes "modes, ^4d4dffExpert Mode";
mes "allows players to PvP^000000. This mode";
mes "is ideal for races between";
mes "parties or guilds.";
next;
mes "[Turbo Track Guide]";
mes "Now, the Invisible Maze is";
mes "a special course that is only";
mes "available in 16 person races";
mes "in ^4d4dffNormal^000000 and ^4D4DFFExpert^000000 modes.";
next;
mes "[Turbo Track Guide]";
mes "If you play Solo Mode,";
mes "you can experience every";
mes "course, and the name of time";
mes "of the fastest player will be";
mes "recorded in our Hall of Honor.";
next;
break;
case 4:
mes "[Turbo Track Guide]";
mes "Now in Turbo Track, the";
mes "following items are prohibited";
mes "from use: Green Potion, Panacea";
mes "and Fly Wing. If you do try to use them, they won't work until after you leave the race track.";
next;
mes "[Turbo Track Guide]";
mes "The following skills cannot";
mes "be used during Turbo Track";
mes "races: Snatch, Teleport, Warp";
mes "Portal, Hiding, Cloaking, Stealth, Cure, Ice Wall, Berserk, Basilica, Sheltering Bless and Spear Dynamo.";
next;
//this aopears to suposed to fall through.
case 5:
mes "[Turbo Track Guide]";
mes "Please enjoy your";
mes "time in the Al De Baran";
mes "Turbo Track. Thank you~";
close;
}
}
OnInit:
// This will only ever be run ONCE!
// Unless you eradicate the variable.
//
// This OnInit initiallizes and sets the starting
// data for the Turbo Track's "Record" Logs.
// WARNING/ATTENTION: DO NOT MODIFY ANY OF THE DATA.
// DOING SO WILL CAUSE INTERNAL PROBLEMS IN THE SCRIPT.
if ($ttnames$[0] == "") {
setarray $ttnames$[0],"Breezy Havana"; // Solo Mode/Time Attack
setarray $ttnames$[1],"RS125"; // Normal 4 Player
setarray $ttnames$[2],"Hollgrehenn"; // Normal 8 Players
setarray $ttnames$[3],"Antonio"; // Noomal 16 Players
setarray $ttnames$[4],"Aragham"; // Expert 4 Players
setarray $ttnames$[5],"Kafra Jasmine"; // Expert 8 Players
setarray $ttnames$[6],"Chris"; // Expert 16 Players
setarray $ttnames$[7],"Breezy Havana"; // Honor Place 1
setarray $ttnames$[8],"RS125"; // Honor Place 2
setarray $ttnames$[9],"Breezy Havana"; // Top 1
setarray $ttnames$[10],"Nari"; // Top 2
setarray $ttnames$[11],"Senorita Sylvia"; // Top 3
setarray $ttnames$[12],"Joo Jahk"; // Top 4
setarray $ttnames$[13],"RS125"; // Top 5
setarray $ttranks[0],999999,0,0,0,0,0;
}
end;
Onend_n1:
mapannounce "turbo_room","A [Normal Mode - Solo] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_n4:
mapannounce "turbo_room","A [Normal Mode - 4 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_n8:
mapannounce "turbo_room","A [Normal Mode - 8 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_n16:
mapannounce "turbo_room","A [Normal Mode - 16 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_e4:
mapannounce "turbo_room","A [Expert Mode - 4 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_e8:
mapannounce "turbo_room","A [Expert Mode - 8 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onend_e16:
mapannounce "turbo_room","A [Expert Mode - 16 Person] game will end shortly.",bc_map,"0xadff2f";
end;
Onnew_top1:
mapannounce "turbo_room","Congratulations! " + $ttnames$[9] + " has ranked Number One in the Turbo Track Hall of Honor!",bc_map,"0x00ff00";
end;
Onnew_top2:
mapannounce "turbo_room","Congratulations! " + $ttnames$[10] + " has ranked Second in the Turbo Track Hall of Honor!",bc_map,"0x00ff00";
end;
Onnew_top3:
mapannounce "turbo_room","Congratulations! " + $ttnames$[11] + " has ranked Third in the Turbo Track Hall of Honor!",bc_map,"0x00ff00";
end;
Onnew_top4:
mapannounce "turbo_room","Congratulations! " + $ttnames$[12] + " has ranked Fourth in the Turbo Track Hall of Honor!",bc_map,"0x00ff00";
end;
Onnew_top5:
mapannounce "turbo_room","Congratulations! " + $ttnames$[13] + " has ranked Fifth in the Turbo Track Hall of Honor!",bc_map,"0x00ff00";
end;
Onwin_n4:
mapannounce "turbo_room","Congratulations! " + $ttnames$[1] + " just won a [Normal Mode - 4 Person] game!",bc_map,"0x70DBDB";
end;
Onwin_n8:
mapannounce "turbo_room","Congratulations! " + $ttnames$[2] + " just won a [Normal Mode - 8 Person] game!",bc_map,"0x70DBDB";
end;
Onwin_n16:
mapannounce "turbo_room","Congratulations! " + $ttnames$[3] + " just won a [Normal Mode - 16 Person] game!",bc_map,"0x70DBDB";
end;
Onwin_e4:
mapannounce "turbo_room","Congratulations! " + $ttnames$[4] + " just won an [Expert Mode - 4 Person] game!",bc_map,"0x70DBDB";
end;
Onwin_e8:
mapannounce "turbo_room","Congratulations! " + $ttnames$[5] + " just won an [Expert Mode - 8 Person] game!",bc_map,"0x70DBDB";
end;
Onwin_e16:
mapannounce "turbo_room","Congratulations! " + $ttnames$[6] + " just won an [Expert Mode - 16 Person] game!",bc_map,"0x70DBDB";
end;
}
turbo_room,102,117,3 script Hall of Honor#tt 857,{
mes "^2F4F4FTurbo Track Hall of Honor^000000";
mes " ";
mes "The First:";
mes "^4d4dff" + $ttnames$[7] + "^000000";
mes " ";
mes "The Last:";
mes "^4d4dff" + $ttnames$[8] + "^000000";
close;
}
turbo_room,77,115,5 script Solo Mode#tt::TurboSoloNames 857,{
mes "^2F4F4FSolo Mode Record^000000";
mes " ";
mes "The best player";
mes "in Solo Mode...";
mes "^4d4dff" + $ttnames$[0] + "^000000 !";
close;
}
turbo_room,87,114,5 script Normal Mode Record#tt::TurboNormalNames 857,{
mes "<<Recent Top Players>>";
mes "Winners of Normal Mode - 4 Person";
mes "^4d4dff" + $ttnames$[1] + "^000000";
mes "Winners of Normal Mode - 8 Person";
mes "^4d4dff" + $ttnames$[2] + "^000000";
mes "Winners of Normal Mode - 16 Person";
mes "^4d4dff" + $ttnames$[3] + "^000000";
close;
}
turbo_room,112,114,3 script Expert Mode Record::TurboExpertNames 857,{
mes "<<Recent Top Players>>";
mes "Winners of Expert Mode - 4 Person";
mes "^4d4dff" + $ttnames$[4] + "^000000";
mes "Winners of Expert Mode - 8 Person";
mes "^4d4dff" + $ttnames$[5] + "^000000";
mes "Winners of Expert Mode - 16 Person";
mes "^4d4dff" + $ttnames$[6] + "^000000";
close;
}
turbo_room,97,117,5 script Hall of Honor#tt2 857,{
mes "^2F4F4FTurbo Track Hall of Honor^000000";
mes " ";
mes "1st: ^4d4dff" + $ttnames$[9] + "^000000";
mes "2nd: ^4d4dff" + $ttnames$[10] + "^000000";
mes "3rd: ^4d4dff" + $ttnames$[11] + "^000000";
mes "4th: ^4d4dff" + $ttnames$[12] + "^000000";
mes "5th: ^4d4dff" + $ttnames$[13] + "^000000";
close;
}
turbo_room,75,95,5 duplicate(TurboSoloNames) Solo Mode#1 857
turbo_room,67,95,5 duplicate(TurboNormalNames) Normal Mode Records#1 857
turbo_room,71,95,5 duplicate(TurboExpertNames) Expert Mode Records#1 857
// Turbo Track Item Exchanger
turbo_room,93,117,5 script Point Exchange Helper 125,{
if ((MaxWeight-Weight) < 2000 || checkweight(1201,1) == 0) {
mes "^3355FFWait a second!";
mes "Right now, you're carrying";
mes "too many items with you.";
mes "Please come back after";
mes "putting storing some of your";
mes "things using the Kafra Service.^000000";
close;
}
if (tt_point < 10) {
mes "[Item Exchange Helper]";
mes "Good day,";
mes "" + strcharinfo(0) + ".";
mes "You've got a total of";
mes "" + tt_point + " Turbo Track Points.";
next;
mes "[Item Exchange Helper]";
mes "If you have at least";
mes "10 Turbo Track Points,";
mes "you can exchange these";
mes "points for items. Would";
mes "you like to see the Turbo";
mes "Track Point exchange list?";
next;
if (select("Yes.:Cancel.") == 1) {
mes "[Item Exchange Helper]";
mes "^3355FF10 TTP^000000: 1 Free Ticket";
mes "for Kafra Transportation";
mes "^3355FF12 TTP^000000: 1 Level 5 Magic Scroll";
mes "^3355FF40 TTP^000000: Experience Points";
next;
mes "[Item Exchange Helper]";
mes "^3355FF150 TTP^000000: 1 3 Carat Diamond";
mes "^3355FF300 TTP^000000: 1 Gift Box";
mes "^3355FF400 TTP^000000: 1 Speed Potion";
next;
mes "[Item Exchange Helper]";
mes "You can also convert Turbo Track Points into Arena Points. For more information, please speak to the Arena Point Manager. Thank you.";
close;
}
mes "[Item Exchange Helper]";
mes "We hope that you enjoy";
mes "Al De Baran's Turbo Track.";
mes "Try to earn as many points";
mes "as you can so that you can";
mes "exchange them for useful";
mes "stuff later. Happy racing~";
close;
}
else {
mes "[Item Exchange Helper]";
mes "Good day,";
mes "" + strcharinfo(0) + ".";
mes "You've got a total of";
mes "" + tt_point + " Turbo Track Points.";
mes "Would you like to exchange";
mes "these points for items?";
next;
switch(select("Exchange.:Cancel.")) {
case 1:
mes "[Item Exchange Helper]";
mes "Please choose the item for";
mes "which you'd like to exchange";
mes "your Turbo Track Points.";
next;
switch(select("Free Ticket for Kafra Transportation:Level 5 Magic Scroll:Experience Points:3 Carat Diamond:Gift Box:Speed Potion:Cancel.")) {
case 1:
mes "[Item Exchange Helper]";
mes "Each Free Ticket for";
mes "Kafra Transportation";
mes "costs 10 Turbo Track Points.";
mes "Please enter the amount that";
mes "you wish to have. To cancel,";
mes "please enter ''^3355FF0^000000.''";
next;
input .@input;
if (.@input == 0) {
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input < 0 || .@input > 50) {
mes "[Item Exchange Helper]";
mes "Your request exceeds";
mes "the maximum limit. You";
mes "can only receive a maximum";
mes "of 50 tickets at once.";
close;
}
else {
set .@total_point,10 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-.@total_point;
getitem 7060,.@input; //Warp_Free_Ticket
mes "[Item Exchange Helper]";
mes "Thank you for";
mes "your patronage.";
mes "We hope you enjoy";
mes "your time here in";
mes "the Turbo Track~";
close;
}
case 2:
mes "[Item Exchange Helper]";
mes "Each Magic Scroll costs";
mes "12 Turbo Track Points. Please";
mes "select the Magic Scroll you would like to receive. Each scroll enables a one time use of a Level 5 spell or skill.";
next;
switch(select("Earth Spike:Cold Bolt:Fire Bolt:Lightning Bolt:Soul Strike:Fire Ball:Fire Wall:Frost Diver:Heal")) {
case 1:
set .@scroll,687; //Earth_Scroll_1_5
set .@name$,"Earth Spike";
break;
case 2:
set .@scroll,689; //Cold_Scroll_1_5
set .@name$,"Cold Boltl";
break;
case 3:
set .@scroll,691; //Fire_Scroll_1_5
set .@name$,"Fire Bolt";
break;
case 4:
set .@scroll,693; //Wind_Scroll_1_5
set .@name$,"Lightning Bolt";
break;
case 5:
set .@scroll,695; //Ghost_Scroll_1_5
set .@name$,"Soul Strike";
break;
case 6:
set .@scroll,697; //Fire_Scroll_2_5
set .@name$,"Fire Ball";
break;
case 7:
set .@scroll,699; //Fire_Scroll_3_5
set .@name$,"Fire Wall";
break;
case 8:
set .@scroll,12000; //Cold_Scroll_2_5
set .@name$,"Frost Diver";
break;
case 9:
set .@scroll,12002; //Holy_Scroll_1_5
set .@name$,"Heal";
break;
}
mes "[Item Exchange Helper]";
mes "Please enter the number";
mes "of ^4d4dff"+.@name$+"^000000 Magic Scrolls that";
mes "you would like to receive.";
mes "To cancel, enter ''^3355FF0^000000.''";
next;
input .@input;
if (.@input == 0) {
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input < 0 || .@input > 50) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but your";
mes "request has exceeded the";
mes "maximum limit. You can only";
mes "request up to 50 scrolls at once. ^FFFFFFcobo^000000";
close;
}
else {
set .@total_point,12 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-.@total_point;
getitem .@scroll,.@input;
mes "[Item Exchange Helper]";
mes "Thank you for";
mes "your patronage.";
mes "We hope you enjoy";
mes "your time here in";
mes "the Turbo Track~";
close;
}
case 3:
mes "[Item Exchange Helper]";
mes "You can exchange";
mes "40 Turbo Track Points";
mes "to receive Base Level";
mes "Experience. Would you";
mes "like to exchange your Turbo";
mes "Track Points for Experience?";
next;
if (select("No:Yes") == 2) {
if (tt_point < 40) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-40;
if (BaseLevel < 70)
getexp 3000,0;
else if (BaseLevel < 80)
getexp 9000,0;
else if (BaseLevel < 90)
getexp 10000,0;
else if (BaseLevel < 100)
getexp 30000,0;
mes "[Item Exchange Helper]";
mes "Thank you, your";
mes "Turbo Track Points";
mes "have been converted into";
mes "Base Level Experience.";
close;
}
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
case 4:
mes "[Item Exchange Helper]";
mes "You can exchange";
mes "150 Turbo Track Points";
mes "for ^3131FF1 3 Carat Diamond^000000.";
mes "Please enter the number of";
mes "diamonds you would like to receive.";
mes "To cancel, enter ''^3355FF0^000000.''";
next;
input .@input;
if (.@input == 0) {
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input < 0 || .@input > 10) {
mes "[Item Exchange Helper]";
mes "Your request exceeds";
mes "the maximum limit. You";
mes "can only receive a maximum";
mes "of 10 diamonds at once.";
close;
}
else {
set .@total_point,150 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-.@total_point;
getitem 732,.@input; //Crystal_Jewel__
mes "[Item Exchange Helper]";
mes "Thank you for";
mes "your patronage.";
mes "We hope you enjoy";
mes "your time here in";
mes "the Turbo Track~";
close;
}
case 5:
mes "[Item Exchange Helper]";
mes "You can exchange";
mes "300 Turbo Track Points";
mes "for ^3131FF1 Gift Box^000000. Please enter";
mes "the number of Gift Boxes";
mes "that you'd like to receive.";
mes "To cancel, enter ''^3355FF0^000000.''";
next;
input .@input;
if (.@input == 0) {
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input < 0 || .@input > 10) {
mes "[Item Exchange Helper]";
mes "Your request exceeds";
mes "the maximum limit. You";
mes "can only receive a maximum";
mes "of 10 Gift Boxes at once.";
close;
}
else {
set .@total_point,300 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-.@total_point;
getitem 644,.@input; //Gift_Box
mes "[Item Exchange Helper]";
mes "Thank you for";
mes "your patronage.";
mes "We hope you enjoy";
mes "your time here in";
mes "the Turbo Track~";
close;
}
case 6:
mes "[Item Exchange Helper]";
mes "You can exchange";
mes "400 Turbo Track Points";
mes "for ^3131FF1 Speed Potion^000000. Please";
mes "enter the number of potions";
mes "that you'd like to receive.";
mes "To cancel, enter ''^3355FF0^000000.''";
next;
input .@input;
if (.@input == 0) {
mes "[Item Exchange Helper]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input < 0 || .@input > 10) {
mes "[Item Exchange Helper]";
mes "Your request exceeds";
mes "the maximum limit. You";
mes "can only receive a maximum";
mes "of 10 potions at once.";
close;
}
else {
set .@total_point,400 * .@input;
if (.@total_point > tt_point) {
mes "[Item Exchange Helper]";
mes "I'm sorry, but you do";
mes "not have enough Turbo";
mes "Track Points. Please check";
mes "the amount of Turbo Track";
mes "Points you have earned before";
mes "redeeming your points again.";
close;
}
set tt_point,tt_point-.@total_point;
getitem 12016,.@input; //Speed_Up_Potion
mes "[Item Exchange Helper]";
mes "Thank you for";
mes "your patronage.";
mes "We hope you enjoy";
mes "your time here in";
mes "the Turbo Track~";
close;
}
case 7:
mes "[Item Exchange Helper]";
mes "This Item Exchange";
mes "Service is brought";
mes "to you by...";
next;
mes "[Item Exchange Helper]";
mes "This Item Exchange Service";
mes "is brought to you by the Kafra";
mes "Corporation, Blacksmith Guild";
mes "and the Comodo Casino and";
mes "the Al De Baran Guild Castle";
mes "Management Luina.";
close;
}
case 2:
mes "[Item Exchange Helper]";
mes "Turbo Track Points can be";
mes "converted into Arena Points.";
mes "You can save a maximum of";
mes "^4D4DFF29,000 Turbo Track Points.";
next;
mes "[Item Exchange Helper]";
mes "Before reaching the maximum";
mes "amount of Turbo Track Points,";
mes "you might want to spend some";
mes "of them so that you can keep";
mes "getting your point rewards after winning Turbo Track races.";
close;
}
}
}
turbo_room,106,117,3 script Point Manager#tt 833,{
mes "[Turbo Track Point Manager]";
mes "Good day.";
mes "Did you enjoy your";
mes "time in Turbo Track?";
mes "How may I be of";
mes "assistance?";
next;
switch(select("Check Points:Convert Points:^660000Conversion Info^000000")) {
case 1:
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
mes "you currently have";
mes "" + tt_point + " Turbo Track Points";
mes "and " + arena_point + " Arena Points.";
close;
case 2:
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
mes "you currently have";
mes "" + tt_point + " Turbo Track Points";
mes "and " + arena_point + " Arena Points.";
next;
mes "[Turbo Track Point Manager]";
mes "Please choose from among the following Arena Point conversions. When converting more than";
mes "10 Arena Points at once, you";
mes "can only convert Arena Points";
mes "in ^4D4DFFmultiples of 10^000000.";
next;
switch(select("2 AP -> 1 TTP:4 AP -> 2 TTP:6 AP -> 3 TTP:8 AP -> 4 TTP:10 AP or more:Cancel")) {
case 1:
callsub S_ExchangePoints,28999,2,1;
case 2:
callsub S_ExchangePoints,28998,4,2;
case 3:
callsub S_ExchangePoints,28997,6,2;
case 4:
callsub S_ExchangePoints,28996,8,4;
case 5:
mes "[Turbo Track Point Manager]";
mes "Please enter the number of times you wish to convert 10 Arena Points into Turbo Track Points. The largest value you may enter";
mes "is 20. To cancel, enter '^3355FF0^000000.'";
next;
input .@input;
if (.@input == 0) {
mes "[Turbo Track Point Manager]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
else if (.@input > 20) {
mes "[Turbo Track Point Manager]";
mes "Your request exceeds";
mes "the maximum limit. Please";
mes "enter a value no greater than 20.";
close;
}
else {
set .@want_point1,10 * .@input;
set .@want_point,5 * .@input;
set .@my_turbo_all,tt_point+.@want_point;
set .@my_arena_all,arena_point-.@want_point1;
if (.@my_turbo_all > 28999) {
mes "[Turbo Track Point Manager]";
mes "Unfortunately, your Turbo Track Points will exceed the maximum limit if we proceed with point conversion. Please spend more";
mes "of your Turbo Track Points before using this service. Thank you.";
close;
}
if (.@my_arena_all < 0) {
mes "[Turbo Track Point Manager]";
mes "I am sorry, but you do";
mes "not have enough Arena Points";
mes "to perform this Turbo Track";
mes "Point conversion.";
close;
}
else {
mes "[Turbo Track Point Manager]";
mes "You have converted";
mes "10 Arena Points into";
mes "Turbo Track Points " + .@input + " times.";
mes "A total of " + .@want_point1 + " Arena Points";
mes "has been converted into";
mes "" + .@want_point +" Turbo Track Points.";
set arena_point,.@my_arena_all; //arena_point
set tt_point,.@my_turbo_all;
next;
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
mes "you now have";
mes "^00688B" + tt_point + "^000000 Turbo Track Points";
mes "and ^4682B4" + arena_point + "^000000 Arena Points.";
mes "Thank you for your patronage.";
close;
}
}
case 6:
mes "[Turbo Track Point Manager]";
mes "You have";
mes "canceled";
mes "your request.";
close;
}
case 3:
// There is no dialog for this option.
// It's possible it's missing, or maybe
// the dialog was never translated. XD
close;
}
S_ExchangePoints:
if (tt_point > getarg(0)) {
mes "[Turbo Track Point Manager]";
mes "Unfortunately, your Turbo Track Points will exceed the maximum limit if we proceed with point conversion. Please spend more";
mes "of your Turbo Track Points before using this service. Thank you.";
close;
}
if (arena_point >= getarg(1)) {
mes "[Turbo Track Point Manager]";
mes "As requested,";
mes "2 Arena Points";
mes "have been converted";
mes "into 1 Turbo Track Point.";
set arena_point,arena_point-getarg(1);
set tt_point,tt_point+getarg(2);
next;
mes "[Turbo Track Point Manager]";
mes "" + strcharinfo(0) + ",";
mes "you now have";
mes "^00688B" + tt_point + "^000000 Turbo Track Points";
mes "and ^4682B4" + arena_point + "^000000 Arena Points.";
mes "Thank you for your patronage.";
close;
}
else {
mes "[Turbo Track Point Manager]";
mes "I'm sorry, but you do not have enough Arena Points. You need";
mes "at least 2 Arena Points in order";
mes "to use this service.";
close;
}
}
alde_gld,183,204,0 script en_turbo 45,1,1,{
OnTouch:
if (checkweight(1201,1) == 0) {
mes "^3355FFWait a second!";
mes "Right now, you're carrying";
mes "too many items with you.";
mes "Please come back after";
mes "putting storing some of your";
mes "things using the Kafra Service.^000000";
close;
}
set .@now_weight,MaxWeight-Weight;
if ((BaseJob == Job_Knight || BaseJob == Job_Crusader) && checkriding()) {
if (.@now_weight < 20000) {
mes "[Helper]";
mes "Peco Pecos are prohibited";
mes "in the Turbo Track Arena.";
mes "Please dismount from your";
mes "Peco Peco and you will receive";
mes "a Free Ticket for Peco Ride";
mes "for retrieving your Peco Peco.";
close2;
warp "alde_gld",183,199;
end;
}
else {
setriding 0;
getitem 7310,1; //Free_Peco_Ticket
warp "turbo_room",100,65;
}
}
else
warp "turbo_room",100,65;
end;
}
alde_gld,186,199,3 script Turbo Track Guide#Entran 845,{
mes "[Guide]";
mes "Welcome to";
mes "the Al De Baran";
mes "Turbo Track~";
next;
mes "[Guide]";
mes "Peco Pecos are prohibited inside the Turbo Track Arena. But anyone riding on a Peco Peco will receive a Free Peco Peco Mount Ticket at the Turbo Track Entrance and automatically dismount.";
next;
mes "[Guide]";
mes "Well then,";
mes "enjoy your time";
mes "in Turbo Track~!";
close;
}
alde_gld,181,199,5 script Peco Peco Manager 845,{
mes "[Peco Peco Manager]";
if (BaseJob == Job_Knight || BaseJob == Job_Crusader) {
mes "Welcome, would you like";
mes "to retrieve your Peco Peco?";
mes "Please show me your Free";
mes "Ticket for Peco Ride. You";
mes "may also pay a rental fee";
mes "of 2,500 zeny.";
next;
switch(select("Use:Cancel")) {
case 1:
if (getskilllv(63) == 0) {
mes "[Peco Peco Manager]";
mes "I'm sorry, but you're";
mes "not eligible for this";
mes "service. Please go learn";
mes "the Peco Peco Ride skill first.";
close;
}
else {
if (checkriding()) {
mes "[Peco Peco Manager]";
mes "You're already";
mes "mounted on a";
mes "Peco Peco.";
mes "Thank you~";
close;
}
else {
if (countitem(7310) < 1 && Zeny < 2500) {
mes "[Peco Peco Manager]";
mes "I'm sorry, but you";
mes "don't have a Free Ticket";
mes "for Peco Ride or 2,500 zeny.";
mes "to use the Peco rental service.";
close;
}
else {
if (countitem(7310) > 0)
delitem 7310,1; //Free_Peco_Ticket
else
set zeny,zeny-2500;
setriding;
mes "[Peco Peco Manager]";
mes "Thank you for";
mes "your patronage~";
close;
}
}
}
case 2:
mes "[Peco Peco Manager]";
mes "Are you going";
mes "back to race in";
mes "the Turbo Track?";
mes "Good luck!";
close;
}
}
else {
mes "Thank you for";
mes "visiting Al De Baran's";
mes "Turbo Track~";
close;
}
}
alde_gld,178,180,0 script Sign#TBT 837,{
mes "[Al De Baran Turbo Track]";
mes "This way...";
mes "to the Al De Baran";
mes "Turbo Track Arena!";
next;
mes "[Al De Baran Turbo Track]";
mes "Turbo Track is";
mes "an arena where";
mes "participants compete to be the first to reach the Finish Line! Don't miss the chance to race against your friends!";
close;
}