// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// Part of the Doctor's Quest.
// Elli is capable to use magic without a mana stone, which puts her on the same
// level as the Moubootaur and the Mana Source.
032-1,58,129,0 script Elli NPC_ELLI,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
.@x = getq3(LoFQuest_EPISODE);
.@banu_priz = (.@x & 8);
.@eurni_info = (.@x & 16);
if (!.@q && getq3(LoFQuest_EPISODE)) {
mesn;
mesq l("Hi. Do you need something?");
next;
select
l("No, nothing. Sorry."),
l("I need to enter.");
mes "";
if (!.@banu_priz) {
mesn;
mesq l("And who would you be? Another bandit? Leave!");
close;
}
if (!.@eurni_info) {
mesn;
mesq l("Why? You are most definitely at the wrong place. Leave!");
close;
}
mesn;
mesq l("Eh... Sure, why not. What could go wrong, after all.");
setq2 LoFQuest_EPISODE, 1;
close;
}
npctalk3 l("Hi.");
end;
OnInit:
.distance=5;
end;
}
032-1,59,126,0 script #InnerEP NPC_HIDDEN,0,0,{
end;
OnTouch:
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
if (getq(LoFQuest_EPISODE) > 15 || .@q)
slide 52, 127;
else
dispbottom l("This door is locked.");
end;
}
032-1,68,54,0 script Adrian NPC_PLAYER,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
npctalk3 l("Hi. Are you here to get luggage?");
end;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, SailorHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe);
//setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); // TODO
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins);
setunitdata(.@npcId, UDT_HAIRSTYLE, 21);
setunitdata(.@npcId, UDT_HAIRCOLOR, 11);
.sex = G_MALE;
.distance=5;
end;
}
032-1,45,36,0 script Marikel NPC_PLAYER,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
npctalk3 l("Hi. Working on the docks can be hard, but I'm glad I at least get to eat!");
end;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, SailorHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt);
setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers);
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins);
setunitdata(.@npcId, UDT_HAIRSTYLE, 21);
setunitdata(.@npcId, UDT_HAIRCOLOR, 11);
.sex = G_MALE;
.distance=5;
end;
}
032-1,75,46,0 script Joelin NPC_FEMALE,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
npctalk3 l("Hi. My ship is about to set sail, we'll try to find somewhere better to live than this ruined place!");
end;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, CaptainCap);
setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe);
//setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); // TODO
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins);
setunitdata(.@npcId, UDT_HAIRSTYLE, 21);
setunitdata(.@npcId, UDT_HAIRCOLOR, 11);
.sex = G_FEMALE;
.distance=5;
end;
}
032-1,77,46,0 script Harper NPC_PLAYER,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
npctalk3 l("Hi. My captain believe the world is round, can you believe that?");
end;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, SailorHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, SailorShirt);
setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers);
setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins);
setunitdata(.@npcId, UDT_HAIRSTYLE, 21);
setunitdata(.@npcId, UDT_HAIRCOLOR, 11);
.sex = G_MALE;
.distance=5;
end;
}
032-1,112,142,0 script Banu NPC_GLASS_OLD_LADY,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
if (.@q) {
npctalk3 l("Hi. My back hurts!");
} else {
// Quest can be reset, so no major rewards, not even experience
.@x = getq3(LoFQuest_EPISODE);
.@met_banu = (.@x & 1);
.@ask_apple = (.@x & 2);
.@got_apple = (.@x & 4);
.@banu_priz = (.@x & 8);
if (!.@got_apple) {
mesn;
mesq l("You won't have any of my vegetables, you scoundrel! Get off my yard!");
setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 128;
close;
} else if (!.@banu_priz) {
mesn;
mesq l("Oh, thanks, darling; I was starving. Do you need anything?");
next;
select
l("I want the apples back."),
l("I'm after the Queen's Party."),
l("I want a knife and a bottle of water!");
mes "";
setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 8;
switch (@menu) {
case 1:
getitem RedApple, 12;
mesn;
mesq l("Sure, here you go!");
close;
case 2:
getitem SharpKnife, 1;
getitem ChickenLeg, 1;
mesn;
mesq l("They did nothing good! They claim the Platinum Queen was a savior, all lies!");
next;
mesn;
mesq l("We sure flourished at her early years, but the late years were a disaster! Crops were failing way before her death!");
next;
mesn;
mesq l("Don't believe anything they tell you! Here, take this, so you can defend yourself. And some food, now leave.");
close;
case 3:
getitem BottleOfTonoriWater, 1;
getitem SmallKnife, 1;
mesn;
mesq l("Sure, here you go!");
close;
}
close;
} else {
npctalk3 l("Hi. Thanks for the pie.");
}
}
end;
OnInit:
.distance=5;
end;
}
032-1,71,195,0 script Joanna NPC_JOANA,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
if (.@q) {
npctalk3 l("Hi. Come to the bakery!");
} else {
.@x = getq3(LoFQuest_EPISODE);
.@met_banu = (.@x & 1);
.@ask_apple = (.@x & 2);
.@got_apple = (.@x & 4);
.@banu_priz = (.@x & 8);
if (.@met_banu && !.@ask_apple) {
mesn;
mesq l("Hey, you, stranger. I promised Banu a pie, but she is yet to give me the apples.");
next;
mesn;
mesq l("Can you fetch with her? 12 %s.", getitemlink(RedApple));
next;
select
l("Sure!"),
l("No, sorry.");
mes "";
if (@menu == 1) setq3 LoFQuest_EPISODE, .@x | 2;
close;
} else if (.@ask_apple) {
mesn;
mesq l("Did you brought me 12 %s?", getitemlink(RedApple));
if (countitem(RedApple) < 12) close;
next;
select
l("Sure!"),
l("No, sorry.");
mes "";
if (@menu == 2)
close;
delitem RedApple, 12;
setq3 LoFQuest_EPISODE, .@x | 4;
mesn;
mesq l("Thank you, tell her to come to the bakery at... Actually, nevermind. Just give her this note.");
close;
} else {
mesn;
mesq l("Come to the bakery!");
close;
}
}
end;
OnInit:
.distance=5;
end;
}
032-1,151,201,0 script Eurni NPC_EURNI,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
if (.@q) {
npctalk3 l("Hi. I have questionable items of questionable origins for you.");
openshop;
} else {
mesn;
mesq l("Hi. I have questionable items of questionable origins for you.");
next;
select
l("Trade"),
l("The Queen's Party?"),
l("Not now.");
mes "";
if (@menu == 1) {
openshop;
closeclientdialog;
}
else if (@menu == 2) {
mesn;
mesq l("I always do shady deals. *cough cough* %s GP.", fnum(500));
next;
if (askyesno() == ASK_YES && Zeny >= 500) {
Zeny-=500;
setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | 16;
mesn;
mesq l("They are hidden in the crypts, inside a cave.");
next;
mesn;
mesq l("This conversation never happened.");
}
}
close;
}
end;
OnInit:
sellitem Bread, getiteminfo(Bread, ITEMINFO_BUYPRICE)*16/10;
sellitem Cheese, getiteminfo(Cheese, ITEMINFO_BUYPRICE)*16/10;
sellitem ChamomileTea, getiteminfo(ChamomileTea, ITEMINFO_BUYPRICE)*18/10;
sellitem BugLeg, getiteminfo(BugLeg, ITEMINFO_BUYPRICE)*192/10;
sellitem LazuriteShard, 700;
sellitem MaggotSlime, getiteminfo(MaggotSlime, ITEMINFO_BUYPRICE)*192/10;
sellitem Coal, getiteminfo(Coal, ITEMINFO_BUYPRICE)*132/10;
sellitem Lockpicks, 10000;
sellitem IcedBottle, getiteminfo(IcedBottle, ITEMINFO_BUYPRICE)*32/10;
sellitem Wurtzite, getiteminfo(Wurtzite, ITEMINFO_BUYPRICE)*164/10;
sellitem StrangeCoin, 1000000;
sellitem WumpusEgg, 99999999;
.sex = G_MALE;
.distance = 5;
end;
// Pay your taxes!
OnBuyItem:
end;
OnSellItem:
end;
}
032-1,140,213,0 script Weellos NPC_LEGACY_GUARD_B,{
.@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
npctalk3 l("Hi. This is a very historic building - the former residence of the red queen no less!");
end;
OnInit:
.distance=5;
end;
}
// NPC_LEGACY_GUARD_A NPC_LEGACY_GUARD_C NPC_LEGACY_GUARD_D NPC_LEGACY_LIEUTENANT
// NPC_OMAR NPC_KADIYA NPC_JOANA&BANU NPC_SASHA