summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/map/skill.c14
-rw-r--r--src/map/status.c1
3 files changed, 9 insertions, 10 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 22bdb60fc..3c4fdec04 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/06/01
+ * NPC_TRANSFORMATION/NPC_METAMORPHOSIS will now preserve the original mob
+ without removing it when the skill level is greater than one. [Skotlex]
+ * Added SC_DANCING declaration in the Status Change tables to signal it
+ modifies Walk speed. [Skotlex]
* Fixed pc_damage setting your canlog_tick even if the damage has no source
(eg: poison, berserk) [Skotlex]
* Berserk's aspd bonus now stacks with other aspd bonuses, but is still
diff --git a/src/map/skill.c b/src/map/skill.c
index 9fea5bbee..0f849d5ea 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4875,16 +4875,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
case NPC_TRANSFORMATION:
case NPC_METAMORPHOSIS:
if(md && md->skillidx >= 0) {
- if (skilllv > 1)
- { //Multiply skilllv times, the original instance must be silently killed. [Skotlex]
- mob_summonslave(md,md->db->skill[md->skillidx].val,skilllv,skillid);
- unit_remove_map(src,1);
- }
- else
- { //Transform into another class.
- int class_ = mob_random_class (md->db->skill[md->skillidx].val,0);
- if (class_) mob_class_change(md, class_);
- }
+ int class_ = mob_random_class (md->db->skill[md->skillidx].val,0);
+ if (skilllv > 1) //Multiply the rest of mobs. [Skotlex]
+ mob_summonslave(md,md->db->skill[md->skillidx].val,skilllv-1,skillid);
+ if (class_) mob_class_change(md, class_);
}
break;
diff --git a/src/map/status.c b/src/map/status.c
index 4bb09130d..89b1f0592 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -235,6 +235,7 @@ void initChangeTables(void) {
add_sc(SA_LANDPROTECTOR, SC_LANDPROTECTOR);
add_sc(SA_REVERSEORCISH, SC_ORCISH);
add_sc(SA_COMA, SC_COMA);
+ set_sc(BD_ENCORE, SC_DANCING, SI_BLANK, SCB_SPEED);
add_sc(BD_RICHMANKIM, SC_RICHMANKIM);
set_sc(BD_ETERNALCHAOS, SC_ETERNALCHAOS, SI_BLANK, SCB_DEF2);
set_sc(BD_DRUMBATTLEFIELD, SC_DRUMBATTLE, SI_BLANK, SCB_WATK|SCB_DEF);