summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFedja Beader <fedja@protonmail.ch>2025-01-08 17:29:42 +0000
committerLed Mitz <smoothshifter@tuta.io>2025-01-08 17:29:42 +0000
commitb8fcb3e0e8749c213663943f2afbc3734cdd1fc0 (patch)
treea0bf9c28e2cd0f66fc10bcfecf3f8a6873ac3d33
parent9448d4ac90c13b717e7e5a246cdbc77b826042fe (diff)
downloadserverdata-b8fcb3e0e8749c213663943f2afbc3734cdd1fc0.tar.gz
serverdata-b8fcb3e0e8749c213663943f2afbc3734cdd1fc0.tar.bz2
serverdata-b8fcb3e0e8749c213663943f2afbc3734cdd1fc0.tar.xz
serverdata-b8fcb3e0e8749c213663943f2afbc3734cdd1fc0.zip
Migrate the beheader quest to quest log
I've also removed the server-side progress announce. Apparently, the Celestia Yeti one wasn't. I think it's better to have this in-client only.
-rw-r--r--world/map/db/const-quest.txt2
-rw-r--r--world/map/db/quest-log.txt5
-rw-r--r--world/map/npc/012-3/beheader.txt17
-rw-r--r--world/map/npc/mobs/mob_kill_handler.txt7
4 files changed, 18 insertions, 13 deletions
diff --git a/world/map/db/const-quest.txt b/world/map/db/const-quest.txt
index 75000466..48a3cc14 100644
--- a/world/map/db/const-quest.txt
+++ b/world/map/db/const-quest.txt
@@ -132,7 +132,7 @@ FLAG_DECLINED_BEANIEHAT 8192 // player declined Beanie Copter Hat from Mill
//FLAG_ 16384 // not used at the moment
//FLAG_ 32768 // not used at the moment
FLAG_BEHEADER_MASK 65536 // traded with The Beheader
-FLAG_GOT_BEHEADER_SWORD 131072 // Obtained the Beheader Sword
+//FLAG_GOT_BEHEADER_SWORD 131072 // Obtained the Beheader Sword. Moved to quest log
FLAG_LUCA_GOT_SIX_SKILLS 262144 // player learned all six Focus Skills
FLAG_LUCA_2SKILLS_MAXED 524288 // player got 2 Focus Skills at lvl 9
FLAG_LUCA_4SKILLS_MAXED 1048576 // player got 4 Focus Skills at lvl 9
diff --git a/world/map/db/quest-log.txt b/world/map/db/quest-log.txt
index 37e137f3..67f8e813 100644
--- a/world/map/db/quest-log.txt
+++ b/world/map/db/quest-log.txt
@@ -28,3 +28,8 @@
20,QL_TERRANITE_ARMOR,QUEST_NorthTulimshar,6,4
// 21 => assassin quest
22,QL_CELESTIA,QUEST_Hurnscald,2,8
+// Beheader quest comes in two parts: the flag that you've completed it
+// and the variable that tracks how many you've killed thus far. The
+// latter is deleted once you complete the quest.
+23,QL_BEHEADER_TERRAC,TERRAC,0,16
+24,QL_BEHEADER_COMPLETE,FLAGS,17,1
diff --git a/world/map/npc/012-3/beheader.txt b/world/map/npc/012-3/beheader.txt
index ddd46c53..34676a50 100644
--- a/world/map/npc/012-3/beheader.txt
+++ b/world/map/npc/012-3/beheader.txt
@@ -91,7 +91,7 @@ L_Later:
mes "";
mes "[The Beheader]";
mes "\"Time passes so quickly. It would seem that later is now. I wonder if now is then, then. Hmmmm...\"";
- if (!(FLAGS & FLAG_GOT_BEHEADER_SWORD)) goto L_MaybeBeheader;
+ if (!QL_BEHEADER_COMPLETE) goto L_MaybeBeheader;
// NOTE: Room for future expansion if needed.
// Previous text: "Some February, I don't know. If you want to help, go to Hurnscald square, look for the noisy person with an AFK Cap which is always sitting with their kitty, and tell them to start working. That might just do the trick."
// The "noisy person w/ an AFK Cap and a kytty" is Jesusalva (script author)
@@ -104,9 +104,9 @@ L_MaybeBeheader:
"Can I behead Terranites on my own?", L_Beheader;
L_Beheader:
- if (FLAGS & FLAG_GOT_BEHEADER_SWORD) goto L_Again;
- if (TERRAC == 1501) goto L_Finish;
- if (TERRAC > 0) goto L_Status;
+ if (QL_BEHEADER_COMPLETE) goto L_Again;
+ if (QL_BEHEADER_TERRAC == 1501) goto L_Finish;
+ if (QL_BEHEADER_TERRAC > 0) goto L_Status;
mes "";
mes "[The Beheader]";
mes "\"You obviously know nothing about Terranite Anatomy, hahaha!\"";
@@ -132,13 +132,14 @@ L_Accept:
mes "";
mes "[The Beheader]";
mes "So... Hmm, lemme think... Ah, I know! Thou shall ##Bkill me 1500 [@@m1062|@@]##b. Why? Because that's pointless, and you want a weapon you won't be able to use, so a pointless task for a pointless reward! Now get going!";
- set TERRAC, 1;
+ set QL_BEHEADER_TERRAC, 1;
close;
L_Status:
mes "";
mes "[The Beheader]";
- mes "\"Get going, running in circles and amusing me, you only killed "+(TERRAC-1)+"/1500 [@@m1062|@@] until now.\"";
+ mes "\"Get going, running in circles and amusing me, you only killed "
+ + (QL_BEHEADER_TERRAC-1)+"/1500 [@@m1062|@@] until now.\"";
close;
L_Again:
@@ -177,8 +178,8 @@ L_Finish:
getitem "Beheader", 1;
getexp 1000000, 0;
- set FLAGS, FLAGS | FLAG_GOT_BEHEADER_SWORD;
- set TERRAC, 0;
+ set QL_BEHEADER_COMPLETE, 1;
+ set QL_BEHEADER_TERRAC, 0;
mes "[The Beheader]";
mes "\"Anyway, a deal is a deal and here is your [@@576|@@]. I hope you can actually make good use of it!\"";
diff --git a/world/map/npc/mobs/mob_kill_handler.txt b/world/map/npc/mobs/mob_kill_handler.txt
index 83f64d3e..9e2f69c7 100644
--- a/world/map/npc/mobs/mob_kill_handler.txt
+++ b/world/map/npc/mobs/mob_kill_handler.txt
@@ -58,10 +58,9 @@ L_Celestia:
L_Terranite:
if ( @mobID != Terranite ) goto L_Pink_Flower;
- if (TERRAC < 1 || TERRAC > 1500) goto L_Return;
- if (TERRAC % 100 == 0)
- message strcharinfo(0), "Terranite : ##3Total Terranites Slain: "+TERRAC;
- set TERRAC, TERRAC + 1;
+ if (QL_BEHEADER_TERRAC < 1 || QL_BEHEADER_TERRAC > 1500)
+ goto L_Return;
+ set QL_BEHEADER_TERRAC, QL_BEHEADER_TERRAC + 1;
goto L_Return;
L_Pink_Flower: