// TMW2/LoF scripts.
// Authors:
// TMW-LoF Team
// Jesusalva
// Description:
// Old pirate with quests.
// LOFQuest_George
// 1 - Roger assigned the task
// 2 - First task accepted
// 3 - First task complete
// 4 - Second task accepted
// 5 - Second task complete
018-1,26,36,0 script George NPC_GEORGE,{
.@q=getequipid(EQI_HEAD_TOP);
.@q1=getequipid(EQI_ACC_R);
if (.@q == CorsairHat) goto L_Pirate;
if (.@q == PirateBandana) goto L_Bandana;
if (.@q == RightEyePatch || .@q1 == EyePatch) goto L_EyePatch;
mesn l("George the Pirate");
mesq l("Yar! Do you need something, matey?");
goto L_Main;
// Intro dialogs
L_Pirate:
mesn l("George the Pirate");
mesq l("Arrrrh! Ye be wearing a pirate's hat!");
goto L_Main;
L_Bandana:
mesn l("George the Pirate");
mesq l("Arrrrh! Ye remind me of my old first mate!");
goto L_Main;
L_EyePatch:
mesn l("George the Pirate");
mesq l("Arrrrh! Looks like ye lost an eye there!");
goto L_Main;
// Main Menu
L_Main:
.@q=getq(LoFQuest_George);
menu
l("What is this island?"), L_Explain,
rif(.@q == 1, l("Actually, I heard from Roger that you may need some help.")), L_RequestOne,
rif(.@q == 2, l("About the items you asked me to collect...")), L_ProgressOne,
rif(.@q == 3, l("Do you need any more help?")), L_RequestTwo,
rif(.@q == 4, l("About the items you asked me to collect...")), L_ProgressTwo,
rif(.@showShovel, l("Could you sell me a treasure map and a shovel?")), L_Shop,
rif(getq(HurnscaldQuest_PirateCave), l("About this pirate treasure map...")), L_PirateMap,
l("Nothing I guess"), L_Close;
// Context menu
L_Explain:
mesn l("George the Pirate");
mesq l("Arrr matey! This is @@, yarr.", l("##BSincerity Island##b"));
next;
mesn l("George the Pirate");
mesq l("Nobody lives here for years, arr. Monsters have taken over everything, yarr.");
next;
mesn l("George the Pirate");
mesq l("It is a pirate treasure hideout, yarr arr! If you have a @@ and a @@, you may get luck, yarr!", getitemlink(PirateTreasureMap), getitemlink(IronShovel));
next;
.@showShovel=true;
goto L_Main;
// Requests
L_RequestOne:
if (BaseLevel < 40)
goto L_Weak;
mesn l("George the Pirate");
mesq l("Roger, eh? Aye, I do need help. If you bring me 30 @@, 50 @@, and 30 @@, maybe I can give you a reward.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
setq LoFQuest_George, 2;
close;
L_RequestTwo:
if (BaseLevel < 60)
goto L_Weak;
mesn l("George the Pirate");
mesq l("Arrr matey! My captain asked me to have you get him some items. Please bring us %d %s and %d %s, my captain likes to snack on those during our long voyages. Oh, and something to read too!",
50, getitemlink(Potatoz),
40, getitemlink(Dragonfruit));
setq LoFQuest_George, 4;
close;
// Progress Report 1
L_ProgressOne:
if (countitem(Beer) < 30 ||
countitem(EmptyBottle) < 50 ||
countitem(CasinoCoins) < 30)
goto L_NotEnough;
mesn l("George the Pirate");
mesq l("Did you brought everything I ask for?");
select
l("Yes"),
l("Not sure");
if (@menu == 2)
goto L_NotEnough;
mesn l("George the Pirate");
mesq l("Yar matey! You have the items I asked for! You have the honor and trust we pirates bestow each other!");
inventoryplace SailorHat, 1;
delitem Beer, 30;
delitem EmptyBottle, 50;
delitem CasinoCoins, 30;
mes "";
mesq l("Here is a reward for your effort! Now you can be a true buccaneer!");
getitem SailorHat, 1;
getexp 50000, 0;
setq LoFQuest_George, 3;
goto L_Close;
// Progress Report 2
L_ProgressTwo:
if (countitem(Potatoz) < 50 ||
countitem(Dragonfruit) < 40 ||
countitem(Almanac) < 1)
goto L_NotEnough;
mesn l("George the Pirate");
mesq l("Did you brought everything I ask for?");
select
l("Yes"),
l("Not sure");
if (@menu == 2)
goto L_NotEnough;
mesn l("George the Pirate");
mesq l("Arrr! Good job matey! You brought us everything we asked for, even the Maritime Almanac Scroll!");
inventoryplace CorsairHat, 1;
delitem Potatoz, 50;
delitem Dragonfruit, 40;
delitem Almanac, 1;
mesq l("My captain wanted me to give this to you as a special reward for your efforts.");
getitem CorsairHat, 1;
getexp 150000, 0;
setq LoFQuest_George, 5;
next;
mesn;
mesq l("You can call yourself a pirate now! HAR HAR HAR!!");
goto L_Close;
// Fallbacks
L_Weak:
mesn l("George the Pirate");
mesq l("Arr, you are not experienced enough to help me yet!");
close;
L_NotEnough:
mesn l("George the Pirate");
mesq l("Arrr! You did not bring me everything I asked for!");
if (.@q == 2)
goto L_NotEnoughOne;
if (.@q == 4)
goto L_NotEnoughTwo;
close;
L_NotEnoughOne:
mesq l("Remember, I need 30 @@, 50 @@, and 30 @@.", getitemlink(Beer), getitemlink(EmptyBottle), getitemlink(CasinoCoins));
goto L_Close;
L_NotEnoughTwo:
mesq l("Remember, I need %d %s, %d %s, and something interesting to read.",
50, getitemlink(Potatoz),
40, getitemlink(Dragonfruit));
goto L_Close;
L_Shop:
mesn;
mesq l("Arr ha ha ha arr!");
next;
mesn;
mesq l("If I had a map, I would be digging the treasures, not selling it, arr!");
next;
mesn;
.@price=getiteminfo(IronShovel, ITEMINFO_BUYPRICE);
mesq l("But I can sell ya a %s for %d GP. Interested?", getitemlink(IronShovel), .@price);
if (Zeny < .@price) {
mesc l("You do not have enough money.");
next;
goto L_Main;
}
if (askyesno() == ASK_YES) {
inventoryplace IronShovel, 1;
Zeny-=.@price;
getitem IronShovel, 1;
mesn;
mesq l("Arr! Here you go, matey!");
next;
}
.@showShovel=false;
goto L_Main;
L_PirateMap:
if (getq(HurnscaldQuest_PirateCave) >= 2) {
mesn l("George the Pirate");
mesq l("I'm not familiar with the Butterfly Caves. Try asking a local, maybe Arkim, they ought know the way.");
next;
goto L_Close;
}
mesn l("George the Pirate");
mesq l("Arr, that's a fine map ya got there! And these are definitely Hurnscald Caves, yarr!");
next;
mesn l("George the Pirate");
mesq l("However...");
next;
mesn l("George the Pirate");
mesq l("I'm not familiar with the Butterfly Caves. Try asking a local?");
setq HurnscaldQuest_PirateCave, 2;
next;
goto L_Close;
L_Close:
sailortalk;
closedialog;
close;
OnInit:
.sex=G_MALE;
.distance=5;
end;
}