// TMW2/LoF scripts.
// Authors:
// TMW-LoF Team
// Jesusalva
// Description:
// Slay the Fafi Dragon quest. Due the OP monster, you better find yourself a good team!
// {quest status, respawns issued}
018-4-2,31,26,0 script Susanne NPC_FAIRY_A,{
.@q=getq(LoFQuest_Fairy);
if(BaseLevel < 53) goto L_Noob;
if(.@q == 1) goto L_Coward;
if(.@q == 2) goto L_Complete;
if(.@q >= 3) goto L_Thanks;
mesn;
mesq l("Do you like fairies? Well, you should love them! We play with humans all the time, it is usually pretty fun...");
next;
mesc l("(The girl now looks away sadly, thinking about what to say next.)");
next;
mesn;
mesq l("But dragons came and started roaming this island. My friends are now either dead or missing. You look big and strong, do you want to avenge me?");
goto L_Menu;
L_Menu:
menu
l("Sure, I'd love to help! What can I do?"), L_Yes,
l("Nah, I've got more serious matters to attend to..."), L_No;
L_Yes:
mesn;
mesq l("Thank you so much! That might not bring my friends back, but will make this island much safer!");
next;
mesn;
mesq l("The Fafi Dragon are really really bad guys. I don't know how they came here, as they're not from the Lands Of Fire, nor from Mana World.");
next;
mesn;
mesq l("But this is not important. They are dangerous. They must be stop at any cost!");
next;
mesn;
mesq l("So if you can help, go kill at least one on this island. They take a long time to respawn.");
next;
mesn;
mesq l("Thank you...");
setq LoFQuest_Fairy, 1;
if (!mobcount("018-4","Susanne::OnKillFafi"))
goto L_Spawn;
close;
OnKillFafi:
message strcharinfo(0), "You killed the Fafi Dragon.";
.@q=getq(LoFQuest_Fairy);
if (.@q == 1) {
setq LoFQuest_Fairy, 2, 0;
mapannounce "018-4-2", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0;
mapannounce "018-4-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0;
mapannounce "018-4", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0;
mapannounce "017-1", "" +strcharinfo(0)+ " has killed the Fafi Dragon!", 0;
message strcharinfo(0), "Cheers are being heard throughout the land!";
}
fix_mobkill(FafiDragon);
end;
L_Complete:
mesn;
mesq l("Many thanks for killing it. Maybe more humans come here now, and play with me.");
next;
inventoryplace FafiMask, 1;
getitem FafiMask, 1;
getexp 80000, 200;
setq LoFQuest_Fairy, 3;
mesn;
mesq l("By the way, I found this Mask after you killed the Fafi Dragon, Maybe you can use it some day.");
next;
mesn;
mesq l("And some times, more Fafi dragons come... Don't neglect your aid.");
close;
L_Thanks:
mesn;
mesq l("Sometimes humans come here and play with me. Many thanks for the help!");
if (!mobcount("018-4","Susanne::OnKillFafi") && .respawnTime <= gettimetick(2)) {
next;
mesn;
mesq l("Actually, about Fafi dragons...");
next;
goto L_Check;
}
close;
L_No:
mesn;
mesq l("Ok...please come back when you aren't busy...");
next;
mesc l("The girl turns around and you hear her sniffing, she is probably crying...");
close;
L_Noob:
mesn;
mesq l("Hey, have you come to play with me? I love playing with humans! Usually so few show in, it must be the dragons...");
//mesq l("I need some help with something, but I don't think you're strong enough. Come back later please when you're stronger.");
close;
L_Coward:
if (!mobcount("018-4","Susanne::OnKillFafi"))
goto L_Check;
mesn;
mesq l("What are you doing talking to me? Go fight, you coward!");
close;
L_Check:
if (.respawnTime > gettimetick(2) && (!mobcount("018-4","Susanne::OnKillFafi"))){
mesn;
mesq l("Just wait. Fafi dragons are slow to show up...");
} else {
.@q=limit(0, getq2(LoFQuest_Fairy), 3);
// First time is ALWAYS free
if (!.@q)
goto L_Spawn;
mesn;
mesq l("The Fafi knows you are here to kill him. They are smart. But I can make a trap.");
next;
mesn;
mesq l("Bring me this and I'll spawn it for you:");
// .@q valid values are 1 (Starter) and 3 (Veteran)
mesc l("@@/@@ @@", countitem(ShadowHerb), .@q*5, getitemlink(ShadowHerb));
mesc l("@@/@@ @@", countitem(Moss), .@q*4, getitemlink(Moss));
mesc l("@@/@@ @@", countitem(Root), .@q*3, getitemlink(Root));
next;
mesn;
mesq l("I'll be attracted by the Shadow Herb. The moss will hide the roots, which will entrap it for a while.");
mesq l("So, do you have the items?");
if (askyesno() != ASK_YES) {
close;
}
mes "";
if (countitem(ShadowHerb) < .@q*5 ||
countitem(Moss) < .@q*4 ||
countitem(Root) < .@q*3) goto L_Fail;
if (.respawnTime > gettimetick(2)) {
mesn;
mesq l("Too slow.");
close;
}
delitem ShadowHerb, .@q*5;
delitem Moss, .@q*4;
delitem Root, .@q*3;
goto L_Spawn;
}
close;
L_Spawn:
if (.respawnTime > gettimetick(2)){
mesn;
mesq l("Just wait. Fafi dragons are slow to show up...");
} else {
mesn;
mesc l("Screams");
mesq l("I hear a Fafi Dragon on THIS very island!!");
.respawnTime=gettimetick(2)+(60*30);
monster "018-4", any(64,83,100,123,139), any(64,74,89), strmobinfo(1, FafiDragon), FafiDragon, 1, "Susanne::OnKillFafi";
setq2 LoFQuest_Fairy, getq2(LoFQuest_Fairy)+1;
}
close;
L_Fail:
mesn;
mesq l("You're lucky that this is the Land Of Fire and I'm on a good mood, otherwise, I would have killed you for lying to me.");
close;
OnInit:
.respawnTime=0;
.sex=G_FEMALE;
.distance=5;
end;
}