Updated get_bosstype and UMOB_MODE (#8439)
* Updated mob_data::get_bosstype() to use current mob data instead of db data to fix issue when the mode is changed via the setunitdata script command. * Added unit_refresh in UMOB_MODE to refresh the mini icon near the monster indicating the monster type.
This commit is contained in:
parent
44fbe3940d
commit
ce5de23874
@ -377,8 +377,10 @@ e_mob_bosstype s_mob_db::get_bosstype(){
|
||||
}
|
||||
|
||||
e_mob_bosstype mob_data::get_bosstype(){
|
||||
if( this->db != nullptr ){
|
||||
return this->db->get_bosstype();
|
||||
if( status_has_mode( &this->status, MD_MVP ) ){
|
||||
return BOSSTYPE_MVP;
|
||||
}else if( this->status.class_ == CLASS_BOSS ){
|
||||
return BOSSTYPE_MINIBOSS;
|
||||
}else{
|
||||
return BOSSTYPE_NONE;
|
||||
}
|
||||
|
@ -19264,7 +19264,12 @@ BUILDIN_FUNC(setunitdata)
|
||||
case UMOB_X: if (!unit_walktoxy(bl, (short)value, md->bl.y, 2)) unit_movepos(bl, (short)value, md->bl.y, 0, 0); break;
|
||||
case UMOB_Y: if (!unit_walktoxy(bl, md->bl.x, (short)value, 2)) unit_movepos(bl, md->bl.x, (short)value, 0, 0); break;
|
||||
case UMOB_SPEED: md->base_status->speed = (unsigned short)value; status_calc_misc(bl, &md->status, md->level); calc_status = true; break;
|
||||
case UMOB_MODE: md->base_status->mode = (enum e_mode)value; calc_status = true; break;
|
||||
case UMOB_MODE:
|
||||
md->base_status->mode = (enum e_mode)value;
|
||||
// Mob mode must be updated before calling unit_refresh
|
||||
status_calc_bl_(&md->bl, status_db.getSCB_BATTLE());
|
||||
unit_refresh(bl);
|
||||
break;
|
||||
case UMOB_AI: md->special_state.ai = (enum mob_ai)value; break;
|
||||
case UMOB_SCOPTION: md->sc.option = (unsigned short)value; break;
|
||||
case UMOB_SEX: md->vd->sex = (char)value; unit_refresh(bl); break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user