summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf8
-rw-r--r--npc/024-1/_import.txt2
-rw-r--r--npc/024-1/erlan.txt116
-rw-r--r--npc/024-1/rydel.txt115
-rw-r--r--npc/functions/util.txt16
5 files changed, 249 insertions, 8 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 1585edcfa..f2c4bccfe 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -401,6 +401,14 @@ quest_db: (
Id: 134
Name: "FrostiaQuest_Jeremy"
},
+{
+ Id: 135
+ Name: "FrostiaQuest_Erlan"
+},
+{
+ Id: 136
+ Name: "FrostiaQuest_Rydel"
+},
// ID 151 to 170: Fortress Island Quests
{
diff --git a/npc/024-1/_import.txt b/npc/024-1/_import.txt
index b2f50daaf..4e77f8481 100644
--- a/npc/024-1/_import.txt
+++ b/npc/024-1/_import.txt
@@ -2,8 +2,10 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/024-1/_mobs.txt",
"npc/024-1/_warps.txt",
+"npc/024-1/erlan.txt",
"npc/024-1/guard.txt",
"npc/024-1/mapflags.txt",
+"npc/024-1/rydel.txt",
"npc/024-1/soul-menhir.txt",
"npc/024-1/teleporter.txt",
"npc/024-1/town.txt",
diff --git a/npc/024-1/erlan.txt b/npc/024-1/erlan.txt
new file mode 100644
index 000000000..05f14ce56
--- /dev/null
+++ b/npc/024-1/erlan.txt
@@ -0,0 +1,116 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Questmaker Handbook 14.0 (F = Favorable)
+
+024-1,114,45,0 script Erlan NPC_ELF,{
+ .@q = getq(FrostiaQuest_Erlan);
+ if (BaseLevel < 50) {
+ mesc l("The elf seems busy. He ignores you.");
+ close;
+ }
+ if (.@q == 0) {
+ if (frally()) goto L_Start_F;
+ else goto L_Start_U;
+ }
+ else if (.@q == 1) {
+ if (frally()) goto L_Submit_F;
+ else goto L_Submit_U;
+ }
+ else if (.@q == 2) {
+ if (frally()) goto L_Done_F;
+ else goto L_Done_U;
+ }
+ Exception("Invalid quest state - "+str(.@q));
+ end;
+
+L_Start_F:
+ mesn;
+ mesq lg("Hey gal, could you do me a little favor?", "Hey pal, could you do me a little favor?");
+ next;
+ mesn;
+ mesq l("You see, I am Erlan, a researcher. I'm currently developing strong poison to rival with the legendary %s. For that end, I need raw, untreated sewerage, but there is no such thing here. Could you bring me %d %s? Thanks!", getitemlink(NymphPoison), 7, getitemlink(BottleOfSewerWater));
+ setq FrostiaQuest_Erlan, 1;
+ close;
+
+L_Submit_F:
+ mesn;
+ mesq l("Did you got the %d %s I've asked?", 7, getitemlink(BottleOfSewerWater));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (countitem(BottleOfSewerWater) < 7) {
+ mesn;
+ mesq l("You've been spending too much time with humans. You are picking up bad habits from them like lying. Be careful.");
+ close;
+ }
+ delitem BottleOfSewerWater, 7;
+ getexp 24000, 0;
+ setq FrostiaQuest_Erlan, 2;
+ mesn;
+ mesq lg("Thanks, my friend.");
+ }
+ close;
+
+L_Done_F:
+ mesn;
+ mesq l("Thanks for the help earlier. Unfortunately, I had no luck yet.");
+ next;
+ mesn;
+ mesq l("There are rumors about a sacred elf land, where our antecessors lived in peacefully somewhere close to here, but the path was lost. That's why we now live with dwarves.");
+ close;
+/////////////////////////////////////////////////////////////////////////////////
+L_Start_U:
+ mesn;
+ mesq l("Uh, a %s? How odd.", get_race());
+ next;
+ mesn;
+ mesq l("You see, I am Erlan, a researcher. I'm currently developing strong poison to rival with the legendary %s. For that end, I need raw, untreated sewerage, but there is no such thing in a civilized town like ours.", getitemlink(NymphPoison));
+ next;
+ mesn;
+ mesq l("But you seem to have come from more savage and barbaric towns, so if you could bring me %d %s, that would be truly helpful.", 7, getitemlink(BottleOfSewerWater));
+ setq FrostiaQuest_Erlan, 1;
+ close;
+
+L_Submit_U:
+ mesn;
+ mesq l("Did you got the %d %s I've asked?", 7, getitemlink(BottleOfSewerWater));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (countitem(BottleOfSewerWater) < 7) {
+ mesn;
+ mesq l("You think you can fool me and lie? I'll teach you a lesson you won't forget!");
+ mesc l("%s slaps you!", .name$);
+ percentheal -30, 0;
+ close;
+ }
+ delitem BottleOfSewerWater, 7;
+ getexp 24000, 0;
+ setq FrostiaQuest_Erlan, 2;
+ mesn;
+ mesq l("Heh, thanks %s.", get_race());
+ }
+ close;
+
+L_Done_U:
+ mesn;
+ mesq l("No, I don't have any poison for your sampling yet.");
+ next;
+ mesn;
+ mesq l("Our antecessors used to live peacefully in a sanctuary somewhere close to here, but the path was lost. That's why we now live with dwarves.");
+ close;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, CottonTrousers);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, LeatherShirt);
+ setunitdata(.@npcId, UDT_HEADTOP, Beard);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 3);
+ npcsit;
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+
diff --git a/npc/024-1/rydel.txt b/npc/024-1/rydel.txt
new file mode 100644
index 000000000..fd3f84d45
--- /dev/null
+++ b/npc/024-1/rydel.txt
@@ -0,0 +1,115 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Questmaker Handbook 14.0 (F = Favorable)
+
+024-1,32,26,0 script Rydel NPC_ELF,{
+ .@q = getq(FrostiaQuest_Rydel);
+ if (BaseLevel < 50) {
+ mesc l("The elf seems busy. He ignores you.");
+ close;
+ }
+ if (.@q == 0) {
+ if (frally()) goto L_Start_F;
+ else goto L_Start_U;
+ }
+ else if (.@q == 1) {
+ if (frally()) goto L_Submit_F;
+ else goto L_Submit_U;
+ }
+ else if (.@q == 2) {
+ if (frally()) goto L_Done_F;
+ else goto L_Done_U;
+ }
+ Exception("Invalid quest state - "+str(.@q));
+ end;
+
+L_Start_F:
+ mesn;
+ mesq lg("Hey gal, could you do me a little favor?", "Hey pal, could you do me a little favor?");
+ next;
+ mesn;
+ mesq l("Bring me %d %s so I may study its properties and improve our town water quality!", 3, getitemlink(BottleOfDivineWater));
+ setq FrostiaQuest_Rydel, 1;
+ close;
+
+L_Submit_F:
+ mesn;
+ mesq l("Did you got the %d %s I've asked?", 3, getitemlink(BottleOfDivineWater));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (countitem(BottleOfDivineWater) < 3) {
+ mesn;
+ mesq l("You've been spending too much time with humans. You are picking up bad habits from them like lying. Be careful.");
+ close;
+ }
+ delitem BottleOfDivineWater, 3;
+ getexp 24000, 0;
+ setq FrostiaQuest_Rydel, 2;
+ mesn;
+ mesq lg("Thanks to you, my friend, we will soon have good water to drink.");
+ }
+ close;
+
+L_Done_F:
+ mesn;
+ mesq l("I am not done purifying the water yet. This may take years, but it'll be worth it.");
+ next;
+ mesn;
+ mesq l("By the way, I've heard that the name of the wizard of Aethyr is the key to open its gates. But I don't know neither where the gates are, nor who is the \"wizard of Aethyr\".");
+ close;
+/////////////////////////////////////////////////////////////////////////////////
+L_Start_U:
+ mesn;
+ mesq l("Hey silly %s, I need a favor from you.", get_race());
+ next;
+ mesn;
+ mesq l("I am not content with our water supply. It gives us common water, but we of the superior race deserve better water.");
+ next;
+ mesn;
+ mesq l("So! Bring me %d %s so I may study its properties and make a purifier or enhancer for our well.", 3, getitemlink(BottleOfDivineWater));
+ setq FrostiaQuest_Rydel, 1;
+ close;
+
+L_Submit_U:
+ mesn;
+ mesq l("Did you got the %d %s I've asked?", 3, getitemlink(BottleOfDivineWater));
+ next;
+ if (askyesno() == ASK_YES) {
+ if (countitem(BottleOfDivineWater) < 3) {
+ mesn;
+ mesq l("You liar, I'll teach you a lesson you won't forget!");
+ mesc l("%s slaps you!", .name$);
+ percentheal -30, 0;
+ close;
+ }
+ delitem BottleOfDivineWater, 3;
+ getexp 24000, 0;
+ setq FrostiaQuest_Rydel, 2;
+ mesn;
+ mesq l("Thanks to you, lowly %s, we will soon have water we deserve!", get_race());
+ }
+ close;
+
+L_Done_U:
+ mesn;
+ mesq l("I won't share our water with you!");
+ next;
+ mesn;
+ mesq l("The name of the wizard of Aethyr is the key to open its gates. I've heard it'll open for a lowly %s as you, as long that you know both. But I don't think anyone here would share that with you!", get_race());
+ close;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, CottonTrousers);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, LeatherShirt);
+ setunitdata(.@npcId, UDT_HEADTOP, Beard);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 3);
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index 805bdea60..370923bf2 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -459,14 +459,6 @@ function script reputation {
// Frostia Quests (3 points)
} else if (getarg(0) == "Frostia") {
- // Rescue Yeti Quest (+1 rep)
- if (getq(NivalisQuest_Well) >= 2)
- .@nr=.@nr+1;
-
- // Rescue Cindy Quest (+1 rep)
- if (getq(NivalisQuest_Cindy) >= 5)
- .@nr=.@nr+1;
-
// Homunculus Quest (+1 rep)
if (getq(FrostiaQuest_Homunculus) >= 4)
.@nr=.@nr+1;
@@ -479,6 +471,14 @@ function script reputation {
if (getq(FrostiaQuest_Jeremy) >= 2)
.@nr=.@nr+1;
+ // Erlan Quest (+1 rep)
+ if (getq(FrostiaQuest_Erlan) >= 2)
+ .@nr=.@nr+1;
+
+ // Rydel Quest (+1 rep)
+ if (getq(FrostiaQuest_Rydel) >= 2)
+ .@nr=.@nr+1;
+
// FROSTIA Magical Forumula
.@nr=.@nr*100/5;