diff options
-rw-r--r-- | db/re/item_db.conf | 2 | ||||
-rw-r--r-- | maps/re/042-10.mcache | bin | 1401 -> 1397 bytes | |||
-rw-r--r-- | npc/042-5/ctrl.txt | 59 | ||||
-rw-r--r-- | npc/042-6/ctrl.txt | 1 |
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 Binary files differindex 94de46a4e..d737f6b8c 100644 --- a/maps/re/042-10.mcache +++ b/maps/re/042-10.mcache 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 |