summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/042-10/ctrl.txt3
-rw-r--r--npc/042-11/boss.txt18
2 files changed, 13 insertions, 8 deletions
diff --git a/npc/042-10/ctrl.txt b/npc/042-10/ctrl.txt
index 51ca64aa5..3482b6f0f 100644
--- a/npc/042-10/ctrl.txt
+++ b/npc/042-10/ctrl.txt
@@ -30,8 +30,7 @@ OnTouch:
if (.@g < 1) percentheal -100, -100;
if (!($KAMELOT_QUEST[.@g] & 8) || !($KAMELOT_QUEST[.@g] & 16) || !($KAMELOT_QUEST[.@g] & 32)) goto L_NoAccess;
warp "042-11@"+.@g, 41, 56;
- addtimer 5000, "#KamelotBoss::OnDialog";
- addtimer 20000, "#KamelotBoss::OnBegin"; // FIXME?
+ addtimer 3000, "#KamelotBoss::OnDialog";
end;
L_NoAccess:
diff --git a/npc/042-11/boss.txt b/npc/042-11/boss.txt
index 42d5bbd3c..a9938b8ba 100644
--- a/npc/042-11/boss.txt
+++ b/npc/042-11/boss.txt
@@ -46,19 +46,22 @@ L_NoAccess:
OnDialog:
announce "??? : "+l("Who sent you here? Merlin?"), bc_self|bc_pc;
- addtimer 5000, "#KamelotBoss::OnDialog2";
+ addtimer 8000, "#KamelotBoss::OnDialog2";
end;
OnDialog2:
+ .@g=getcharid(2);
announce "??? : "+l("It matters not, because soon, all of you will be..."), bc_self|bc_pc;
- addtimer 5000, "#KamelotBoss::OnBegin"; // FIXME?
+ addtimer 7000, instance_npcname("#KamelotBoss", $@KAMELOT_ID[.@g])+"::OnBegin";
end;
// Spawns Terogan
OnBegin:
.@g=getcharid(2);
- .@m$=getmap();
+ .@m$=instance_mapname("042-11");
.@avg=$KAMELOT_MX[.@g]+10;
+ .@n$=instance_npcname("#KamelotBoss", $@KAMELOT_ID[.@g]);
+ debugmes "GID: %d Map: %s Power: %d Label: %s", .@g, .@m$, .@avg, .@n$;
// Dialog
announce l("General Terogan : DEAD! Muahahahaha!"), bc_self|bc_pc;
@@ -75,6 +78,7 @@ OnBegin:
// Bring Terogan into existence
.@mob=monster(.@m$, 40, 30, strmobinfo(1, GeneralTerogan), GeneralTerogan, 1, .@n$+"::OnKillBoss");
setd("$@GTEMP_"+.@m$, .@mob);
+ setd("$@GTEMP_HP_"+.@m$, 20);
// Reconfigure the monster
setunitdata(.@mob, UDT_LEVEL, .@avg);
@@ -97,7 +101,7 @@ OnBegin:
setunitdata(.@mob, UDT_FLEE, .@avg*5); // Advised: x4
setunitdata(.@mob, UDT_CRIT, 120);
// Initial batch of reinforcements
- KamelotCaveSpawn(6, 30, 20, 50, 40, .@avg, .@m$);
+ KamelotCaveSpawn(6, 30, 20, 50, 40, .@avg, "042-11");
// Save info again
setd("$@GTEMP_"+.@m$, .@mob);
@@ -131,7 +135,7 @@ OnTimer5000:
mapannounce .@m$, "General Terogan : "+any("Charge!", "To the Abyss with you already!", "Kill them already!", "More of them might be coming!", "Minions, ATTACK!", "Muahahaha, Pathetic!"), 0;
// Unlike Krukan, spawn according to HP loss (no use fast killing)
- KamelotCaveSpawn(.@gcount*max(1, .@hplos), 20, 20, 57, 40, .@avg, .@m$);
+ KamelotCaveSpawn(.@gcount*max(1, .@hplos), 20, 20, 57, 40, .@avg, "042-11");
}
// TODO: Special skills
@@ -151,6 +155,7 @@ OnKillMob:
// Boss rewards
OnKillBoss:
+ stopnpctimer;
if (playerattached()) {
// Setup
.@g=getcharid(2);
@@ -176,6 +181,7 @@ OnKillBoss:
// Get rid of temporary variables
setd("$@GTEMP_"+.@m$, 0);
setd("$@GTEMP_HP_"+.@m$, 0);
+ killmonsterall(.@m$);
// Guild Reward for completing this stage
.@ggp=2000+$KAMELOT_MX[.@g]*100;
@@ -187,7 +193,7 @@ OnKillBoss:
mapannounce .@m$, .@hero$+" has defeated the evil in Kamelot!", 0;
// Spawn GMGiftBox upon end
- .@gf=max(30, $KAMELOT_MX[.@g]/5);
+ .@gf=min(30, $KAMELOT_MX[.@g]/5);
areamonster(.@m$, 20, 20, 57, 40, strmobinfo(1, GMGiftBox), GMGiftBox, .@gf);
// Spawn Treasure Chests upon end