// TMW2 scripts.
// Author:
// TMW-BR
// Jesusalva
// Description:
// AFK Cap quest (Lv 47)
024-7,40,24,0 script AF King NPC_PLAYER,{
function AFPrologue;
function AFGrinding;
function AFKingGelid;
function AFItemList;
function AFDeliver;
if (BaseLevel < 47) {
npctalkonce l("*AFK: I am Away From Keyboard*");
end;
}
.@q=getq(FrostiaQuest_AFKCap);
@flag02474024=false;
switch (.@q) {
case 0: // Mission not started
mesn;
mesq l("I'm back, I'm here, I'm great! I am the AF King Arthur!");
next;
do {
mesn;
mesq l("But can I help you?");
next;
select
l("Good, I need to talk with the King."),
l("You have a nice hat."),
l("Do you know where I can level up?"),
rif(@flag02474024, l("I would like a hat like yours.")),
l("Nothing, good bye!");
mes "";
switch (@menu) {
case 1:
AFKingGelid();
break;
case 2:
AFPrologue();
@flag02474024=true;
break;
case 3:
AFGrinding();
break;
case 4:
setq FrostiaQuest_AFKCap, 1;
AFItemList();
break;
default:
close;
}
} while (true);
break;
case 1: // Mission accepted
AFItemList();
break;
default: // Mission complete
npctalkonce l("*AFK: I am Away From Keyboard*");
end;
break;
}
closedialog;
goodbye;
close;
function AFPrologue {
mesn;
mesq l("No one is more there than here than me! Look at my hat, it symbolizes that I am an useless player!");
next;
mesn;
mesq l("And if you listen to Tulimshar's Professor lecture wearing it, you'll gain more experience!");
next;
mesn;
mesq l("Basically, no one else disturbs me anymore when I'm busy snoring in class! ^.^");
next;
return;
}
function AFGrinding {
mesn;
mesq l("Uhh... Not really! I love to kill Yetis, but sometimes they are really shy!");
next;
mesn;
mesq l("They must be hiding in some cave... It's a shame!");
next;
return;
}
function AFKingGelid {
mesn;
mesq l("Uhm, I'm not the king of Frostia, I'm the king of all useless adventurers.");
next;
mesn;
mesq l("I just go out removing swords from rocks, and then throwing them again at the lake. All that while I drink coffee.");
next;
mesn;
mesq l("If you need to talk with King Gelid, he should be in the castle north here.");
next;
return;
}
function AFItemList {
mesn;
mesq l("Sure, no problem! For this awesome hat which I can make it myself, you'll need to bring me a few items!");
next;
mes ".:: "+l("Item List")+" ::.";
mesc l("@@/@@ @@", countitem(SilkCocoon), 300, getitemlink(SilkCocoon));
mesc l("@@/@@ @@", countitem(CobaltHerb), 100, getitemlink(CobaltHerb));
mesc l("@@/@@ @@", countitem(CottonCloth), 25, getitemlink(CottonCloth));
mesc l("@@/@@ @@", countitem(BlueDye), 1, getitemlink(BlueDye));
mesc l("@@/@@ @@", format_number(Zeny), format_number(5000), "GP");
next;
// FIXME Deprecate .@ scope on flag
if (@flag02474024) {
mesn;
mesq l("Now I'll be waiting!");
close;
}
select
l("Okay, I'll be back!"),
l("I have everything you've asked for.");
mes "";
if (@menu == 2)
AFDeliver();
return;
}
function AFDeliver {
inventoryplace AFKCap, 1;
if (
countitem(SilkCocoon) < 300 ||
countitem(CobaltHerb) < 100 ||
countitem(CottonCloth) < 25 ||
countitem(BlueDye) < 1 ||
Zeny < 5000) {
mesn;
mesq l("I'll feed you to the Moubootaur %%e");
setparam(MaxHp, readparam(MaxHp)-100);
die();
close;
}
Zeny-=5000;
delitem SilkCocoon, 300;
delitem CobaltHerb, 100;
delitem CottonCloth, 25;
delitem BlueDye, 1;
getitem AFKCap, 1;
setq FrostiaQuest_AFKCap, 2;
mesn;
mesq l("As I had the spare materials I've already did yours in advance.");
next;
mesn;
mesq l("There you go. Enjoy it!");
next;
return;
}
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, AFKCap);
setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); // TODO
setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots);
setunitdata(.@npcId, UDT_HAIRSTYLE, 26);
setunitdata(.@npcId, UDT_HAIRCOLOR, 0);
npcsit;
.sex = G_MALE;
.distance = 4;
end;
}