summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-03-19 11:16:02 -0300
committerJesusaves <cpntb1@ymail.com>2019-03-19 11:16:02 -0300
commit4886a23a484b9d3e1bf7deb783eb05c79474c1c1 (patch)
tree6f78cbb9994409ca78d9bc87f87df8f6954112ad /npc
parent4781bead3cc775414f20e90baabefad6bb2ef0aa (diff)
downloadserverdata-4886a23a484b9d3e1bf7deb783eb05c79474c1c1.tar.gz
serverdata-4886a23a484b9d3e1bf7deb783eb05c79474c1c1.tar.bz2
serverdata-4886a23a484b9d3e1bf7deb783eb05c79474c1c1.tar.xz
serverdata-4886a23a484b9d3e1bf7deb783eb05c79474c1c1.zip
Leona, the only Fairy at Lilit currently.
Part of a TBD quest. She lets you sell snake's skin based items for 20% more.
Diffstat (limited to 'npc')
-rw-r--r--npc/018-5-2/_import.txt1
-rw-r--r--npc/018-5-2/leona.txt106
-rw-r--r--npc/functions/mobhunter.txt6
3 files changed, 113 insertions, 0 deletions
diff --git a/npc/018-5-2/_import.txt b/npc/018-5-2/_import.txt
index 9835e17fe..ef18d80a9 100644
--- a/npc/018-5-2/_import.txt
+++ b/npc/018-5-2/_import.txt
@@ -1,3 +1,4 @@
// Map 018-5-2: Indoors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/018-5-2/_warps.txt",
+"npc/018-5-2/leona.txt",
diff --git a/npc/018-5-2/leona.txt b/npc/018-5-2/leona.txt
new file mode 100644
index 000000000..ffb866ae1
--- /dev/null
+++ b/npc/018-5-2/leona.txt
@@ -0,0 +1,106 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW BR Team
+// Jesusalva
+// Description:
+// Exchanges Mountain Snake Plate (TBD) for a Nymph Necklace (TBD)
+// Grand Hunter Quest
+
+018-5-2,33,36,0 script Leona NPC_FAIRY_B,{
+ function leona_exchange;
+ mesn;
+ mesq l("Hello, @@!", get_race());
+ next;
+ mesn;
+ mesq l("Do you have something to exchange with me? Or perhaps you want a Grand Hunter Quest?");
+ next;
+ select
+ l("I've brought something to exchange."),
+ l("I'm interested in Grand Hunter Quest."),
+ l("Ops, sorry. I was going to the Soul Menhir and entered your house by accident.");
+ mes "";
+ switch (@menu) {
+ case 3:
+ mesn;
+ mesq l("It happens.");
+ close;
+ case 2:
+ GHQ_Assign(MountainSnake, "Lilit");
+ close;
+ case 1:
+ mesn;
+ mesq l("The most famous nymphs, are those who wear stuff made of Snake Skin.");
+ next;
+ mesn;
+ mesq l("Perhaps you have something like that?");
+ next;
+ do
+ {
+ mesc l("What to exchange with Leona?");
+ mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
+
+ .@id = requestitem();
+
+ // If ID is invalid, there's not enough items or if it is bound
+ if (.@id < 1) close;
+ if (countitem(.@id) < 1) close;
+ if (checkbound(.@id))
+ {
+ mesc l("You cannot part with this item!");
+ continue;
+ }
+
+ // TODO: Check if item is OK
+ switch (.@id) {
+
+ // Generic Exchange
+ case LeatherShirt:
+ case LeatherBoots:
+ case LeatherGloves:
+ case JeansChaps:
+ case LeatherTrousers:
+ case SnakeSkin:
+ case MountainSnakeSkin:
+ case CaveSnakeSkin:
+ case BlackMambaSkin:
+ leona_exchange(.@id, 0);
+ default:
+ mesn;
+ mesq l("I have no interest on this item.");
+ next;
+ break;
+ }
+
+ } while (true);
+ }
+ close;
+
+ // leona_exchange ( give, receive )
+ // Receive should be item ID. If it is 0, you will get 1.2× the sell price
+ function leona_exchange {
+ .@what=getarg(0);
+ .@reward=getarg(1);
+ if (!.@reward)
+ .@gp=getiteminfo(.@what, ITEMINFO_SELLPRICE)*12/10;
+ mesn;
+ if (.@reward)
+ mesq l("For this @@, I offer you a(n) @@.", getitemlink(.@what), getitemlink(.@reward));
+ else
+ mesq l("For this @@, I offer you @@ GP.", getitemlink(.@what), format_number(.@gp));
+ next;
+ mesc l("Exchange the item with Leona?");
+ if (askyesno() == ASK_YES)
+ {
+ delitem .@what, 1;
+ if (.@reward)
+ getitem .@reward, 1;
+ else
+ Zeny+=.@gp;
+ mesn;
+ mesq l("Many thanks! I'll be sooooo fashionable now!");
+ next;
+ }
+ return;
+ }
+
+}
diff --git a/npc/functions/mobhunter.txt b/npc/functions/mobhunter.txt
index 21bb55516..e08ac4429 100644
--- a/npc/functions/mobhunter.txt
+++ b/npc/functions/mobhunter.txt
@@ -26,6 +26,9 @@ function script GHQ_GetQuestIDByMonsterID {
case Fluffy:
return 7;
break;
+ case MountainSnake:
+ return 8;
+ break;
default:
debugmes "Invalid mob ID: " + getarg(0);
dispbottom l("ERROR, Please report: GHQ GQID: Invalid ID: @@", getarg(0));
@@ -59,6 +62,9 @@ function script GHQ_GetMonsterIDByQuestID {
case 7:
return Fluffy;
break;
+ case 8:
+ return MountainSnake;
+ break;
default:
debugmes "Invalid quest ID: " + getarg(0);
dispbottom l("ERROR, Please report: GHQ GMID: Invalid ID: @@", getarg(0));