summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf1
-rw-r--r--db/quest_db.conf4
-rw-r--r--maps/re/019-4-1.mcachebin121 -> 126 bytes
-rw-r--r--npc/019-4-1/_import.txt4
-rw-r--r--npc/019-4-1/bedder.txt23
-rw-r--r--npc/019-4-1/chief.txt24
-rw-r--r--npc/019-4-1/cook.txt21
-rw-r--r--npc/019-4-1/golbarez.txt19
-rw-r--r--npc/019-4-1/model.c45
-rw-r--r--npc/022-1/_import.txt1
-rw-r--r--npc/022-1/gift_collector.txt76
-rw-r--r--npc/commands/event.txt18
12 files changed, 227 insertions, 9 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 7714b6b9e..0282e0629 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3975,6 +3975,7 @@ constants_db: {
NPC_BARD_TRUMP: 213
NPC_INJURIED_MOUBOO: 215
NPC_CRUSADER: 221
+ NPC_LOF_RICH: 223
NPC_BARD_DRUMS: 227
NPC_LOF_DOCTOR: 228
NPC_SWORDS_SIGN: 229
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 635c3fafc..127cf603f 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -344,6 +344,10 @@ quest_db: (
Id: 306
Name: "SQuest_Paxel"
},
+{
+ Id: 307
+ Name: "SQuest_XmasCollector"
+},
// ID 400+: Event Quests
{
diff --git a/maps/re/019-4-1.mcache b/maps/re/019-4-1.mcache
index ba9abf549..707a38e42 100644
--- a/maps/re/019-4-1.mcache
+++ b/maps/re/019-4-1.mcache
Binary files differ
diff --git a/npc/019-4-1/_import.txt b/npc/019-4-1/_import.txt
index 89a351b39..e01bc7dd3 100644
--- a/npc/019-4-1/_import.txt
+++ b/npc/019-4-1/_import.txt
@@ -1,3 +1,7 @@
// Map 019-4-1: Christmas Workshop
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/019-4-1/_warps.txt",
+"npc/019-4-1/bedder.txt",
+"npc/019-4-1/chief.txt",
+"npc/019-4-1/cook.txt",
+"npc/019-4-1/golbarez.txt",
diff --git a/npc/019-4-1/bedder.txt b/npc/019-4-1/bedder.txt
new file mode 100644
index 000000000..e069ac4e7
--- /dev/null
+++ b/npc/019-4-1/bedder.txt
@@ -0,0 +1,23 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Christmas Quest
+// In dire need for white fur for bedding. Gives %Reward% for %Amount% (LESS LIKELY)
+// (TMW Org. Version)
+// Or maybe, he just take the white fur + something + open xmas box and trades
+// these for closed gift boxes (MOST LIKELY)
+// TMW2:ML Version
+
+019-4-1,48,39,0 script Christmas Storage Master NPC_GNOME_C,{
+ mesn;
+ mesq l("The white fur...");
+ close;
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/019-4-1/chief.txt b/npc/019-4-1/chief.txt
new file mode 100644
index 000000000..e826e4ebb
--- /dev/null
+++ b/npc/019-4-1/chief.txt
@@ -0,0 +1,24 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Christmas Quest
+// Closed Christmas Boxes have been stolen! Give him any you find for the
+// ranking (and ranking based rewards). The global amount of delivered boxes
+// will determine the gifts (and amount of gifts) handled by Santa!
+//
+// Rewards: Santa Hat, Gnome Hat, Santa Bearded Hat, Ugly Christmas Sweater,
+// Turtle Neck Sweater, Santa Globe, Snowman Globe, Red Stocking.
+
+019-4-1,56,33,0 script Christmas Chief NPC_GNOME_A,{
+ mesn;
+ mesq l("The stolen empty boxes!! Christmas is RUINED!!!");
+ close;
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/019-4-1/cook.txt b/npc/019-4-1/cook.txt
new file mode 100644
index 000000000..b7a01708f
--- /dev/null
+++ b/npc/019-4-1/cook.txt
@@ -0,0 +1,21 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Christmas Quest.
+// Originally, it was planned to collect XMAS CAKE, XMAS CANDY CANE and GINGERBREAD BISCUIT
+// and then make a player ranking for sport (like Ched). The ranking function,
+// however, was moved to Chief. Maybe Cook will exchange these for open xmas boxes.
+
+019-4-1,30,29,0 script Christmas Cook NPC_GNOME_B,{
+ mesn;
+ mesq l("The xmas cake and canes and gingerbread ranking...");
+ close;
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/019-4-1/golbarez.txt b/npc/019-4-1/golbarez.txt
new file mode 100644
index 000000000..3cc343d79
--- /dev/null
+++ b/npc/019-4-1/golbarez.txt
@@ -0,0 +1,19 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Permanently repeatable quest, without any special limit
+// NPC_GNOME_ABC NPC_LOF_RICH
+
+019-4-1,30,45,0 script Golbarez NPC_LOF_RICH,{
+ mesn;
+ mesq l("The paradise!");
+ close;
+
+OnInit:
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/019-4-1/model.c b/npc/019-4-1/model.c
new file mode 100644
index 000000000..53fff5983
--- /dev/null
+++ b/npc/019-4-1/model.c
@@ -0,0 +1,45 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Permanently repeatable quest, without any special limit
+
+017-3,68,87,0 script Model NPC_PLAYER,{
+ mesn;
+ mesq l("This room is too dark. I want to brighten it up.");
+ next;
+ .@price=(getiteminfo(CaveSnakeLamp, ITEMINFO_SELLPRICE)*11/10)*5;
+ mesn;
+ mesq l("I am willing to pay @@ GP for each 5 @@ you bring me!", .@price, getitemlink(CaveSnakeLamp));
+ next;
+ select
+ rif(countitem(CaveSnakeLamp) >= 5, l("Here they are!")),
+ l("Not now...");
+ mes "";
+ if (@menu == 1) {
+ delitem CaveSnakeLamp, 5;
+ Zeny=Zeny+.@price;
+ getexp (.@price/rand(2,3)), 5;
+ mesn;
+ mesq l("Many, many thanks!");
+ next;
+ }
+ mesn;
+ mesq l("Too bad these lamps wear off after a while... I am making stocks of them now!");
+ close;
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ setunitdata(.@npcId, UDT_HEADTOP, FancyHat);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, CreasedShirt);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
+ setunitdata(.@npcId, UDT_WEAPON, JeansShorts);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 2);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 4);
+
+ .sex=G_MALE;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/022-1/_import.txt b/npc/022-1/_import.txt
index 93ce7ca3f..c6399c4db 100644
--- a/npc/022-1/_import.txt
+++ b/npc/022-1/_import.txt
@@ -2,3 +2,4 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/022-1/_mobs.txt",
"npc/022-1/_warps.txt",
+"npc/022-1/gift_collector.txt",
diff --git a/npc/022-1/gift_collector.txt b/npc/022-1/gift_collector.txt
new file mode 100644
index 000000000..6ea911979
--- /dev/null
+++ b/npc/022-1/gift_collector.txt
@@ -0,0 +1,76 @@
+// TMW2/LoF scripts.
+// Authors:
+// TMW-LoF Team
+// Jesusalva
+// Description:
+// Part Of Christmas Events
+// SQuest_XmasCollector
+// Status, Delivered Gifts, Current Year
+// Status:
+// 0 - Quest is unknown
+// 1 - Quest is known
+// 2 - Rewards Collected
+
+022-1,65,53,0 script Gift Fanatic NPC_GNOME_C,{
+ // Last year
+ if (getq3(SQuest_XmasCollector) == gettime(GETTIME_YEAR)-1)
+ goto L_Reward;
+ if ($EVENT$ != "Christmas")
+ goto L_OutOfSeason;
+ // Start Event for the first time
+ if (getq3(SQuest_XmasCollector) < gettime(GETTIME_YEAR))
+ setq SQuest_XmasCollector, 1, 0, gettime(GETTIME_YEAR);
+ // Main Loop
+ goto L_Main;
+
+L_OutOfSeason:
+ mesn;
+ mesq l("Hey, collect lots of @@ and give them to me on Christmas! Not now. On Christmas!", getitemlink(PresentBox));
+ close;
+
+// The reward is actually just an extra bonus, there is nothing WOW to see here...
+L_Reward:
+ .@q=getq2(SQuest_XmasCollector);
+ .@q=max(0, .@q-BaseLevel);
+ mesn;
+ mesq l("Hey, huge THANKS for the help! I love gifts! Here's your due reward!");
+ mesc l("Got @@ EXP, @@ JExp and @@ GP for helping out.", .@q*7, .@q, .@q*5);
+ getexp .@q*7, .@q;
+ Zeny=Zeny+(.@q*5);
+ setq SQuest_XmasCollector, 2, 0, 0;
+ close;
+
+L_Main:
+ .@q=getq2(SQuest_XmasCollector);
+ mesn;
+ mesq l("I want @@! I want @@!!", getitemlink(PresentBox), getitemlink(PresentBox));
+ next;
+ .@price=(getiteminfo(PresentBox, ITEMINFO_SELLPRICE)+2;
+ mesn;
+ mesq l("I am willing to pay @@ GP for each you bring me! Do you want to give me ALL your @@?!", .@price, getitemlink(PresentBox));
+ next;
+ select
+ rif(countitem(PresentBox), l("Yes, of course!")),
+ l("Not now...");
+ mes "";
+ if (@menu == 1) {
+ .@qnt=countitem(PresentBox);
+ .@q2+=.@qnt;
+ delitem PresentBox, .@qnt;
+ Zeny=Zeny+.@price*.@qnt;
+ getexp .@qnt*.@price, .@qnt;
+ setq2 SQuest_XmasCollector, .@q2;
+ mesn;
+ mesq l("Many, many thanks! Thus far, you delivered me @@ gift boxes!", .@q2);
+ next;
+ }
+ mesn;
+ mesq l("Come back and give me more gifts!");
+ close;
+
+OnInit:
+ .sex=G_OTHER;
+ .distance=5;
+ end;
+}
+
diff --git a/npc/commands/event.txt b/npc/commands/event.txt
index ba2f73448..2a48a7b09 100644
--- a/npc/commands/event.txt
+++ b/npc/commands/event.txt
@@ -35,16 +35,16 @@ function script sChristmas {
addmonsterdrop(WaterFairy, GingerBreadMan, 1000);
- addmonsterdrop(Yeti, ClosedChristmasBox, 1000);
- addmonsterdrop(WaterFairy, ClosedChristmasBox, 900);
- addmonsterdrop(AlphaMouboo, ClosedChristmasBox, 800);
- addmonsterdrop(IcedFluffy, ClosedChristmasBox, 700);
- addmonsterdrop(BlueSlime, ClosedChristmasBox, 600);
- addmonsterdrop(SantaSlime, ClosedChristmasBox, 530);
- addmonsterdrop(AzulSlime, ClosedChristmasBox, 400);
- addmonsterdrop(Moggun, ClosedChristmasBox, 300);
- addmonsterdrop(RudolphSlime,ClosedChristmasBox, 200);
+ addmonsterdrop(Yeti, ClosedChristmasBox, 500);
+ addmonsterdrop(WaterFairy, ClosedChristmasBox, 480);
+ addmonsterdrop(AlphaMouboo, ClosedChristmasBox, 430);
+ addmonsterdrop(IcedFluffy, ClosedChristmasBox, 375);
+ addmonsterdrop(BlueSlime, ClosedChristmasBox, 320);
+ addmonsterdrop(SantaSlime, ClosedChristmasBox, 260);
+ addmonsterdrop(AzulSlime, ClosedChristmasBox, 200);
+ addmonsterdrop(Moggun, ClosedChristmasBox, 140);
addmonsterdrop(Fluffy, ClosedChristmasBox, 100);
+ addmonsterdrop(RudolphSlime,ClosedChristmasBox, 60);
addmonsterdrop(WhiteSlime, ClosedChristmasBox, 30);
// Change maps for Christmas Season (Specially LoF maps)