summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2024-05-24 01:24:34 -0300
committerJesusaves <cpntb1@ymail.com>2024-05-24 01:24:34 -0300
commit942cdc08ff09e5177edc30cba1e249565c1b9363 (patch)
treeb10022563f426a62b2bdc142faedc68123e6bee1 /npc
parent6e7b7479f9a5ef967f078b1ffb6b50559cc79436 (diff)
downloadserverdata-942cdc08ff09e5177edc30cba1e249565c1b9363.tar.gz
serverdata-942cdc08ff09e5177edc30cba1e249565c1b9363.tar.bz2
serverdata-942cdc08ff09e5177edc30cba1e249565c1b9363.tar.xz
serverdata-942cdc08ff09e5177edc30cba1e249565c1b9363.zip
Progress with Anselmo's quest. You can now start and finish Hurnscald arc.
UNTESTED, and you not claim the reward for this stage yet.
Diffstat (limited to 'npc')
-rw-r--r--npc/012-1/bot.txt1
-rw-r--r--npc/012-1/dyrinthetraveler.txt1
-rw-r--r--npc/012-1/guards.txt9
-rw-r--r--npc/012-1/gwendolyn.txt1
-rw-r--r--npc/012-1/hinnak.txt1
-rw-r--r--npc/012-1/igor.txt1
-rw-r--r--npc/012-1/jack.txt1
-rw-r--r--npc/012-1/locamit.txt1
-rw-r--r--npc/012-1/luffyx.txt1
-rw-r--r--npc/012-1/mahad.txt1
-rw-r--r--npc/012-1/milly.txt50
-rw-r--r--npc/012-1/shoppakep.txt1
-rw-r--r--npc/012-1/terezin.txt1
-rw-r--r--npc/012-2/helena.txt1
-rw-r--r--npc/012-2/khafar.txt1
-rw-r--r--npc/012-2/melina.txt9
-rw-r--r--npc/012-3/alan.txt1
-rw-r--r--npc/012-4/wyara.txt1
-rw-r--r--npc/012-5/nicholas.txt1
-rw-r--r--npc/012-6/nurse.txt1
-rw-r--r--npc/012-7/airlia.txt1
-rw-r--r--npc/012-7/celestia.txt1
-rw-r--r--npc/016-1/captain.txt1
-rw-r--r--npc/016-1/laranja.txt2
-rw-r--r--npc/016-1/teraa.txt1
-rw-r--r--npc/017-1/inspector.txt56
-rw-r--r--npc/config/inspector.txt145
27 files changed, 238 insertions, 54 deletions
diff --git a/npc/012-1/bot.txt b/npc/012-1/bot.txt
index 3a6422b76..3e4f941c6 100644
--- a/npc/012-1/bot.txt
+++ b/npc/012-1/bot.txt
@@ -8,6 +8,7 @@
// Reward: Mouboo Figurine
012-1,82,59,0 script LOFBot NPC_PLAYER,{
+ inspectorQuest();
.@q=getq(HurnscaldQuest_LOFPass);
if (rand2(1,5) % 2 == 1) {
mesn;
diff --git a/npc/012-1/dyrinthetraveler.txt b/npc/012-1/dyrinthetraveler.txt
index 318ad6ae6..10867809d 100644
--- a/npc/012-1/dyrinthetraveler.txt
+++ b/npc/012-1/dyrinthetraveler.txt
@@ -5,6 +5,7 @@
// The Travelers travel around the world telling stories.
012-1,119,52,0 script Dyrin The Traveler NPC_M_COINKEEPER,{
+ inspectorQuest();
mesn;
if (strcharinfo(0) == $MOST_HEROIC$) mesq l("Wow! Are you @@? Everyone, in every city, talks about you!", $MOST_HEROIC$);
diff --git a/npc/012-1/guards.txt b/npc/012-1/guards.txt
index 45df8c6c0..efd338403 100644
--- a/npc/012-1/guards.txt
+++ b/npc/012-1/guards.txt
@@ -10,6 +10,7 @@
// The Monster King guild have a special menu
if (!$HURNS_LIBDATE && is_master()) goto L_Admus;
if (strcharinfo(2) == "Monster King") goto L_MKControl;
+ inspectorQuest();
mesn;
mesq l("It is %s since the last great attack from the Monster King.", FuzzyTime($HURNS_LIBDATE,1,2));
next;
@@ -556,6 +557,7 @@ function script CheckpointGuard {
}
012-1,81,18,0 script Checkpoint Guard#1 NPC_GUARD2,{
+ inspectorQuest();
CheckpointGuard();
end;
@@ -567,6 +569,7 @@ OnInit:
012-1,26,60,0 script Checkpoint Guard#2 NPC_GUARD1,{
+ inspectorQuest();
CheckpointGuard();
end;
@@ -577,6 +580,7 @@ OnInit:
}
012-1,80,98,0 script Checkpoint Guard#3 NPC_GUARD2,{
+ inspectorQuest();
CheckpointGuard();
end;
@@ -588,6 +592,7 @@ OnInit:
012-1,134,98,0 script Checkpoint Guard#4 NPC_GUARD1,{
+ inspectorQuest();
CheckpointGuard();
end;
@@ -598,6 +603,7 @@ OnInit:
}
012-1,94,56,0 script Guard#012-1.1 NPC_GUARD1,{
+ inspectorQuest();
.@q=getq(HurnscaldQuest_HungryGuard);
if (.@q == 0) {
mesn l("Guard");
@@ -631,7 +637,8 @@ OnInit:
012-1,112,65,0 script Guard#012-1.2 NPC_GUARD2,{
- legiontalk;
+ inspectorQuest();
+ legiontalk();
end;
OnInit:
diff --git a/npc/012-1/gwendolyn.txt b/npc/012-1/gwendolyn.txt
index 42953ddf1..c2a30d01a 100644
--- a/npc/012-1/gwendolyn.txt
+++ b/npc/012-1/gwendolyn.txt
@@ -7,6 +7,7 @@
// Archery Trainer
012-1,88,52,0 script Gwendolyn NPC_BOWMASTER,{
+ inspectorQuest();
.@q=getq(HurnscaldQuest_HarkEye);
.@fbow=getq(HurnscaldQuest_ForestBow);
diff --git a/npc/012-1/hinnak.txt b/npc/012-1/hinnak.txt
index 47b019ce7..6f57bc96e 100644
--- a/npc/012-1/hinnak.txt
+++ b/npc/012-1/hinnak.txt
@@ -5,6 +5,7 @@
// Hurnscald farmer.
012-1,105,30,0 script Hinnak NPC_ORC,{
+ inspectorQuest();
.@q1=getq(HurnscaldQuest_Farmers);
.@q2=getq2(HurnscaldQuest_Farmers);
mesn;
diff --git a/npc/012-1/igor.txt b/npc/012-1/igor.txt
index dfd9b9bc5..d0767da9a 100644
--- a/npc/012-1/igor.txt
+++ b/npc/012-1/igor.txt
@@ -5,6 +5,7 @@
// Igor gives the player latest news on the world
012-1,126,59,0 script Igor NPC_JOURNALMAN,{
+ inspectorQuest();
Journalman(.name$);
OnInit:
diff --git a/npc/012-1/jack.txt b/npc/012-1/jack.txt
index 9169dc8fc..1283ce299 100644
--- a/npc/012-1/jack.txt
+++ b/npc/012-1/jack.txt
@@ -7,6 +7,7 @@
// Jack is Hurnscald Lumberjack
012-1,69,93,0 script Jack NPC_LUMBERJACK,{
+ inspectorQuest();
.@q1=getq(HurnscaldQuest_ForestBow);
//.@q2=getq(HurnscaldQuest_WoodShield);
diff --git a/npc/012-1/locamit.txt b/npc/012-1/locamit.txt
index c4acd9d7e..bcab93a8e 100644
--- a/npc/012-1/locamit.txt
+++ b/npc/012-1/locamit.txt
@@ -24,6 +24,7 @@
}
+ inspectorQuest();
mesn;
mesq l("Hi! Do you want a hair cut?");
diff --git a/npc/012-1/luffyx.txt b/npc/012-1/luffyx.txt
index d2cb2395a..f4df32525 100644
--- a/npc/012-1/luffyx.txt
+++ b/npc/012-1/luffyx.txt
@@ -5,6 +5,7 @@
// Hunt mouboos, Summer Quest
012-1,68,74,0 script Luffyx NPC_RAIJIN,{
+ inspectorQuest();
.@q=getq(SQuest_Summer);
mesn;
if (season() == SUMMER) {
diff --git a/npc/012-1/mahad.txt b/npc/012-1/mahad.txt
index e37cc6902..31679fcdd 100644
--- a/npc/012-1/mahad.txt
+++ b/npc/012-1/mahad.txt
@@ -9,6 +9,7 @@
// Note: You may get a Grass Carp (worth 100 GP) instead. Bottle is lost? O.o
012-1,117,54,0 script Mahad NPC_PLAYER,{
+ inspectorQuest();
mesn;
mes l("I can fill your bottle with water for only @@ gp the bottle.", .price);
mes l("After all, I am the Well Master!");
diff --git a/npc/012-1/milly.txt b/npc/012-1/milly.txt
index 1935858e1..24761da69 100644
--- a/npc/012-1/milly.txt
+++ b/npc/012-1/milly.txt
@@ -6,14 +6,10 @@
// She controls "World's Hero quest", which is now her MAIN QUEST;
// But maybe later she'll get nodes about Khafar etc but not like in TMW
//
-// Her reward is a Plush Mouboo. Along about 1000 Mouboo Figurines, and whatever
-// grand reward for completing Main Storyline, and a mega blaster level at magic,
-// and probably within another general quest, YOU CAN SUMMON THE MOUBOOTAUR
-// Eh... I think you need all seven Mana Fragments to control it, though.
-// Without these fragments, you'll just face the baddest boss fight ever and die
-// miserably, because the moubootaur is... well... Simply put... THE MOUBOOTAUR.
+// Her reward is a Plush Mouboo.
012-1,111,66,0 script Milly NPC_TEDDYGIRL,{
+ inspectorQuest();
.@q=getq(General_Milly);
mesn;
if (.@q >= 1) mesq lg("Hello my hero!");
@@ -53,32 +49,15 @@ L_Finish:
mesn;
mesq lg("Wo-wo-wow! You really did it! You're the best!");
next;
+ inventoryplace PlushMouboo, 1, SupremeGift, 1;
+ setq General_Milly, 1;
+ getitem PlushMouboo, 1;
+ getitem SupremeGift, 1;
+ // To complete all quests, you need to be at least Lv 95
+ getexp 1000000, 16000;
+ Zeny += 25000;
mesn;
- mesq l("But the game still is in development, so not every quest was added yet.");
- next;
- mesn;
- mesq l("Do you want to get a reward nonetheless? You will lose @@.", b(l("any planned experience and gold reward.")));
- mesc l("Also note that, under team's discretion, all rewards from this quest might be erasen along quest state.");
- mesc l("This would mean you might need to complete this quest again in the future.");
- next;
- // Debug
- percentheal 100, 100;
- sc_start SC_ATTHASTE_POTION1, 1800000, 30;
- /*
- mesn;
- mesc l("Saulc was here"), 1;
- close;
- */
- // / Debug
- if (askyesno() == ASK_YES) {
- mes "";
- inventoryplace PlushMouboo, 1;
- setq General_Milly, 1;
- getitem PlushMouboo, 1;
- getexp 100, 100; // No, not really.
- mesn;
- mesq lg("Here you go, miss! Thanks for being my hero! <3", "Here you go, mister! Thanks for being my hero! <3");
- }
+ mesq lg("Here you go, miss! Thanks for being my hero! <3", "Here you go, mister! Thanks for being my hero! <3");
close;
L_Feat:
@@ -99,8 +78,9 @@ L_Feat:
msObjective(EPISODE_WINNER, l("* Impress %s", l("The Doctor")));
msObjective(FORT_1ST_VISIT, l("* Impress %s", l("The Alliance")));
msObjective(MOUBOOTAUR_WINNER, l("* Impress %s", l("Andrei Sakar")));
+ msObjective(MK_WINNER, l("* Impress %s", l("the Monster King")));
mes "";
- mesc l("You need to finish at least %d/%d tasks.", 7, 9);
+ mesc l("You need to finish at least %d/%d tasks.", 9, 10);
.@t = 0;
if (YETIKING_WINNER) .@t += 1;
if (HEROESHOLD_WINNER) .@t += 1;
@@ -111,7 +91,8 @@ L_Feat:
if (EPISODE_WINNER) .@t += 1;
if (FORT_1ST_VISIT) .@t += 1;
if (MOUBOOTAUR_WINNER) .@t += 1;
- if (.@t >= 7) goto L_Epic;
+ if (MK_WINNER) .@t += 1;
+ if (.@t >= 9) goto L_Epic;
close;
L_Epic:
@@ -141,7 +122,8 @@ L_Epic:
inventoryplace SunnyCrystal, 1;
setq General_Milly, 2;
getitem SunnyCrystal, 1;
- getexp 100, 100; // No, not really.
+ // To complete all quests, you need to be at least Lv 95
+ getexp 1000000, 16000;
mesn;
mesq lg("Here you go, miss! Thanks for being my hero! <3", "Here you go, mister! Thanks for being my hero! <3");
}
diff --git a/npc/012-1/shoppakep.txt b/npc/012-1/shoppakep.txt
index 8c5f4ba17..15b969aab 100644
--- a/npc/012-1/shoppakep.txt
+++ b/npc/012-1/shoppakep.txt
@@ -5,6 +5,7 @@
// Random Hurnscald Shopper with random overpriced stuff and gifts
012-1,58,64,0 script Shoppa Kep NPC_SHOPPAKEP,{
+ inspectorQuest();
mesn;
mesq lg("Welcome! Only the finest wares!");
next;
diff --git a/npc/012-1/terezin.txt b/npc/012-1/terezin.txt
index 82a5d096a..f53295848 100644
--- a/npc/012-1/terezin.txt
+++ b/npc/012-1/terezin.txt
@@ -6,6 +6,7 @@
// NPC_MONA?
012-1,110,41,0 script Tezzerin NPC_ELVEN_FEMALE_READING,{
+ inspectorQuest();
.@q1=getq(HurnscaldQuest_Farmers);
.@q2=getq2(HurnscaldQuest_Farmers);
if (strcharinfo(0) == $MOST_HEROIC$) mesn;
diff --git a/npc/012-2/helena.txt b/npc/012-2/helena.txt
index 79e7edd5e..7d73c8fa0 100644
--- a/npc/012-2/helena.txt
+++ b/npc/012-2/helena.txt
@@ -13,6 +13,7 @@
// q3 -> Bandit Hood Timer
012-2,47,40,0 script Helena NPC_FEMALE,{
+ inspectorQuest();
.@q=getq(HurnscaldQuest_Bandits);
// Stage 1: Level 30, collect Treasure Key
diff --git a/npc/012-2/khafar.txt b/npc/012-2/khafar.txt
index 084ac29d1..47ad46e33 100644
--- a/npc/012-2/khafar.txt
+++ b/npc/012-2/khafar.txt
@@ -14,6 +14,7 @@
012-2,54,46,2 script Khafar NPC_ORC,{
function MustDrink;
+ inspectorQuest();
mesc l("You stand before a battle-scarred, darkly tanned warrior, brimming with muscles.");
mesc l("Just looking at him you smell danger, adventure, excitement...");
next;
diff --git a/npc/012-2/melina.txt b/npc/012-2/melina.txt
index ac183a9a6..2deb73e83 100644
--- a/npc/012-2/melina.txt
+++ b/npc/012-2/melina.txt
@@ -8,11 +8,12 @@
// Controls stock and beer prices
012-2,54,43,0 script Melina NPC_FEMALE,{
+ inspectorQuest();
-hello;
-npcshopattach(.name$);
-shop .name$;
-close;
+ hello();
+ npcshopattach(.name$);
+ shop .name$;
+ close;
OnTimer1000:
domovestep;
diff --git a/npc/012-3/alan.txt b/npc/012-3/alan.txt
index b1a5b0c03..3fb383e19 100644
--- a/npc/012-3/alan.txt
+++ b/npc/012-3/alan.txt
@@ -5,6 +5,7 @@
// Alan is Hurnscald's bowmaster. He may craft the Forest Bow, and sell ammo.
012-3,44,40,0 script Alan NPC_BOWMASTER,{
+ inspectorQuest();
.@q=getq(HurnscaldQuest_ForestBow);
.@q2=getq2(HurnscaldQuest_ForestBow);
.@q3=getq3(HurnscaldQuest_ForestBow);
diff --git a/npc/012-4/wyara.txt b/npc/012-4/wyara.txt
index cac765c8a..a118cc647 100644
--- a/npc/012-4/wyara.txt
+++ b/npc/012-4/wyara.txt
@@ -9,6 +9,7 @@
// Reset must be turned in function
012-4,29,28,0 script Wyara NPC_FEMALE,{
+ inspectorQuest();
speech S_LAST_NEXT,
l("I am @@, an alchemist specialized in reset potions.", .name$);
diff --git a/npc/012-5/nicholas.txt b/npc/012-5/nicholas.txt
index 650751f14..6facfcc60 100644
--- a/npc/012-5/nicholas.txt
+++ b/npc/012-5/nicholas.txt
@@ -20,6 +20,7 @@
// Originals: Setzer, Steel Shield, Chain Mail, Light Platemail, Warlord Plate, Warlord Boots
012-5,36,26,0 script Nicholas NPC_NICHOLAS,{
+ inspectorQuest();
goto L_Menu;
// blacksmith_header()
diff --git a/npc/012-6/nurse.txt b/npc/012-6/nurse.txt
index 8e8d9af96..7f95017bb 100644
--- a/npc/012-6/nurse.txt
+++ b/npc/012-6/nurse.txt
@@ -10,6 +10,7 @@
// Status, Next Attempt Timer
012-6,56,67,6 script Hurnscald's Nurse NPC_FEMALE,{
+ inspectorQuest();
.@q2=getq2(HurnscaldQuest_BloodDonor);
if (.@q2 > gettimetick(2)) {
npctalk3 l("You can donate blood again in %s", FuzzyTime(.@q2));
diff --git a/npc/012-7/airlia.txt b/npc/012-7/airlia.txt
index 9b0eaf5ed..7949ab531 100644
--- a/npc/012-7/airlia.txt
+++ b/npc/012-7/airlia.txt
@@ -14,6 +14,7 @@
// NOTE: Here, 'main storyline' is character story, do not mistake with world main storyline.
012-7,52,58,0 script Airlia NPC_ELF_F,{
+ inspectorQuest();
.@q1=getq(HurnscaldQuest_Farmers);
.@n = getq(General_Narrator);
if (strcharinfo(0) == $MOST_HEROIC$) npctalk3 l("Ah, if it isn't @@? You're the talk of the town!", $MOST_HEROIC$);
diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt
index b49b52a8b..a453a062e 100644
--- a/npc/012-7/celestia.txt
+++ b/npc/012-7/celestia.txt
@@ -8,6 +8,7 @@
012-7,35,49,0 script Celestia NPC_ELF_F,{
+ inspectorQuest();
.@q1=getq(HurnscaldQuest_Celestia);
.@q2=getq(HurnscaldQuest_TeaParty);
mesn;
diff --git a/npc/016-1/captain.txt b/npc/016-1/captain.txt
index c6f119817..5421d01a3 100644
--- a/npc/016-1/captain.txt
+++ b/npc/016-1/captain.txt
@@ -5,6 +5,7 @@
// Temporary, placeholder.
016-1,19,29,0 script Captain NPC_NARD,{
+ inspectorQuest();
.@price=410;
if (BaseLevel < 20 && !REBIRTH && !countitem(MirrorLakeArmor))
goto L_TooWeak;
diff --git a/npc/016-1/laranja.txt b/npc/016-1/laranja.txt
index 0693d432f..ebdb02ab8 100644
--- a/npc/016-1/laranja.txt
+++ b/npc/016-1/laranja.txt
@@ -6,7 +6,7 @@
// Laranja, orange in portuges is a orange dye seller in ship
016-1,25,24,0 script Laranja NPC_FEMALE,{
-
+ inspectorQuest();
mesn;
mesq l("I'm Laranja.");
next;
diff --git a/npc/016-1/teraa.txt b/npc/016-1/teraa.txt
index 3cad0c31f..f94198dde 100644
--- a/npc/016-1/teraa.txt
+++ b/npc/016-1/teraa.txt
@@ -5,6 +5,7 @@
// Tortuga Renting (var MOUBOO_RENTTIME )
016-1,32,28,0 script Teraa NPC_ELVEN_MAN_STANDING,{
+ inspectorQuest();
TortugaRent();
closeclientdialog;
goodbye();
diff --git a/npc/017-1/inspector.txt b/npc/017-1/inspector.txt
index f5d010903..ce0bba1ae 100644
--- a/npc/017-1/inspector.txt
+++ b/npc/017-1/inspector.txt
@@ -15,6 +15,7 @@
if (.@q == 0) goto L_Start;
if (.@q == 1) goto L_Arc1;
if (.@q == 2) goto L_Arc2;
+ if (.@q == 3) goto L_Arc3;
goto L_Close;
L_Start:
@@ -59,7 +60,7 @@ L_Arc1:
mesq l("Considering the direction they came from, we should check Hurnscald next. Ask them if they saw a squirrel robbing Golden Apples, or anything which could help.");
next;
mesn;
- mesq l("Ah, and you don't need to ask all of them, that would be a real bother. Ask maybe %d, and try to prioritize shop keepers, unless you feel you found a trail. You can also ask inside La Marine.", 7);
+ mesq l("Ah, and you don't need to ask all of them, that would be a real bother. Ask around, and try to prioritize shop keepers, unless you feel you found a trail. You can also ask inside La Marine.");
next;
mesn;
mesq l("My authority won't do you any good, but we have good relations with Hurnscald so you should have no problem. Good luck, %s!", strcharinfo(0));
@@ -79,30 +80,61 @@ L_Arc1:
.@UNDERGROUND_PASS = 32; // Know the route used in Dimond
.@RAT_RULEOUT = 64; // Ruled out the possibility of rats
.@PORTAL_USE = 128; // Concluded the Portal was used by thief
- .@TROUPE_DISGUISE = 256; // Learned about thief run-in with musics (no noise)
+ .@TROUPE_DISGUISE = 256; // Learned about thief "run-in" with musics
.@SCRATCH_EVIDENCE = 512; // Learned about the scratch marks left by thief
- if (!(.@q2 & THIEF_DESCRIPTION))
+ if (!(.@q2 & .@THIEF_DESCRIPTION))
mesc l("- I don't know how the thief looks like.");
- if (!(.@q2 & TIME_OF_THEFT))
+ if (!(.@q2 & .@TIME_OF_THEFT))
mesc l("- I don't know when the theft happened.");
- if (!(.@q2 & VICTIM_CHEF))
+ if (!(.@q2 & .@VICTIM_CHEF))
mesc l("- I don't know the victims of the thievery.");
- if (!(.@q2 & UNDERGROUND_PASS))
+ if (!(.@q2 & .@UNDERGROUND_PASS))
mesc l("- I don't know how the theft happened.");
- if (!(.@q2 & RAT_RULEOUT))
+ if (!(.@q2 & .@RAT_RULEOUT))
mesc l("- I don't know the possible culprits for this.");
- if (!(.@q2 & PORTAL_USE))
+ if (!(.@q2 & .@PORTAL_USE))
mesc l("- I don't know if the thief is from LoF or not.");
- if (!(.@q2 & SCRATCH_EVIDENCE))
+ if (!(.@q2 & .@SCRATCH_EVIDENCE))
mesc l("- I don't know any supporting evidence from the crome.");
}
next;
goto L_Close;
L_Arc2:
- mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1;
+ .@q2 = getq2(LoFQuest_Inspector);
+ if (.@q2 == 63 || .@q2 == 127) {
+ mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1;
+ } else {
+ .@LA_MARINE = 1; // Asked around La Marine
+ .@SHOPKEEPERS = 2; // Asked around shops
+ .@GUARDS = 4; // Asked to guards or police
+ .@CIVILIANS = 8; // Asked around to some civilians
+ .@AUTHORITY = 16; // Asked around to e.g. Airlia or Celeste
+ .@FARMERS = 32; // Asked around to those in the camps
+ .@p = bitmask_count(.@q2);
+ // Kfahr correction
+ if (.@q2 & 64)
+ .@p -= 1;
+ mesn;
+ mesq l("Keep investigating. You've talked to %d/%d groups in Hurnscald thus far.", .@p, 6);
+ if (!(.@q2 & .@LA_MARINE))
+ mesc l("- Please collect reports from La Marine.");
+ if (!(.@q2 & .@SHOPKEEPERS))
+ mesc l("- Please collect reports from the shop keepers.");
+ if (!(.@q2 & .@GUARDS))
+ mesc l("- Please collect reports from the guards and police.");
+ if (!(.@q2 & .@CIVILIANS))
+ mesc l("- Please collect reports from the civilians.");
+ if (!(.@q2 & .@AUTHORITY))
+ mesc l("- Please collect reports from Hurnscald authorities.");
+ if (!(.@q2 & .@FARMERS))
+ mesc l("- Please collect reports from the farmers.");
+ }
next;
- if (!is_staff()) goto L_Close; // FIXME
+ goto L_Close;
+
+L_Arc3:
+ if (!is_staff()) end;
//...
// ... ... ... ......
mesn;
@@ -113,6 +145,8 @@ L_Arc2:
next;
mesn;
mesq l("But be careful, they won't like an inspector snooping there.");
+ getexp 60000, 600;
+ setq LoFQuest_Inspector, 3, 0;
next;
goto L_Close;
diff --git a/npc/config/inspector.txt b/npc/config/inspector.txt
index b165e4a1c..b0665bc33 100644
--- a/npc/config/inspector.txt
+++ b/npc/config/inspector.txt
@@ -14,6 +14,7 @@ function script inspectorQuest {
// Check if you are in the right map for the right stage to go
if (compare(getmap(), "017") && .@q == 1) .@go=true;
if (compare(getmap(), "012") && .@q == 2) .@go=true;
+ if (compare(getmap(), "016") && .@q == 2) .@go=true;
if (compare(getmap(), "009") && .@q == 3) .@go=true;
// If you're not, return. Otherwise, ask the question.
if (!.@go) return;
@@ -25,8 +26,8 @@ function script inspectorQuest {
return;
}
/*
- // Stage 1: (24+6 = 30 NPCs)
- // Stage 2: TODO
+ // Stage 1: (24+6 = 30 NPCs) (10 Nodes)
+ // Stage 2: (25+8 = 33 NPCs) ( 6 Nodes)
///////////////////////////////
*/
mes "";
@@ -43,6 +44,14 @@ function script inspectorQuest {
.@TROUPE_DISGUISE = 256; // Learned about thief run-in with musics (no noise)
.@SCRATCH_EVIDENCE = 512; // Learned about the scratch marks left by thief
// Stage 2 - Hurnscald
+ .@LA_MARINE = 1; // Asked around La Marine
+ .@SHOPKEEPERS = 2; // Asked around shops
+ .@GUARDS = 4; // Asked to guards or police
+ .@CIVILIANS = 8; // Asked around to some civilians
+ .@AUTHORITY = 16; // Asked around to e.g. Airlia or Celeste
+ .@FARMERS = 32; // Asked around to those in the camps
+ .@KHAFAR = 64; // Bonus, not necessary
+ // Stage 3 - Halinarzo
// TODO
///////////////////////////////
// All NPCs list
@@ -86,7 +95,7 @@ function script inspectorQuest {
mesn;
mesq l("About the scratch marks? I can give you a file about them. We didn't paid much mind to it, they're likely caused by a small animal such as a squirrel, a fox, a cat, or a dog.");
setq2 LoFQuest_Inspector, .@q2 | .@SCRATCH_EVIDENCE;
- } else if (compare(.@npc$, "Guard")) {
+ } else if (getmap() == "017-1" && compare(.@npc$, "Guard")) {
// List some excluded NPCs. Could use miller rand to be predictable but...
mesn;
mesq l("I know nothing about the robberies, sorry.");
@@ -333,6 +342,136 @@ function script inspectorQuest {
mesn;
mesq l("The trick is figuring out which kind of cheese was stolen. Once you know that, I guess either Ace Ventura or Erik could help you to thin out the list.");
setq2 LoFQuest_Inspector, .@q2 | .@VICTIM_LAB;
+ // Second Phase - 012 and 016 (22+8 NPCs) (+3 in La Marine)
+ } else if (.@npc$ == "LOFBot") {
+ mesn;
+ mesq l("I would love to help my friends from the Land of Fire, but... I've seen no such thing.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Dyrin The Traveler") {
+ mesn;
+ mesq l("While I can totally believe a squirrel robbing cheese, the \"and it left a golden apple\" is complete madness. Stop wasting my time.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Lieutenant Paul") {
+ mesn;
+ mesq l("While Hurnscald Guard and Police would love to cooperate in an official investigation from the Land of Fire, we neither saw nor heard about such thing. You can ask %s or the other guards, but I believe the answer will be the same.", l("Helena"));
+ setq2 LoFQuest_Inspector, .@q2 | .@GUARDS;
+ } else if (.@npc$ == "Helena") {
+ mesn;
+ mesq l("While Hurnscald Guard and Police would love to cooperate in an official investigation from the Land of Fire, we neither saw nor heard about such thing. You can ask %s or the other guards, but I believe the answer will be the same.", l("Lieutenant Paul"));
+ setq2 LoFQuest_Inspector, .@q2 | .@GUARDS;
+ } else if (getmap() == "012-1" && compare(.@npc$, "Guard")) {
+ mesn;
+ mesq l("Hurnscald Guard and Police will obviously cooperate with the Land of Fire authorities by reporting that, to the best of our knowledge, no such thing was seen in Hurnscald.");
+ setq2 LoFQuest_Inspector, .@q2 | .@GUARDS;
+ } else if (.@npc$ == "Gwendolyn") {
+ mesn;
+ mesq l("I'm no fool. I always see squirrels robbing the unaware. Sometimes they steal cheese dropped in the ground. But nothing like you want me to believe.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Igor") {
+ mesn;
+ mesq l("Oh, please, I don't publish lies in my news! Come with a more convincing lie next time you want to appear in the newspaper!");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Jack") {
+ mesn;
+ mesq l("I've seen living wood, but not smart animals doing such ridiculous journey to play a prank. Unless you are the animal doing the prank here?");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Locamit") {
+ mesn;
+ mesq lg("Don't be ridiculous. Extraordinary claims require extraordinary proof, anyway. Now go away, you liar.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Luffyx") {
+ mesn;
+ mesq l("The summer sun must be playing tricks on your head, my friend. I know of no such thing, and I've been on watch all day long.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Milly") {
+ mesn;
+ mesq lg("It's not good to lie, miss.", "It's not good to lie, mister.");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ } else if (.@npc$ == "Hurnscald's Nurse") {
+ mesn;
+ mesq l("For hallucinations I'll suggest... this injection here. Heya!");
+ mesc l("Ouch!");
+ setq2 LoFQuest_Inspector, .@q2 | .@CIVILIANS;
+ percentheal -5, -10;
+ } else if (.@npc$ == "Hinnak") {
+ mesn;
+ mesq l("I only saw... Yes you can tell... I ONLY SAW PINKIES! And they weren't stealing some foreigner garbage, but MY CROPS! One day, I swear one day I'll get rid of them!");
+ setq2 LoFQuest_Inspector, .@q2 | .@FARMERS;
+ } else if (.@npc$ == "Tezzerin") {
+ mesn;
+ mesq l("Oh my, and I thought ye young'uns were immune to dementia... There are only Pinkies around here, child.");
+ setq2 LoFQuest_Inspector, .@q2 | .@FARMERS;
+ } else if (.@npc$ == "Mahad") {
+ mesn;
+ mesq l("There was no \"smart small animal\" trying to purchase anything here. But if I may, drinking water may help your eyesight! I can make a promotion for you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@SHOPKEEPERS;
+ } else if (.@npc$ == "Shoppa Kep") {
+ mesn;
+ mesq l("There was no \"smart small animal\" trying to purchase anything here. But if I may, these cotton shirts can do wonders to your lack of fashion! I can make a promotion for you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@SHOPKEEPERS;
+ } else if (.@npc$ == "Alan") {
+ mesn;
+ mesq l("There was no \"smart small animal\" trying to purchase anything here. But if I may interest you in a new bow, you might be able to hunt them down! I can make a promotion for you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@SHOPKEEPERS;
+ } else if (.@npc$ == "Nicholas") {
+ mesn;
+ mesq l("There was no \"smart small animal\" trying to purchase anything here. But if I may interest you in a new dagger or short sword, you might be able to hunt them down! I can make a promotion for you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@SHOPKEEPERS;
+ } else if (.@npc$ == "Wyara") {
+ mesn;
+ mesq l("There was no \"smart small animal\" trying to purchase anything here. But if I may reset your stats, you might be able to raise your intelligence to don't be fooled with such fairy tales! I can make a promotion for you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@SHOPKEEPERS;
+ } else if (.@npc$ == "Airlia") {
+ mesn;
+ mesq l("We had bandits targeting the bar, but I can assure it is unrelated to your current case.");
+ next;
+ mesn;
+ mesq l("I can ask the guards to be on lookout, but... Well, while squirrels are known for stealing things, what you imply is too far fetched. Weren't you a LoF official, I would likely have thrown you out the door for wasting my time.");
+ next;
+ mesn;
+ mesq l("So rest assured, what craziness is happening at Land of Fire has nothing to do with Hurnscald.");
+ setq2 LoFQuest_Inspector, .@q2 | .@AUTHORITY;
+ } else if (.@npc$ == "Celestia") {
+ mesn;
+ mesq l("Well, we all know Lalica is a powerful witch from the Land of Fire, are you sure she isn't involved?");
+ next;
+ mesn;
+ mesq l("Because your story is as crazy as Pyndragon's inventions, like staffs which shot or staffs which glow. Regardless of whatever he dubbed both.");
+ next;
+ mesn;
+ mesq l("In any case, rest assured the craziness is likely contained to the Land of Fire and we'll let you know if this changes.");
+ setq2 LoFQuest_Inspector, .@q2 | .@AUTHORITY;
+ } else if (.@npc$ == "Captain") {
+ mesn;
+ mesq l("Lots of pet owners bring their animals for a ride, but unlike old Nard, we verify for stoaways often. So if it was a pet, it definitely had an owner.");
+ next;
+ mesn;
+ mesq l("All pets are also capable of looting items and dropping items as well. I'm repeating this because I know if you truly came from LoF, then you certainly talked with Ace Ventura and know it couldn't have been a pet.");
+ next;
+ mesn;
+ mesq l("So whoever stole Dimond's Cove did not use my ship, of that much I can assure you.");
+ setq2 LoFQuest_Inspector, .@q2 | .@LA_MARINE;
+ } else if (.@npc$ == "Laranja") {
+ mesn;
+ mesq l("I've been looking around all day and night to sell my father's %s, so I remember roughly everyone who have been on this ship.", getitemlink(OrangeDye));
+ next;
+ mesn;
+ mesq l("And I can say no one matching your description was here today or yesterday or the day before. Sorry.");
+ setq2 LoFQuest_Inspector, .@q2 | .@LA_MARINE;
+ } else if (.@npc$ == "Teraa") {
+ mesn;
+ mesq l("Sorry, I only have interest in Tortugas, so I didn't paid any attention. Speaking on which... are you interested in renting one?");
+ } else if (.@npc$ == "Melina") {
+ mesn;
+ mesq l("Sorry, I was busy bringing drinks all day. Well, given your story, you're clearly drunk, but given how out of it you are, I'll advise drinking our %s instead. I promise it'll have less collateral effects than whatever you had!", getitemlink(Beer));
+ } else if (.@npc$ == "Khafar") {
+ mesn;
+ mesq l("HAHAHAHAH, that's a nice story! Really funny, too! I really should buy you a beer for the excellent story.");
+ if (!(.@q2 & .@KHAFAR)) {
+ inventoryplace Beer, 1;
+ setq2 LoFQuest_Inspector, .@q2 | .@KHAFAR;
+ getitem Beer, 1;
+ }
} else {
Exception(sprintf("Oops, unhandled NPC at investigation (typo)! %s was not found on stage %d <= report this!", .@npc$, .@q), RB_SPEECH|RB_PLEASEREPORT);
}