From 38686dc46272352e56d0f667ff6e7fa19915a2ae Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 30 Aug 2018 13:25:42 -0300 Subject: Alvasus Quest, Originals by @Pookie , modified by Jesusalva to his liking --- db/quest_db.conf | 220 +++++++++++++++++++++++++------------------------- db/re/item_db.conf | 17 ++++ npc/003-1/aahna.txt | 16 ++++ npc/009-5/_import.txt | 1 + npc/009-5/alvasus.txt | 154 +++++++++++++++++++++++++++++++++++ 5 files changed, 300 insertions(+), 108 deletions(-) create mode 100644 npc/009-5/alvasus.txt diff --git a/db/quest_db.conf b/db/quest_db.conf index 9edb2d544..80f718099 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -4,20 +4,20 @@ quest_db: ( ************* Entry structure ************************************************ ****************************************************************************** { - Id: Quest ID [int] - Name: Quest Name [string] + Id: Quest ID [int] + Name: Quest Name [string] TimeLimit: Time Limit (seconds) [int, optional] - Targets: ( [array, optional] + Targets: ( [array, optional] { - MobId: Mob ID [int] - Count: [int] + MobId: Mob ID [int] + Count: [int] }, ... (can repeated up to MAX_QUEST_OBJECTIVES times) ) Drops: ( { ItemId: Item ID to drop [int] - Rate: Drop rate [int] + Rate: Drop rate [int] MobId: Mob ID to match [int, optional] }, ... (can be repeated) @@ -89,52 +89,52 @@ quest_db: ( // ID 31 to 50: Candor Quests { - Id: 31 - Name: "CandorQuest_Chest" + Id: 31 + Name: "CandorQuest_Chest" }, { - Id: 32 - Name: "CandorQuest_HAS" + Id: 32 + Name: "CandorQuest_HAS" }, { - Id: 33 - Name: "CandorQuest_Tolchi" + Id: 33 + Name: "CandorQuest_Tolchi" }, { - Id: 34 - Name: "CandorQuest_Maya" + Id: 34 + Name: "CandorQuest_Maya" }, { - Id: 35 - Name: "CandorQuest_Rosen" + Id: 35 + Name: "CandorQuest_Rosen" }, { - Id: 36 - Name: "CandorQuest_Barrel" + Id: 36 + Name: "CandorQuest_Barrel" }, { - Id: 37 - Name: "CandorQuest_Sailors" + Id: 37 + Name: "CandorQuest_Sailors" }, { - Id: 38 - Name: "CandorQuest_Vincent" + Id: 38 + Name: "CandorQuest_Vincent" }, { - Id: 39 - Name: "CandorQuest_Trainer" + Id: 39 + Name: "CandorQuest_Trainer" }, { - Id: 40 - Name: "CandorQuest_Nurse" + Id: 40 + Name: "CandorQuest_Nurse" }, { - Id: 41 - Name: "CandorQuest_Liana" + Id: 41 + Name: "CandorQuest_Liana" }, { - Id: 42 - Name: "CandorQuest_SailorCure" + Id: 42 + Name: "CandorQuest_SailorCure" }, // ID 51 to 70: Tulimshar quests @@ -143,174 +143,178 @@ quest_db: ( Name: "TulimsharQuests_Fishman" }, { - Id: 52 - Name: "TulimsharQuest_Sarah" + Id: 52 + Name: "TulimsharQuest_Sarah" }, { - Id: 53 - Name: "TulimsharQuest_WaterForGuard" + Id: 53 + Name: "TulimsharQuest_WaterForGuard" }, { - Id: 54 - Name: "TulimsharQuest_Swezanne" + Id: 54 + Name: "TulimsharQuest_Swezanne" }, { - Id: 55 - Name: "TulimsharQuest_Lifestone" + Id: 55 + Name: "TulimsharQuest_Lifestone" }, { - Id: 56 - Name: "TulimsharQuest_Eistein" + Id: 56 + Name: "TulimsharQuest_Eistein" }, { - Id: 57 - Name: "TulimsharQuest_Hasan" + Id: 57 + Name: "TulimsharQuest_Hasan" }, { - Id: 58 - Name: "TulimsharQuest_Devoir" + Id: 58 + Name: "TulimsharQuest_Devoir" }, { - Id: 59 - Name: "TulimsharQuest_Sailors" + Id: 59 + Name: "TulimsharQuest_Sailors" }, { - Id: 60 - Name: "TulimsharQuest_DarkInvocator" + Id: 60 + Name: "TulimsharQuest_DarkInvocator" }, { - Id: 61 - Name: "TulimsharQuest_AnwarField" + Id: 61 + Name: "TulimsharQuest_AnwarField" }, { - Id: 62 - Name: "TulimsharQuest_Sewers" + Id: 62 + Name: "TulimsharQuest_Sewers" }, { - Id: 63 - Name: "TulimsharQuest_Neko" + Id: 63 + Name: "TulimsharQuest_Neko" }, // ID 71 to 90: Halinarzo Quests { - Id: 71 - Name: "HalinarzoQuest_Foxhound" + Id: 71 + Name: "HalinarzoQuest_Foxhound" }, { - Id: 72 - Name: "HalinarzoQuest_TraderKing" + Id: 72 + Name: "HalinarzoQuest_TraderKing" }, { - Id: 73 - Name: "HalinarzoQuest_SickWife" + Id: 73 + Name: "HalinarzoQuest_SickWife" }, { - Id: 74 - Name: "HalinarzoQuest_LifeDelight" + Id: 74 + Name: "HalinarzoQuest_LifeDelight" }, { - Id: 75 - Name: "HalinarzoQuest_Sawis" + Id: 75 + Name: "HalinarzoQuest_Sawis" +}, +{ + Id: 76 + Name: "HalinarzoQuest_Alvasus" }, // ID 91 to 110: Hurnscald Quests { - Id: 91 - Name: "HurnscaldQuest_ForestBow" + Id: 91 + Name: "HurnscaldQuest_ForestBow" }, { - Id: 92 - Name: "HurnscaldQuest_HarkEye" + Id: 92 + Name: "HurnscaldQuest_HarkEye" }, { - Id: 93 - Name: "HurnscaldQuest_Celestia" + Id: 93 + Name: "HurnscaldQuest_Celestia" }, { - Id: 94 - Name: "HurnscaldQuest_TeaParty" + Id: 94 + Name: "HurnscaldQuest_TeaParty" }, { - Id: 95 - Name: "HurnscaldQuest_Farmers" + Id: 95 + Name: "HurnscaldQuest_Farmers" }, { - Id: 96 - Name: "HurnscaldQuest_Arkim" + Id: 96 + Name: "HurnscaldQuest_Arkim" }, { - Id: 97 - Name: "HurnscaldQuest_Bandits" + Id: 97 + Name: "HurnscaldQuest_Bandits" }, // ID 111 to 130: Nivalis Quests // ID 131 to 150: Frostia Quests { - Id: 131 - Name: "FrostiaQuest_WolfNecklace" + Id: 131 + Name: "FrostiaQuest_WolfNecklace" }, // ID 151 to 170: Artis Quests // ID 171 to 190: Esperia Quests // ID 191 to 269: Dungeon Quests { - Id: 191 - Name: "MineQuest_Tycoon" + Id: 191 + Name: "MineQuest_Tycoon" }, { - Id: 192 - Name: "MineQuest_Dracoula" + Id: 192 + Name: "MineQuest_Dracoula" }, { - Id: 193 - Name: "MineQuest_Caelum" + Id: 193 + Name: "MineQuest_Caelum" }, // ID 270 to 299: Land Of Fire Quests { - Id: 270 - Name: "LoFQuest_EPISODE" + Id: 270 + Name: "LoFQuest_EPISODE" }, { - Id: 271 - Name: "LoFQuest_George" + Id: 271 + Name: "LoFQuest_George" }, { - Id: 272 - Name: "LoFQuest_Fairy" + Id: 272 + Name: "LoFQuest_Fairy" }, { - Id: 273 - Name: "LoFQuest_Doug" + Id: 273 + Name: "LoFQuest_Doug" }, // ID 300 to 320: Seasonal/Annual/Monthly quests { - Id: 300 - Name: "SQuest_Summer" + Id: 300 + Name: "SQuest_Summer" }, { - Id: 301 - Name: "SQuest_Autumn" + Id: 301 + Name: "SQuest_Autumn" }, { - Id: 302 - Name: "SQuest_Winter" + Id: 302 + Name: "SQuest_Winter" }, { - Id: 303 - Name: "SQuest_Spring" + Id: 303 + Name: "SQuest_Spring" }, { - Id: 304 - Name: "SQuest_Sponsor" + Id: 304 + Name: "SQuest_Sponsor" }, { - Id: 305 - Name: "SQuest_Ched" + Id: 305 + Name: "SQuest_Ched" }, { - Id: 306 - Name: "SQuest_Paxel" + Id: 306 + Name: "SQuest_Paxel" }, // ID 1000+: Test quests diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 7a1c69517..e81088d7c 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -4843,6 +4843,23 @@ item_db: ( bonus bInt,1; "> }, +{ + Id: 1020 + AegisName: "AlvasusPendant" + Name: "Alvasus Pendant" + Type: "IT_ARMOR" + Buy: 4000 + Sell: 500 + Weight: 50 + Def: 0 + Loc: 1024 + EquipLv: 21 + Refine: false + ViewSprite: 1020 + Script: <" + bonus bDex,1; + "> +}, { Id: 1150 AegisName: "FourLeafClover" diff --git a/npc/003-1/aahna.txt b/npc/003-1/aahna.txt index 895d1e4cc..fa35bfa57 100644 --- a/npc/003-1/aahna.txt +++ b/npc/003-1/aahna.txt @@ -1,16 +1,32 @@ // TMW-2 Script // Author: // Jesusalva +// Pookie // Description: // This NPC serves no purpose currently. She is here to make Tulimshar more crowded. +// Now a believer to announce Halinarzo and Alvasus Quest. 003-1,53,128,0 script Aahna NPC_ELVEN_FEMALE,{ mesn; mesq l("Hello, What a lovely day for a stroll."); + next; + mesn; + mesq l("I heard every Sunday there's a party at Halinarzo Church, but to get there you need to pass through the Desert Canyon."); + next; + mesn; + mesq l("I hope one day, they decide build a church here. It's a pain to travel there every time..."); close; OnInit: .sex = G_FEMALE; .distance = 5; end; + +OnSun0000: + disablenpc .name$; + end; + +OnMon0000: + enablenpc .name$; + end; } diff --git a/npc/009-5/_import.txt b/npc/009-5/_import.txt index 956fefcba..b875296f1 100644 --- a/npc/009-5/_import.txt +++ b/npc/009-5/_import.txt @@ -1,5 +1,6 @@ // Map 009-5: Halinarzo Church // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/009-5/_warps.txt", +"npc/009-5/alvasus.txt", "npc/009-5/joaquim.txt", "npc/009-5/luanna.txt", diff --git a/npc/009-5/alvasus.txt b/npc/009-5/alvasus.txt new file mode 100644 index 000000000..4da6ae571 --- /dev/null +++ b/npc/009-5/alvasus.txt @@ -0,0 +1,154 @@ +// TMW2 Script +// Author: +// Pookie +// Saulc +// Jesusalva +// Description: +// Alvasus is a believer, he is from Halinarzo and he collects Roasted Maggot +// for Church Party. +// Quest for level 19 - 5 roasted maggot for Alvasus Pendant +// Notes: +// There is no church on Tulimshar. If he wanted to spread faith or whatever +// he would fit, but as he wants a party, I had to move him to Halinarzo. +// I turned him on a weekly quest. Sorry, I got excited u.u +// +// First time: Alvasus Pendant +// Later times: GP and EXP + +009-5,29,39,0 script Alvasus NPC_PLAYER,{ + if (gettime(GETTIME_WEEKDAY) == SUNDAY) goto L_Sunday; + .@q = getq(HalinarzoQuest_Alvasus); + if (BaseLevel < 19) goto L_TooWeak; + if (.@q == 0) goto L_GiveTask; + if (.@q == 1) goto L_Check; + if (.@q == 2) goto L_Complete; + + closedialog; + goodbye; + close; + +L_TooWeak: + mesn; + mesq l("Go away, kid! Let me pray in peace!"); + close; + +L_Sunday: + mesn; + mesq l("Ah, Sunday. What better time to go to church?"); + next; + mesn; + mesq l("We will have a party today, but only believers are allowed in!"); + close; + +L_Quit: + mes ""; + mesn; + mesq l("Alright."); + close; + + + + + +L_GiveTask: + mesn; + mesq lg("Hello Adventurer!"); + next; + mesn; + mesq l("Would you like to help me with organizing a Church Party?"); + next; + + menu + l("Sure, why not?"), L_Quest, + l("I don't have time for that."), L_Quit; + + +L_Quest: + mes ""; + mesn; + mesq l("Sunday I am having a Church Party but I forgot to prepare food!"); + next; + mesn; + mesq l("Can you help me find some @@?", getitemlink(RoastedMaggot)); + next; + + menu + l("Okay!"), L_Start, + l("I don't have the time!"), L_Quit; + + +L_Start: + setq1 HalinarzoQuest_Alvasus, 1; + mes ""; + mesn; + mesq l("Ok, let's see how many you have and how many I need:"); + goto L_List; + +L_List: + mes ""; + mesn; + mes l("I will need:"); + mes l("@@/5 @@", countitem(RoastedMaggot), getitemlink(RoastedMaggot)); + next; + goto L_Check; + +L_Check: + mesn; + mesq l("Do you have my @@?", getitemlink(RoastedMaggot)); + next; + menu + l("Yes!"), L_Give, + l("How many did you need again?"), L_List, + l("No!"), L_Quit; + +L_Give: + if ( + countitem(RoastedMaggot) < 5 + ) goto L_NoItem; + + + // First time you get the Pendant + .@q2 = getq2(HalinarzoQuest_Alvasus); + if (.@q2 == 0) { + inventoryplace AlvasusPendant, 1; + getitem(AlvasusPendant, 1); + } + + delitem(RoastedMaggot, 5); + + getexp(700+.@q2, 1+.@q2); + Zeny=Zeny+(.@q2*5); + + setq1(HalinarzoQuest_Alvasus, 2); + setq2 HalinarzoQuest_Alvasus, .@q2+1; + + mes ""; + mesn; + mesq l("Thanks for all of your help!"); + close; + +L_Complete: + mesn; + mesq l("Now, to wait for Sunday is the most boring part... Alas, I wonder if I'll remember next week, too."); + //mesq l("Do you know where the party is? It's at Halin, to get there you need to pass through the Desert Canyon."); + close; + +L_NoItem: + mesn; + mesq l("Thanks for the kindness, but you don't have enough. I need 5!"); + close; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, DesertHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); + setunitdata(.@npcId, UDT_WEAPON, CreasedBoots); + setunitdata(.@npcId, UDT_HAIRSTYLE, 6); + setunitdata(.@npcId, UDT_HAIRCOLOR, 7); + + .sex = G_MALE; + .distance = 4; + + end; +} + -- cgit v1.2.3-60-g2f50