summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/mob_db.conf2
-rw-r--r--db/re/mob_skill_db.conf12
-rw-r--r--npc/015-8-1/campaign.txt38
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: