summaryrefslogblamecommitdiff
path: root/world/map/npc/099-8/mobs.txt
blob: db971236f05349e7bc4f212f8e78657738eb56e5 (plain) (tree)








































































































































































































































                                                                                                            
// 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, 402, 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, 402, 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, 402, 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, 402, 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, 402, 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, 402, 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, 402, 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;
}