summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/00000SAVE/008-1_george.txt150
-rw-r--r--npc/018-1/_import.txt1
-rw-r--r--npc/018-1/george.txt161
-rw-r--r--npc/items/shovel.txt6
4 files changed, 168 insertions, 150 deletions
diff --git a/npc/00000SAVE/008-1_george.txt b/npc/00000SAVE/008-1_george.txt
deleted file mode 100644
index 62afeb7a0..000000000
--- a/npc/00000SAVE/008-1_george.txt
+++ /dev/null
@@ -1,150 +0,0 @@
-
-008-1,136,62,0 script George NPC138,{
- if (getequipid(equip_head) == 617) goto L_Pirate;
- if (getequipid(equip_head) == 622) goto L_Bandana;
- if (getequipid(equip_head) == 621) goto L_EyePatch;
-
- mes "[George the Pirate]";
- mes "\"Yar! Do you need something, matey?\"";
- goto L_Main;
-
-L_Main:
- if (GEORGE_Quest == 1) goto L_Main2;
- if (GEORGE_Quest == 2) goto L_Main3;
- if (GEORGE_Quest == 3) goto L_Main5;
- if (GEORGE_Quest == 4) goto L_Main4;
- menu
- "Can you explain the Ferry?", L_Explain,
- "Nothing I guess", L_close;
-
-L_Main2:
- menu
- "Can you explain the Ferry?", L_Explain,
- "Actually, I heard from Roger that you may need some help.", L_RequestOne,
- "Nothing I guess", L_close;
-
-L_Main3:
- menu
- "Can you explain the Ferry?", L_Explain,
- "About the items you asked me to collect...", L_ProgressOne,
- "Nothing I guess", L_close;
-
-L_Main4:
- menu
- "Can you explain the Ferry?", L_Explain,
- "About the items you asked me to collect...", L_ProgressTwo,
- "Nothing I guess", L_close;
-
-L_Main5:
- menu
- "Can you explain the Ferry?", L_Explain,
- "Dow you need any more help?", L_RequestTwo,
- "Nothing I guess", L_close;
-
-L_Pirate:
- mes "[George the Pirate]";
- mes "\"Arrrrh! Ye be wearing a pirate's hat!\"";
- goto L_Main;
-
-L_Bandana:
- mes "[George the Pirate]";
- mes "\"Arrrrh! Ye remind me of my old first mate!\"";
- goto L_Main;
-
-L_EyePatch:
- mes "[George the Pirate]";
- mes "\"Arrrrh! Looks like ye lost an eye there!\"";
- goto L_Main;
-
-L_Explain:
- mes "[George the Pirate]";
- mes "\"Arrr matey! I helped pioneer the trade routes between Hurnscald and the rest of the World, so now merchants and adventurers can travel to and fro without any hassle of dodging wolvern, yarr.\"";
- next;
- mes "\"To use the ferry, just 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;
-
-
-L_RequestOne:
- mes "[George the Pirate]";
- mes "\"Roger, eh? Aye, I do need help. If you bring me 30 beers, 50 bottles, and 30 casino coins, maybe I can give you a reward.";
- GEORGE_Quest = 2;
- goto L_close;
-
-L_RequestTwo:
- mes "[George the Pirate]";
- mes "\"Arrr matey! My captain asked me to have you get him some items. Please bring us 50 zombie nachos and 50 lady fingers, my captain likes to snack on those during our long voyages. Oh, and something to read too!\"";
- GEORGE_Quest = 4;
- goto L_close;
-
-L_ProgressOne:
- if (countitem("Beer") < 30)
- goto L_NotEnough;
- if (countitem("BottleOfWater") < 50)
- goto L_NotEnough;
- if (countitem("CasinoCoins") < 30)
- goto L_NotEnough;
- mes "[George the Pirate]";
- mes "\"Yar matey! You have the items I asked for! You have the honor and trust we pirates bestow each other!\"";
- getinventorylist;
- if (@inventorylist_count == 100)
- goto L_TooMuch;
- delitem "Beer", 30;
- delitem "BottleOfWater", 50;
- delitem "CasinoCoins", 30;
- mes "";
- mes "\"Here is a reward for your effort! Now you can be a true buccaneer!\"";
- getitem "SailorHat", 1;
- getexp 5000, 0;
- GEORGE_Quest = 3;
- goto L_close;
-
-L_ProgressTwo:
- if (countitem("ZombieNachos") < 50)
- goto L_NotEnough;
- if (countitem("LadyFingers") < 50)
- goto L_NotEnough;
- if (countitem("ScrollOfPaper") < 1)
- goto L_NotEnough;
- mes "[George the Pirate]";
- mes "\"Arrr! Good job matey! You brought us everything we asked for, even the Maritime Almanac Scroll!\"";
- getinventorylist;
- if (@inventorylist_count == 100)
- goto L_TooMuch;
- delitem "ZombieNachos", 50;
- delitem "LadyFingers", 50;
- delitem "ScrollOfPaper", 1;
- mes "\"My captain wanted me to give this to you as a special reward for your efforts.\"";
- getitem "CaptainsHat", 1;
- getexp 15000, 0;
- GEORGE_Quest = 5;
- goto L_close;
-
-L_NotEnough:
- mes "[George the Pirate]";
- mes "\"Arrr! You did not bring me everything I asked for!\"";
- if (GEORGE_Quest == 2)
- goto L_NotEnoughOne;
- if (GEORGE_Quest == 4)
- goto L_NotEnoughTwo;
- // This shouldn't be necessary as it should *never* be reached, but
- // tmwAthena complains of "implicit fallthrough" and refuses to run
- // without it here. Perhaps I'm doing something wrong? More likely
- // we need to slap some TMW devs.
- goto L_close;
-
-L_NotEnoughOne:
- mes "\"Remember, I need 30 beers, 50 bottles, and 30 casino coins.\"";
- goto L_close;
-
-L_NotEnoughTwo:
- mes "\"Remember, I need 50 zombie nachos, 50 lady fingers, and something to read.\"";
- goto L_close;
-
-L_TooMuch:
- mes "[George the Pirate]";
- mes "\"Err... you do not appear to have enough room for your reward. Please come back once you lighten your load, matey!\"";
- goto L_close;
-
-L_close:
- close;
-}
diff --git a/npc/018-1/_import.txt b/npc/018-1/_import.txt
index ad7c79468..98e287a52 100644
--- a/npc/018-1/_import.txt
+++ b/npc/018-1/_import.txt
@@ -2,3 +2,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/018-1/_mobs.txt",
"npc/018-1/_warps.txt",
+"npc/018-1/george.txt",
diff --git a/npc/018-1/george.txt b/npc/018-1/george.txt
new file mode 100644
index 000000000..63d3a816a
--- /dev/null
+++ b/npc/018-1/george.txt
@@ -0,0 +1,161 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Old pirate with quests. BaseLevel is handled by Paperboy aka. Roger
+
+018-1,26,36,0 script George NPC_GEORGE,{
+ .@q=getequipid(EQI_HEAD_TOP);
+ .@q1=getequipid(EQI_ACC_R);
+ if (.@q == CorsairHat) goto L_Pirate;
+ if (.@q == PirateBandana) goto L_Bandana;
+ if (.@q == RightEyePatch || .@q1 == EyePatch) goto L_EyePatch;
+
+ mesn l("George the Pirate");
+ mesq l("Yar! Do you need something, matey?");
+ goto L_Main;
+
+// Intro dialogs
+L_Pirate:
+ mesn l("George the Pirate");
+ mesq "Arrrrh! Ye be wearing a pirate's hat!");
+ goto L_Main;
+
+L_Bandana:
+ mesn l("George the Pirate");
+ mesq l("Arrrrh! Ye remind me of my old first mate!");
+ goto L_Main;
+
+L_EyePatch:
+ mesn l("George the Pirate");
+ mesq l("Arrrrh! Looks like ye lost an eye there!");
+ goto L_Main;
+
+// Main Menu
+L_Main:
+ .@q=getq(LoFQuest_George);
+
+ menu
+ l("What is this island?"), L_Explain,
+ rif(.@q == 1, l("Actually, I heard from Roger that you may need some help.")), L_RequestOne,
+ rif(.@q == 2, l("About the items you asked me to collect...")), L_ProgressOne,
+ rif(.@q == 3, l("Do you need any more help?")), L_RequestTwo,
+ rif(.@q == 4, l("About the items you asked me to collect...")), L_ProgressTwo,
+ l("Nothing I guess"), L_Close;
+
+// Context menu
+L_Explain:
+ mesn l("George the Pirate");
+ mesq l("Arrr matey! This is @@, yarr.", l("##BSincerity Island##b"));
+ next;
+ mesn l("George the Pirate");
+ mesq l("Nobody lives here for years, arr. Monsters have taken over everything, yarr.");
+ next;
+ mesn l("George the Pirate");
+ mesq l("It is a pirate treasure hideout, yarr arr! If you have a @@ and a @@, you may get luck, yarr!", getitemlink(PirateTreasureMap), getitemlink(IronShovel));
+ next;
+ goto L_Main;
+
+
+// Requests
+L_RequestOne:
+ mesn l("George the Pirate");
+ mesq l("Roger, eh? Aye, I do need help. If you bring me 30 @@, 50 @@, and 30 @@, maybe I can give you a reward.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
+ setq LoFQuest_George, 2;
+ close;
+
+L_RequestTwo:
+ mesn l("George the Pirate");
+ mes "\"Arrr matey! My captain asked me to have you get him some items. Please bring us 50 zombie nachos and 50 lady fingers, my captain likes to snack on those during our long voyages. Oh, and something to read too!\"";
+ setq LoFQuest_George, 4;
+ close;
+
+// Progress Report 1
+L_ProgressOne:
+ if (countitem(Beer) < 30 ||
+ countitem(EmptyBottle) < 50 ||
+ countitem(CasinoCoins) < 30)
+ goto L_NotEnough;
+
+ mesn l("George the Pirate");
+ mesq l("Did you brought everything I ask for?");
+ select
+ l("Yes"),
+ l("Not sure");
+
+ if (@menu == 2)
+ goto L_NotEnough;
+
+ mesn l("George the Pirate");
+ mesq l("Yar matey! You have the items I asked for! You have the honor and trust we pirates bestow each other!");
+
+ inventoryplace SailorHat, 1;
+ delitem Beer, 30;
+ delitem EmptyBottle, 50;
+ delitem CasinoCoins, 30;
+ mes "";
+ mesq l("Here is a reward for your effort! Now you can be a true buccaneer!");
+ getitem SailorHat, 1;
+ getexp 5000, 0;
+ setq LoFQuest_George, 3;
+ goto L_Close;
+
+// Progress Report 2
+L_ProgressTwo:
+ if (countitem(WarlordPlate) < 100 ||
+ countitem(WarlordPlate) < 50 ||
+ countitem(WarlordPlate) < 1)
+ goto L_NotEnough;
+
+ mesn l("George the Pirate");
+ mesq l("Did you brought everything I ask for?");
+ select
+ l("Yes"),
+ l("Not sure");
+
+ if (@menu == 2)
+ goto L_NotEnough;
+
+ mesn l("George the Pirate");
+ mes "\"Arrr! Good job matey! You brought us everything we asked for, even the Maritime Almanac Scroll!\"";
+
+ inventoryplace CorsairHat, 1;
+ delitem WarlordPlate, 50;
+ delitem WarlordPlate, 50;
+ delitem WarlordPlate, 1;
+ mes "\"My captain wanted me to give this to you as a special reward for your efforts.\"";
+ getitem CorsairHat, 1;
+ getexp 15000, 0;
+ setq LoFQuest_George, 5;
+ goto L_Close;
+
+// Fallbacks
+L_NotEnough:
+ mesn l("George the Pirate");
+ mesq l("Arrr! You did not bring me everything I asked for!");
+ if (.@q == 2)
+ goto L_NotEnoughOne;
+ if (.@q == 4)
+ goto L_NotEnoughTwo;
+ close;
+
+L_NotEnoughOne:
+ mesq l("Remember, I need 30 @@, 50 @@, and 30 @@.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
+ goto L_Close;
+
+L_NotEnoughTwo:
+ mesq l("Remember, I need 100 @@, 50 @@, and something interesting to read.", getitemlink(WarlordPlate), getitemlink(CorsairHat));
+ goto L_Close;
+
+L_Close:
+ sailortalk;
+ closedialog;
+ close;
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/items/shovel.txt b/npc/items/shovel.txt
index 7d2cb072d..7c4e68d89 100644
--- a/npc/items/shovel.txt
+++ b/npc/items/shovel.txt
@@ -263,6 +263,9 @@ OnInit:
// Aeros can be used too (for events)
AddDigRect("001-1", 20, 20, 342, 158);
+ // LoF Areas
+ AddDigRect("018-1", 20, 20, 80, 80);
+
OnHour00:
// Clear random treasure
deletearray $@WBT_Random_id;
@@ -287,6 +290,9 @@ OnHour00:
shovel_scatter("007-1", 20, 20, 180, 180, .@Treasure, rand(30,180));
shovel_scatter("011-1", 20, 20, 180, 180, .@Treasure, rand(30,180));
shovel_scatter("015-1", 20, 20, 180, 180, .@Treasure, rand(30,180));
+
+ // Extra burried treasure (25~65 over 3600 tiles: aprox. 0.70% to 1.80%)
+ shovel_scatter("018-1", 20, 20, 80, 80, .@Treasure, rand(25,65));
end;
}