From e55b349d9e3c89369e70326db8c8ef8b49758ef5 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 25 Feb 2020 22:31:17 -0300 Subject: Notes on Lua + Refactor how and when you learn about shovels and maps. Digging treasures is now entirely optional, and George can sell you a shovel. --- npc/003-1/neko.txt | 2 -- npc/003-2/lua.txt | 36 +++++++++++++++++++++++------------- npc/018-1/george.txt | 28 ++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/npc/003-1/neko.txt b/npc/003-1/neko.txt index 81ba0d59d..75b46de88 100644 --- a/npc/003-1/neko.txt +++ b/npc/003-1/neko.txt @@ -69,7 +69,6 @@ OnInit: sellitem LeatherShirt, 12000, 1; sellitem ShortTankTop, 8000, 1; sellitem TrainingBow, 990, 2; - sellitem IronShovel, -1, 1; sellitem CottonCloth, -1, 3; sellitem RoastedMaggot, -1, 2; sellitem ArrowAmmoBox,-1,rand(5,10); @@ -87,7 +86,6 @@ OnClock2359: restoreshopitem LeatherShirt, 12000, 1; restoreshopitem ShortTankTop, 8000, 1; restoreshopitem TrainingBow, 990, 2; - restoreshopitem IronShovel, 1; restoreshopitem CottonCloth, 3; restoreshopitem RoastedMaggot, 2; restoreshopitem ArrowAmmoBox,rand(5,10); diff --git a/npc/003-2/lua.txt b/npc/003-2/lua.txt index 30877bce8..faf6e5c89 100644 --- a/npc/003-2/lua.txt +++ b/npc/003-2/lua.txt @@ -519,17 +519,32 @@ function luaAssignTask5 { next; mesn; mesq l("The Professor is so wise that even if you fall asleep while listening to his invisible speech, you'll still learn!!"); - tutmes l("The professor is always on the Magic Council, the northmost building. If you sit on the area in front of him (marked with a red rug), you'll gain Experience, even while AFK."); next; - mesc l("Who is the Professor? I've heard he was the father of a certain Arthur... No idea."); - mesc l("But who cares? We need to save the Professor! During night, monsters are stronger, so they'll probably attack at night time!"); - mesc l("During night the professor also goes to the Magic Academy, using the hidden north port, on the building to left of the Magic Council..."); + select + l("Who is this professor?"), + l("What can I do?"); + mes ""; + if (@menu == 1) { + mesn; + mesq l("Who is the Professor? I've heard he was the father of a certain Arthur... No idea."); + tutmes l("The professor is always on the Magic Council, the northmost building. If you sit on the area in front of him (marked with a red rug), you'll gain Experience, even while AFK."); + next; + mesn; + mesq l("But who cares? We need to save the Professor! During night, monsters are stronger, so they'll probably attack at night time!"); + } else { + mesn; + mesq l("You need to save the Professor! During night, monsters are stronger, so they'll probably attack at night time!"); + } + next; + mesn; + mesq l("During night the professor also goes to the Magic Academy, using the hidden north port, on the building to left of the Magic Council..."); if (!is_night()) mesc l("However, it's also possible they're there already."); next; - mesc l("Here, I'll give you a Mercenary Box. Open it, get the mercenary card, and summon it when needed. You absolutely CANNOT let the Professor be assassinated!"); + mesn; + mesq l("Here, I'll give you a Mercenary Box. Open it, get the mercenary card, and summon it when needed. You absolutely CANNOT let the Professor be assassinated!"); tutmes l("Explain briefly about mercenaries... I mean, we have a Mercenaries section on @tutorial right?"); // <-- TODO and add on the wiki as well! tutmes l("You can only have one mercenary active at a time, they die and will leave after 10 minutes - logged in or not."); tutmes l("Still, they can be useful when you're trying to solo a boss and need help. The number of stars on the card is the strength and rarity. Use them wisely."); @@ -540,16 +555,17 @@ function luaAssignTask5 { next; getitem MercBoxAA, 1; + LUA_ASKED_TO_SAVE_PROFESSOR=true; return; } // Your Report, the plan function luaTask5 { - msObjective(false, l("* Defeat the Assassin")); + msObjective(!LUA_ASKED_TO_SAVE_PROFESSOR, l("* Defeat the Assassin")); return; } function luaCheckTask5 { - return (false); + return (!LUA_ASKED_TO_SAVE_PROFESSOR); } @@ -571,12 +587,6 @@ L_Finish: mesq l("I'll also give you a @@. Open it to get a random Mercenary Card.", getitemlink(MercBoxAA)); next; mesn; - mesq l("You can only have one mercenary active at a time, they die and will leave after 10 minutes - logged in or not."); - next; - mesn; - mesq l("Still, they can be useful when you're trying to solo a boss and need help. The number of stars on the card is the strength and rarity. Use them wisely."); - next; - mesn; mesq l("Ah, you might have seen a treasure chest on the mines. There are several of these chests to loot, and loot again! Here is a @@. Try it!", getitemlink(TreasureKey)); next; L_Complete: diff --git a/npc/018-1/george.txt b/npc/018-1/george.txt index 004d6a3dd..63b0f0b4f 100644 --- a/npc/018-1/george.txt +++ b/npc/018-1/george.txt @@ -48,6 +48,7 @@ L_Main: rif(.@q == 2, l("About the items you asked me to collect...")), L_ProgressOne, rif(.@q == 3 && 0, l("Do you need any more help?")), L_RequestTwo, rif(.@q == 4 && 0, 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, l("Nothing I guess"), L_Close; // Context menu @@ -61,6 +62,7 @@ L_Explain: 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; @@ -163,6 +165,32 @@ L_NotEnoughTwo: mesq l("Remember, I need 100 @@, 50 @@, and something interesting to read.", getitemlink(WarlordPlate), getitemlink(CorsairHat)); 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_SELLPRICE); + 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_Menu; + } + 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_Menu; + L_Close: sailortalk; closedialog; -- cgit v1.2.3-60-g2f50