summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--db/re/mob_db.conf6
-rw-r--r--npc/009-5/_import.txt1
-rw-r--r--npc/009-5/joaquim.txt175
4 files changed, 184 insertions, 2 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 4444e75dd..aa1f6aa2a 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -202,6 +202,10 @@ quest_db: (
Id: 72
Name: "HalinarzoQuest_TraderKing"
},
+{
+ Id: 72
+ Name: "HalinarzoQuest_SickWife"
+},
// ID 91 to 110: Hurnscald Quests
{
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf
index b77420f09..499482833 100644
--- a/db/re/mob_db.conf
+++ b/db/re/mob_db.conf
@@ -1527,8 +1527,9 @@ mob_db: (
DamageMotion: 480
Drops: {
MushroomSpores: 950
- SmallMushroom: 600
Plushroom: 800
+ HardSpike: 550
+ SmallMushroom: 450
Chagashroom: 400
}
},
@@ -1839,8 +1840,9 @@ mob_db: (
DamageMotion: 480
Drops: {
MushroomSpores: 950
- SmallMushroom: 600
Plushroom: 800
+ HardSpike: 600
+ SmallMushroom: 500
Chagashroom: 400
}
},
diff --git a/npc/009-5/_import.txt b/npc/009-5/_import.txt
index 20d4451b1..956fefcba 100644
--- a/npc/009-5/_import.txt
+++ b/npc/009-5/_import.txt
@@ -1,4 +1,5 @@
// Map 009-5: Halinarzo Church
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/009-5/_warps.txt",
+"npc/009-5/joaquim.txt",
"npc/009-5/luanna.txt",
diff --git a/npc/009-5/joaquim.txt b/npc/009-5/joaquim.txt
new file mode 100644
index 000000000..3569149c5
--- /dev/null
+++ b/npc/009-5/joaquim.txt
@@ -0,0 +1,175 @@
+// TMW2 Script, ported from TMW-BR
+// TMW2 Author: Jesusalva
+//
+// Creator: Cardinalli
+// Review: Lunovox <rui.gravata@gmail.com>
+//
+// Description:
+// A rather easy quest to give players what to kill.
+
+009-5,36,35,4 script Joaquim NPC_PLAYER,{
+ .@q=getq(HalinarzoQuest_SickWife);
+ if (BaseLevel < 36) goto L_TooWeak;
+ if (BaseLevel < 50) goto L_Weak;
+ if (.@q == 5) goto L_Complete;
+ if (.@q == 4) goto L_Finish;
+ if (.@q == 3) goto L_DoIt;
+ if (.@q == 2) goto L_Return;
+ if (.@q == 1) goto L_Found;
+ goto L_Start;
+
+L_TooWeak:
+ mesn;
+ mesq l("Here is a safe haven for we who don't fight. There are no monsters, and the Mouboo watches over us.");
+ close;
+
+L_Weak:
+ mesn;
+ .@r=rand(1,5);
+ switch (.@r) {
+ case 1:
+ mesq l("Watch out! My wife was gravely wounded the other day. Don't forget your shield when leaving this holy place!");
+ break;
+ case 2:
+ mesq l("Ah, I hate mushrooms. Perhaps in future, I could use their spikes and mushies.");
+ break;
+ case 3:
+ mesq l("Ah, I hate snakes. Perhaps in future, I could use their tongues.");
+ break;
+ case 4:
+ mesq l("Ah, I love mouboos. But their steaks, hmm. Ah, no, I shouldn't eat that...");
+ break;
+ case 5:
+ mesq l("You should never sell your Cactus Drinks. They have many uses.");
+ break;
+ }
+ close;
+
+L_Complete:
+ mesn;
+ mesq l("Thanks for helping my wife, I'll be forever grateful.");
+ close;
+
+L_Finish:
+ mesn;
+ mesq l("Thanks for helping my wife! May the Mouboo watch over you! o.o");
+ next;
+ inventoryplace ElixirOfLife, 1;
+ geitem ElixirOfLife, 1;
+ getexp 17288, 0; // 15% from needed experience to level up
+ setq HalinarzoQuest_SickWife, 5;
+ mesn;
+ mesq l("Take this spare @@ I did. It heals fully and instantly, so don't hesit to use it if you're about to die.", getitemlink(ElixirOfLife));
+ close;
+
+L_DoIt:
+ mesn;
+ mesq l("Please help my wife Yumi, on the Hospital!");
+ close;
+
+// Quest Core
+L_Start:
+ mesn;
+ mesq l("Ohhhhh..... Please, help me!!! My wife is gravely wounded!!");
+ next;
+ mesn strcharinfo(0);
+ mesq l("Calm down! How can I help you?");
+ next;
+ mesn;
+ mesq l("My grandmother gave me a recipe of the @@, it can cure anything but death.", getitemlink(ElixirOfLife));
+ next;
+ mesn;
+ mesq l("I don't remember what I need now, but if you give me a moment, I'll get the list.");
+ setq HalinarzoQuest_SickWife, 1;
+ close;
+
+L_Found:
+ mesn;
+ mesq l("I can make an @@, I still have a bottle of fairy blood, a few mana pearls, and some other rare ingredients.", getitemlink(ElixirOfLife));
+ mesq l("It is the non-rare ingredients I actually need help with!");
+ next;
+ mesn l("@@ Recipe", getitemlink(ElixirOfLife));
+ mesc l("@@/40 @@", countitem(SmallMushroom), getitemlink(SmallMushroom));
+ mesc l("@@/100 @@", countitem(CactusDrink), getitemlink(CactusDrink));
+ mesc l("@@/30 @@", countitem(BottleOfTonoriWater), getitemlink(BottleOfTonoriWater));
+ mesc l("@@/60 @@", countitem(HardSpike), getitemlink(HardSpike));
+ mesc l("@@/45 @@", countitem(SnakeTongue), getitemlink(SnakeTongue));
+ mesc l("@@/15 @@", countitem(MoubooSteak), getitemlink(MoubooSteak));
+ next;
+ select
+ l("I will do it, don't worry."),
+ l("Ahh, too many items. Sorry.");
+ mes "";
+ mesn;
+ if (@menu == 1) {
+ mes lg("Thanks! Thanks! Savior! Hurry up!");
+ setq HalinarzoQuest_SickWife, 2;
+ } else {
+ mes l("Oh noes, who nows can help my wife? Please reconsider!");
+ }
+ close;
+
+L_Return:
+ mesn l("@@ Recipe", getitemlink(ElixirOfLife));
+ mesc l("@@/40 @@", countitem(SmallMushroom), getitemlink(SmallMushroom));
+ mesc l("@@/100 @@", countitem(CactusDrink), getitemlink(CactusDrink));
+ mesc l("@@/30 @@", countitem(BottleOfTonoriWater), getitemlink(BottleOfTonoriWater));
+ mesc l("@@/60 @@", countitem(HardSpike), getitemlink(HardSpike));
+ mesc l("@@/45 @@", countitem(SnakeTongue), getitemlink(SnakeTongue));
+ mesc l("@@/15 @@", countitem(MoubooSteak), getitemlink(MoubooSteak));
+ next;
+ select
+ l("I'll be back later with all ingredients."),
+ l("They're with me.");
+ mes "";
+ if (@menu == 1)
+ close;
+
+ if (countitem(SmallMushroom) < 40 ||
+ countitem(CactusDrink) < 100 ||
+ countitem(BottleOfTonoriWater) < 30 ||
+ countitem(HardSpike) < 60 ||
+ countitem(SnakeTongue) < 45 ||
+ countitem(MoubooSteak) < 15)
+ goto L_Missing;
+
+ inventoryplace ElixirOfLife, 1;
+
+ delitem SmallMushroom, 40;
+ delitem CactusDrink, 100;
+ delitem BottleOfTonoriWater, 30;
+ delitem HardSpike, 60;
+ delitem SnakeTongue, 45;
+ delitem MoubooSteak, 15;
+ getitem ElixirOfLife, 1;
+ setq HalinarzoQuest_SickWife, 3;
+ mesn;
+ mesq l("Thanks, I'll just bake the Elixir right away...!");
+ next;
+ mesc l("@@ goes away for a while and returns briefly.", .name$);
+ next;
+ mesn;
+ mesq l("Here, take the Elixir. Please, bring it to my wife! I am counting on you!!");
+ close;
+
+L_Missing:
+ mesn strcharinfo(0);
+ mesq l("Except they're not. I'll be back later.");
+ next;
+ mesn;
+ mesq l("Please, @@! Hurry up!", strcharinfo(0));
+ close;
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, VneckJumper);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, RaidTrousers);
+ setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 3);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 5);
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}