summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/travelers.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions/travelers.txt')
-rw-r--r--world/map/npc/functions/travelers.txt279
1 files changed, 279 insertions, 0 deletions
diff --git a/world/map/npc/functions/travelers.txt b/world/map/npc/functions/travelers.txt
new file mode 100644
index 00000000..76e96bf7
--- /dev/null
+++ b/world/map/npc/functions/travelers.txt
@@ -0,0 +1,279 @@
+// Travelers
+// Authors: Wombat, Wushin
+
+// Multiple Travelers
+// Cannot access until found (Player Bitmask)
+// Costs Zeny
+
+// Contains all warp points to find
+botcheck.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
+ "Tulimshar (" + (@Cost * $@tulimshar_cost) + " GP)", L_TravelTulimshar,
+ "Hurnscald (" + (@Cost * $@hurnscald_cost) + " GP)", L_TravelHurnscald,
+ "Nivalis (" + (@Cost * $@nivalis_cost) + " GP)", L_TravelNivalis,
+ "Candor (" + (@Cost * $@candor_cost) + " GP)", L_TravelCandor,
+ "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 - 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,
+ "Nivalis - Barbarian Village (" + (@Cost * $@barbarians_cost) + " GP)", L_TravelBarbarians,
+ "Nivalis - Sage Nikolai's Mansion (" + (@Cost * $@blue_sage_cost) + " GP)", L_TravelBlueSage,
+ "Nivalis - 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. Enjoy your stay here in Hurnscald.\"";
+ close2;
+ goto L_Clearvars;
+
+L_NoMoney:
+ mes "["+@NpcName$+"]";
+ mes "\"Sorry, you don't have enough money. Maybe next time.\"";
+ close2;
+ goto L_Clearvars;
+
+L_NoFound:
+ mes "["+@NpcName$+"]";
+ mes "\"Sorry, you don't have a memory from that location. Maybe next time.\"";
+ 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;
+}