diff options
-rw-r--r-- | db/re/mob_db.conf | 2 | ||||
-rw-r--r-- | db/re/mob_skill_db.conf | 12 | ||||
-rw-r--r-- | npc/015-8-1/campaign.txt | 38 |
3 files changed, 35 insertions, 17 deletions
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf index 4a3e6255e..a0dcf3162 100644 --- a/db/re/mob_db.conf +++ b/db/re/mob_db.conf @@ -8610,7 +8610,7 @@ mob_db: ( SpriteName: "Sagratha" Name: "Sagratha" Lv: 50 - Hp: 6309 + Hp: 21400 Sp: 0 Exp: 404 JExp: 14 diff --git a/db/re/mob_skill_db.conf b/db/re/mob_skill_db.conf index 915a7f11b..acf4fabc9 100644 --- a/db/re/mob_skill_db.conf +++ b/db/re/mob_skill_db.conf @@ -1307,17 +1307,17 @@ SKILL_COND2 = { SkillLevel: 1 Rate: 10000 CastTime: 100 - Delay: 35000 + Delay: 170000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1223 } NPC_SUMMONMONSTER: { SkillState: "MSS_ANYTARGET" - SkillLevel: 3 + SkillLevel: 2 Rate: 10000 CastTime: 100 - Delay: 10000 + Delay: 60000 SkillTarget: "MST_SELF" CastCondition: "MSC_ALWAYS" val0: 1062 @@ -1359,7 +1359,7 @@ SKILL_COND2 = { Sagratha: { NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" - SkillLevel: 3 + SkillLevel: 2 Rate: 9000 CastTime: 2000 Delay: 60000 @@ -1369,7 +1369,7 @@ SKILL_COND2 = { } NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" - SkillLevel: 2 + SkillLevel: 1 Rate: 9000 CastTime: 2000 Delay: 60000 @@ -1379,7 +1379,7 @@ SKILL_COND2 = { } NPC_SUMMONSLAVE: { SkillState: "MSS_ANYTARGET" - SkillLevel: 4 + SkillLevel: 3 Rate: 9000 CastTime: 2000 Delay: 60000 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: |