summaryrefslogtreecommitdiff
path: root/npc/014-5-1
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/014-5-1
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/014-5-1')
-rw-r--r--npc/014-5-1/_import.txt5
-rw-r--r--npc/014-5-1/_warps.txt3
-rw-r--r--npc/014-5-1/objects.txt90
-rw-r--r--npc/014-5-1/sagratha.txt650
4 files changed, 748 insertions, 0 deletions
diff --git a/npc/014-5-1/_import.txt b/npc/014-5-1/_import.txt
new file mode 100644
index 0000000..16e2148
--- /dev/null
+++ b/npc/014-5-1/_import.txt
@@ -0,0 +1,5 @@
+// Map 014-5-1: Forgotten Hut
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/014-5-1/_warps.txt",
+"npc/014-5-1/objects.txt",
+"npc/014-5-1/sagratha.txt",
diff --git a/npc/014-5-1/_warps.txt b/npc/014-5-1/_warps.txt
new file mode 100644
index 0000000..0d236b1
--- /dev/null
+++ b/npc/014-5-1/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 014-5-1: Forgotten Hut warps
+014-5-1,33,45,0 warp #014-5-1_33_45 0,0,014-5,122,138
diff --git a/npc/014-5-1/objects.txt b/npc/014-5-1/objects.txt
new file mode 100644
index 0000000..ed35209
--- /dev/null
+++ b/npc/014-5-1/objects.txt
@@ -0,0 +1,90 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Sagratha household items
+
+014-5-1,33,38,0 script Pan#Saggy NPC_NO_SPRITE,{
+ @qsagratha=@qsagratha|1;
+ mesn;
+ mesc l("The pan is empty, but it smells like fresh cookies.");
+ close;
+OnInit:
+ .distance=5;
+ disablenpc .name$;
+ end;
+}
+
+
+014-5-1,33,34,0 script Painting#Saggy NPC_NO_SPRITE,{
+ @qsagratha=@qsagratha|2;
+ mesn;
+ mesc l("Definitely not suspcious at all.");
+ if (@qsagratha >= 31) {
+ next;
+ mesn;
+ mesc l("Thinking well... There's something behind it! A secret window!");
+ if (getq(HurnscaldQuest_Sagratha) <= 2) {
+ setq3 HurnscaldQuest_Sagratha, 1;
+ } else {
+ next;
+ mesn l("Secret Window");
+ mesc l("Enter though the window to the secret caves?");
+ next;
+ if (askyesno() == ASK_YES) {
+ warp "015-8", 99, 178;
+ closeclientdialog;
+ end;
+ }
+ }
+ next;
+ mesn l("Secret Window");
+ mesc l("The window appears to be unlocked. It might have been open some time ago.");
+ }
+ close;
+OnInit:
+ .distance=5;
+ disablenpc .name$;
+ end;
+}
+
+
+014-5-1,29,37,0 script Fireplace#Saggy NPC_NO_SPRITE,{
+ @qsagratha=@qsagratha|4;
+ mesn;
+ mesc l("Some smoke still remains, but the fire seems to have died.");
+ close;
+OnInit:
+ .distance=5;
+ disablenpc .name$;
+ end;
+}
+
+
+
+
+014-5-1,29,39,0 script Book#Saggy NPC_NO_SPRITE,{
+ @qsagratha=@qsagratha|8;
+ mesn;
+ mesc l("Seems to be a recipe book about apple cookies.");
+ close;
+OnInit:
+ .distance=5;
+ disablenpc .name$;
+ end;
+}
+
+
+
+
+014-5-1,29,41,0 script Bed#Saggy NPC_NO_SPRITE,{
+ @qsagratha=@qsagratha|16;
+ mesn;
+ mesc l("Smells like mouboos.");
+ close;
+OnInit:
+ .distance=5;
+ disablenpc .name$;
+ end;
+}
+
diff --git a/npc/014-5-1/sagratha.txt b/npc/014-5-1/sagratha.txt
new file mode 100644
index 0000000..6b727f4
--- /dev/null
+++ b/npc/014-5-1/sagratha.txt
@@ -0,0 +1,650 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva and TMW Org.
+// Description:
+// Sagratha (variables SAGRATHA_SCORE and SAGRATHA_FRIENDSHIP)
+
+// SaggyScoreUpdate( amount )
+function script SaggyScoreUpdate {
+ .@val=getarg(0);
+ SAGRATHA_SCORE=limit(-50, SAGRATHA_SCORE+.@val, 50);
+ return;
+}
+
+function script SaggyMobCount {
+ switch (killedrid) {
+ // She gets angry
+ case AlphaMouboo:
+ SaggyScoreUpdate(-3);
+ break;
+ case Mouboo:
+ SaggyScoreUpdate(any(-2, -3));
+ break;
+ case Pollet:
+ case Fluffy:
+ case IcedFluffy:
+ SaggyScoreUpdate(any(-1, -2, -3));
+ break;
+ case PoisonSpikyMushroom:
+ case LogHead:
+ case ForestMushroom:
+ SaggyScoreUpdate(any(-1, -2));
+ break;
+ case Squirrel:
+ case SpringSquirrel:
+ case LofSquirrel:
+ case FrozenSquirrel:
+ case FairysSquirrel:
+ case MananaTree:
+ SaggyScoreUpdate(-1);
+ break;
+
+ // She may get happy. Who knows.
+ case ViciousSquirrel:
+ case WickedMushroom:
+ case Bluepar:
+ case BlackScorpion:
+ case Bandit:
+ case RobinBandit:
+ SaggyScoreUpdate(any(0,0,0,0,1));
+ break;
+ }
+ // Full hate vs Ghosts, Undead and shadow
+ .@mr=getmonsterinfo(killedrid, MOB_ELEMENT);
+ switch (.@mr) {
+ case Ele_Dark:
+ case Ele_Ghost:
+ //case Ele_Undead:
+ SaggyScoreUpdate(any(0,0,0,0,1));
+ break;
+ }
+ return;
+}
+
+014-5-1,33,37,0 script Sagratha NPC_SAGRATHA,{
+ function teachMagic;
+ function requireHelp;
+ if (array_find(.SaggyHats, getequipid(EQI_HEAD_TOP)) >= 0)
+ goto L_HatAttack;
+
+ .@q=getq(HurnscaldQuest_Sagratha);
+ .@m=getq(HurnscaldQuest_InjuriedMouboo);
+
+ // Safety - Impossible Situation
+ if (.@m < 2 || .@m > 3 || .@q < 6) {
+ Exception("Player found cheating/breaking the rules. Character banned. Please contact GM Staff if you believe this is an error.", RB_DEFAULT|RB_SPEECH);
+ //atcommand "@jailfor 7h "+strcharinfo(0);
+ Exception ("Exception at exception, shutting down! (m is "+.@m+", q is "+.@q+")", RB_SPEECH|RB_ISFATAL);
+ close;
+ }
+
+ mesn;
+
+ if (SAGRATHA_FRIENDSHIP >= 2)
+ mesc l("@@ nods as she notices you.", .name$);
+ else if (SAGRATHA_FRIENDSHIP == 1)
+ mesc l("@@ raises an eyebrow as you address her.", .name$);
+ else
+ mesc l("@@ glances at you, suspicion evident in her eyes.", .name$);
+
+ mesq l("Hello.");
+ next;
+
+ if (.@m == 2 && .@q >= 6)
+ goto L_Reward;
+ if (.@q == 6)
+ goto L_Finish;
+ if (SAGRATHA_SCORE < 0)
+ goto L_Unhappy;
+
+ do
+ {
+ .@x=getq(General_Sagratha);
+ mesn strcharinfo(0);
+ select
+ l("Can I return to the shrine?"),
+ l("I would like some Mouboo Milk."),
+ l("Can you teach me magic? Pretty please?"),
+ l("Can I help you with something?"),
+ l("What can you tell me about the Moubootaur?"),
+ l("Good bye.");
+ mes "";
+ switch (@menu) {
+ // XXX: Sealed Shrine
+ case 1:
+ mesn;
+ mesq l("Why would you want to go back there?");
+ mesc l("@@ snarls.", .name$);
+ next;
+ mesn;
+ mesq l("That was a Moubootaur's temple. It is not the kind of place to give a stroll on the park.");
+ next;
+ mesn;
+ mesq l("Did you noticed how no monster got close to it?");
+ next;
+ select
+ l("You're right. Sorry."),
+ l("Don't worry, I'll stay at the caves."),
+ l("I want to pay my respects as a fellow Pink Mouboo cult member."),
+ l("But I need to!");
+ mes "";
+ if (@menu == 3) {
+ mesn;
+ mesq l("As a what?");
+ next;
+ }
+ else if (@menu == 4) {
+ mesn;
+ mesq l("No you don't. Don't disturb the forest for no reason.");
+ close;
+ }
+ else if (@menu == 1) {
+ mesn;
+ mesq l("Hmpf. Wise choice.");
+ next;
+ break; // Return to the while loop
+ }
+ mesn;
+ mesq l("As you wish. But do not mess with things you don't understand.");
+ next;
+ closeclientdialog;
+ warp "015-8", 99, 178;
+ close;
+ // XXX: Mouboo Milk
+ case 2:
+ if (SAGRATHA_SCORE < 45) {
+ mesn;
+ mesq l("You don't need, nor deserve it.");
+ next;
+ mesn;
+ mesq l("Learn milking a Mouboo. And if you harm them, I'll cast a lightning bolt at you!");
+ next;
+ break;
+ }
+ if (SAGRATHA_MILK > gettimeparam(GETTIME_HOUR)) {
+ mesn;
+ mesq l("I just gave you it. Come back later.");
+ next;
+ break;
+ }
+ inventoryplace Milk, 2;
+ SAGRATHA_SCORE-=8; // :o
+ SAGRATHA_MILK=gettimeparam(GETTIME_HOUR)+4;
+ getitem Milk, any(1,1,1,1,1,1,2);
+ mesn;
+ mesq l("Here. You know that milking Mouboos won't cause them harm, right? It's a different story with @@.", getitemlink(MoubooSteak));
+ close;
+ break;
+ // XXX: Teach magic / etc
+ case 3:
+ case 4:
+ if (.@x % 2 == 0)
+ teachMagic();
+ else
+ requireHelp();
+ break;
+ // XXX: Moubootaur
+ case 5:
+ mesn;
+ mesq l("It's a scary legend of old. It's truth, but I don't know how much it is.");
+ next;
+ mesn;
+ mesq l("Anyway, the Moubootaur certainly existed, and probably is still alive.");
+ next;
+ mesn;
+ mesq l("How powerful they were or are, their cruelty, their judgment against the Terranite Civilization and the other bloody details of the legend... I cannot confirm them to you.");
+ next;
+ break;
+ default:
+ closeclientdialog;
+ goodbye;
+ close;
+ }
+ } while (true);
+
+ close;
+
+L_Finish:
+ // WHAT
+ if (.@m != 3) {
+ Exception("Player found cheating/breaking the rules. Character banned. Please contact GM Staff if you believe this is an error.", RB_DEFAULT|RB_SPEECH);
+ atcommand "@jailfor 7h "+strcharinfo(0);
+ close;
+ }
+ mesn;
+ mesq l("I haven't thanked you yet.");
+ next;
+ select
+ l("You're welcome."),
+ l("For the rescue? You didn't seemed to be in need of aid."),
+ l("Yes, I'm awesome, praise me more."),
+ l("For the mouboo? I was only doing my duty.");
+ mes "";
+ mesn;
+ if (@menu != 4)
+ mesq l("Not for that! For helping out the injuried mouboo, of course.");
+ else
+ mesq l("Hmpf, it's good to see you're at least trying to follow Wyara's example.");
+ next;
+ mesn;
+ mesq l("Anyway, Wyara told me about the assassins. I'm surprised they followed me until the ruins.");
+ next;
+ mesn;
+ mesq l("I thought I would be safe in the shrine, but seems like they are after the Moubootaur. Great danger will befall all forest creatures if they accomplish that.");
+ next;
+ mesn;
+ mesq l("This will affect humans, too, so don't act as if it is not your bussiness either.");
+ next;
+ mesn;
+ mesq l("For now, take this @@. I hope that you will use this power for something good now.", getitemlink(AlchemyBlueprintB));
+ inventoryplace AlchemyBlueprintB, 1;
+ getitem AlchemyBlueprintB, 1;
+ getexp 24000, 0; // ~70% from level 40 (quest estimate level)
+ Zeny+=3000; // About 50 carps sold
+ SAGRATHA_FRIENDSHIP+=1;
+ setq HurnscaldQuest_Sagratha, 7;
+ close;
+
+L_Reward:
+ select
+ l("Hi! My name is @@.", strcharinfo(0)),
+ l("Are you Sagratha?"),
+ l("Good bye.");
+ mes "";
+ if (@menu == 3)
+ close;
+ if (@menu == 1) {
+ mesn;
+ mesq l("Ah.");
+ next;
+ select
+ l("Are you Sagratha?"),
+ l("Erm... Good bye.");
+ mes "";
+ if (@menu == 2)
+ close;
+ }
+ mesn;
+ mesq l("Yes.");
+ next;
+ mesn;
+ mesq l("Do you need something from me?");
+ next;
+ // A check is not needed, because quest pre-requisites
+ // If you don't have the quest in clearable state... CHEAT!
+ select
+ l("Yep. There was a cursed mouboo on the road."),
+ l("Not really.");
+ mes "";
+ if (@menu == 2) {
+ mesn;
+ mesq l("Okay then.");
+ close;
+ }
+ mesn;
+ mesq l("Yes, the cursed Mouboo you told me earlier, on the way out.");
+ next;
+ mesn;
+ mesq l("The curse was done by nobody less than... the Moubootaur.");
+ next;
+ mesn;
+ mesq l("Well. I'll take care of that, don't worry with that.");
+ next;
+ mesn;
+ mesq l("It's my duty to protect the beings in the forest... Not all of them are monsters as @@s like you think.", get_race());
+ compareandsetq HurnscaldQuest_InjuriedMouboo, 2, 3;
+ SAGRATHA_FRIENDSHIP+=1;
+ close;
+
+L_HatAttack:
+ mesn;
+ mesc l("@@ seems to be trembling with disgust as she stares at your headgear.", .name$);
+ next;
+ mesn;
+ mesq l("Do you think that is funny?");
+ mesc l("@@ snarls.", .name$);
+ next;
+ mesn;
+ mesq l("You have no idea what that poor creature felt!");
+ next;
+ mesn;
+ mesc l("She snaps her fingers.");
+ mesq l("Let me show you...");
+ specialeffect 312, SELF, getcharid(3);
+ percentheal -30, 0;
+ close;
+
+L_Unhappy:
+ mesn;
+ mesc l("@@ glares at you in anger.", .name$);
+ mesq l("I wonder if you can still sleep after killing those innocent forest creatures!");
+ next;
+ mesn;
+ mesq l("I am sure that they will come back to haunt you in your dreams!");
+ close;
+// Functions - TODO: Where are Mouboo Summon? Loghead summon? etc.?
+function teachMagic {
+ .@x=getarg(0,getq(General_Sagratha));
+ switch (.@x) {
+ case 0:
+ if (MAGIC_LVL < 1)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("For now, yes. But you will have to prove that you really care about more than yourself.");
+ next;
+ mesn;
+ mesq l("I'll teach you a spell. It is called CUTE HEART. It summons Fluffies. They are so cute, I want to hug them...");
+ skill TMW2_CUTEHEART, 1, 0;
+ setq General_Sagratha, 1;
+ break;
+ case 2:
+ if (MAGIC_LVL < 2)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("Be careful, because the more magic power you ask the Mana Seed, the more difficult to control it will be.");
+ next;
+ mesn;
+ mesq l("This is how the Monster King became evil. Keep practicing magic, so you get more comfortable with it and fail less often.");
+ next;
+ mesn;
+ mesq l("Anyway. This is the KALBOO spell. It'll summon mouboos.");
+ next;
+ mesn;
+ mesq l("The world belong to Mouboos. They are sublime creatures!");
+ skill TMW2_KALBOO, 1, 0;
+ setq General_Sagratha, 3;
+ break;
+ case 4:
+ if (MAGIC_LVL < 3)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("You've been doing well. Be careful out there.");
+ next;
+ mesn;
+ mesq l("Anyway. This is the KALWULF spell. It'll spawn Wolverns.");
+ next;
+ mesn;
+ mesq l("Wolverns are fierce creatures who likes cold places. Their fur is soft.");
+ next;
+ mesn;
+ mesq l("You can also use PLANT KINGDOM to spawn several plants at once, too. Let's make this world more green.");
+ skill TMW2_KALWULF, 1, 0;
+ skill TMW2_PLANTKINGDOM, 1, 0;
+ setq General_Sagratha, 5;
+ break;
+ case 6:
+ if (MAGIC_LVL < 4)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("You've been doing quite well, indeed. Ever visited Lilit?");
+ next;
+ mesn;
+ mesq l("Lilit is the fairy kingdom, governed by Lilit the Fairy.");
+ next;
+ mesn;
+ mesq l("Anyway. This is the FAIRY KINGDOM spell. It'll spawn fairies.");
+ next;
+ mesn;
+ mesq l("Fairies usually behaves well, but they hate snakes, so avoid casting halhiss and fairy kingdom at once. You never know.");
+ skill TMW2_FAIRYKINGDOM, 1, 0;
+ setq General_Sagratha, 7;
+ break;
+ case 8:
+ if (MAGIC_LVL < 5)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("You've been doing very well, I'm surprised.");
+ next;
+ mesn;
+ mesq l("The most powerful spells can, sometimes, summon some monster you didn't wanted to.");
+ next;
+ mesn;
+ mesq l("This is the FROZENHEART spell. It'll summon... Yeti.");
+ next;
+ mesn;
+ mesq l("But if you're not skilled enough, or lose control of it, a Moggun might be spawned instead. Which is a young, weak, baby Yeti.");
+ skill TMW2_FROZENHEART, 1, 0;
+ setq General_Sagratha, 9;
+ break;
+ case 10:
+ if (MAGIC_LVL < 6)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods.", .name$);
+ mesq l("You've been asking for way too much power from the Mana Seed.");
+ next;
+ mesn;
+ mesq l("Too much power can corrupt you. I've seen this happening before... countless times.");
+ next;
+ mesn;
+ mesq l("This is the STONEHEART spell. It'll summon the fierce Terranite.");
+ next;
+ mesn;
+ mesq l("They used to be an advanced civilization long long ago, but they decided to go against the Moubootaur.");
+ next;
+ mesn;
+ mesq l("They are now like most monsters. I pity them. Their sacrifice was not in vain, though.");
+ skill TMW2_STONEHEART, 1, 0;
+ setq General_Sagratha, 11;
+ break;
+ case 12:
+ if (MAGIC_LVL < 7)
+ goto L_Magicless;
+ mesn;
+ mesc l("@@ nods reluctantly.", .name$);
+ mesq l("If you try take any more power from the Mana Seed, I'll kill you.");
+ next;
+ mesn;
+ mesq l("Seven levels is what the Mana Seed may give to any race but Saviors.");
+ next;
+ mesn;
+ mesq l("Of course, the Savior race is extinct as far as history book concern with.");
+ next;
+ mesn;
+ mesq l("This is the FAIRYEMPIRE spell. It'll summon Pixies.");
+ next;
+ mesn;
+ mesq l("For simple-minded individuals like you, pixies are fairies.");
+ skill TMW2_FAIRYEMPIRE, 1, 0;
+ setq General_Sagratha, 13;
+ break;
+ }
+ /*
+ Plants Lv 1
+ Kalmurk Lv 10
+ Zarkor Lv 15
+ Fluffy Lv 15
+ Poison Spiky Mushroom Lv 25
+ Limerizer Lv 30 → Unused
+
+ Mouboo Lv 35
+ Halhiss Lv 40
+ Wolvern Lv 45
+
+ Fairy Kingdom Lv 50
+ Frozenheart Lv 60
+ Dragokin Lv 70 → Unused (Lilit reward)
+ Stoneheart Lv 80
+ Pixies Lv 90
+
+ Never released:
+ TODO Scorpions Lv 30~50
+ TODO Black Mamba Lv 80
+ TODO Moonshroom Lv 80
+ TODO Centaur Lv 80
+
+ skill TMW2_DRAGOKIN, 5;
+ */
+ next;
+ return;
+}
+function requireHelp {
+ .@x=getarg(0,getq(General_Sagratha));
+ switch (.@x) {
+ case 1:
+ mesn;
+ mesq l("I need help because, you see, I don't carry a cauldron around.");
+ next;
+ mesn;
+ mesq l("I need @@ @@, if you could arrange me that I would be grateful.", 35, getitemlink(PiberriesInfusion));
+ if (countitem(PiberriesInfusion) < 35)
+ break;
+ next;
+ mesc l("Deliver the potions to Sagratha?");
+ if (askyesno() == ASK_YES) {
+ delitem PiberriesInfusion, 35;
+ getexp 800, 0;
+ mesn;
+ mesq l("Thanks. Do you know the KALSPIKE magic? It allows you to summon Poison Spiky Mushroom. Just use a spore.");
+ skill TMW2_KALSPIKE, 1, 0;
+ setq General_Sagratha, 2;
+ }
+ break;
+ case 3:
+ .@m=Wolvern;
+ if (BaseLevel < getmonsterinfo(.@m, MOB_LV)) {
+ mesn;
+ mesq l("When you're stronger I may consider asking for your help.");
+ break;
+ }
+ mesn;
+ mesq l("I need help because, you see, I don't carry a cauldron around.");
+ next;
+ mesn;
+ mesq l("I need @@ @@, if you could arrange me that I would be grateful.", 1, getitemlink(GoldenApple));
+ if (countitem(GoldenApple) < 1)
+ break;
+ next;
+ mesc l("Deliver the items to Sagratha?");
+ if (askyesno() == ASK_YES) {
+ delitem GoldenApple, 1;
+ .@xp=getmonsterinfo(.@m, MOB_BASEEXP);
+ .@jp=getmonsterinfo(.@m, MOB_JOBEXP);
+ getexp .@xp*20, .@jp*15;
+ mesn;
+ mesq l("Thanks. I am willing to share you more magic, if you're interested.");
+ setq General_Sagratha, 4;
+ }
+ break;
+ case 5:
+ .@m=FireFairy;
+ if (BaseLevel < getmonsterinfo(.@m, MOB_LV)) {
+ mesn;
+ mesq l("When you're stronger I may consider asking for your help.");
+ break;
+ }
+ mesn;
+ mesq l("I need help because, you see, I don't carry a cauldron around.");
+ next;
+ mesn;
+ mesq l("I need @@ @@, if you could arrange me that I would be grateful.", 1, getitemlink(LilitWarpCrystal));
+ if (countitem(LilitWarpCrystal) < 1)
+ break;
+ next;
+ mesc l("Deliver the items to Sagratha?");
+ if (askyesno() == ASK_YES) {
+ delitem LilitWarpCrystal, 1;
+ .@xp=getmonsterinfo(.@m, MOB_BASEEXP);
+ .@jp=getmonsterinfo(.@m, MOB_JOBEXP);
+ getexp .@xp*20, .@jp*15;
+ mesn;
+ mesq l("Thanks. I am willing to share you more magic, if you're interested.");
+ setq General_Sagratha, 6;
+ }
+ break;
+ case 7:
+ .@m=Yeti;
+ if (BaseLevel < getmonsterinfo(.@m, MOB_LV)) {
+ mesn;
+ mesq l("When you're stronger I may consider asking for your help.");
+ break;
+ }
+ mesn;
+ mesq l("I need help because, you see, I don't carry a cauldron around.");
+ next;
+ mesn;
+ mesq l("I need @@ @@, if you could arrange me that I would be grateful.", 20, getitemlink(SacredManaPotion));
+ if (countitem(SacredManaPotion) < 20)
+ break;
+ next;
+ mesc l("Deliver the items to Sagratha?");
+ if (askyesno() == ASK_YES) {
+ delitem SacredManaPotion, 20;
+ .@xp=getmonsterinfo(.@m, MOB_BASEEXP);
+ .@jp=getmonsterinfo(.@m, MOB_JOBEXP);
+ getexp .@xp*20, .@jp*15;
+ mesn;
+ mesq l("Thanks. I am willing to share you more magic, if you're interested.");
+ setq General_Sagratha, 8;
+ }
+ break;
+ case 9:
+ .@m=Terranite;
+ if (BaseLevel < getmonsterinfo(.@m, MOB_LV)) {
+ mesn;
+ mesq l("When you're stronger I may consider asking for your help.");
+ break;
+ }
+ mesn;
+ mesq l("I need help because, you see, I don't carry a cauldron around.");
+ next;
+ mesn;
+ mesq l("I need @@ @@, if you could arrange me that I would be grateful.", 20, getitemlink(SacredImmortalityPotion));
+ if (countitem(SacredImmortalityPotion) < 20)
+ break;
+ mesq l("Ah! I also want @@ @@.", 1, getitemlink(Arcanum));
+ if (countitem(Arcanum) < 1)
+ break;
+ next;
+ mesc l("Deliver the items to Sagratha?");
+ if (askyesno() == ASK_YES) {
+ delitem SacredImmortalityPotion, 20;
+ delitem Arcanum, 1;
+ .@xp=getmonsterinfo(.@m, MOB_BASEEXP);
+ .@jp=getmonsterinfo(.@m, MOB_JOBEXP);
+ getexp .@xp*20, .@jp*15;
+ mesn;
+ mesq l("Thanks. I am willing to share you more magic, if you're interested.");
+ setq General_Sagratha, 10;
+ }
+ break;
+ default:
+ mesn;
+ mesq l("Maybe. Come back later.");
+ next;
+ break;
+ }
+ next;
+ return;
+}
+
+L_Lie:
+ mesn;
+ mesq l("I'm not blind.");
+ close;
+
+L_Magicless:
+ mesn;
+ mesq l("Not yet. You have to ask the mana seed to give you more power.");
+ next;
+ mesn;
+ mesq l("Your skill in magic is not great enough to use some of the spells yet, so keep practicing and visiting the mana seed until it is.");
+ close;
+
+OnInit:
+ setarray .SaggyHats, FluffyHat, MoubooHat, AlphaMoubooHat;
+
+ .distance=5;
+ npcsit;
+ end;
+
+OnInstanceInit:
+ disablenpc instance_npcname(.name$);
+ end;
+}
+