summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author+seeds <abby.hulka@gmail.com>2024-02-10 13:23:44 -0300
committerJesusalva Jesusalva <jesusalva@tmw2.org>2024-06-02 01:06:07 +0000
commit321107bf5f83511e578b57cf49e3f2329621523c (patch)
treeeb194d8a5b7171b6e0668fdfcc6c2c13be0acb82
parent99289633c4f5a06b79cfc0b32433092731fc06f5 (diff)
downloadserverdata-321107bf5f83511e578b57cf49e3f2329621523c.tar.gz
serverdata-321107bf5f83511e578b57cf49e3f2329621523c.tar.bz2
serverdata-321107bf5f83511e578b57cf49e3f2329621523c.tar.xz
serverdata-321107bf5f83511e578b57cf49e3f2329621523c.zip
Piou isles: Glim quest, and a couple cosmetic NPCs
Co-Authored-By: +seeds <abby.hulka@gmail.com> Co-Authored-By: Sean Hulka <sean.hulka@gmail.com> Co-Authored-By: Jesusaves <jesusalva@tmw2.org>
-rw-r--r--db/constants.conf2
-rw-r--r--db/quest_db.conf16
-rw-r--r--npc/006-0/core.txt1
-rw-r--r--npc/006-2-1/_import.txt1
-rw-r--r--npc/006-2-1/glim.txt71
-rw-r--r--npc/006-2-5/_import.txt2
-rw-r--r--npc/006-2-5/dusk.txt94
-rw-r--r--npc/006-2-5/reed.txt101
8 files changed, 287 insertions, 1 deletions
diff --git a/db/constants.conf b/db/constants.conf
index d5d98bd16..2eab12e71 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1875,7 +1875,7 @@ constants_db: {
NPC_PIOU_MAGE: 266
NPC_PIOU_QUEEN: 267
NPC_PIOU_KNIGHT_L: 268
- NPC_PIOU_KNIGHT_R: 260
+ NPC_PIOU_KNIGHT_R: 269
NPC_PIOU_ALCHEMIST: 270
NPC_DUCK_ELDER: 271
NPC_GUINEVERE: 272
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 0ca18036c..e717171a8 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -569,6 +569,22 @@ quest_db: (
Id: 254
Name: "LilitQuest_Raify"
},
+{
+ Id: 255
+ Name: "LilitQuest_Glim"
+},
+{
+ Id: 256
+ Name: "LilitQuest_PiouChef"
+},
+{
+ Id: 257
+ Name: "LilitQuest_Hatchling"
+},
+{
+ Id: 258
+ Name: "LilitQuest_Pouf"
+},
// ID 270 to 299: Land Of Fire Quests
{
diff --git a/npc/006-0/core.txt b/npc/006-0/core.txt
index 4714a5190..191044837 100644
--- a/npc/006-0/core.txt
+++ b/npc/006-0/core.txt
@@ -8,6 +8,7 @@
OnTouch:
if (CRAZYPOINTS < 3) goto L_Reject; // FIXME
/* TODO: Piou Isles Arc */
+ if (!getq2(Lilitquest_Glim)) goto L_Reject; // FIXME lame hack
if (getq(General_Narrator) < 3) goto L_Reject; // Tulimshar Arc must be finished
specialeffect(5000, SELF, getcharid(3));
diff --git a/npc/006-2-1/_import.txt b/npc/006-2-1/_import.txt
index d5dc0758e..a29668d14 100644
--- a/npc/006-2-1/_import.txt
+++ b/npc/006-2-1/_import.txt
@@ -3,6 +3,7 @@
"npc/006-2-1/_mobs.txt",
"npc/006-2-1/_warps.txt",
"npc/006-2-1/chirp.txt",
+"npc/006-2-1/glim.txt",
"npc/006-2-1/lune.txt",
"npc/006-2-1/miltaco.txt",
"npc/006-2-1/plum.txt",
diff --git a/npc/006-2-1/glim.txt b/npc/006-2-1/glim.txt
new file mode 100644
index 000000000..414232888
--- /dev/null
+++ b/npc/006-2-1/glim.txt
@@ -0,0 +1,71 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// +seeds
+// Description:
+// Daily quest to exchange Tolchi Arrow Boxes for a small amount of gp and exp
+// Variables:
+// $GLIM_ST
+// How many Tolchi Arrow Boxes were given
+// q1
+// Controls your own progress helping Glim - Items today
+// q2
+// Controls your own progress helping Glim - Your timer
+
+006-2-1,82,28,0 script Glim NPC_PIOU_VIKING,{
+
+L_Loop:
+ .@q1=getq(LilitQuest_Glim);
+ .@q2=getq2(LilitQuest_Glim);
+ mesn;
+ mesq l("Argh, I've run out o' arrows! Say, ye don't have any I could use, do ye? I only got %s...", fnum($GLIM_ST));
+ next;
+ if (.@q2 < $@GLIM_QTIMER) {
+ setq1 Lilitquest_Glim, 0;
+ setq2 Lilitquest_Glim, $@GLIM_QTIMER;
+ }
+
+ // Daily limit reached
+ .@q1=getq1(Lilitquest_Glim);
+ if (.@q1 >= (BaseLevel-17)/3) goto L_Timer;
+ select
+ rif(countitem(TolchiAmmoBox), l("Give Glim a %s"), getitemname(TolchiAmmoBox)),
+ l("Maybe later.");
+ mes "";
+
+ switch (@menu) {
+ case 1:
+ delitem TolchiAmmoBox, 1;
+ getexp 64, 0;
+ Zeny+=150;
+ break;
+ case 2:
+ close;
+ break;
+ }
+ $GLIM_ST+=1;
+ setq1 Lilitquest_Glim, .@q1+1;
+ goto L_Loop;
+
+L_Timer:
+ if (BaseLevel < 10) {
+ mesq l("Wait a minute! I ain't trustin' a weakling like ye fer good arrows!");
+ mesn;
+ mesq l("Come back when ye've grown sum muscles.");
+ close;
+ }
+ mesn;
+ mesq l("I'm all stocked up now, thanks to ye. Come back in @@ and ye might be able to help me again.", FuzzyTime($@GLIM_TIMER+(60*60*24),2,2));
+ close;
+
+OnInit:
+ .sex=G_OTHER;
+ .distance=5;
+ // No end; on purpose
+
+OnHour00:
+ $@GLIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
+ $@GLIM_QTIMER=gettimetick(2);
+ end;
+
+}
diff --git a/npc/006-2-5/_import.txt b/npc/006-2-5/_import.txt
index 7a07b21fb..686360a41 100644
--- a/npc/006-2-5/_import.txt
+++ b/npc/006-2-5/_import.txt
@@ -2,3 +2,5 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/006-2-5/_mobs.txt",
"npc/006-2-5/_warps.txt",
+"npc/006-2-5/dusk.txt",
+"npc/006-2-5/reed.txt",
diff --git a/npc/006-2-5/dusk.txt b/npc/006-2-5/dusk.txt
new file mode 100644
index 000000000..5982ced8f
--- /dev/null
+++ b/npc/006-2-5/dusk.txt
@@ -0,0 +1,94 @@
+// TMW-2 scripts.
+// Original Authors: Hal9000 & Qwerty Dragon
+// TMW-2 Authors:
+// +seeds
+// dangerduck
+// Description:
+// Piou captain who gives information about the war, and the piou queen.
+
+006-2-5,36,25,0 script Captain Dusk NPC_PIOU_KNIGHT_R,{
+ function duskHello;
+ function duskAboutQueen;
+ function duskAboutWar;
+ .@q=getq(LilitQuest_Pouf);
+
+ if (.@q <= 2)
+ {
+ .@r = rand2(3);
+ if (.@r == 0)
+ {
+ npctalk3 l("Don't think you'll sneak anything by me. I'm watching you...");
+ }
+ else if (.@r == 1)
+ {
+ npctalk3 l("I don't tolerate a piou, or %s, who is afraid of hard work.", get_race());
+ }
+ else
+ {
+ npctalk3 l("Best steer clear of the Princess, %s. It won't go well if you upset her.", strcharinfo(0));
+ }
+ }
+ else if (.@q == 3)
+ {
+ duskHello();
+ }
+ close;
+
+function duskHello {
+ mesn;
+ mesq l("Welcome to the Order of the Piou Knights, %s.", strcharinfo(0));
+ next;
+ select
+ l("Where is the Piou Queen?"),
+ l("How is the war going?"),
+ l("I just wanted to say hi.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ duskAboutQueen();
+ break;
+ case 2:
+ duskAboutWar();
+ break;
+ case 3:
+ close;
+ break;
+ }
+ return;
+}
+
+function duskAboutQueen {
+ mesn;
+ mesq l("Queen +seeds of Piou Isles is busy coordinating war efforts at the front.");
+ next;
+ mesn;
+ mesq l("She's a fierce piou, leading our troops into the heart of each battle. I admire her bravery.");
+ next;
+ mesn;
+ mesq l("Princess Pouf has been given leadership until our Queen returns. Should Queen +seeds perish, Princess Pouf will take the crown.");
+ next;
+ mesn;
+ mesq l("Fight bravely and well, %s, and perhaps our Queen will survive to return to her beloved Isles.", strcharinfo(0));
+ return;
+}
+
+function duskAboutWar {
+ mesn;
+ mesq l("So far neither the Duck Side or the Piou Knights have gained the upper hand in the war.");
+ next;
+ mesn;
+ mesq l("However, our mages have recently sensed something dark stirring.");
+ next;
+ mesn;
+ mesq l("I fear something terrible is rising, and I do not know if we can weather the coming storm.");
+ next;
+ mesc l("The captain falls quiet, and appears to be lost in thought.");
+ next;
+ return;
+}
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}
diff --git a/npc/006-2-5/reed.txt b/npc/006-2-5/reed.txt
new file mode 100644
index 000000000..6eb2fa26a
--- /dev/null
+++ b/npc/006-2-5/reed.txt
@@ -0,0 +1,101 @@
+// TMW-2 scripts.
+// Original Authors: Hal9000 & Qwerty Dragon
+// TMW-2 Authors:
+// +seeds
+// dangerduck
+// Description:
+// Piou captain who gives information about shrewboo mounts and the Piou Knights.
+
+006-2-5,40,25,0 script Captain Reed NPC_PIOU_KNIGHT_L,{
+ function reedHello;
+ function reedAboutKnights;
+ function reedAboutShrewboos;
+ .@q=getq(LilitQuest_Pouf);
+
+ if (.@q <= 2)
+ {
+ .@r = rand2(3);
+ if (.@r == 0)
+ {
+ npctalk3 l("This is no place for a weakling like you. I suggest you leave.");
+ }
+ else if (.@r == 1)
+ {
+ npctalk3 l("Allowing you to remain on our Isles is dangerous. Tread carefully, %s.", get_race());
+ }
+ else
+ {
+ npctalk3 l("I'll be keeping an eye on you, %s. Don't make trouble.", strcharinfo(0));
+ }
+ }
+ else if (.@q == 3)
+ {
+ reedHello();
+ }
+ close;
+
+function reedHello {
+ mesn;
+ mesq l("Do you need assistance, Knight %s?", strcharinfo(0));
+ next;
+ select
+ l("What can you tell me about the Piou Knights?"),
+ l("Why do Piou Knights need mounts if they can fly?"),
+ l("I just wanted to say hi.");
+ mes "";
+ switch (@menu) {
+ case 1:
+ reedAboutKnights();
+ break;
+ case 2:
+ reedAboutShrewboos();
+ case 3:
+ // fallthrough
+ break;
+ }
+ return;
+}
+
+function reedAboutKnights {
+ mesn;
+ mesq l("The Order of Piou Knights was originally created as a defense against hunters from the humanoid races.");
+ next;
+ mesn;
+ mesc l("Our Order stopped the hunters from harming any piou on Piou Isles, but it could not do anything for the pious who refused to live here.");
+ next;
+ mesn;
+ mesq l("We grew in strength and knowledge over time, and dedicated ourselves to upholding justice and peace on the Isles, and in the world.");
+ next;
+ mesn;
+ mesq l("When the ducks joined the Moubootaur and created the Duck Side, our convictions and oaths to the Order ensured we would oppose them.");
+ next;
+ mesn;
+ mesc l("The humanoid races do not consider ducks or pious to be a threat, thus we are the only line of defense against the Duck Side.");
+ next;
+ mesn;
+ mesq l("Remember that, %s. You dedicated yourself to the Order of Piou Knights, and you are now sworn to oppose the Duck Side.", strcharinfo(0));
+ next;
+ return;
+}
+
+function reedAboutShrewboos {
+ mesn;
+ mesq l("Our warriors are burdened with strong, yet heavy, armor.");
+ next;
+ mesn;
+ mesc l("Due to this detriment to our speed and ability to fly, we started training shrewboos as mounts.");
+ next;
+ mesn;
+ mesq l("Over time, we improved our training, and our warboos are now extremely efficient fighting steeds.");
+ next;
+ mesn;
+ mesq l("They also give Piou Knights a much needed speed boost against the ducks, who are naturally fast.");
+ next;
+ return;
+}
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+}