summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/re/item_db.conf2
-rw-r--r--maps/re/042-10.mcachebin1401 -> 1397 bytes
-rw-r--r--npc/042-5/ctrl.txt59
-rw-r--r--npc/042-6/ctrl.txt1
4 files changed, 50 insertions, 12 deletions
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 1ff1f585c..a61f704c1 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -15659,7 +15659,7 @@ item_db: (
}
Script: <"
mercenary_create 1211, 3600000;
- if (!rand2(5))
+ if (rand(100) % 5 == 1)
delitem 7594, 1;
">
},
diff --git a/maps/re/042-10.mcache b/maps/re/042-10.mcache
index 94de46a4e..d737f6b8c 100644
--- a/maps/re/042-10.mcache
+++ b/maps/re/042-10.mcache
Binary files differ
diff --git a/npc/042-5/ctrl.txt b/npc/042-5/ctrl.txt
index f334dfba6..7f3f88e5b 100644
--- a/npc/042-5/ctrl.txt
+++ b/npc/042-5/ctrl.txt
@@ -24,23 +24,23 @@ OnInstanceInit:
}
debugmes "Spawning monsters for guild %d", .@g;
.@mx=getguildavg(.@g);
- monster0425(1, 20, 20, 115, 100, .@mx);
+ monster0425(1, 20, 20, 80, 100, .@mx);
monster0425(4, 20, 51, 51, 71, .@mx);
- monster0425(5, 85, 56, 115, 100, .@mx);
- monster0425(2, 79, 40, 97, 52, .@mx);
- monster0425(5, 51, 20, 80, 50, .@mx);
+ //monster0425(5, 75, 56, 80, 100, .@mx);
+ //monster0425(2, 75, 40, 80, 52, .@mx);
+ //monster0425(5, 51, 20, 80, 50, .@mx);
// Neutral monsters
- areamonster(.map$, 20, 20, 115, 100, strmobinfo(1, Blub), Blub, 5);
- areamonster(.map$, 20, 20, 115, 100, strmobinfo(1, ManaGhost), ManaGhost, max(1, .@mx/10));
+ areamonster(.map$, 20, 20, 80, 100, strmobinfo(1, Blub), Blub, 5);
+ areamonster(.map$, 20, 20, 80, 100, strmobinfo(1, ManaGhost), ManaGhost, max(1, .@mx/10));
// Bonus monsters
if (!rand2(2))
- areamonster(.map$, 20, 20, 115, 100, strmobinfo(1, MagicBif), MagicBif, 1);
+ areamonster(.map$, 20, 20, 80, 100, strmobinfo(1, MagicBif), MagicBif, 1);
if (!rand2(2))
- areamonster(.map$, 20, 20, 115, 100, strmobinfo(1, SilverChest), SilverChest, 1);
+ areamonster(.map$, 20, 20, 80, 100, strmobinfo(1, SilverChest), SilverChest, 1);
if (!rand2(2))
- areamonster(.map$, 20, 20, 115, 100, strmobinfo(1, BronzeChest), BronzeChest, 1);
+ areamonster(.map$, 20, 20, 80, 100, strmobinfo(1, BronzeChest), BronzeChest, 1);
// Next time I promise a Whirly Bird >.>
end;
@@ -64,7 +64,7 @@ OnRespawn:
debugmes "[ERROR] [KAMELOT] Unable to respawn for Kamelot %s", .map$;
.@g=0;
}
- monster0425(1, 20, 20, 115, 100, $KAMELOT_MX[.@g]);
+ monster0425(1, 20, 20, 80, 120, $KAMELOT_MX[.@g]);
end;
function monster0425 {
@@ -181,7 +181,44 @@ function script KamelotTreasure {
return;
}
-
+/////////////////////////////////////////////////////////////////////////////
+// KamelotBoss(Map, x, y, power, NPC)
+function script KamelotBoss {
+ .@label$=instance_npcname(getarg(4))+"::OnKillMob";
+ .@gcount=1;
+ .@x1=getarg(1);
+ .@y1=getarg(2);
+ .@avg=getarg(3);
+ .@m$=instance_mapname(getarg(0));
+ //debugmes "Total %d, map %s (power %d)", .@gcount, .@m$, .@avg;
+ .@mobId=any(CursedSoldier, CursedArcher); // 50-50 ratio
+ .@name$=any("Lancelot", "Galahard");
+ .@mob=monster(.@m$, .@x1, .@y1, .@name$, .@mobId, 1, .@label$);
+ // Reconfigure the monster
+ setunitdata(.@mob, UDT_LEVEL, .@avg+20);
+ setunitdata(.@mob, UDT_STR, 1+.@avg*7/10);
+ setunitdata(.@mob, UDT_AGI, 1+.@avg*5/10);
+ setunitdata(.@mob, UDT_VIT, 1+.@avg*7/10);
+ setunitdata(.@mob, UDT_INT, 1+.@avg*6/10);
+ setunitdata(.@mob, UDT_DEX, 1+.@avg*6/10);
+ setunitdata(.@mob, UDT_LUK, 1+.@avg*7/10);
+ setunitdata(.@mob, UDT_ADELAY, 1072);
+ setunitdata(.@mob, UDT_ATKRANGE, (.@mobId == CursedArcher ? any(7,8) : any(2,2,3)));
+ // Battle Status
+ setunitdata(.@mob, UDT_MAXHP, .@avg*450);
+ setunitdata(.@mob, UDT_HP, .@avg*450);
+ setunitdata(.@mob, UDT_ATKMIN, .@avg*60/10);
+ setunitdata(.@mob, UDT_ATKMAX, .@avg*70/10);
+ setunitdata(.@mob, UDT_DEF, 1+.@avg*14/10);
+ setunitdata(.@mob, UDT_MDEF, 1+.@avg*9/10);
+ setunitdata(.@mob, UDT_HIT, .@avg*16); // Advised: x3
+ setunitdata(.@mob, UDT_FLEE, .@avg*45/10); // Advised: x4
+ // Critical calculation
+ .@min=30;
+ .@max=max(.@min, min(70, .@avg/2));
+ setunitdata(.@mob, UDT_CRIT, rand2(.@min, .@max));
+ return;
+}
diff --git a/npc/042-6/ctrl.txt b/npc/042-6/ctrl.txt
index 99ce0732b..9df9651f3 100644
--- a/npc/042-6/ctrl.txt
+++ b/npc/042-6/ctrl.txt
@@ -35,6 +35,7 @@ OnInstanceInit:
monster0426(5, 85, 56, 115, 100, .@mx);
monster0426(2, 79, 40, 97, 52, .@mx);
monster0426(5, 51, 20, 80, 50, .@mx);
+ KamelotBoss("042-6", 74, 80, .@mx+1, .name$);
// Boss monster
// TODO