summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwushin <pasekei@gmail.com>2014-04-11 12:16:18 -0500
committerwushin <pasekei@gmail.com>2014-04-11 16:07:30 -0500
commit0073a8a833ca6970b678f7d48af154429cc547ae (patch)
tree33dafb61ce62e5614cea2736127fed1fb7359b0b
parent82ae61eae9e12de70bc463cc3bfbc6bdd9c454b1 (diff)
downloadserverdata-0073a8a833ca6970b678f7d48af154429cc547ae.tar.gz
serverdata-0073a8a833ca6970b678f7d48af154429cc547ae.tar.bz2
serverdata-0073a8a833ca6970b678f7d48af154429cc547ae.tar.xz
serverdata-0073a8a833ca6970b678f7d48af154429cc547ae.zip
Time Based Free Travel via Ship
-rw-r--r--world/map/npc/001-1/dock.txt8
-rw-r--r--world/map/npc/008-1/dock.txt23
-rw-r--r--world/map/npc/009-1/dock.txt8
-rw-r--r--world/map/npc/020-1/dock.txt6
-rw-r--r--world/map/npc/022-1/dock.txt49
-rw-r--r--world/map/npc/022-1/ferry_master.txt19
-rw-r--r--world/map/npc/029-1/dock.txt24
-rw-r--r--world/map/npc/031-1/dock.txt25
-rw-r--r--world/map/npc/031-1/frozenbeard.txt27
-rw-r--r--world/map/npc/035-2/casino.txt12
-rw-r--r--world/map/npc/035-2/koga.txt33
-rw-r--r--world/map/npc/035-2/shops.txt13
-rw-r--r--world/map/npc/036-2/casino.txt12
-rw-r--r--world/map/npc/036-2/koga-candor.txt27
-rw-r--r--world/map/npc/036-2/shops.txt14
-rw-r--r--world/map/npc/functions/ferry.txt175
16 files changed, 380 insertions, 95 deletions
diff --git a/world/map/npc/001-1/dock.txt b/world/map/npc/001-1/dock.txt
new file mode 100644
index 00000000..f0cb0a77
--- /dev/null
+++ b/world/map/npc/001-1/dock.txt
@@ -0,0 +1,8 @@
+// Ferry Sign
+// Author: Wushin
+001-1.gat,48,71,0|script|Ferry Schedule#1|396,
+{
+ callfunc "FerryManifest";
+ end;
+}
+
diff --git a/world/map/npc/008-1/dock.txt b/world/map/npc/008-1/dock.txt
index fc6bbfeb..a5f736b6 100644
--- a/world/map/npc/008-1/dock.txt
+++ b/world/map/npc/008-1/dock.txt
@@ -1,8 +1,25 @@
// The ferry dock
-008-1.gat,140,64,0|script|#hurnscalddock|45,2,1,
+008-1.gat,134,63,0|script|Ferry Schedule#5|397,
{
- set @loc, DOCK_hurnscald;
- callfunc "Ferry";
+ callfunc "FerryManifest";
+ end;
+}
+
+008-1.gat,147,64,0|script|Hurnscald Koga|395,8,3,
+{
+ callfunc "BoardFerry";
+ close;
+}
+
+008-1.gat,120,44,0|script|#HurnscaldDock|45,
+{
+ end;
+OnCommandArrive:
+ enablenpc "Hurnscald Koga";
+ end;
+
+OnCommandWarp:
+ disablenpc "Hurnscald Koga";
end;
}
diff --git a/world/map/npc/009-1/dock.txt b/world/map/npc/009-1/dock.txt
new file mode 100644
index 00000000..a6fa2553
--- /dev/null
+++ b/world/map/npc/009-1/dock.txt
@@ -0,0 +1,8 @@
+// Ferry Sign
+
+009-1.gat,46,34,0|script|FerrySchedule#4|397,
+{
+ callfunc "FerryManifest";
+ end;
+}
+
diff --git a/world/map/npc/020-1/dock.txt b/world/map/npc/020-1/dock.txt
new file mode 100644
index 00000000..e0528e23
--- /dev/null
+++ b/world/map/npc/020-1/dock.txt
@@ -0,0 +1,6 @@
+// Ferry Sign
+020-1.gat,81,76,0|script|Ferry Schedule#7|398,
+{
+ callfunc "FerryManifest";
+ end;
+}
diff --git a/world/map/npc/022-1/dock.txt b/world/map/npc/022-1/dock.txt
index 2dfc9764..2f90c4a9 100644
--- a/world/map/npc/022-1/dock.txt
+++ b/world/map/npc/022-1/dock.txt
@@ -1,8 +1,51 @@
// The ferry dock
+// Author: Wushin
-022-1.gat,84,72,0|script|#tulimshardock|45,6,1,
+// Ferry Sign
+022-1.gat,62,36,0|script|Ferry Schedule#2|396,
{
- set @loc, DOCK_tulimshar;
- callfunc "Ferry";
+ callfunc "FerryManifest";
+ end;
+}
+
+022-1.gat,65,71,0|script|Ferry Schedule#3|396,
+{
+ callfunc "FerryManifest";
+ end;
+}
+
+022-1.gat,85,71,0|script|Tulimshar South Koga|395,6,2,
+{
+ callfunc "BoardFerry";
+ close;
+}
+
+022-1.gat,80,62,0|script|#Tulimshar SouthDock|45,
+{
+ end;
+OnCommandArrive:
+ enablenpc "Tulimshar South Koga";
+ end;
+
+OnCommandWarp:
+ disablenpc "Tulimshar South Koga";
+ end;
+}
+
+022-1.gat,60,24,0|script|Tulimshar North Koga|395,4,4,
+{
+ callfunc "BoardCandorFerry";
+ close;
+}
+
+022-1.gat,65,25,0|script|#Tulimshar NorthDock|45,
+{
+ end;
+OnCommandArrive:
+ enablenpc "Tulimshar North Koga";
+ end;
+
+OnCommandWarp:
+ disablenpc "Tulimshar North Koga";
end;
}
diff --git a/world/map/npc/022-1/ferry_master.txt b/world/map/npc/022-1/ferry_master.txt
index 099c75cc..5c78dc77 100644
--- a/world/map/npc/022-1/ferry_master.txt
+++ b/world/map/npc/022-1/ferry_master.txt
@@ -1,18 +1,29 @@
//
-022-1.gat,73,71,0|script|Ferry Master|138,
+022-1.gat,71,71,0|script|Ferry Master|138,
{
mes "[Ferry Master]";
mes "\"Hello! Do you need something?\"";
- next;
+ goto L_Main;
+
+L_Main:
menu
"How do I use the ferry?", L_Explain,
"Nothing I guess", L_Close;
L_Explain:
mes "[Ferry Master]";
- mes "\"You'll step up on the dock and select your destination. Each destination has an associated price that you need to pay. You don't have to go anywhere. Choosing the current port will result in nothing.\"";
- goto L_Close;
+ mes "\"You wait on the dock for the ship to come in. You'll be given a chance to board the boat when it comes into port.\"";
+ mes "\"It lingers in port to allow you some time to board in case you are running behind.\"";
+ mes "\"Once on the ship, it will sail to different ports and annouce where it is docking.\"";
+ next;
+ mes "\"There are 2 Ferrys, both ferrys are free to ride.\"";
+ mes "\"The Main ferry travels from Argeas, Kaizei and Tonori. It docks in the major ports Hurnscald, Nivalis and the Tulimshar South Dock.\"";
+ mes "\"The Candor Ferry only travels betwen Candor and the Tulimshar North Dock.\"";
+ next;
+ mes "\"Refreshments and supplies are offered aboard both ships during the voyage.\"";
+ mes "\"We also have some slot machines in case you get bored.\"";
+ goto L_Main;
L_Close:
close;
diff --git a/world/map/npc/029-1/dock.txt b/world/map/npc/029-1/dock.txt
index a049d68e..8df50b9d 100644
--- a/world/map/npc/029-1/dock.txt
+++ b/world/map/npc/029-1/dock.txt
@@ -1,8 +1,26 @@
// The ferry dock
-029-1.gat,22,37,0|script|#candordock|45,2,1,
+// Ferry Sign
+029-1.gat,27,36,0|script|Ferry Schedule#8|397,
{
- set @loc, DOCK_candor;
- callfunc "Ferry";
+ callfunc "FerryManifest";
+ end;
+}
+
+029-1.gat,16,36,0|script|Candor Koga|395,6,2,
+{
+ callfunc "BoardCandorFerry";
+ close;
+}
+
+029-1.gat,22,37,0|script|#CandorDock|45,
+{
+ end;
+OnCommandArrive:
+ enablenpc "Candor Koga";
+ end;
+
+OnCommandWarp:
+ disablenpc "Candor Koga";
end;
}
diff --git a/world/map/npc/031-1/dock.txt b/world/map/npc/031-1/dock.txt
index 304d2068..ff7fa85a 100644
--- a/world/map/npc/031-1/dock.txt
+++ b/world/map/npc/031-1/dock.txt
@@ -1,8 +1,27 @@
// The ferry dock
-031-1.gat,105,109,0|script|#nivalisdock|45,6,1,
+// Ferry Sign
+031-1.gat,95,107,0|script|Ferry Schedule#6|398,
{
- set @loc, DOCK_nivalis;
- callfunc "Ferry";
+ callfunc "FerryManifest";
+ end;
+}
+
+031-1.gat,110,108,0|script|Nivalis Koga|395,6,2,
+{
+ callfunc "BoardFerry";
+ close;
+}
+
+031-1.gat,100,100,0|script|#NivalisDock|45,
+{
+ end;
+
+OnCommandArrive:
+ enablenpc "Nivalis Koga";
+ end;
+
+OnCommandWarp:
+ disablenpc "Nivalis Koga";
end;
}
diff --git a/world/map/npc/031-1/frozenbeard.txt b/world/map/npc/031-1/frozenbeard.txt
index ce97650c..6a62a104 100644
--- a/world/map/npc/031-1/frozenbeard.txt
+++ b/world/map/npc/031-1/frozenbeard.txt
@@ -2,7 +2,32 @@
031-1.gat,96,113,0|script|Frozenbeard|138,
{
+
mes "[Frozenbeard]";
- mes "\"Arrr mate! I'm glad there's a dock here, so I don't have to row boat from my ship anymore! I pioneered the trade routes between Nivalis and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle other than the harsh weather up here, yarr.\"";
+ mes "\"Yar! Do you need something, matey?\"";
+ goto L_Main;
+
+L_Main:
+ menu
+ "Can you explain the Ferry?", L_Explain,
+ "Nothing I guess", L_Close;
+
+L_Explain:
+ mes "[Frozenbeard]";
+ mes "\"Arrr mate! I pioneered the trade routes between Nivalis and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle other than the harsh weather up here, yarr.\"";
+ next;
+ mes "\"You wait on the dock for the ship to come in. You'll be given a chance to board the boat when it comes into port.\"";
+ mes "\"It lingers in port to allow you some time to board in case you are running behind.\"";
+ mes "\"Once on the ship, it will sail to different ports and annouce where it is docking.\"";
+ next;
+ mes "\"There are 2 Ferrys, both ferrys are free to ride.\"";
+ mes "\"The Main ferry travels from Argeas, Kaizei and Tonori. It docks in the major ports Hurnscald, Nivalis and the Tulimshar South Dock.\"";
+ mes "\"The Candor Ferry only travels betwen Candor and the Tulimshar North Dock.\"";
+ next;
+ mes "\"Refreshments and supplies are offered aboard both ships during the voyage.\"";
+ mes "\"We also have some slot machines in case you get bored.\"";
+ goto L_Main;
+
+L_Close:
close;
}
diff --git a/world/map/npc/035-2/casino.txt b/world/map/npc/035-2/casino.txt
new file mode 100644
index 00000000..83759787
--- /dev/null
+++ b/world/map/npc/035-2/casino.txt
@@ -0,0 +1,12 @@
+// Casino
+035-2.gat,34,37,0|script|Slots#4|400,
+{
+ callfunc "SlotMachine";
+ close;
+}
+
+035-2.gat,36,37,0|script|Slots#5|400,
+{
+ callfunc "SlotMachine";
+ close;
+}
diff --git a/world/map/npc/035-2/koga.txt b/world/map/npc/035-2/koga.txt
new file mode 100644
index 00000000..b9e0969d
--- /dev/null
+++ b/world/map/npc/035-2/koga.txt
@@ -0,0 +1,33 @@
+// Dock
+
+035-2.gat,39,29,0|script|#KogaExit|45,0,1,
+{
+ mes "Disembark the ferry for "+$@MainDocks$[$@MainCurrentDock]+"?";
+ menu
+ "Yes.", L_Leave,
+ "Nevermind", L_Close;
+
+L_Leave:
+ if ($@MainCurrentDock == 0)
+ goto L_Hurnscald;
+ if ($@MainCurrentDock == 1)
+ goto L_Nivalis;
+ if ($@MainCurrentDock == 2)
+ goto L_Tulimshar;
+ goto L_Close;
+
+L_Tulimshar:
+ warp "022-1.gat", 76, 72;
+ goto L_Close;
+
+L_Hurnscald:
+ warp "008-1.gat", 137, 64;
+ goto L_Close;
+
+L_Nivalis:
+ warp "031-1.gat", 95, 109;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/035-2/shops.txt b/world/map/npc/035-2/shops.txt
new file mode 100644
index 00000000..ddf0f09c
--- /dev/null
+++ b/world/map/npc/035-2/shops.txt
@@ -0,0 +1,13 @@
+//
+
+035-2.gat,23,38,0|shop|Cooky|213,Beer :-1,Orange :-1,CasinoCoins :-1
+
+035-2.gat,23,35,0|script|Bunkmaster Phict|212,
+{
+ set @npcname$, "Bunkmaster Phict";
+ set @cost, 100;
+ callfunc "Inn";
+ set @npcname$, "";
+ set @cost, 0;
+ close;
+}
diff --git a/world/map/npc/036-2/casino.txt b/world/map/npc/036-2/casino.txt
new file mode 100644
index 00000000..e7120f5d
--- /dev/null
+++ b/world/map/npc/036-2/casino.txt
@@ -0,0 +1,12 @@
+// Casino
+036-2.gat,34,37,0|script|Slots#6|400,
+{
+ callfunc "SlotMachine";
+ close;
+}
+
+036-2.gat,36,37,0|script|Slots#7|400,
+{
+ callfunc "SlotMachine";
+ close;
+}
diff --git a/world/map/npc/036-2/koga-candor.txt b/world/map/npc/036-2/koga-candor.txt
new file mode 100644
index 00000000..3aa24417
--- /dev/null
+++ b/world/map/npc/036-2/koga-candor.txt
@@ -0,0 +1,27 @@
+// Dock
+
+036-2.gat,39,29,0|script|#KogaCandorExit|45,0,1,
+{
+ mes "Disembark the ferry for "+$@CandorDocks$[$@CandorCurrentDock]+"?";
+ menu
+ "Yes.", L_Leave,
+ "Nevermind", L_Close;
+
+L_Leave:
+ if ($@CandorCurrentDock == 0)
+ goto L_Candor;
+ if ($@CandorCurrentDock == 1)
+ goto L_Tulimshar;
+ goto L_Close;
+
+L_Tulimshar:
+ warp "022-1.gat", 60, 33;
+ goto L_Close;
+
+L_Candor:
+ warp "029-1.gat", 25, 37;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/world/map/npc/036-2/shops.txt b/world/map/npc/036-2/shops.txt
new file mode 100644
index 00000000..b25d0a46
--- /dev/null
+++ b/world/map/npc/036-2/shops.txt
@@ -0,0 +1,14 @@
+//
+
+036-2.gat,23,38,0|shop|Chef Armand|211,Beer :-1,Steak :-2,CasinoCoins :-1
+036-2.gat,35,22,0|shop|Gunney|138,Arrow :-2,IronArrow :-2
+
+036-2.gat,23,35,0|script|Bunkmaster Daban|212,
+{
+ set @npcname$, "Bunkmaster Daban";
+ set @cost, 100;
+ callfunc "Inn";
+ set @npcname$, "";
+ set @cost, 0;
+ close;
+}
diff --git a/world/map/npc/functions/ferry.txt b/world/map/npc/functions/ferry.txt
index 03f5777f..271a2e39 100644
--- a/world/map/npc/functions/ferry.txt
+++ b/world/map/npc/functions/ferry.txt
@@ -1,97 +1,116 @@
// The ferry system
-function|script|Ferry|,
+botcheck.gat,27,28,0|script|#FerryConfig|-1,
{
- if (BaseLevel < 20)
- goto L_LowerCost;
- set @cost_tulimshar, 500;
- set @cost_hurnscald, 500;
- set @cost_nivalis, 500;
- goto L_Start;
-
-L_Start:
- set @cost_candor, 1500;
- mes "Where would you like to go?";
- next;
- if (BaseLevel < 40)
- goto L_PlainMenu;
- goto L_MenuWithCandor;
+ end;
+
+OnInit:
+ disablenpc "Hurnscald Koga";
+ disablenpc "Candor Koga";
+ disablenpc "Nivalis Koga";
+ disablenpc "Tulimshar North Koga";
+ disablenpc "Tulimshar South Koga";
+ set $@MainCurrentDock, 0;
+ set $@CandorCurrentDock, 0;
+ set $@DockTickCount, 0;
+ set $@DockLeaveCount, 1;
+ setarray $@MainDocks$, "Hurnscald", "Nivalis", "Tulimshar South";
+ setarray $@CandorDocks$, "Candor", "Tulimshar North";
+ cmdothernpc "#"+$@MainDocks$[$@MainCurrentDock]+"Dock", "Arrive";
+ cmdothernpc "#"+$@CandorDocks$[$@CandorCurrentDock]+"Dock", "Arrive";
+ initnpctimer;
+ end;
+
+L_NextDock:
+ set $@MainLastDock, $@MainCurrentDock;
+ set $@CandorLastDock, $@CandorCurrentDock;
+ set $@MainCurrentDock, $@MainCurrentDock + 1;
+ set $@CandorCurrentDock, $@CandorCurrentDock + 1;
+ if($@MainCurrentDock == getarraysize($@MainDocks$))
+ set $@MainCurrentDock, 0;
+ if($@CandorCurrentDock == getarraysize($@CandorDocks$))
+ set $@CandorCurrentDock, 0;
+ set $@DockTickCount, 0;
+ cmdothernpc "#"+$@MainDocks$[$@MainLastDock]+"Dock", "Warp";
+ cmdothernpc "#"+$@MainDocks$[$@MainCurrentDock]+"Dock", "Arrive";
+ cmdothernpc "#"+$@CandorDocks$[$@CandorLastDock]+"Dock", "Warp";
+ cmdothernpc "#"+$@CandorDocks$[$@CandorCurrentDock]+"Dock", "Arrive";
+ mapannounce "035-2.tmx", " Koga - Main : Now arriving in "+$@MainDocks$[$@MainCurrentDock]+".", 0;
+ mapannounce "036-2.tmx", " Koga - Candor : Now arriving in "+$@CandorDocks$[$@CandorCurrentDock]+".", 0;
+ initnpctimer;
+ end;
+
+OnTimer10000:
+ if ($@DockTickCount > $@DockLeaveCount)
+ goto L_NextDock;
+ mapannounce "035-2.tmx", "Koga - Main : Now docked in "+$@MainDocks$[$@MainCurrentDock]+", Departing soon", 0;
+ mapannounce "036-2.tmx", "Koga - Candor : Now docked in "+$@CandorDocks$[$@CandorCurrentDock]+", Departing soon", 0;
+ set $@DockTickCount, $@DockTickCount + 1;
+ initnpctimer;
+ end;
+}
-L_PlainMenu:
+function|script|FerryManifest|,
+{
+ mes "Which Ferry do you want to check the schedule for?";
menu
- "Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar,
- "Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
- "Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
- "Nevermind", L_Close;
+ "World Ferry.", L_WorldFerry,
+ "Candor Ferry.", L_CandorFerry;
-L_MenuWithCandor:
- menu
- "Tulimshar (" + @cost_tulimshar + "GP)", L_Tulimshar,
- "Hurnscald (" + @cost_hurnscald + "GP)", L_Hurnscald,
- "Nivalis (" + @cost_nivalis + "GP)", L_Nivalis,
- "Candor (" + @cost_candor + "GP)", L_Candor,
- "Nevermind", L_Close;
-
-L_Tulimshar:
- if (@loc == DOCK_tulimshar)
- goto L_AlreadyThere;
- if (Zeny < @cost_tulimshar)
- goto L_NotEnoughGP;
-
- set Zeny, Zeny - @cost_tulimshar;
- warp "022-1.gat", 76, 72;
+L_CandorFerry:
+ mes "The ferry is currently at "+$@CandorDocks$[$@CandorCurrentDock];
+ next;
+ set @NextDock, ($@CandorCurrentDock + 1);
+ if(@NextDock == getarraysize($@CandorDocks$))
+ set @NextDock, 0;
+ mes "The ferry will be arriving at "+$@CandorDocks$[@NextDock]+" next";
goto L_Close;
-L_Hurnscald:
- if (@loc == DOCK_hurnscald)
- goto L_AlreadyThere;
- if (Zeny < @cost_hurnscald)
- goto L_NotEnoughGP;
-
- set Zeny, Zeny - @cost_hurnscald;
- warp "008-1.gat", 137, 64;
+L_WorldFerry:
+ mes "The ferry is currently at "+$@MainDocks$[$@MainCurrentDock];
+ next;
+ set @NextDock, ($@MainCurrentDock + 1);
+ if(@NextDock == getarraysize($@MainDocks$))
+ set @NextDock, 0;
+ mes "The ferry will be arriving at "+$@MainDocks$[@NextDock]+" next";
goto L_Close;
-L_Nivalis:
- if (@loc == DOCK_nivalis)
- goto L_AlreadyThere;
- if (Zeny < @cost_nivalis)
- goto L_NotEnoughGP;
+L_Close:
+ close;
+}
- set Zeny, Zeny - @cost_nivalis;
- warp "031-1.gat", 95, 109;
- goto L_Close;
+function|script|BoardFerry|,
+{
+ mes "Board the ferry?";
+ menu
+ "yes.", L_Board,
+ "no.", L_Return;
-L_Candor:
- if (@loc == DOCK_candor)
- goto L_AlreadyThere;
- if (Zeny < @cost_candor)
- goto L_NotEnoughGP;
+L_Board:
+ warp "035-2.tmx",39,29;
+ goto L_Return;
- set Zeny, Zeny - @cost_candor;
- warp "029-1.gat", 25, 37;
- goto L_Close;
+L_Return:
+ return;
+}
-L_AlreadyThere:
- mes "You're already here!";
- goto L_Close;
+function|script|BoardCandorFerry|,
+{
+ mes "Board the ferry?";
+ menu
+ "yes.", L_Board,
+ "no.", L_Return;
-L_NotEnoughGP:
- mes "You don't have enough money to go there!";
- goto L_Close;
+L_Board:
+ if (BaseLevel < 40) goto L_TooYoung;
+ warp "036-2.tmx",39,29;
+ goto L_Return;
-L_LowerCost:
- set @cost_tulimshar, 250;
- set @cost_hurnscald, 250;
- set @cost_nivalis, 250;
- goto L_Start;
+L_TooYoung:
+ mes "This area is too dangerous for your low level.";
+ goto L_Return;
-L_Close:
- set @cost_tulimshar, 0;
- set @cost_hurnscald, 0;
- set @cost_candor, 0;
- set @cost_nivalis, 0;
- set @loc, 0;
- close;
+L_Return:
+ return;
}