summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--db/re/item_db.conf14
-rw-r--r--npc/018-5-5/ivanize.txt81
3 files changed, 98 insertions, 1 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 1ed42eb4d..54cc99a58 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -445,6 +445,10 @@ quest_db: (
Id: 252
Name: "LilitQuest_PiratesOfSARAH"
},
+{
+ Id: 253
+ Name: "LilitQuest_Ivanize"
+},
// ID 270 to 299: Land Of Fire Quests
{
Id: 270
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index e21b419b7..16293d591 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -16573,6 +16573,20 @@ item_db: (
sc_start SC_CASH_DEATHPENALTY, 900000, 1;
">
},
+{
+ Id: 8030
+ AegisName: "NymphPoison"
+ Name: "Nymph Poison"
+ Type: "IT_USABLE"
+ Buy: 15000
+ Sell: 250
+ Weight: 10
+ Refine: false
+ Delay: 500
+ Script: <"
+ sc_start SC_DPOISON, 30000, 10;
+ ">
+},
)
diff --git a/npc/018-5-5/ivanize.txt b/npc/018-5-5/ivanize.txt
index bfec74f6b..ee0712a49 100644
--- a/npc/018-5-5/ivanize.txt
+++ b/npc/018-5-5/ivanize.txt
@@ -5,13 +5,92 @@
// Description:
// Evil Fairy
-018-5-5,31,26,0 script Ivanize NPC_FAIRY_A,{
+018-5-5,29,38,0 script Ivanize NPC_FAIRY_A,{
+ function ivanizeBusy;
if (strcharinfo(0) == "Manatauro") npctalk3 l("Leave me alone! Stop annoying me!");
+ .@q = getq(LilitQuest_Ivanize);
+ if (BaseLevel < 50) ivanizeBusy();
+ if (.@q == 0) goto L_FirstTime;
+ ivanizeBusy();
+ end;
+
+L_FirstTime:
+ mesn;
+ mesq l("Hello %s.", strcharinfo(0));
+ next;
+ mesn strcharinfo(0);
+ select
+ l("And who are you?"),
+ l("How do you know my name?");
+ mes "";
+ mesn;
+ mesq l("My name is %s. I am an upstanding citizen of this kingdom. Everyone loves me.", .name$);
+ next;
+ mesn;
+ mesq l("Because I am a special nymph.");
+ mes "%%0";
+ next;
+ mesn strcharinfo(0);
+ select
+ l("Hahah, tell me another one!"),
+ l("Let's pretend I believe you.");
+ mes "";
+ mes "%%:";
+ mes "";
+ mesc l("%s, a bit upset, tries to change subjects.", .name$);
+ next;
+ mesn;
+ mesq l("Have you brought me some %s?", getitemlink(SnakeEgg));
+ next;
+ mesn strcharinfo(0);
+ select
+ l("Why you don't tell me?"),
+ l("Wait, I thought you were a nymph!");
+ mes "";
+ mesn;
+ mesq l("I know you have %d %s with you, just haven't said before to be polite.", countitem(SnakeEgg), getitemlink(SnakeEgg));
+ next;
+ mesn;
+ mesq l("I like to eat snake eggs. Lemme do you a proposal: You bring me %d %s, and I'll give you a flask of %s.", .minEggs, getitemlink(SnakeEgg), getitemlink(NymphPoison));
+ next;
+ mesn;
+ mesq l("Just make sure to don't try to poison a guard or something, and don't tell anyone of our little deal. As a proof of our agreement, I'll even give you a freebie, so you can see this is the real deal.");
+ next;
+ mesn;
+ mesq l("Come back when you have the Snake Eggs for me.");
+ getitem NymphPoison, 1;
+ setq LilitQuest_Ivanize, 1;
+ close;
+
+L_Exchange:
+ .@c=countitem(SnakeEgg);
+ .@o=(.@c/.minEggs);
+ if (.@c < .minEggs) ivanizeBusy();
+ mesn;
+ mesq l("Look at this, %s really brought me %d %s.",
+ strcharinfo(0), countitem(SnakeEgg), getitemlink(SnakeEgg));
+ next;
+ mesn strcharinfo(0);
+ select
+ l("I want %d %s!", .@o, getitemname(NymphPoison)),
+ l("I'll see you later.");
+ mes "";
+ if (@menu == 2) close;
+ delitem SnakeEgg, .@o*.minEggs;
+ getitem NymphPoison, .@o;
+ compareandsetq LilitQuest_Ivanize, 1, 2;
+ mesn;
+ mesq l("Here you go; See you later!");
+ close;
+
+function ivanizeBusy {
mesn;
mesq l("Can't you see I'm busy?");
close;
+}
OnInit:
+ .minEggs = 15;
.sex=G_FEMALE;
.distance=5;
end;