diff options
author | Jesusaves <jesusalva@themanaworld.org> | 2020-04-20 21:52:32 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-21 00:52:32 +0000 |
commit | bb7653be55fdc48f98f3def7497810eb31405c3b (patch) | |
tree | 1116d9fa27d641c8ce0590d28bda2002ffcbb6e9 /world/map/npc | |
parent | 2269b95101eb366b86d928813d5467bd5710c1ce (diff) | |
download | serverdata-bb7653be55fdc48f98f3def7497810eb31405c3b.tar.gz serverdata-bb7653be55fdc48f98f3def7497810eb31405c3b.tar.bz2 serverdata-bb7653be55fdc48f98f3def7497810eb31405c3b.tar.xz serverdata-bb7653be55fdc48f98f3def7497810eb31405c3b.zip |
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)
Diffstat (limited to 'world/map/npc')
-rw-r--r-- | world/map/npc/099-1/_import.txt | 6 | ||||
-rw-r--r-- | world/map/npc/099-1/_mobs.txt | 3 | ||||
-rw-r--r-- | world/map/npc/099-1/_nodes.txt | 4 | ||||
-rw-r--r-- | world/map/npc/099-1/_warps.txt | 37 | ||||
-rw-r--r-- | world/map/npc/099-2/_import.txt | 6 | ||||
-rw-r--r-- | world/map/npc/099-2/_mobs.txt | 3 | ||||
-rw-r--r-- | world/map/npc/099-2/_nodes.txt | 4 | ||||
-rw-r--r-- | world/map/npc/099-2/_warps.txt | 23 | ||||
-rw-r--r-- | world/map/npc/099-3/_import.txt | 6 | ||||
-rw-r--r-- | world/map/npc/099-3/_mobs.txt | 3 | ||||
-rw-r--r-- | world/map/npc/099-3/_nodes.txt | 4 | ||||
-rw-r--r-- | world/map/npc/099-3/_warps.txt | 17 | ||||
-rw-r--r-- | world/map/npc/099-4/_import.txt | 6 | ||||
-rw-r--r-- | world/map/npc/099-4/_mobs.txt | 3 | ||||
-rw-r--r-- | world/map/npc/099-4/_nodes.txt | 4 | ||||
-rw-r--r-- | world/map/npc/099-4/_warps.txt | 3 | ||||
-rw-r--r-- | world/map/npc/_import.txt | 4 | ||||
-rw-r--r-- | world/map/npc/functions/doomsday.txt | 194 | ||||
-rw-r--r-- | world/map/npc/items/drugs.txt | 17 | ||||
-rw-r--r-- | world/map/npc/scripts.conf | 1 |
20 files changed, 304 insertions, 44 deletions
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 |