diff options
Diffstat (limited to 'npc/015-8-1/campaign.txt')
-rw-r--r-- | npc/015-8-1/campaign.txt | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/npc/015-8-1/campaign.txt b/npc/015-8-1/campaign.txt index ae1ca0eaa..af4f01c22 100644 --- a/npc/015-8-1/campaign.txt +++ b/npc/015-8-1/campaign.txt @@ -8,14 +8,15 @@ // Not in instance, we don't care. if (instance_id() < 0) end; - + if (!.SAGRATHA) + dispbottom l("I cannot read the signs from this far away."); end; // There is no instance init OnBegin: .@m$=getmap(); .@n$=instance_npcname(.name$); - 'MAPID=getmap(); + .MAPID=getmap(); // 255 = PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_SITSTAND|PCBLOCK_IMMUNE|PCBLOCK_CHAT|PCBLOCK_MOVE setpcblock(255, true); @@ -27,13 +28,16 @@ OnBegin: unitstop(.SAGRATHA); unitstop(.BOSS); + sc_start(SC_STUN, 4500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .SAGRATHA); + sc_start(SC_STUN, 4500, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .BOSS); + // FIXME: Seems like this is an "unsafe command" in 4144's opinion // Prevent players from engaging Sagratha and allies - clientcommand "/addignoreattack Sagratha"; - clientcommand "/addignoreattack "+l(strmobinfo(1, Mouboo)); - clientcommand "/addignoreattack "+l(strmobinfo(1, ForestMushroom)); - clientcommand "/addignoreattack "+strmobinfo(1, Mouboo); - clientcommand "/addignoreattack "+strmobinfo(1, ForestMushroom); + clientcommand "addignoreattack Sagratha"; + clientcommand "addignoreattack "+l(strmobinfo(1, Mouboo)); + clientcommand "addignoreattack "+l(strmobinfo(1, ForestMushroom)); + clientcommand "addignoreattack "+strmobinfo(1, Mouboo); + clientcommand "addignoreattack "+strmobinfo(1, ForestMushroom); unittalk(.SAGRATHA, l("What are you doing here, @@!", get_race())); @@ -104,6 +108,7 @@ OnW01: .@n$=instance_npcname(.name$); unittalk(.BOSS, l("Kill 'em all!")); + unittalk(.SAGRATHA, l("It's an ambush!")); monster .@m$, 39, 39, strmobinfo(1, HoodedNinja), HoodedNinja, 1, .@n$+"::OnError"; monster .@m$, 60, 39, strmobinfo(1, HoodedNinja), HoodedNinja, 1, .@n$+"::OnError"; @@ -135,13 +140,25 @@ OnW03: monster .@m$, 49, 34, strmobinfo(1, Mouboo), Mouboo, 1, .@n$+"::OnError", Size_Medium, 2; monster .@m$, 47, 36, strmobinfo(1, Assassin), Assassin, 1, .@n$+"::OnError"; monster .@m$, 52, 36, strmobinfo(1, Assassin), Assassin, 1, .@n$+"::OnError"; + addtimer(20000, .@n$+"::OnW04"); + end; + +OnW04: + .@m$=getmap(); + .@n$=instance_npcname(.name$); + + unittalk(.SAGRATHA, l("It's far from over! You cannot defeat me!")); + + monster .@m$, 46, 59, strmobinfo(1, Wolvern), Wolvern, 1, .@n$+"::OnError", Size_Medium, 2; + monster .@m$, 44, 61, strmobinfo(1, ForestMushroom), ForestMushroom, 1, .@n$+"::OnError", Size_Medium, 2; + monster .@m$, 49, 61, strmobinfo(1, PoisonSpikyMushroom), PoisonSpikyMushroom, 1, .@n$+"::OnError", Size_Medium, 2; end; // Assassin, HoodedNinja, HoodedAssassin (boss) // Mouboo, ForestMushroom, Fluffy, Sagratha (boss) OnSagrathaDie: .@n$=instance_npcname(.name$); - maptimer('MAPID, 70, .@n$+"::OnSagrathaReallyDie"); + maptimer(.MAPID, 70, .@n$+"::OnSagrathaReallyDie"); end; OnSagrathaReallyDie: @@ -151,8 +168,9 @@ OnSagrathaReallyDie: deltimer(.@n$+"::OnW01"); deltimer(.@n$+"::OnW02"); deltimer(.@n$+"::OnW03"); + killmonster(.@m$, .@n$+"::OnError"); + mapannounce(.@m$, "##2"+l("You lose!"), 0); - npctalk "Defeat!"; dispbottom l("You failed to protect Sagratha..."); // and will need to start the quest again..."); setq1 HurnscaldQuest_Sagratha, 3; setq3 HurnscaldQuest_Sagratha, 0; @@ -161,7 +179,7 @@ OnSagrathaReallyDie: OnSagrathaWin: .@n$=instance_npcname(.name$); - maptimer('MAPID, 70, .@n$+"::OnSagrathaReallyWin"); + maptimer(.MAPID, 70, .@n$+"::OnSagrathaReallyWin"); end; OnSagrathaReallyWin: |