summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/constants.conf21
-rw-r--r--db/quest_db.conf4
-rw-r--r--npc/017-1/_import.txt1
-rw-r--r--npc/017-1/fairy_collector.txt169
4 files changed, 195 insertions, 0 deletions
diff --git a/db/constants.conf b/db/constants.conf
index c0703dfee..7455a42f2 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -4190,6 +4190,27 @@ constants_db: {
TP_ESPER: 64
TP_BOSSR: 128
+ comment__: "Grand Collector Quest enum"
+ COLLECT_CHESTPLATE: 1
+ COLLECT_HEADGEAR: 2
+ COLLECT_PANTS: 4
+ COLLECT_SHOES: 8
+ COLLECT_NECKLACES: 16
+ COLLECT_RINGS: 32
+ COLLECT_ACESSORIES: 64
+ COLLECT_SCARFS: 128
+ COLLECT_GLOVES: 256
+ COLLECT_SHIELDS: 512
+ COLLECT_1HSWORDS: 1024
+ COLLECT_2HSWORDS: 2048
+ COLLECT_BOWS: 4096
+ COLLECT_FIREGUNS: 8192
+ COLLECT_WANDS: 16384
+ COLLECT_QUIVERS: 32768
+ COLLECT_MOUNTS: 65536
+ COLLECT_PETS: 131072
+ // Maximum 32 collectibles, currently used: 19
+
comment__: "Being actions"
ACTION_STAND: 0
ACTION_MOVE: 1
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 47c3fab7a..cb2055088 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -89,6 +89,10 @@ quest_db: (
Id: 16
Name: "General_Auldsbel"
},
+{
+ Id: 17
+ Name: "General_Collector"
+},
// ID 31 to 50: Candor Quests
{
diff --git a/npc/017-1/_import.txt b/npc/017-1/_import.txt
index b257632a4..04083c2fc 100644
--- a/npc/017-1/_import.txt
+++ b/npc/017-1/_import.txt
@@ -3,6 +3,7 @@
"npc/017-1/017-1_stranger_blackbox.txt",
"npc/017-1/_mobs.txt",
"npc/017-1/_warps.txt",
+"npc/017-1/fairy_collector.txt",
"npc/017-1/guards.txt",
"npc/017-1/mapflags.txt",
"npc/017-1/misc.txt",
diff --git a/npc/017-1/fairy_collector.txt b/npc/017-1/fairy_collector.txt
new file mode 100644
index 000000000..e89ff817a
--- /dev/null
+++ b/npc/017-1/fairy_collector.txt
@@ -0,0 +1,169 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// Collect every piece of equipment ingame for no real reason
+// Cannot be completed yet, because not every piece of equipment is available ingame
+
+017-1,135,106,0 script Royal Fairy NPC_FAIRY_B,{
+ .@n=getq(LoFQuest_Fairy);
+ .@q=getq(General_Collector);
+ mesn;
+
+ if (.@q == 0) goto L_Busy;
+ if (.@q < 3) goto L_Incomplete;
+ if (.@q >= 3) goto L_Main;
+
+L_Busy:
+ mesq l("Hi, I'm too busy to talk right now, please go away. Very pressing matters at hand.");
+ close;
+
+L_Incomplete:
+ mesq l("Hello, I noticed my dear friend, Susanne, asked you to help us save my sisters; do not forget to ask Susanne where the Fafi Dragon was last seen.");
+ close;
+
+L_Main:
+ /*
+ COLLECT_CHESTPLATE: 1
+ COLLECT_HEADGEAR: 2
+ COLLECT_PANTS: 4
+ COLLECT_SHOES: 8
+ COLLECT_NECKLACES: 16
+ COLLECT_RINGS: 32
+ COLLECT_ACESSORIES: 64
+ COLLECT_SCARFS: 128
+ COLLECT_GLOVES: 256
+ COLLECT_SHIELDS: 512
+ COLLECT_1HSWORDS: 1024
+ COLLECT_2HSWORDS: 2048
+ COLLECT_BOWS: 4096
+ COLLECT_FIREGUNS: 8192
+ COLLECT_WANDS: 16384
+ COLLECT_QUIVERS: 32768
+ COLLECT_MOUNTS: 65536
+ COLLECT_PETS: 131072
+
+ */
+ do {
+ mesn;
+ mesq l("Are you trying to collect every piece of equipment ingame? Come tell me if you are and I'll give you a collector stamp!");
+ mesc l("Not every piece of equipment is ingame yet.");
+ mes "";
+ select
+ l("Good bye!"),
+ rif(!(.@q & COLLECT_CHESTPLATE), l("Chestplates")),
+ rif(!(.@q & COLLECT_HEADGEAR), l("Headgear")),
+ rif(!(.@q & COLLECT_PANTS), l("Pants")),
+ rif(!(.@q & COLLECT_SHOES), l("Shoes")),
+ rif(!(.@q & COLLECT_NECKLACES), l("Necklaces")),
+ rif(!(.@q & COLLECT_RINGS), l("Rings")),
+ rif(!(.@q & COLLECT_ACESSORIES), l("Accessories")),
+ rif(!(.@q & COLLECT_SCARFS), l("Scarfs")),
+ rif(!(.@q & COLLECT_GLOVES), l("Gloves")),
+ rif(!(.@q & COLLECT_SHIELDS), l("Shields")),
+ rif(!(.@q & COLLECT_1HSWORDS), l("1 Hand Swords")),
+ rif(!(.@q & COLLECT_2HSWORDS), l("2 Hand Swords")),
+ rif(!(.@q & COLLECT_BOWS), l("Bows")),
+ rif(!(.@q & COLLECT_FIREGUNS), l("Fire Staves")),
+ rif(!(.@q & COLLECT_WANDS), l("Wands")),
+ rif(!(.@q & COLLECT_QUIVERS), l("Quivers")),
+ rif(!(.@q & COLLECT_MOUNTS), l("Mounts")),
+ rif(!(.@q & COLLECT_PETS), l("Pets")),
+ mes "";
+ switch (@menu) {
+ // Chestplate
+ case 1:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Headgear
+ case 2:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Pants
+ case 3:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Shoes
+ case 4:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Necklaces
+ case 5:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Rings
+ case 6:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Accessories
+ case 7:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Scarfs
+ case 8:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Gloves
+ case 9:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Shields
+ case 10:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // 1H Swords
+ case 11:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // 2H Swords
+ case 12:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Bows
+ case 13:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Firearms
+ case 14:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Wands
+ case 15:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Quivers
+ case 16:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Mounts
+ case 17:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+ // Pets
+ case 18:
+ msObjective(countitem(CreasedShirt), "* "+getitemlink(CreasedShirt));
+ next;
+ break;
+
+ }
+
+ } while (@menu != 0);
+ close;
+}