diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-05 23:01:06 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-06-05 23:01:06 +0000 |
commit | bc4983ea0bac63948d231446825ca4c00c3eeeee (patch) | |
tree | 83e9d2289a286c5fe863354c5f1b5158903042bd /src | |
parent | b3391c0862bcd0416145f24bfa5687d950eb9bea (diff) | |
download | hercules-bc4983ea0bac63948d231446825ca4c00c3eeeee.tar.gz hercules-bc4983ea0bac63948d231446825ca4c00c3eeeee.tar.bz2 hercules-bc4983ea0bac63948d231446825ca4c00c3eeeee.tar.xz hercules-bc4983ea0bac63948d231446825ca4c00c3eeeee.zip |
- Fixed a crash when using SL_SMA and the "combo" ain't ready.
- Hopefully fixed changing a mob's class causing them to get all sort of stat bonuses due to the mobs-level-up setting.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6994 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/mob.c | 3 | ||||
-rw-r--r-- | src/map/skill.c | 2 | ||||
-rw-r--r-- | src/map/status.c | 3 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index 8968136dd..5dd5008ff 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2241,6 +2241,7 @@ int mob_class_change (struct mob_data *md, int class_) hp_rate = md->status.hp*100/md->status.max_hp; md->db = mob_db(class_); + md->level = md->db->lv; //Also reset their level. if (battle_config.override_mob_names==1) memcpy(md->name,md->db->name,NAME_LENGTH-1); @@ -2252,7 +2253,7 @@ int mob_class_change (struct mob_data *md, int class_) unit_skillcastcancel(&md->bl, 0); status_set_viewdata(&md->bl, class_); clif_mob_class_change(md,class_); - status_calc_mob(md, 1); + status_calc_mob(md, 3); if (battle_config.monster_class_change_full_recover) { memset(md->dmglog, 0, sizeof(md->dmglog)); diff --git a/src/map/skill.c b/src/map/skill.c index 2a0f04527..7a667bf22 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7790,7 +7790,7 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ break; case SL_SMA: if(type) break; //Only do the combo check when the target is selected (type == 0) - if(!sd || sc->data[SC_SMA].timer == -1) + if(!sc || sc->data[SC_SMA].timer == -1) return 0; break; diff --git a/src/map/status.c b/src/map/status.c index 332fddc59..ec809ec60 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1006,6 +1006,7 @@ void status_calc_misc(struct status_data *status, int level) //Skotlex: Calculates the initial status for the given mob //first will only be false when the mob leveled up or got a GuardUp level. +//first&2: Class-change invoked. int status_calc_mob(struct mob_data* md, int first) { struct status_data *status; @@ -1014,7 +1015,7 @@ int status_calc_mob(struct mob_data* md, int first) if(first) { //Set basic level on respawn. - if (md->spawn) + if (md->spawn && !(flag&2)) md->level = md->spawn->level; else md->level = md->db->lv; // [Valaris] |