summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2023-10-28 19:23:27 -0300
committerJesusaves <cpntb1@ymail.com>2023-10-28 19:23:27 -0300
commitc0337b2a6498eb75a9e4e0188b947a258961f953 (patch)
treefca7b2ab773afa709dfb1588d6ac239c7d798680
parentd4a359b7bd7951afa7f462dcf9467e5272bda95a (diff)
downloadserverdata-c0337b2a6498eb75a9e4e0188b947a258961f953.tar.gz
serverdata-c0337b2a6498eb75a9e4e0188b947a258961f953.tar.bz2
serverdata-c0337b2a6498eb75a9e4e0188b947a258961f953.tar.xz
serverdata-c0337b2a6498eb75a9e4e0188b947a258961f953.zip
Allow to exchange Wumpus Egg for the Sunny Crystal, as per the official design.
Prepare the Gemini Quest extension after MK is dead (nothing happens yet).
-rw-r--r--db/constants.conf6
-rw-r--r--npc/014-2-2/valia.txt2
-rw-r--r--npc/023-3-1/logic.txt20
-rw-r--r--npc/027-0/emma.txt13
-rw-r--r--npc/027-0/enrique.txt12
-rw-r--r--npc/034-2/gemini.txt2
-rw-r--r--npc/034-4/exit.txt9
-rw-r--r--npc/functions/mkbot.txt11
8 files changed, 67 insertions, 8 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 5aef9ce39..061473252 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1967,6 +1967,7 @@ constants_db: {
NPC_EURNI: 462
NPC_TONORI_GUARD_MALE: 463
NPC_TONORI_GUARD_FEMALE: 464
+ NPC_ISBAMUTH: 465
NPC_MONSTERKING: 500
NPC_AIRSHIP: 501
@@ -2159,6 +2160,11 @@ constants_db: {
COLLECT_ALL: 262144
// Maximum 32 collectibles, currently used: 19
+ comment__: "Misc Flags enum"
+ FLAG_NONE: 0
+ FLAG_MKFIRSTBLOOD: 1
+ FLAG_WUMPUSEGG: 2
+
comment__: "Monster King Events"
MK_NONE: 0
MK_LOCKED: 1
diff --git a/npc/014-2-2/valia.txt b/npc/014-2-2/valia.txt
index f954ad2ca..ff52a1f49 100644
--- a/npc/014-2-2/valia.txt
+++ b/npc/014-2-2/valia.txt
@@ -13,6 +13,8 @@
function script GeminiCheck {
.@st = getarg(0, 0);
if (getq(General_Narrator) < 16 || @mystatus < .@st) {
+ if (!@mystatus && .@st > 1)
+ consolebug("%s mystatus zeroed for Status %d", strcharinfo(0), .@st);
warp "Save", 0, 0;
dispbottom l("You don't feel so well... And then, you're dead.");
die();
diff --git a/npc/023-3-1/logic.txt b/npc/023-3-1/logic.txt
index 3a58013b0..68d391329 100644
--- a/npc/023-3-1/logic.txt
+++ b/npc/023-3-1/logic.txt
@@ -10,6 +10,8 @@
end;
OnTouch:
+ if (instance_id() < 0)
+ cwarp "014-2-2", 35, 20;
.@m$=getmap();
.@n=getq(General_Narrator);
.@q=getq(FrostiaQuest_Homunculus);
@@ -36,6 +38,8 @@ OnTouch:
023-3-1,45,80,0 script #Exit02331 NPC_HIDDEN,1,0,{
end;
OnTouch:
+ if (instance_id() < 0)
+ cwarp "014-2-2", 35, 20;
.@n=getq(General_Narrator);
.@q=getq3(FrostiaQuest_Homunculus);
// Cheater Detected
@@ -305,3 +309,19 @@ OnTimerQuit:
+023-3-1,45,33,0 script Isbamuth NPC_ISBAMUTH,{
+ mesn;
+ mesq l("I lost interest in you. Don't bother me - leave from where you've came.");
+ mesc l("Maybe if NetSysFire was around, she would finish coding this NPC.");
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+OnInstanceInit:
+ disablenpc instance_npcname(.name$);
+ end;
+}
+
diff --git a/npc/027-0/emma.txt b/npc/027-0/emma.txt
index a44aa570e..e5fa74f57 100644
--- a/npc/027-0/emma.txt
+++ b/npc/027-0/emma.txt
@@ -11,6 +11,8 @@
academicrank(), fnum(MAGIC_RP));
if (!MAGIC_LVL)
close;
+ if (countitem(WumpusEgg) && !(FLAGS & FLAG_WUMPUSEGG))
+ mesq l("OMG, that - that is a %s! I've been looking for scrambled eggs. I offer you a %s for it.", getitemlink(WumpusEgg), getitemlink(SunnyCrystal));
next;
mesn;
mesq l("I'm currently doing tutorship for students who are... falling behind %%p");
@@ -34,8 +36,17 @@
l("30 minutes"), 30,
l("1 hour"), 60,
l("2 hours"), 120,
- rif(abizit() == 5 && MAGIC_LVL > 3, l("Show me something more advanced!")), -1;
+ rif(abizit() == 5 && MAGIC_LVL > 3, l("Show me something more advanced!")), -1,
+ rif(countitem(WumpusEgg) && !(FLAGS & FLAG_WUMPUSEGG), l("I want to trade the Wumpus Egg!")), -252;
mes "";
+ if (@menuret == -252) {
+ delitem WumpusEgg, 1;
+ getitem SunnyCrystal, 1;
+ FLAGS = FLAGS | FLAG_WUMPUSEGG;
+ mesn;
+ mesq l("Done and done. Have fun!");
+ close;
+ }
if (@menuret < 0) {
goto L_Advanced;
}
diff --git a/npc/027-0/enrique.txt b/npc/027-0/enrique.txt
index 11bacac9f..bd0a33ee9 100644
--- a/npc/027-0/enrique.txt
+++ b/npc/027-0/enrique.txt
@@ -11,6 +11,8 @@
academicrank(), fnum(MAGIC_RP));
if (!MAGIC_LVL)
close;
+ if (countitem(WumpusEgg) && !(FLAGS & FLAG_WUMPUSEGG))
+ mesq l("OMG, that - that is a %s! I've been looking for that reagent. I offer you a %s for it.", getitemlink(WumpusEgg), getitemlink(SunnyCrystal));
do
{
next;
@@ -23,7 +25,8 @@
l("Who are the most famous scholars?"),
rif(!ACADEMIC_RANK, l("I would like to enroll!")),
l("What counts for titulation? Could you give me examples?"),
- rif(getskilllv(TMW2_STUDY) < ACADEMIC_RANK, l("I would like to learn a new skill!"));
+ rif(getskilllv(TMW2_STUDY) < ACADEMIC_RANK, l("I would like to learn a new skill!")),
+ rif(countitem(WumpusEgg) && !(FLAGS & FLAG_WUMPUSEGG), l("I want to trade the Wumpus Egg!"));
mes "";
switch (@menu) {
case 1:
@@ -169,6 +172,13 @@
mesq l("Use its powers for good!");
}
break;
+ case 10:
+ delitem WumpusEgg, 1;
+ getitem SunnyCrystal, 1;
+ FLAGS = FLAGS | FLAG_WUMPUSEGG;
+ mesn;
+ mesq l("Done and done. Have fun!");
+ break;
}
} while (@menu != 1);
close;
diff --git a/npc/034-2/gemini.txt b/npc/034-2/gemini.txt
index ca8a3ae30..882cfa8c0 100644
--- a/npc/034-2/gemini.txt
+++ b/npc/034-2/gemini.txt
@@ -91,7 +91,7 @@ OnTouch:
}
-// Cell Doors
+// Cell Doors (FIXME: Why not duplicates?)
034-2,58,100,0 script Cell Door#G01 NPC_NO_SPRITE,{
if (instance_id() < 0 || getcharid(1) < 1) end;
GeminiCheck(7);
diff --git a/npc/034-4/exit.txt b/npc/034-4/exit.txt
index 07d96ea0b..ac33ac343 100644
--- a/npc/034-4/exit.txt
+++ b/npc/034-4/exit.txt
@@ -39,8 +39,13 @@ OnExit:
next;
}
sleep2(400);
- warp "014-2-2", 35, 20;
- warpparty("014-2-2", 35, 20, getcharid(1), MAZE_MAP$, true);
+ if ($GAME_STORYLINE >= 5) {
+ warp "023-3-1", 45, 77;
+ warpparty("023-3-1", 45, 77, getcharid(1), MAZE_MAP$, true);
+ } else {
+ warp "014-2-2", 35, 20;
+ warpparty("014-2-2", 35, 20, getcharid(1), MAZE_MAP$, true);
+ }
end;
OnTouch:
diff --git a/npc/functions/mkbot.txt b/npc/functions/mkbot.txt
index 61559913d..f7ef00631 100644
--- a/npc/functions/mkbot.txt
+++ b/npc/functions/mkbot.txt
@@ -40,9 +40,14 @@ OnBourneAgain:
// Reset aggro
$@MK_AGGRO=0;
if (playerattached()) {
- channelmes("#world", strcharinfo(0)+" did an act worth of notice.");
- dispbottom l("Oh well, this sucks, but that was only an illusion.");
- dispbottom l("The real Monster King is probably on his fortress. It'll take more than that to take him down.");
+ if (!FLAGS & FLAG_MKFIRSTBLOOD) {
+ channelmes("#world", strcharinfo(0)+" did an act worth of notice.");
+ FLAGS = FLAGS | FLAG_MKFIRSTBLOOD;
+ dispbottom l("Oh well, this sucks, but that was only an illusion.");
+ dispbottom l("The real Monster King is probably on his fortress. It'll take more than that to take him down.");
+ } else {
+ dispbottom l("While it is utterly pointless, you once again vanish the Monster King's illusion.");
+ }
if ($REBIRTH_WINNER$ == "" && TOP3AVERAGELVL() < 100)
getexp min(641500, BaseLevel**3), 0;
else if (!$FIRESOFSTEAM)