diff options
Diffstat (limited to 'world/map/npc/functions/travelers.txt')
-rw-r--r-- | world/map/npc/functions/travelers.txt | 279 |
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; +} |