// Travelers
// Authors: Wombat, Wushin
// Multiple Travelers
// Cannot access until found (Player Bitmask)
// Costs Zeny
// Contains all warp points to find
017-9.gat,27,28,0|script|#TravelConfig|-1
{
end;
OnInit:
// TravelFound
set $@tut_bit, (1 << 2);
set $@druid_tree_bit, (1 << 3);
set $@graveyard_bit, (1 << 4);
set $@magic_house_bit, (1 << 5);
set $@terranite_cave_bit, (1 << 6);
set $@tulimshar_bit, (1 << 7);
set $@blue_sage_bit, (1 << 8);
set $@hurnscald_bit, (1 << 9);
set $@nivalis_bit, (1 << 10);
set $@tul_mine_bit, (1 << 11);
set $@pachua_bit, (1 << 12);
set $@nivalis_snow_hills_bit, (1 << 13);
set $@barbarians_bit, (1 << 14);
set $@hurns_farms_bit, (1 << 15);
set $@candor_bit, (1 << 16);
// Travel Base Cost
set $@tulimshar_cost, 100;
set $@hurnscald_cost, 100;
set $@nivalis_cost, 100;
set $@druid_tree_cost, 150;
set $@tul_mine_cost, 150;
set $@pachua_cost, 200;
set $@graveyard_cost, 200;
set $@magic_house_cost, 150;
set $@terranite_cave_cost, 200;
set $@blue_sage_cost, 200;
set $@nivalis_snow_hills_cost, 150;
set $@barbarians_cost, 150;
set $@hurns_farms_cost, 150;
set $@candor_cost, 200;
end;
}
function|script|TravelerTut
{
//Explain Travelers
mes "["+@NpcName$+"]";
mes "\"We travelers are found all over the world. Once you have found another traveler, we can create a link and send you between us.\"";
next;
if (TravelFound & $@tut_bit)
goto L_Return;
goto L_SetBit;
L_SetBit:
set TravelFound, TravelFound | $@tut_bit;
goto L_Return;
L_Return:
return;
}
function|script|Traveler
{
mes "["+@NpcName$+"]";
mes "\"Greetings. I am "+@NpcName$+" the Traveler.\"";
next;
if (TravelFound & $@tut_bit)
goto L_Main;
goto L_TravelTut;
L_Main:
if (TravelFound & @NpcTravelBit)
goto L_BitTravelSet;
goto L_SetTravelBit;
L_BitTravelSet:
set @Cost, 10;
if (BaseLevel < 45)
set @Cost, 5;
goto L_Start;
L_TravelTut:
callfunc "TravelerTut";
goto L_Main;
L_SetTravelBit:
mes "["+@NpcName$+"]";
mes "\"Uplink Set. You can now return to this spot for a fee.\"";
next;
set TravelFound, TravelFound | @NpcTravelBit;
goto L_BitTravelSet;
L_Start:
mes "\"Where would you like to go?\"";
menu
"Tonori - Tulimshar (" + (@Cost * $@tulimshar_cost) + " GP)", L_TravelTulimshar,
"Argeas - Hurnscald (" + (@Cost * $@hurnscald_cost) + " GP)", L_TravelHurnscald,
"Kaizei - Nivalis (" + (@Cost * $@nivalis_cost) + " GP)", L_TravelNivalis,
"Tonori - Druid Tree (" + (@Cost * $@druid_tree_cost) + " GP)", L_TravelDruidTree,
"Tonori - Tulimshar Mines (" + (@Cost * $@tul_mine_cost) + " GP)", L_TravelTulMine,
"Tonori - Pachua's Village (" + (@Cost * $@pachua_cost) + " GP)", L_TravelPachua,
"Argeas - Candor (" + (@Cost * $@candor_cost) + " GP)", L_TravelCandor,
"Argeas - Magic House (" + (@Cost * $@magic_house_cost) + " GP)", L_TravelMagicHouse,
"Argeas - Farmsteads (" + (@Cost * $@hurns_farms_cost) + " GP)", L_TravelHurnsFarms,
"Argeas - Graveyard (" + (@Cost * $@graveyard_cost) + " GP)", L_TravelGraveyard,
"Argeas - Terranite Cave (" + (@Cost * $@terranite_cave_cost) + " GP)", L_TravelTerranite,
"Kaizei - Barbarian Village (" + (@Cost * $@barbarians_cost) + " GP)", L_TravelBarbarians,
"Kaizei - Sage Nikolai's Mansion (" + (@Cost * $@blue_sage_cost) + " GP)", L_TravelBlueSage,
"Kaizei - Snow Hills (" + (@Cost * $@nivalis_snow_hills_cost) + " GP)", L_TravelSnowHills,
"Who are the Travelers?", L_TravelTut,
"I'm not interested.", L_TravelNo;
L_TravelChecks:
if (@NpcTravelBit == @NextLocationBit)
goto L_AlreadyThere;
if (!(TravelFound & @NextLocationBit))
goto L_NoFound;
if (Zeny < @NextLocationCost)
goto L_NoMoney;
goto L_TravelPlayer;
L_TravelPlayer:
mes "["+@NpcName$+"]";
mes "\"Be fearless!\"";
close2;
set Zeny, Zeny - @NextLocationCost;
warp @NextLocationMap$,@NextLocationX,@NextLocationY;
goto L_Clearvars;
L_TravelDruidTree:
set @NextLocationBit, $@druid_tree_bit;
set @NextLocationCost, (@Cost * $@druid_tree_cost);
set @NextLocationMap$, "005-1.gat";
set @NextLocationX, 76;
set @NextLocationY, 36;
goto L_TravelChecks;
L_TravelGraveyard:
set @NextLocationBit, $@graveyard_bit;
set @NextLocationCost, (@Cost * $@graveyard_cost);
set @NextLocationMap$, "027-1.gat";
set @NextLocationX, 84;
set @NextLocationY, 86;
goto L_TravelChecks;
L_TravelMagicHouse:
set @NextLocationBit, $@magic_house_bit;
set @NextLocationCost, (@Cost * $@magic_house_cost);
set @NextLocationMap$, "013-1.gat";
set @NextLocationX, 120;
set @NextLocationY, 93;
goto L_TravelChecks;
L_TravelTerranite:
set @NextLocationBit, $@terranite_cave_bit;
set @NextLocationCost, (@Cost * $@terranite_cave_cost);
set @NextLocationMap$, "012-3.gat";
set @NextLocationX, 445;
set @NextLocationY, 65;
goto L_TravelChecks;
L_TravelTulimshar:
set @NextLocationBit, $@tulimshar_bit;
set @NextLocationCost, (@Cost * $@tulimshar_cost);
set @NextLocationMap$, "001-1.gat";
set @NextLocationX, 44;
set @NextLocationY, 70;
goto L_TravelChecks;
L_TravelBlueSage:
set @NextLocationBit, $@blue_sage_bit;
set @NextLocationCost, (@Cost * $@blue_sage_cost);
set @NextLocationMap$, "048-2.gat";
set @NextLocationX, 26;
set @NextLocationY, 47;
goto L_TravelChecks;
L_TravelHurnscald:
set @NextLocationBit, $@hurnscald_bit;
set @NextLocationCost, (@Cost * $@hurnscald_cost);
set @NextLocationMap$, "008-1.gat";
set @NextLocationX, 79;
set @NextLocationY, 84;
goto L_TravelChecks;
L_TravelNivalis:
set @NextLocationBit, $@nivalis_bit;
set @NextLocationCost, (@Cost * $@nivalis_cost);
set @NextLocationMap$, "020-1.gat";
set @NextLocationX, 53;
set @NextLocationY, 122;
goto L_TravelChecks;
L_TravelTulMine:
set @NextLocationBit, $@tul_mine_bit;
set @NextLocationCost, (@Cost * $@tul_mine_cost);
set @NextLocationMap$, "002-2.gat";
set @NextLocationX, 27;
set @NextLocationY, 28;
goto L_TravelChecks;
L_TravelPachua:
set @NextLocationBit, $@pachua_bit;
set @NextLocationCost, (@Cost * $@pachua_cost);
set @NextLocationMap$, "006-1.gat";
set @NextLocationX, 28;
set @NextLocationY, 97;
goto L_TravelChecks;
L_TravelSnowHills:
set @NextLocationBit, $@nivalis_snow_hills_bit;
set @NextLocationCost, (@Cost * $@nivalis_snow_hills_cost);
set @NextLocationMap$, "044-1.gat";
set @NextLocationX, 152;
set @NextLocationY, 19;
goto L_TravelChecks;
L_TravelBarbarians:
set @NextLocationBit, $@barbarians_bit;
set @NextLocationCost, (@Cost * $@barbarians_cost);
set @NextLocationMap$, "033-1.gat";
set @NextLocationX, 66;
set @NextLocationY, 33;
goto L_TravelChecks;
L_TravelHurnsFarms:
set @NextLocationBit, $@hurns_farms_bit;
set @NextLocationCost, (@Cost * $@hurns_farms_cost);
set @NextLocationMap$, "055-1.gat";
set @NextLocationX, 135;
set @NextLocationY, 60;
goto L_TravelChecks;
L_TravelCandor:
set @NextLocationBit, $@candor_bit;
set @NextLocationCost, (@Cost * $@candor_cost);
set @NextLocationMap$, "029-1.gat";
set @NextLocationX, 69;
set @NextLocationY, 69;
goto L_TravelChecks;
L_TravelNo:
mes "["+@NpcName$+"]";
mes "\"Perhaps some day you will have the courage to help us.\"";
close2;
goto L_Clearvars;
L_NoMoney:
mes "["+@NpcName$+"]";
mes "\"Sorry, but you don't have enough money. Maybe next time.\"";
close2;
goto L_Clearvars;
L_NoFound:
mes "["+@NpcName$+"]";
mes "\"Sorry, but you haven't visited a traveler yet at that location. You should talk to a traveler there so you can quickly travel there in the future.\"";
close2;
goto L_Clearvars;
L_AlreadyThere:
mes "["+@NpcName$+"]";
mes "\"Umm, you are already here. Are you sure you know where you are going?\"";
close2;
goto L_Clearvars;
L_Clearvars:
set @Cost, 0;
set @NextLocationBit, 0;
set @NextLocationCost, 0;
set @NextLocationMap$, "";
set @NextLocationX, 0;
set @NextLocationY, 0;
return;
}