diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/003-2/lua.txt | 295 |
1 files changed, 247 insertions, 48 deletions
diff --git a/npc/003-2/lua.txt b/npc/003-2/lua.txt index c9dea26cb..0d06baf7c 100644 --- a/npc/003-2/lua.txt +++ b/npc/003-2/lua.txt @@ -6,6 +6,18 @@ // She can also change the world's hero, give Sponsor their necklace, and is part of main storyline. 003-2,38,34,0 script Lua#003-2 NPC_FEMALE,{ + // Main Quest 2-1 until Main Quest 2-5 (?) + function luaAssignTask1; // Dausen & Aidan + function luaTask1; + function luaAssignTask2; // Fishing & Crafting + function luaTask2; + function luaAssignTask3; // Minimum level/job to begin + function luaTask3; + function luaAssignTask4; // Inn Arc + function luaTask4; + function luaAssignTask5; // Your Report, the plan + function luaTask5; + // Then we jump to L_Finish/L_Complete .@n = getq(General_Narrator); mesn; @@ -32,6 +44,24 @@ L_Menu: mesq l("The Alliance which was formed after the war!"); close; + + + + + + + + + + + + + + + + +///////////////////////////////////////////////////////////////////////////////// +// GM Functions L_GMItems: getitembound GMRobe, 1, 1; getitembound GMCap, 1, 1; @@ -146,6 +176,26 @@ OnLuaInfo: @lua_isok=1; end; + + + + + + + + + + + + + + + + + + +///////////////////////////////////////////////////////////////////////////////// +// Main Story Functions L_Info: if (!@lua_isok) { mes ""; @@ -187,73 +237,129 @@ L_Info: mesq l("Not to say about bandits and robbers you'll find."); next; getexp BaseLevel*30, JobLevel*5; // Reference Levels: (10, 3) - setq General_Narrator, 2; + setq General_Narrator, 2, 0; mesn; mesq l("Lucky for you, the Alliance have means to assist you. You'll be a grown up, full fledged adventurer in no time at all, and will be able to visit a friend of mine, who will then send you there."); next; goto L_Task; L_Task: - mesc b(l(".:: Main Quest 2-1 ::.")), 3; - msObjective(BaseLevel >= 20, l("* @@/@@ Base Level", BaseLevel, 20)); - - msObjective(JobLevel >= 6, l("* @@/@@ Job Level", JobLevel, 6)); - - msObjective(Zeny >= 1000, l("* @@/@@ GP", Zeny, 1000)); - - msObjective(CRAFTQUEST || MPQUEST, l("* Register as a Crafter or Hunter")); + .@q2=getq2(General_Narrator); + if (.@q2 == 0) { + luaAssignTask1(); + setq2 General_Narrator, 1; + .@q2=getq2(General_Narrator); + } else if (.@q2 == 2) { + luaAssignTask2(); + setq2 General_Narrator, 3; + .@q2=getq2(General_Narrator); + } else if (.@q2 == 4) { + luaAssignTask3(); + setq2 General_Narrator, 5; + .@q2=getq2(General_Narrator); + } else if (.@q2 == 6) { + luaAssignTask4(); + setq2 General_Narrator, 7; + .@q2=getq2(General_Narrator); + } else if (.@q2 == 8) { + luaAssignTask5(); + setq2 General_Narrator, 9; + .@q2=getq2(General_Narrator); + } - msObjective(countitem(TulimsharGuardCard), l("* @@/@@ @@", countitem(TulimsharGuardCard), 1, getitemlink(TulimsharGuardCard))); + mesc b(l(".:: Main Quest 2-%d ::.", .@q2)), 3; + if (.@q2 == 1) { + luaTask1(); + } else if (.@q2 == 3) { + luaTask2(); + } else if (.@q2 == 5) { + luaTask3(); + } else if (.@q2 == 7) { + luaTask4(); + } else if (.@q2 == 9) { + luaTask5(); + } - msObjective(countitem(FishingRod), l("* @@/@@ @@", countitem(FishingRod), 1, getitemlink(FishingRod))); - //msObjective(countitem(LifestonePendant), l("* @@/@@ @@", countitem(LifestonePendant), 1, getitemlink(LifestonePendant))); next; + /* if (BaseLevel >= 20 && JobLevel >= 6 && Zeny >= 1000 && (CRAFTQUEST || MPQUEST) && countitem(TulimsharGuardCard) && - countitem(FishingRod) )//&& - //countitem(LifestonePendant)) + countitem(FishingRod)) goto L_Finish; - - mesn; - if (!countitem(TulimsharGuardCard)) { - mes l("The Guard Card will prove your intentions. Talk to the Lieutenant in front of the Guard House."); - mesc l("Completing this quest will allow access to the Guard House, where you can pick Daily Bounties for monsters."); - mes ""; - } - if (!countitem(FishingRod)) { - mes l("The fishing rod allows a quick income by selling fishes. However, reaching the fisherman might require some exploration... The whole world is full of secrets."); - mes ""; - } - if (!countitem(LifestonePendant)) { - mes l("The lifestone pendant allows you a quicker HP recovery. Life is more important than defense."); - mes l("I have no idea about who would make a pendant, but lifestone can be done just outside the town walls."); - mes ""; - } - if (!getq(TulimsharQuest_Sailors) < 2) { - mes l("There are some sailors near the forge. Think outside the box - or rather, inside it, unless you have a fortune to buy the items."); - mes ""; - } - if (!(CRAFTQUEST || MPQUEST)) { - mes lg("To register as a craftswoman, you need to talk to Intense Beard in Terranite Forge. The forge is in the Bazar.", "To register as a craftsman, you need to talk to Intense Beard in Terranite Forge. The forge is in the Bazar."); - mes l("To register as a hunter, talk to Aidan, also in the marketplace - the Bazar."); - mesc l("You can, and @@, register on both programs, but only one is required for this quest.", b("SHOULD")); - mes ""; - } - if (BaseLevel < 20) { - mes l("If you are in need to get lots of experience quickly, you should try to engage the bigger and stronger monsters in the town. However, if they hit you, it's Soul Menhir for you."); - next; - mes l("Another way to quickly get experience at lower levels, is visiting %s and talking to Professor. I heard those whom sit at the rug gain exp just by listening.", b(l("Magic Council"))); - next; - mes l("But the most useful thing might be drinking %s and the like. They also boost drop rates, but weak drinks effects are low and short.", getitemlink(Beer)); - mes ""; - } + */ close; + + +// Declare functions +function luaAssignTask1 { + return; +} // Dausen & Aidan +function luaTask1 { + + msObjective(countitem(TulimsharGuardCard), l("* @@/@@ @@", countitem(TulimsharGuardCard), 1, getitemlink(TulimsharGuardCard))); + msObjective(MPQUEST, l("* Register as a Crafter or Hunter")); + return; +} + + + +function luaAssignTask2 { + return; +} // Fishing & Crafting + +function luaTask2 { + msObjective(countitem(FishingRod), l("* @@/@@ @@", countitem(FishingRod), 1, getitemlink(FishingRod))); + msObjective(CRAFTQUEST, l("* Register as a Crafter or Hunter")); + return; +} + + + +function luaAssignTask3 { + return; +} // Minimum level/job to begin + +function luaTask3 { + msObjective(BaseLevel >= 20, l("* @@/@@ Base Level", BaseLevel, 20)); + + msObjective(JobLevel >= 6, l("* @@/@@ Job Level", JobLevel, 6)); + + msObjective(Zeny >= 1000, l("* @@/@@ GP", Zeny, 1000)); + return; +} + + + +function luaAssignTask4 { + return; +} // Inn Arc + +function luaTask4 { + msObjective(false, l("* Rest at the Inn")); + return; +} + + + +function luaAssignTask5 { + return; +} // Your Report, the plan + +function luaTask5 { + msObjective(false, l("* Defeat the Assassin")); + return; +} + + + +// Then we jump to L_Complete +// When you finish the last quest from Lua L_Finish: inventoryplace MercBoxAA, 1, TreasureKey, 1; getexp BaseLevel*60, JobLevel*10; // Reference Levels: (20, 6) @@ -312,6 +418,48 @@ L_Complete: mesq l("I'm sure there are a lot of sidequests here until you reach level 30, but that's optional."); close; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +///////////////////////////////////////////////////////////////////////////////// +// Beginner Guide Functions L_Tips: mesn; mes l("Hmm... First of, I would really add some agility. Agility helps you to don't be hit, and not being hit is awesome."); @@ -325,6 +473,42 @@ L_Tips: next; mes l("Failing all else, you can stay at the Magic Council getting experience for sitting. Hopefully you'll gain a level and this will help you a bit."); mes l("Of course, if your problem is only experience, then you should look for %s and other EXP-boosting drinks. Some are sold, some are made, some are dropped, some are... magical...", getitemlink(Beer)); + next; + mesn; + mesc l("%s thinks if she knows any major, good quest to do.", .name$); + if (!countitem(TulimsharGuardCard)) { + mes l("Tulimshar Guard Card will prove good intentions. Talk to the Lieutenant in front of the Guard House."); + mesc l("Completing this quest will allow access to the Guard House, where you can pick Daily Bounties for monsters."); + mes ""; + } + if (!countitem(FishingRod)) { + mes l("The fishing rod allows a quick income by selling fishes. However, reaching the fisherman might require some exploration... The whole world is full of secrets."); + mes ""; + } + if (!countitem(LifestonePendant)) { + mes l("The lifestone pendant allows you a quicker HP recovery. Life is more important than defense."); + mes l("I have no idea about who would make a pendant, but lifestone can be done just outside the town walls."); + mes ""; + } + if (!getq(TulimsharQuest_Sailors) < 2) { + mes l("There are some sailors near the forge. Think outside the box - or rather, inside it, unless you have a fortune to buy the items."); + mes ""; + } + if (!(CRAFTQUEST || MPQUEST)) { + mes lg("To register as a craftswoman, you need to talk to Intense Beard in Terranite Forge. The forge is in the Bazar.", "To register as a craftsman, you need to talk to Intense Beard in Terranite Forge. The forge is in the Bazar."); + mes l("To register as a hunter, talk to Aidan, also in the marketplace - the Bazar."); + mesc l("You can, and @@, register on both programs.", b(l("SHOULD"))); + mes ""; + } + if (BaseLevel < 20) { + mes l("If you are in need to get lots of experience quickly, you should try to engage the bigger and stronger monsters in the town. However, if they hit you, it's Soul Menhir for you."); + next; + mes l("Another way to quickly get experience at lower levels, is visiting %s and talking to Professor. I heard those whom sit at the rug gain exp just by listening.", b(l("Magic Council"))); + next; + mes l("But the most useful thing might be drinking %s and the like. They also boost drop rates, but weak drinks effects are low and short.", getitemlink(Beer)); + mes ""; + } + mesc l("She can't remember if anything else right now."); close; L_Check: @@ -360,6 +544,21 @@ L_Check: mesq l("Tulimshar doesn't have a lot more of quests to offer you, so you should definitely explore new places."); close; + + + + + + + + + + + + + +///////////////////////////////////////////////////////////////////////////////// +// Contributor Functions L_Contributor: mes ""; .@m = htget($@CONTRIBUTORS, strtolower(strcharinfo(0)), 0); |