From bb7653be55fdc48f98f3def7497810eb31405c3b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 20 Apr 2020 21:52:32 -0300 Subject: Doomsday Act 4 (#554) Restrict the Smoking Pipe to level 18 (also an easter egg) Prepare some Act 5 maps. Triggers for Doomsday Act 4 Add the Golem, one of the meaniest monsters I ever added. Special effect sequencing for Act 4. Also add a 10k experience reward to whoever is on the map by time the boss is slain. Good luck, brave players! (Recommended 3 repeats, Advsised max 6 repeats, script gives up after 20 repeats) --- world/map/data/099-1.wlk | Bin 0 -> 22504 bytes world/map/data/099-2.wlk | Bin 0 -> 22504 bytes world/map/data/099-3.wlk | Bin 0 -> 19504 bytes world/map/data/099-4.wlk | Bin 0 -> 10004 bytes world/map/data/resnametable.txt | 4 + world/map/db/item_db_generic.txt | 15 +-- world/map/db/item_db_head.txt | 2 +- world/map/db/mob_db_over_100.txt | 4 +- world/map/db/mob_skill_db.txt | 14 ++- world/map/npc/099-1/_import.txt | 6 ++ world/map/npc/099-1/_mobs.txt | 3 + world/map/npc/099-1/_nodes.txt | 4 + world/map/npc/099-1/_warps.txt | 37 +++++++ world/map/npc/099-2/_import.txt | 6 ++ world/map/npc/099-2/_mobs.txt | 3 + world/map/npc/099-2/_nodes.txt | 4 + world/map/npc/099-2/_warps.txt | 23 +++++ world/map/npc/099-3/_import.txt | 6 ++ world/map/npc/099-3/_mobs.txt | 3 + world/map/npc/099-3/_nodes.txt | 4 + world/map/npc/099-3/_warps.txt | 17 +++ world/map/npc/099-4/_import.txt | 6 ++ world/map/npc/099-4/_mobs.txt | 3 + world/map/npc/099-4/_nodes.txt | 4 + world/map/npc/099-4/_warps.txt | 3 + world/map/npc/_import.txt | 4 + world/map/npc/functions/doomsday.txt | 194 +++++++++++++++++++++++++++-------- world/map/npc/items/drugs.txt | 17 +++ world/map/npc/scripts.conf | 1 + 29 files changed, 329 insertions(+), 58 deletions(-) create mode 100644 world/map/data/099-1.wlk create mode 100644 world/map/data/099-2.wlk create mode 100644 world/map/data/099-3.wlk create mode 100644 world/map/data/099-4.wlk create mode 100644 world/map/npc/099-1/_import.txt create mode 100644 world/map/npc/099-1/_mobs.txt create mode 100644 world/map/npc/099-1/_nodes.txt create mode 100644 world/map/npc/099-1/_warps.txt create mode 100644 world/map/npc/099-2/_import.txt create mode 100644 world/map/npc/099-2/_mobs.txt create mode 100644 world/map/npc/099-2/_nodes.txt create mode 100644 world/map/npc/099-2/_warps.txt create mode 100644 world/map/npc/099-3/_import.txt create mode 100644 world/map/npc/099-3/_mobs.txt create mode 100644 world/map/npc/099-3/_nodes.txt create mode 100644 world/map/npc/099-3/_warps.txt create mode 100644 world/map/npc/099-4/_import.txt create mode 100644 world/map/npc/099-4/_mobs.txt create mode 100644 world/map/npc/099-4/_nodes.txt create mode 100644 world/map/npc/099-4/_warps.txt create mode 100644 world/map/npc/items/drugs.txt (limited to 'world') diff --git a/world/map/data/099-1.wlk b/world/map/data/099-1.wlk new file mode 100644 index 00000000..09a2a4bd Binary files /dev/null and b/world/map/data/099-1.wlk differ diff --git a/world/map/data/099-2.wlk b/world/map/data/099-2.wlk new file mode 100644 index 00000000..beb2d549 Binary files /dev/null and b/world/map/data/099-2.wlk differ diff --git a/world/map/data/099-3.wlk b/world/map/data/099-3.wlk new file mode 100644 index 00000000..e9acd9ea Binary files /dev/null and b/world/map/data/099-3.wlk differ diff --git a/world/map/data/099-4.wlk b/world/map/data/099-4.wlk new file mode 100644 index 00000000..01fe6f91 Binary files /dev/null and b/world/map/data/099-4.wlk differ diff --git a/world/map/data/resnametable.txt b/world/map/data/resnametable.txt index b09a82d7..78b6ccda 100644 --- a/world/map/data/resnametable.txt +++ b/world/map/data/resnametable.txt @@ -118,4 +118,8 @@ 069-2#069-2.wlk# 070-1#070-1.wlk# 070-3#070-3.wlk# +099-1#099-1.wlk# +099-2#099-2.wlk# +099-3#099-3.wlk# +099-4#099-4.wlk# botcheck#botcheck.wlk# diff --git a/world/map/db/item_db_generic.txt b/world/map/db/item_db_generic.txt index 12a951a8..42383723 100644 --- a/world/map/db/item_db_generic.txt +++ b/world/map/db/item_db_generic.txt @@ -240,11 +240,12 @@ 5215, FreeRangeMoss, 3, 830, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} 5216, JadeEgg, 3, 938, 250, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} 5217, RawAir, 3, 1999, 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5218, RedTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5219, YellowTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5218, RedTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5219, YellowTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} 5220, GoldTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5221, GreenTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5222, AquaTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5223, BlueTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5224, PurpleTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} -5225, PinkTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5221, GreenTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5222, AquaTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5223, BlueTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5224, PurpleTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5225, PinkTicket, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} +5251, WumpusEgg, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {}, {} diff --git a/world/map/db/item_db_head.txt b/world/map/db/item_db_head.txt index 534c62ee..d9cea7c4 100644 --- a/world/map/db/item_db_head.txt +++ b/world/map/db/item_db_head.txt @@ -188,7 +188,7 @@ 5129, UnderworldMask, 5, 50000, 10000, 100, 0, 5, 0, 0, 0, 2, 256, 0, 0, 0, {}, {bonus bAtkRange, 3; bonus bInt, -Int; bonus bAgi, 2; bonus bDex, 2;} 5130, Phylactery, 5, 50000, 10000, 20, 0, 1, 0, 5, 0, 2, 256, 0, 0, 0, {}, {bonus bAspdRate, 50; bonus bDex, -(Dex/2);} 5200, PointyWitchHat, 5, 1000, 500, 50, 0, 3, 0, 0, 0, 2, 256, 0, 0, 0, {}, {} -5201, Pipe, 5, 5000, 2500, 20, 0, 2, 0, 0, 0, 2, 256, 0, 0, 0, {}, {bonus bDex, 1; bonus bLuk, 1; bonus bCritical, 10;} +5201, Pipe, 5, 5000, 2500, 20, 0, 2, 0, 0, 0, 2, 256, 0, 18, 0, {}, {bonus bDex, 1; bonus bLuk, 1; bonus bCritical, 10;callfunc "DrugItem";} 5202, PilotHat, 5, 2500, 1250, 30, 0, 10, 0, 2, 0, 2, 256, 0, 0, 0, {}, {} 5203, MoonshroomHat, 5, 3000, 1500, 30, 0, 15, 0, 5, 0, 2, 256, 0, 0, 0, {}, {} 5204, CarbonGasMask, 5, 2500, 1250, 50, 0, 10, 0, 0, 0, 2, 256, 0, 0, 0, {}, {} diff --git a/world/map/db/mob_db_over_100.txt b/world/map/db/mob_db_over_100.txt index fdde9a60..4d786a66 100644 --- a/world/map/db/mob_db_over_100.txt +++ b/world/map/db/mob_db_over_100.txt @@ -45,9 +45,9 @@ 1139, Virus, Virus, 170, 5000, 0, 0, 721, 6, 45, 75, 37, 12, 30, 30, 20, 20, 25, 60, 1, 1, 1, 3, 25, 175, 600, 1872, 672, 480, 787, 500, 743, 1100, 5236, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20 1140, Tengu, Tengu, 180, 24000, 280, 45000, 5000, 2, 180, 224, 67, 9, 31, 22, 90, 97, 255, 95, 31, 30, 1, 0, 69, 181, 310, 1200, 672, 50, 649, 2, 4024, 300, 862, 800, 4005, 25, 1227, 15, 5237, 20, 758, 3, 825, 6000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1141, Sasquatch, Sasquatch, 180, 24000, 280, 45000, 5000, 1, 420, 444, 12, 27, 31, 22, 90, 97, 255, 95, 31, 30, 1, 0, 69, 181, 310, 1200, 672, 50, 653, 2, 763, 500, 862, 800, 640, 1000, 1227, 15, 5237, 20, 758, 3, 825, 6000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1142, Kage, ZaxDeKagen, 200, 29999, 280, 999999, 99999, 9, 90, 124, 69, 100, 199, 2, 199, 197, 255, 95, 31, 30, 1, 0, 69, 181, 210, 672, 672, 50, 760, 10000, 666, 10000, 1244, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1142, Kage, ZaxDeKagen, 200, 29999, 280, 999999, 99999, 9, 90, 124, 74, 100, 199, 2, 199, 197, 255, 95, 31, 30, 1, 0, 69, 181, 210, 672, 672, 50, 760, 10000, 666, 10000, 1244, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1143, ManaSlayer, ManaSlayer, 180, 24000, 280, 42000, 5000, 2, 260, 274, 22, 67, 31, 22, 90, 127, 255, 95, 31, 30, 1, 0, 69, 181, 210, 1200, 672, 50, 650, 2, 828, 2400, 1227, 15, 4007, 35, 4029, 10, 5237, 20, 758, 3, 825, 6000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1144, Dragon, GreatDragon, 250, 29999, 280, 1, 1, 3, 60, 90, 67, 67, 199, 2, 199, 197, 255, 95, 31, 30, 1, 0, 69, 181, 210, 1200, 672, 50, 759, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1145, KageSlayer, KageSlayer, 180, 8000, 280, 38000, 5000, 6, 140, 174, 74, 0, 31, 22, 90, 127, 255, 95, 31, 30, 1, 0, 69, 181, 210, 1000, 672, 50, 584, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1145, KageGolem, KageGolem, 180, 29999, 280, 150000, 15000, 6, 140, 174, 72, 55, 31, 22, 90, 127, 255, 95, 31, 30, 1, 0, 69, 181, 410, 1000, 672, 50, 5251, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1146, Flashmob, Flashmob, 181, 27000, 280, 72000, 5000, 1, 40, 60, 57, 57, 31, 22, 90, 127, 255, 95, 31, 30, 1, 0, 69, 181, 160, 600, 672, 50, 649, 5, 650, 5, 653, 5, 1227, 35, 509, 10000, 1257, 2, 759, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1147, Koyntety, Koyntety, 181, 27000, 280, 72000, 5000, 4, 220, 240, 52, 52, 31, 22, 90, 127, 255, 95, 31, 30, 1, 0, 69, 181, 240, 1400, 672, 50, 649, 5, 650, 5, 653, 5, 1227, 35, 509, 10000, 1257, 2, 759, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/world/map/db/mob_skill_db.txt b/world/map/db/mob_skill_db.txt index 129c814d..39c88b53 100644 --- a/world/map/db/mob_skill_db.txt +++ b/world/map/db/mob_skill_db.txt @@ -91,8 +91,14 @@ // Zax De'Kagen skills // I believe I'll make his fight script controlled. Or not. -1142,Kage@NPC_SUMMONSLAVE_skelX2,any,198,2,10000,1000,30000,no,self,slavelt,12,1043,0,0,0,0, -1142,Kage@NPC_SUMMONSLAVE_tenguX1,any,198,1,10000,1000,150000,no,self,slavelt,32,1140,0,0,0,0, -1142,Kage@NPC_SUMMONSLAVE_sasquatchX1,any,198,1,10000,1000,150000,no,self,slavelt,32,1141,0,0,0,0, -1142,Kage@NPC_SUMMONSLAVE_slayerX1,any,198,1,10000,1000,120000,no,self,slavelt,32,1143,0,0,0,0, +1142,Kage@NPC_SUMMONSLAVE_skelX2,any,198,2,10000,1000,30000,no,self,slavelt,32,1043,0,0,0,0, +1142,Kage@NPC_SUMMONSLAVE_golemX1,any,198,1,10000,1000,120000,no,self,slavelt,12,1145,0,0,0,0, +1142,Kage@NPC_SUMMONSLAVE_flashmobX1,any,198,1,10000,1000,120000,no,self,slavelt,12,1146,0,0,0,0, +1142,Kage@NPC_SUMMONSLAVE_koyntetyX1,any,198,1,10000,1000,120000,no,self,slavelt,12,1147,0,0,0,0, + +// Golem skills +// Extremely dangerous. +1145,Golem@NPC_SUMMONSLAVE_tenguX2,any,198,2,9000,1000,155000,no,self,slavelt,6,1140,0,0,0,0, +1145,Golem@NPC_SUMMONSLAVE_sasquatchX2,any,198,2,9000,1000,155000,no,self,slavelt,6,1141,0,0,0,0, +1145,Golem@NPC_SUMMONSLAVE_slayerX2,any,198,2,9000,1000,155000,no,self,slavelt,6,1143,0,0,0,0, diff --git a/world/map/npc/099-1/_import.txt b/world/map/npc/099-1/_import.txt new file mode 100644 index 00000000..88869c9f --- /dev/null +++ b/world/map/npc/099-1/_import.txt @@ -0,0 +1,6 @@ +// Map 099-1: Nu'Ram-Main +// This file is generated automatically. All manually added changes will be removed when running the Converter. +map: 099-1 +npc: npc/099-1/_mobs.txt +npc: npc/099-1/_nodes.txt +npc: npc/099-1/_warps.txt diff --git a/world/map/npc/099-1/_mobs.txt b/world/map/npc/099-1/_mobs.txt new file mode 100644 index 00000000..2bb51b59 --- /dev/null +++ b/world/map/npc/099-1/_mobs.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Main mobs + diff --git a/world/map/npc/099-1/_nodes.txt b/world/map/npc/099-1/_nodes.txt new file mode 100644 index 00000000..0f3ed45e --- /dev/null +++ b/world/map/npc/099-1/_nodes.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Main nodes + +// (no nodes) diff --git a/world/map/npc/099-1/_warps.txt b/world/map/npc/099-1/_warps.txt new file mode 100644 index 00000000..cc8f6e07 --- /dev/null +++ b/world/map/npc/099-1/_warps.txt @@ -0,0 +1,37 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Main warps + +099-1,29,16|warp|-1,-1,099-2,25,22 +099-1,77,16|warp|-1,-1,099-2,59,21 +099-1,105,8|warp|-1,-1,099-2,90,21 +099-1,91,136|warp|-1,-1,099-2,121,21 +099-1,20,115|warp|-1,-1,099-2,25,49 +099-1,97,85|warp|-1,-1,099-2,59,49 +099-1,119,114|warp|-1,-1,099-3,72,26 +099-1,112,126|warp|-1,-1,099-2,91,49 +099-1,64,114|warp|-1,-1,099-2,121,48 +099-1,64,72|warp|-1,-1,099-2,25,75 +099-1,42,51|warp|-1,-1,099-2,59,75 +099-1,92,44|warp|-1,-1,099-2,91,75 +099-1,15,77|warp|-1,-1,099-2,121,75 +099-1,49,129|warp|-1,-1,099-2,25,101 +099-1,113,61|warp|-1,-1,099-2,60,101 +099-1,131,78|warp|-1,-1,099-2,91,101 +099-1,72,58|warp|-1,-1,099-2,121,101 +099-1,47,92|warp|-1,-1,099-2,26,132 +099-1,102,24|warp|-1,-1,099-2,60,132 +099-1,120,44|warp|-1,-1,099-2,92,132 +099-1,97,105|warp|-1,-1,099-2,121,132 +099-1,48,16|warp|-1,-1,099-3,29,63 +099-1,76,25|warp|-1,-1,099-3,35,63 +099-1,128,17|warp|-1,-1,099-3,41,63 +099-1,110,44|warp|-1,-1,099-3,47,63 +099-1,120,78|warp|-1,-1,099-3,53,63 +099-1,113,97|warp|-1,-1,099-3,59,63 +099-1,125,97|warp|-1,-1,099-3,79,63 +099-1,60,92|warp|-1,-1,099-3,85,63 +099-1,20,54|warp|-1,-1,099-3,91,63 +099-1,14,54|warp|-1,-1,099-3,97,63 +099-1,15,67|warp|-1,-1,099-3,103,63 +099-1,19,93|warp|-1,-1,099-3,109,63 +099-1,57,51|warp|-1,-1,099-3,115,63 diff --git a/world/map/npc/099-2/_import.txt b/world/map/npc/099-2/_import.txt new file mode 100644 index 00000000..16a3081c --- /dev/null +++ b/world/map/npc/099-2/_import.txt @@ -0,0 +1,6 @@ +// Map 099-2: Nu'RamRooms +// This file is generated automatically. All manually added changes will be removed when running the Converter. +map: 099-2 +npc: npc/099-2/_mobs.txt +npc: npc/099-2/_nodes.txt +npc: npc/099-2/_warps.txt diff --git a/world/map/npc/099-2/_mobs.txt b/world/map/npc/099-2/_mobs.txt new file mode 100644 index 00000000..26c1e255 --- /dev/null +++ b/world/map/npc/099-2/_mobs.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamRooms mobs + diff --git a/world/map/npc/099-2/_nodes.txt b/world/map/npc/099-2/_nodes.txt new file mode 100644 index 00000000..9b2c13bb --- /dev/null +++ b/world/map/npc/099-2/_nodes.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamRooms nodes + +// (no nodes) diff --git a/world/map/npc/099-2/_warps.txt b/world/map/npc/099-2/_warps.txt new file mode 100644 index 00000000..676f6f2f --- /dev/null +++ b/world/map/npc/099-2/_warps.txt @@ -0,0 +1,23 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamRooms warps + +099-1,25,23|warp|-1,-1,099-1,29,17 +099-1,59,22|warp|-1,-1,099-1,77,17 +099-1,90,22|warp|-1,-1,099-1,105,9 +099-1,121,22|warp|-1,-1,099-1,91,137 +099-1,25,50|warp|-1,-1,099-1,20,116 +099-1,59,50|warp|-1,-1,099-1,97,86 +099-1,91,50|warp|-1,-1,099-1,112,127 +099-1,121,49|warp|-1,-1,099-1,64,115 +099-1,25,76|warp|-1,-1,099-1,64,73 +099-1,59,76|warp|-1,-1,099-1,42,52 +099-1,91,76|warp|-1,-1,099-1,92,45 +099-1,121,76|warp|-1,-1,099-1,15,78 +099-1,25,102|warp|-1,-1,099-1,49,130 +099-1,60,102|warp|-1,-1,099-1,113,62 +099-1,91,102|warp|-1,-1,099-1,131,79 +099-1,121,102|warp|-1,-1,099-1,72,59 +099-1,26,133|warp|-1,-1,099-1,47,93 +099-1,60,133|warp|-1,-1,099-1,102,25 +099-1,92,133|warp|-1,-1,099-1,120,45 +099-1,121,133|warp|-1,-1,099-1,97,106 diff --git a/world/map/npc/099-3/_import.txt b/world/map/npc/099-3/_import.txt new file mode 100644 index 00000000..a75c6f6d --- /dev/null +++ b/world/map/npc/099-3/_import.txt @@ -0,0 +1,6 @@ +// Map 099-3: Nu'RamBasement +// This file is generated automatically. All manually added changes will be removed when running the Converter. +map: 099-3 +npc: npc/099-3/_mobs.txt +npc: npc/099-3/_nodes.txt +npc: npc/099-3/_warps.txt diff --git a/world/map/npc/099-3/_mobs.txt b/world/map/npc/099-3/_mobs.txt new file mode 100644 index 00000000..17190db0 --- /dev/null +++ b/world/map/npc/099-3/_mobs.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamBasement mobs + diff --git a/world/map/npc/099-3/_nodes.txt b/world/map/npc/099-3/_nodes.txt new file mode 100644 index 00000000..e28bcf32 --- /dev/null +++ b/world/map/npc/099-3/_nodes.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamBasement nodes + +// (no nodes) diff --git a/world/map/npc/099-3/_warps.txt b/world/map/npc/099-3/_warps.txt new file mode 100644 index 00000000..37f57051 --- /dev/null +++ b/world/map/npc/099-3/_warps.txt @@ -0,0 +1,17 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'RamBasement warps + +099-3,72,25|warp|-1,-1,099-1,119,115 +099-3,29,62|warp|-1,-1,099-1,48,17 +099-3,35,62|warp|-1,-1,099-1,76,26 +099-3,41,62|warp|-1,-1,099-1,128,18 +099-3,47,62|warp|-1,-1,099-1,110,45 +099-3,53,62|warp|-1,-1,099-1,120,79 +099-3,59,62|warp|-1,-1,099-1,113,98 +099-3,79,62|warp|-1,-1,099-1,125,98 +099-3,85,62|warp|-1,-1,099-1,60,93 +099-3,91,62|warp|-1,-1,099-1,20,55 +099-3,97,62|warp|-1,-1,099-1,14,55 +099-3,103,62|warp|-1,-1,099-1,15,68 +099-3,109,62|warp|-1,-1,099-1,19,94 +099-3,115,62|warp|-1,-1,099-1,57,52 diff --git a/world/map/npc/099-4/_import.txt b/world/map/npc/099-4/_import.txt new file mode 100644 index 00000000..c1087feb --- /dev/null +++ b/world/map/npc/099-4/_import.txt @@ -0,0 +1,6 @@ +// Map 099-4: Nu'Ram-Battle +// This file is generated automatically. All manually added changes will be removed when running the Converter. +map: 099-4 +npc: npc/099-4/_mobs.txt +npc: npc/099-4/_nodes.txt +npc: npc/099-4/_warps.txt diff --git a/world/map/npc/099-4/_mobs.txt b/world/map/npc/099-4/_mobs.txt new file mode 100644 index 00000000..0381696e --- /dev/null +++ b/world/map/npc/099-4/_mobs.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Battle mobs + diff --git a/world/map/npc/099-4/_nodes.txt b/world/map/npc/099-4/_nodes.txt new file mode 100644 index 00000000..22261608 --- /dev/null +++ b/world/map/npc/099-4/_nodes.txt @@ -0,0 +1,4 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Battle nodes + +// (no nodes) diff --git a/world/map/npc/099-4/_warps.txt b/world/map/npc/099-4/_warps.txt new file mode 100644 index 00000000..703b3ca9 --- /dev/null +++ b/world/map/npc/099-4/_warps.txt @@ -0,0 +1,3 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Nu'Ram-Battle warps + diff --git a/world/map/npc/_import.txt b/world/map/npc/_import.txt index b92ea7e1..8c826165 100644 --- a/world/map/npc/_import.txt +++ b/world/map/npc/_import.txt @@ -120,4 +120,8 @@ import: npc/057-1/_import.txt import: npc/069-2/_import.txt import: npc/070-1/_import.txt import: npc/070-3/_import.txt +import: npc/099-1/_import.txt +import: npc/099-2/_import.txt +import: npc/099-3/_import.txt +import: npc/099-4/_import.txt import: npc/botcheck/_import.txt diff --git a/world/map/npc/functions/doomsday.txt b/world/map/npc/functions/doomsday.txt index 641bd6b0..365f6b50 100644 --- a/world/map/npc/functions/doomsday.txt +++ b/world/map/npc/functions/doomsday.txt @@ -29,6 +29,7 @@ function|script|DoomsdayDebug mes "$DOOMSDAY_TOWN[1] (Hurns): "+$DOOMSDAY_TOWN[1]; mes "$DOOMSDAY_TOWN[2] (Nival): "+$DOOMSDAY_TOWN[2]; mes "$DOOMSDAY_SCORE: "+$DOOMSDAY_SCORE; + mes "$DOOMSDAY_CLUES: "+$DOOMSDAY_CLUES; mes ""; mes "Can players summon Mana Guardians? "+if_then_else($DOOMSDAY_SUMMON, "Yes", "No"); mes "Is TMW under Jande's control? "+if_then_else($DOOMSDAY_TAKENOVER, "Yes", "No"); @@ -46,6 +47,7 @@ function|script|DoomsdayDebug "[1][2][2] Surrender TMW to Jande",L_Surrender, "[1][3][0] The Great War - First Wave",L_War, "[2][3][1] The Great War - Additional Wave",L_GreatWar, + "[2][4][0] Wumpus Great Egg Hunt - DEBUG",L_Wumpus, "[2][4][1] Council - Tulimshar's Guild",L_TulimCouncil, "[2][4][2] Council - Celestia's Residence",L_HurnsCouncil, "[2][4][3] Council - Blue Sage's Residence",L_NivalCouncil, @@ -88,6 +90,12 @@ L_War: gmlog strcharinfo(0) + " changed doomsday to Act 3: The Great War."; return; +L_Wumpus: + set $@DOOMSDAY_SKIP, 0; + donpcevent "Doomsday::OnClock1830"; // Forces a doomsday act 4 check + gmlog strcharinfo(0) + " manually triggered debug function. Doomsday Act 4."; + return; + // Act 4: The Great War Council L_GreatWar: disablenpc "Wizard#1"; @@ -350,6 +358,26 @@ L_Doomsday3: set $@DD_LOC$, "031-1"; + // Set the map coordinates for spawns + // Tulimshar + if ($@DoomsdayLoc == 0) + setarray $@DD_XPOS, 98, 97, 91, 75, 56, 44, 76, 54; + if ($@DoomsdayLoc == 0) + setarray $@DD_YPOS, 75, 86, 99,104, 81, 63, 76, 96; + + // Hurnscald + if ($@DoomsdayLoc == 1) + setarray $@DD_XPOS,138,136,133,111, 95, 79, 67, 88; + if ($@DoomsdayLoc == 1) + setarray $@DD_YPOS, 63, 71, 79, 74, 75, 64, 82, 90; + + // Nivalis + if ($@DoomsdayLoc == 2) + setarray $@DD_XPOS, 44, 62, 63, 56, 70, 36, 62, 85; + if ($@DoomsdayLoc == 2) + setarray $@DD_YPOS, 55, 49, 61, 83, 41, 37, 26, 30; + + // Make an extra announce for those whom missed if ($@DoomsdayLoc == 0) announce "Jande: Zax De'Kagen's army reached ##BTULIMSHAR##b! (Attack by south gate)", 0; @@ -399,6 +427,23 @@ L_DDAdvanceTimers2: setnpctimer $@ADD_TIME; set $@ADD_TIME, 0; + // If we have clues, we will cause a few extra spawns + if ($DOOMSDAY_CLUES) + goto L_DD3WaveReinforcements; + goto L_DDAdvanceWavePost; + +// Reinforcements on waves, to ensure Kage never really weaken their attacks +L_DD3WaveReinforcements: + set $@DD_UNITS, $@DD_UNITS-$@DD_INT; + set $@DD_UNITS, $@DD_UNITS*$DOOMSDAY_CLUES/6; + set $@DD_INT, 0; + + if ($@DD_UNITS > 0) + goto L_DD3WRCallsub; + goto L_DDAdvanceWavePost; + +L_DD3WRCallsub: + callsub S_DD3ThirdSpawns; goto L_DDAdvanceWavePost; // Clear temporary variables and broadcast @@ -406,8 +451,17 @@ L_DDAdvanceWavePost: set $@DD_IDX, 0; set $@DD_INT, 0; set $@DD_UNITS, 0; + // Tell users mapannounce $@DD_LOC$, "Jande : Watch out, another wave! Only "+(6-$@DD_NUMWAVES)+" waves left!", 0; + + // Prepare optional boss + set $@DD_IDX1, rand(getarraysize($@DD_XPOS)); + set $@DD_IDX2, rand(getarraysize($@doomsday_boss)); + + // Spawn optional boss if req. is met + if ($@DD_NUMWAVES > 6-$DOOMSDAY_CLUES) + monster $@DD_LOC$, $@DD_XPOS[$@DD_IDX1], $@DD_YPOS[$@DD_IDX1], "", $@doomsday_boss[$@DD_IDX2], 1, "Doomsday::OnDeathAct3"; end; @@ -578,24 +632,6 @@ L_DD3FirstThird: if ($@DD_UNITS < 0) goto L_DD3EndThird; - // Tulimshar - if ($@DoomsdayLoc == 0) - setarray $@DD_XPOS, 98, 97, 91, 75, 56, 44, 76, 54; - if ($@DoomsdayLoc == 0) - setarray $@DD_YPOS, 75, 86, 99,104, 81, 63, 76, 96; - - // Hurnscald - if ($@DoomsdayLoc == 1) - setarray $@DD_XPOS,138,136,133,111, 95, 79, 67, 88; - if ($@DoomsdayLoc == 1) - setarray $@DD_YPOS, 63, 71, 79, 74, 75, 64, 82, 90; - - // Nivalis - if ($@DoomsdayLoc == 2) - setarray $@DD_XPOS, 44, 62, 63, 56, 70, 36, 62, 85; - if ($@DoomsdayLoc == 2) - setarray $@DD_YPOS, 55, 49, 61, 83, 41, 37, 26, 30; - // Prepare optional boss set $@DD_IDX1, rand(getarraysize($@DD_XPOS)); set $@DD_IDX2, rand(getarraysize($@doomsday_boss)); @@ -620,24 +656,6 @@ L_DD3SecondThird: // Difficulty adjustment: Invoke -1 mob per player and +1 mob per 3 score points set $@DD_UNITS, $@DD_UNITS-getmapusers($@DD_LOC$)+($DOOMSDAY_SCORE/3); - // Tulimshar - if ($@DoomsdayLoc == 0) - setarray $@DD_XPOS, 98, 97, 91, 75, 56, 44, 76, 54; - if ($@DoomsdayLoc == 0) - setarray $@DD_YPOS, 75, 86, 99,104, 81, 63, 76, 96; - - // Hurnscald - if ($@DoomsdayLoc == 1) - setarray $@DD_XPOS,138,136,133,111, 95, 79, 67, 88; - if ($@DoomsdayLoc == 1) - setarray $@DD_YPOS, 63, 71, 79, 74, 75, 64, 82, 90; - - // Nivalis - if ($@DoomsdayLoc == 2) - setarray $@DD_XPOS, 44, 62, 63, 56, 70, 36, 62, 85; - if ($@DoomsdayLoc == 2) - setarray $@DD_YPOS, 55, 49, 61, 83, 41, 37, 26, 30; - // Prepare optional boss set $@DD_IDX1, rand(getarraysize($@DD_XPOS)); set $@DD_IDX2, rand(getarraysize($@doomsday_boss)); @@ -660,8 +678,6 @@ L_DD3EndThird: set $@DD_IDX1, 0; set $@DD_IDX2, 0; set $@DD_INT, 0; - cleararray $@DD_XPOS, 0, 8; - cleararray $@DD_YPOS, 0, 8; end; @@ -712,6 +728,8 @@ L_Doomsday3Cleanup: set $@DoomsdayLoc, 0; set $@DoomsdayMc, 0; set $@DD_LOC$, ""; + cleararray $@DD_XPOS, 0, 8; + cleararray $@DD_YPOS, 0, 8; end; // Bonus spawn @@ -723,15 +741,18 @@ L_Doomsday3Bonus: if ($@DD_UNITS > 5) set $@DD_UNITS, 3+($DOOMSDAY_SCORE/10); + // Sum the permanent clues + set $@DD_UNITS, $@DD_UNITS+$DOOMSDAY_CLUES; + set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); - monster "031-1", 62, 49, "", $@doomsday_mobs[$@DD_IDX], 1; + monster "031-1", 62, 49, "", $@doomsday_mobs[$@DD_IDX], 1+$DOOMSDAY_CLUES; set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); - monster "018-1", 136, 71, "", $@doomsday_mobs[$@DD_IDX], 1; + monster "018-1", 136, 71, "", $@doomsday_mobs[$@DD_IDX], 1+$DOOMSDAY_CLUES; set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); - monster "002-1", 97, 86, "", $@doomsday_mobs[$@DD_IDX], 1; + monster "002-1", 97, 86, "", $@doomsday_mobs[$@DD_IDX], 1+$DOOMSDAY_CLUES; set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); - areamonster "017-1", 169, 49, 198, 77, "", $@doomsday_mobs[$@DD_IDX], 1; + areamonster "017-1", 169, 49, 198, 77, "", $@doomsday_mobs[$@DD_IDX], 1+$DOOMSDAY_CLUES; set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); areamonster "012-1", 20, 47, 74, 77, "", $@doomsday_mobs[$@DD_IDX], $@DD_UNITS; set $@DD_IDX, rand(getarraysize($@doomsday_mobs)); @@ -747,6 +768,64 @@ L_Doomsday3Bonus: set $@DD_IDX, 0; end; +// Act 4 System +L_Doomsday4Check: + // Magic number: 21 + if ($DOOMSDAY_SCORE >= 20-$DOOMSDAY_CLUES) + goto L_DD4WarnSeq; + end; + +L_DD4WarnSeq: + areatimer 0, $@DD_LOC$, 20, 20, 500, 500, 100, "Doomsday::OnDD4Warning1"; + announce "Jande : ##1##BWarning: ##bZax's Golem spawning! Defeat it!!", 0; + addnpctimer 7500, "Doomsday::OnDD4Spawn"; + end; + +OnDD4Warning1: + mapmask 1 | 2; + music "Dramatic.ogg"; + areatimer 0, $@DD_LOC$, 20, 20, 500, 500, 600, "Doomsday::OnDD4Warning2"; + end; + +OnDD4Warning2: + misceffect 51, strcharinfo(0); + areatimer 0, $@DD_LOC$, 20, 20, 500, 500, 7000, "Doomsday::OnDD4Warning3"; + end; + +OnDD4Warning3: + mapmask 1; + end; + +OnDD4Spawn: + set $@DD_IDX1, rand(getarraysize($@DD_XPOS)); + monster $@DD_LOC$, $@DD_XPOS[$@DD_IDX1], $@DD_YPOS[$@DD_IDX1], "", 1145, 1, "Doomsday::OnDeathAct4"; + //debugmes "Success "+$@DD_LOC$+" ("+$@DD_XPOS[$@DD_IDX1]+", "+$@DD_YPOS[$@DD_IDX1]+")"; + mapannounce $@DD_LOC$, "Golem : FRAIL SMALL PEOPLE, ME SMASH!!!", 0; + goto OnDD4Smash; + +// Could use a new optional skill: FRAIL NOOBS, ZAX RULES! (causes new wave of 6 monsters) +OnDD4Smash: + // Golem got itself smashed D: + if ($@DD_LOC$ == "") + end; + if (!(mobcount($@DD_LOC$, "Doomsday::OnDeathAct4")+1)) + end; + // TODO: Do not keep repeating the announce + //mapannounce $@DD_LOC$, "Golem : FRAIL SMALL PEOPLE, ME SMASH!!!", 0; + areatimer 0, $@DD_LOC$, 20, 20, 500, 500, 100, "Doomsday::OnDD4Smashed"; + addnpctimer rand(12000, 18000), "Doomsday::OnDD4Smash"; + end; + +OnDD4Smashed: + misceffect 52, strcharinfo(0); + heal -70-BaseLevel, 0; + end; + +// For surviving +OnDD4SurvivorReward: + getexp 10000, 0; + end; + //////////////////////////////////////////////////////////////////////////////// // Respawn logic (5 minutes) OnTimer100000: @@ -783,13 +862,22 @@ OnClock1750: OnClock1800: if ($@DOOMSDAY_SKIP) - goto L_Doomsday3Skip; + end; if ($DOOMSDAY == 2) goto L_Doomsday3; end; +OnClock1830: + if ($@DOOMSDAY_SKIP) + end; + if ($DOOMSDAY == 2) + goto L_Doomsday4Check; + end; + // 19h -> 18h45 OnClock1845: + if ($@DOOMSDAY_SKIP) + goto L_Doomsday3Skip; if ($DOOMSDAY == 2) goto L_Doomsday3Check; end; @@ -804,12 +892,21 @@ OnClock2350: OnClock0000: if ($@DOOMSDAY_SKIP) - goto L_Doomsday3Skip; + end; if ($DOOMSDAY == 2) goto L_Doomsday3; end; +OnClock0030: + if ($@DOOMSDAY_SKIP) + end; + if ($DOOMSDAY == 2) + goto L_Doomsday4Check; + end; + OnClock0045: + if ($@DOOMSDAY_SKIP) + goto L_Doomsday3Skip; if ($DOOMSDAY == 2) goto L_Doomsday3Check; end; @@ -831,6 +928,15 @@ OnDeathMapname: OnDeathAct3: end; +OnDeathAct4: + set $DOOMSDAY_SCORE, 0; + set $DOOMSDAY_CLUES, $DOOMSDAY_CLUES+1; + announce "Jande : Golem destroyed, crisis averted. I'll be resetting the number of victories.", 0; + if ($@DD_LOC$ == "") + end; + areatimer 0, $@DD_LOC$, 20, 20, 500, 500, 100, "Doomsday::OnDD4SurvivorReward"; + end; + } // Control puppets for Doomsday Council Meetings diff --git a/world/map/npc/items/drugs.txt b/world/map/npc/items/drugs.txt new file mode 100644 index 00000000..9c724872 --- /dev/null +++ b/world/map/npc/items/drugs.txt @@ -0,0 +1,17 @@ +// ------------------------------------------------------------ +// Added as a joke but could be used seriously. +// ------------------------------------------------------------ + +function|script|DrugItem +{ + if (strcharinfo(0) == "kytty") goto L_kytty; + //message strcharinfo(0), "TMW does not endorse nor condone with the use of this item in real life, nor with its implications."; + goto L_Return; + +L_kytty: + message strcharinfo(0), "Stop smoking, kytty! %%e"; + goto L_Return; + +L_Return: + return; +} diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf index b02f224e..30cb5117 100644 --- a/world/map/npc/scripts.conf +++ b/world/map/npc/scripts.conf @@ -50,6 +50,7 @@ npc: npc/items/rubber_bat.txt npc: npc/items/scentedcandle.txt npc: npc/items/tmwgift.txt npc: npc/items/brawling_item.txt +npc: npc/items/drugs.txt import: npc/_import.txt // magic -- cgit v1.2.3-60-g2f50