// This script controls the Keshlam Abandoned Maze // Part of Doomsday Event : Act 5 // Monster Script Control -|script|Keshlam Maze|32767 { close; OnInit: goto L_Main; // They'll respawn at midday. OnClock1200: goto L_Main; L_Main: // 1 MONSTER PER 30 TILES, TOTAL 4320 MONSTERS // 1440 monsters of each kind // 360 monsters per quadrand; Center is the pillar in (201, 201) // TYPE 1141, SASQUATCH set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath1")+1; if ($@KeshlamMc < 360) areamonster "099-8", 20, 20, 201, 201, "", 1141, 360-$@KeshlamMc, "Keshlam Maze::OnDeath1"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath2")+1; if ($@KeshlamMc < 360) areamonster "099-8", 201, 20, 372, 201, "", 1141, 360-$@KeshlamMc, "Keshlam Maze::OnDeath2"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath3")+1; if ($@KeshlamMc < 360) areamonster "099-8", 20, 201, 201, 402, "", 1141, 360-$@KeshlamMc, "Keshlam Maze::OnDeath3"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath4")+1; if ($@KeshlamMc < 360) areamonster "099-8", 201, 201, 372, 402, "", 1141, 360-$@KeshlamMc, "Keshlam Maze::OnDeath4"; // TYPE 1140, TENGU set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath5")+1; if ($@KeshlamMc < 360) areamonster "099-8", 20, 20, 201, 201, "", 1140, 360-$@KeshlamMc, "Keshlam Maze::OnDeath5"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath6")+1; if ($@KeshlamMc < 360) areamonster "099-8", 201, 20, 372, 201, "", 1140, 360-$@KeshlamMc, "Keshlam Maze::OnDeath6"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath7")+1; if ($@KeshlamMc < 360) areamonster "099-8", 20, 201, 201, 402, "", 1140, 360-$@KeshlamMc, "Keshlam Maze::OnDeath7"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath8")+1; if ($@KeshlamMc < 360) areamonster "099-8", 201, 201, 372, 402, "", 1140, 360-$@KeshlamMc, "Keshlam Maze::OnDeath8"; /* // TYPE 1141, more SASQUATCH // Used to be 1143 Mana Slayer set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath9")+1; if ($@KeshlamMc < 300) areamonster "099-8", 20, 20, 201, 201, "", 1141, 300-$@KeshlamMc, "Keshlam Maze::OnDeath9"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath10")+1; if ($@KeshlamMc < 300) areamonster "099-8", 201, 20, 372, 201, "", 1141, 300-$@KeshlamMc, "Keshlam Maze::OnDeath10"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath11")+1; if ($@KeshlamMc < 300) areamonster "099-8", 20, 201, 201, 402, "", 1141, 300-$@KeshlamMc, "Keshlam Maze::OnDeath11"; set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath12")+1; if ($@KeshlamMc < 300) areamonster "099-8", 201, 201, 372, 402, "", 1141, 300-$@KeshlamMc, "Keshlam Maze::OnDeath12"; */ // Maintain a minimal MANA SLAYER guarnition set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnDeath13")+1; if ($@KeshlamMc < 200) areamonster "099-8", 20, 20, 372, 402, "", 1143, 200-$@KeshlamMc, "Keshlam Maze::OnDeath13"; // Extra Layer: The bonus layer // Density: 50 monsters or 0.04% of the maze set $@KeshlamMc, mobcount("099-8", "Keshlam Maze::OnBoss")+1; if ($@KeshlamMc < 40) areamonster "099-8", 20, 20, 360, 360, "", 1147, 40-$@KeshlamMc, "Keshlam Maze::OnBoss"; // Koyntety // Done set $@KeshlamMc, 0; stopnpctimer; end; // Labels OnDeath1: end; OnDeath2: end; OnDeath3: end; OnDeath4: end; OnDeath5: end; OnDeath6: end; OnDeath7: end; OnDeath8: end; OnDeath9: end; OnDeath10: end; OnDeath11: end; OnDeath12: end; OnDeath13: end; OnBoss: // If a player is attached, give them a reward getitem "TreasureKey", 1; getexp 50000, 0; end; } // Oddities 099-8,201,201,0|script|Central Pillar#DD5|400 { // Default distance is 4 tiles - all we need callfunc "PCtoNPCRange"; if(@npc_check) end; mes ".:: KESHLAM MAZE ::."; mes "WE KEPT POWERFUL EARTH MONSTERS HERE."; mes "IT WOULD BE TERRIBLE IF THE SASQUATCH ESCAPED."; mes ""; mes "WHATEVER HAPPENS: DO NOT OPEN THE GATE!"; close; } 099-8,375,27,0|script|Northeast Pillar#DD5|400 { // Default distance is 4 tiles - all we need callfunc "PCtoNPCRange"; if(@npc_check) end; mes ".:: KESHLAM MAZE ::."; mes ".:: :: CONTROL PANEL :: ::."; mes ""; mes "Security Level: ##1CRITICAL - WORLD'S EXISTENCE THREATENED##0"; mes "Defensive Measures Level 1: ##1DEFEATED##0"; mes "Defensive Measures Level 2: ##1DEFEATED##0"; mes "Defensive Measures Level 3: ##2STAND BY##0"; next; mes "##9The controls seems to have been destroyed!"; mes "##9The panel says the situtation is critical."; mes "##9Why the final defensive measures didn't engage?"; next; mes "What's happening?"; close; } 099-8,87,261,0|script|Southwest Pillar#DD5|400 { // Default distance is 4 tiles - all we need callfunc "PCtoNPCRange"; if(@npc_check) end; mes ".:: KESHLAM MAZE ::."; mes ".:: :: CONTROL PANEL :: ::."; mes ""; mes "West gate: ##1OPEN##0"; mes "East gate: ##1OPEN##0"; mes "North gate: ##1OPEN##0"; mes "South gate: ##1OPEN##0"; mes ""; mes "Security Level: ##1CRITICAL - WORLD'S EXISTENCE THREATENED##0"; next; mes "##9The controls seems to have been destroyed!"; next; mes "Where are these gates? I don't recall seeing anything like that."; mes "What's happening, after all?"; close; } 099-8,285,237,0|script|Southeast Pillar#DD5|400 { // Default distance is 4 tiles - all we need callfunc "PCtoNPCRange"; if(@npc_check) end; mes ".:: KESHLAM MAZE ::."; mes ".:: :: CONTROL PANEL :: ::."; mes ""; mes "Laboratory: ##1CONTACT LOST##0"; mes "The Archives: ##1CONTACT LOST##0"; mes "Crystal Room: ##1CONTACT LOST##0"; mes ""; mes "Security Level: ##1CRITICAL - WORLD'S EXISTENCE THREATENED##0"; next; mes "##9The controls seems to have been destroyed!"; mes "##9I wonder where these three rooms are."; mes "##9What sort of research was being conducted?"; mes "##9What is a Crystal Room? I don't saw any passage."; next; mes "What's happening?"; close; } 099-8,75,105,0|script|Northwest Pillar#DD5|400 { // Default distance is 4 tiles - all we need callfunc "PCtoNPCRange"; if(@npc_check) end; mes ".:: KESHLAM MAZE ::."; mes ".:: :: STATUS REPORT PANEL :: ::."; mes ""; mes "Earth Crystal: ##1NOT FOUND##0"; mes "Security Level: ##1CRITICAL - WORLD'S EXISTENCE THREATENED##0"; next; mes "##9Earth Crystal? I never heard anything about it."; next; mes "What's happening?"; close; }