summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf220
-rw-r--r--db/re/item_db.conf17
-rw-r--r--npc/003-1/aahna.txt16
-rw-r--r--npc/009-5/_import.txt1
-rw-r--r--npc/009-5/alvasus.txt154
5 files changed, 300 insertions, 108 deletions
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
@@ -4844,6 +4844,23 @@ item_db: (
">
},
{
+ 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"
Name: "Four Leaf Clover"
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;
+}
+