From 1e3d82fa95af0e6bbe5a6f698aac1299b68f583d Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 18 Oct 2021 11:37:50 -0300 Subject: Erlan & Rydel Quest. Frostia no longer uses Nivalis quests to generate its score. --- db/quest_db.conf | 8 ++++ npc/024-1/_import.txt | 2 + npc/024-1/erlan.txt | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ npc/024-1/rydel.txt | 115 ++++++++++++++++++++++++++++++++++++++++++++++++ npc/functions/util.txt | 16 +++---- 5 files changed, 249 insertions(+), 8 deletions(-) create mode 100644 npc/024-1/erlan.txt create mode 100644 npc/024-1/rydel.txt 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; -- cgit v1.2.3-70-g09d2