summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-09-12 18:44:07 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-09-12 18:44:07 +0000
commite44eb201eb39b0d9986273c97715060ac668a7d3 (patch)
tree39ca2386cdfd42337c0af8f06f65a1f819aefd2d /src/map
parent59e595f4fb20c48b44f1e254a3f665d21ebcc945 (diff)
downloadhercules-e44eb201eb39b0d9986273c97715060ac668a7d3.tar.gz
hercules-e44eb201eb39b0d9986273c97715060ac668a7d3.tar.bz2
hercules-e44eb201eb39b0d9986273c97715060ac668a7d3.tar.xz
hercules-e44eb201eb39b0d9986273c97715060ac668a7d3.zip
- Moved the morph restrictions from skill_additional_effect to mob_class_change, so that SA_MONOCELL will not convert clones, emperium, or treasure boxes.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8724 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/mob.c10
-rw-r--r--src/map/skill.c6
2 files changed, 12 insertions, 4 deletions
diff --git a/src/map/mob.c b/src/map/mob.c
index 67c44574d..ca12ba0eb 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2275,6 +2275,16 @@ int mob_class_change (struct mob_data *md, int class_)
if (md->bl.prev == NULL)
return 0;
+ //Disable class changing for some targets...
+ if (md->guardian_data)
+ return 0; //Guardians/Emperium
+
+ if (md->class_ >= 1324 && md->class_ <= 1363)
+ return 0; //Treasure Boxes
+
+ if (mob_is_clone(md->class_))
+ return 0; //Clones
+
hp_rate = md->status.hp*100/md->status.max_hp;
md->db = mob_db(class_);
if (battle_config.override_mob_names==1)
diff --git a/src/map/skill.c b/src/map/skill.c
index 52167dcfc..83954c9a2 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1438,10 +1438,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
//Polymorph
if(sd && sd->classchange && attack_type&BF_WEAPON &&
- dstmd && !(tstatus->mode&MD_BOSS) && !dstmd->guardian_data &&
- (dstmd->class_ < 1324 || dstmd->class_ > 1363) && //Treasure boxes
- !mob_is_clone(dstmd->class_) &&
- (rand()%10000 < sd->classchange))
+ dstmd && !(tstatus->mode&MD_BOSS) &&
+ (rand()%10000 < sd->classchange))
{
struct mob_db *mob;
int class_;