diff options
Diffstat (limited to 'world')
-rw-r--r-- | world/map/npc/005-4/bossfight.txt | 246 |
1 files changed, 123 insertions, 123 deletions
diff --git a/world/map/npc/005-4/bossfight.txt b/world/map/npc/005-4/bossfight.txt index 34585360..d4616363 100644 --- a/world/map/npc/005-4/bossfight.txt +++ b/world/map/npc/005-4/bossfight.txt @@ -1,207 +1,207 @@ //Author: Kage -005-4.gat,36,19,0 script Switch#elecave 127,{ - if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; +005-4.gat,36,19,0|script|Switch#elecave|127,{ + if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; - mes "*You see a switch, it is flipped off*"; + mes "*You see a switch, it is flipped off*"; menu "No, I am NOT flipping the switch... thats final.", L_Exit, - "Ha! What's the worst that could happen?", -; + "Ha! What's the worst that could happen?", -; - mes "*As you flip the switch, the cave starts to rumble*"; + mes "*As you flip the switch, the cave starts to rumble*"; - if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players + if ($@ELE_CAVE_STATUS != 0) goto L_Enjoy; // Prevent from starting level 1 from two different players - set $@ELE_CAVE_STATUS, 1; - set $@ELE_CAVE_PLAYER_COUNT, getareausers("005-4.gat", 19, 19, 54, 37); + set $@ELE_CAVE_STATUS, 1; + set $@ELE_CAVE_PLAYER_COUNT, getareausers("005-4.gat", 19, 19, 54, 37); - startnpctimer; + startnpctimer; L_Start_Level_1: - set $@ELE_CAVE_LEVEL, 1; + set $@ELE_CAVE_LEVEL, 1; - mapannounce "005-4.gat", "Level 1 starting", 0; + mapannounce "005-4.gat", "Level 1 starting", 0; - // Random colors for everyone! - areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; + // Random colors for everyone! + areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; - // Two red, two blue. - areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::onBlueDeath"; - areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::onRedDeath"; - goto L_Exit; // This one is triggered on talking to the switch. + // Two red, two blue. + areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 2, "Switch#elecave::onBlueDeath"; + areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 2, "Switch#elecave::onRedDeath"; + goto L_Exit; // This one is triggered on talking to the switch. L_Enjoy: - mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*"; + mes "*As you get ready to touch the switch, a spark of the opposite color flys to you. But oddly it doesn't hurt at all.*"; - if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue; - if (@ELE_CAVE_COLOR == 2) goto L_Set_Red; + if (@ELE_CAVE_COLOR == 1) goto L_Set_Blue; + if (@ELE_CAVE_COLOR == 2) goto L_Set_Red; L_Set_Red: - set @ELE_CAVE_COLOR, 1; - goto L_Exit; + set @ELE_CAVE_COLOR, 1; + goto L_Exit; L_Set_Blue: - set @ELE_CAVE_COLOR, 2; - goto L_Exit; + set @ELE_CAVE_COLOR, 2; + goto L_Exit; L_Exit: - close; - end; + close; + end; //-----------------------No player talking below this line------------------------------- // Fight logic OnTimer3000: - setnpctimer 0; + setnpctimer 0; - // We stop if no live players are around - if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp; - set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count + // We stop if no live players are around + if ($@ELE_CAVE_PLAYER_COUNT == 0) goto L_CleanUp; + set $@ELE_CAVE_PLAYER_COUNT, 0; // The onTick refills this with a live count - // We punish them for having a different count (Aka need kill them at the same time) - set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::onRedDeath") + 1; - set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::onBlueDeath") + 1; + // We punish them for having a different count (Aka need kill them at the same time) + set $@ELE_CAVE_RED_COUNT, mobcount("005-4.gat","Switch#elecave::onRedDeath") + 1; + set $@ELE_CAVE_BLUE_COUNT, mobcount("005-4.gat","Switch#elecave::onBlueDeath") + 1; - set $@ELE_CAVE_DIFF, 0; - if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red; - if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue; + set $@ELE_CAVE_DIFF, 0; + if ($@ELE_CAVE_RED_COUNT > $@ELE_CAVE_BLUE_COUNT) goto L_More_Red; + if ($@ELE_CAVE_RED_COUNT < $@ELE_CAVE_BLUE_COUNT) goto L_More_Blue; - if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4.gat", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0; - set $@ELE_CAVE_LAST_MESSAGE, 0; + if ($@ELE_CAVE_LAST_MESSAGE != 0) mapannounce "005-4.gat", "The ions are once again balanced. Try to kill a red and blue at the same time.", 0; + set $@ELE_CAVE_LAST_MESSAGE, 0; - goto L_Next_Step; + goto L_Next_Step; L_More_Red: - set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT; - if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4.gat", "There are too many red ions in the air! Kill more red sparks!", 0; - set $@ELE_CAVE_LAST_MESSAGE, 1; - goto L_Next_Step; + set $@ELE_CAVE_DIFF, $@ELE_CAVE_RED_COUNT - $@ELE_CAVE_BLUE_COUNT; + if ($@ELE_CAVE_LAST_MESSAGE != 1) mapannounce "005-4.gat", "There are too many red ions in the air! Kill more red sparks!", 0; + set $@ELE_CAVE_LAST_MESSAGE, 1; + goto L_Next_Step; L_More_Blue: - set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT; - if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4.gat", "There are too many blue ions in the air! Kill more blue sparks!", 0; - set $@ELE_CAVE_LAST_MESSAGE, 2; - goto L_Next_Step; + set $@ELE_CAVE_DIFF, $@ELE_CAVE_BLUE_COUNT - $@ELE_CAVE_RED_COUNT; + if ($@ELE_CAVE_LAST_MESSAGE != 2) mapannounce "005-4.gat", "There are too many blue ions in the air! Kill more blue sparks!", 0; + set $@ELE_CAVE_LAST_MESSAGE, 2; + goto L_Next_Step; L_Next_Step: - // Basic per player logic - areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick"; + // Basic per player logic + areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onTick"; - if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level; + if ($@ELE_CAVE_RED_COUNT == 0 && $@ELE_CAVE_BLUE_COUNT == 0) goto L_Next_Level; - end; + end; L_Next_Level: - if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2; - if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3; - if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp; - end; + if ($@ELE_CAVE_LEVEL == 1) goto L_Start_Level_2; + if ($@ELE_CAVE_LEVEL == 2) goto L_Start_Level_3; + if ($@ELE_CAVE_LEVEL == 3) goto L_CleanUp; + end; L_Start_Level_2: - set $@ELE_CAVE_LEVEL, 2; + set $@ELE_CAVE_LEVEL, 2; - mapannounce "005-4.gat", "Level 2 starting", 0; + mapannounce "005-4.gat", "Level 2 starting", 0; - // Random colors for everyone! - areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; + // Random colors for everyone! + areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; - // four red, four blue. - areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::onBlueDeath"; - areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::onRedDeath"; - end; + // four red, four blue. + areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 4, "Switch#elecave::onBlueDeath"; + areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 4, "Switch#elecave::onRedDeath"; + end; L_Start_Level_3: - set $@ELE_CAVE_LEVEL, 3; + set $@ELE_CAVE_LEVEL, 3; - mapannounce "005-4.gat", "Level 3 starting", 0; + mapannounce "005-4.gat", "Level 3 starting", 0; - // Random colors for everyone! - areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; + // Random colors for everyone! + areatimer "005-4.gat", 19, 19, 54, 37, 10, "Switch#elecave::onChaos"; - // eight red, eight blue. - areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::onBlueDeath"; - areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::onRedDeath"; - end; + // eight red, eight blue. + areamonster "005-4.gat", 19, 19, 54, 37, "", 1080, 8, "Switch#elecave::onBlueDeath"; + areamonster "005-4.gat", 19, 19, 54, 37, "", 1081, 8, "Switch#elecave::onRedDeath"; + end; // Being ticks onChaos: - if (isdead()) end; + if (isdead()) end; L_Set_Color: - message strcharinfo(0), "You feel funny. You think your color has changed."; - set @ELE_CAVE_COLOR, rand(1, 2); - end; + message strcharinfo(0), "You feel funny. You think your color has changed."; + set @ELE_CAVE_COLOR, rand(1, 2); + end; onTick: - if (isdead()) end; + if (isdead()) end; - // Count this player as alive - set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1; + // Count this player as alive + set $@ELE_CAVE_PLAYER_COUNT, $@ELE_CAVE_PLAYER_COUNT + 1; - set @drainamount, MaxHp / -20; + set @drainamount, MaxHp / -20; - if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0; + if ($@ELE_CAVE_DIFF != 0) heal @drainamount * $@ELE_CAVE_DIFF, 0; - // Make sure they have a color - if (@ELE_CAVE_COLOR == 0) goto L_Set_Color; + // Make sure they have a color + if (@ELE_CAVE_COLOR == 0) goto L_Set_Color; - if (@ELE_CAVE_COLOR == 1) goto L_Do_Red; - if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue; + if (@ELE_CAVE_COLOR == 1) goto L_Do_Red; + if (@ELE_CAVE_COLOR == 2) goto L_Do_Blue; - end; + end; L_Do_Red: - specialeffect2 114; // Red effects + specialeffect2 114; // Red effects - if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal; - if (isin("005-4.gat", 32, 19, 54, 37)) end; - message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you."; - heal MaxHp / -6, 0; + if (isin("005-4.gat", 42, 19, 54, 32)) goto L_Heal; + if (isin("005-4.gat", 32, 19, 54, 37)) end; + message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you."; + heal MaxHp / -6, 0; - end; + end; L_Do_Blue: - specialeffect2 115; // Blue effects + specialeffect2 115; // Blue effects - if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal; - if (isin("005-4.gat", 19, 19, 41, 37)) end; - message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you"; - heal MaxHp / -6, 0; + if (isin("005-4.gat", 19, 19, 31, 32)) goto L_Heal; + if (isin("005-4.gat", 19, 19, 41, 37)) end; + message strcharinfo(0), "Sparks are flying between you and a piller. Maybe you should stand near a piller with the same color as you"; + heal MaxHp / -6, 0; - end; + end; L_Heal: - heal MaxHp / 20, 0; - end; + heal MaxHp / 20, 0; + end; // Death triggers onBlueDeath: - // Blue players have to kill blue sparks - if (@ELE_CAVE_COLOR == 2) end; - message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; - heal MaxHp / -2, 0; - end; + // Blue players have to kill blue sparks + if (@ELE_CAVE_COLOR == 2) end; + message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; + heal MaxHp / -2, 0; + end; onRedDeath: - // Red players have to kill red sparks - if (@ELE_CAVE_COLOR == 1) end; - message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; - heal MaxHp / -2, 0; - end; + // Red players have to kill red sparks + if (@ELE_CAVE_COLOR == 1) end; + message strcharinfo(0), "The dying spark reacts explosively with you. You should only kill sparks with the same color as you."; + heal MaxHp / -2, 0; + end; onInit: - initnpctimer; - stopnpctimer; + initnpctimer; + stopnpctimer; L_CleanUp: - set $@ELE_CAVE_LAST_MESSAGE, 0; - set $@ELE_CAVE_STATUS, 0; - set $@ELE_CAVE_PLAYER_COUNT, 0; - set $@ELE_CAVE_LEVEL, 0; - set $@ELE_CAVE_ROUND_TIMER, 0; - - killmonster "005-4.gat", "Switch#elecave::onBlueDeath"; - killmonster "005-4.gat", "Switch#elecave::onRedDeath"; - - stopnpctimer; - setnpctimer 0; - end; + set $@ELE_CAVE_LAST_MESSAGE, 0; + set $@ELE_CAVE_STATUS, 0; + set $@ELE_CAVE_PLAYER_COUNT, 0; + set $@ELE_CAVE_LEVEL, 0; + set $@ELE_CAVE_ROUND_TIMER, 0; + + killmonster "005-4.gat", "Switch#elecave::onBlueDeath"; + killmonster "005-4.gat", "Switch#elecave::onRedDeath"; + + stopnpctimer; + setnpctimer 0; + end; } |