Add master id check in setunitdata script command. Fixes #887

This commit is contained in:
Jittapan Pluemsumran 2016-01-08 16:57:22 +07:00
parent 315056b02e
commit f2bad5e832

View File

@ -17172,7 +17172,17 @@ BUILDIN_FUNC(setunitdata)
case UMOB_INT: md->status.int_ = (unsigned short)value; status_calc_misc(bl, &md->status, md->level); break;
case UMOB_DEX: md->status.dex = (unsigned short)value; status_calc_misc(bl, &md->status, md->level); break;
case UMOB_LUK: md->status.luk = (unsigned short)value; status_calc_misc(bl, &md->status, md->level); break;
case UMOB_SLAVECPYMSTRMD: md->state.copy_master_mode = value > 0 ? 1 : 0; if (value > 0) { TBL_MOB *md2 = map_id2md(md->master_id); md->status.mode = md2->status.mode; } break;
case UMOB_SLAVECPYMSTRMD:
md->state.copy_master_mode = value > 0 ? 1 : 0;
if (value > 0) {
if (!md->master_id) {
ShowWarning("buildin_setunitdata: Trying to set UMOB_SLAVECPYMSTRMD on mob without master!\n");
break;
}
TBL_MOB *md2 = map_id2md(md->master_id);
md->status.mode = md2->status.mode;
}
break;
case UMOB_DMGIMMUNE: md->ud.immune_attack = (bool)value > 0 ? 1 : 0; break;
case UMOB_ATKRANGE: md->status.rhw.range = (unsigned short)value; break;
case UMOB_ATKMIN: md->status.rhw.atk = (unsigned short)value; break;