Fixed SC_KEEPING and SC_BARRIER exploit after classchange (#4486)
* Fixed monsters affected by SC_KEEPING and SC_BARRIER not moving or attacking after classchange * Thanks to @aleos89
This commit is contained in:
@@ -6752,6 +6752,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
case NPC_DEFENDER:
|
||||
case NPC_MAGICMIRROR:
|
||||
case ST_PRESERVE:
|
||||
case NPC_KEEPING:
|
||||
case NPC_BARRIER:
|
||||
case NPC_INVINCIBLE:
|
||||
case NPC_INVINCIBLEOFF:
|
||||
case MER_INVINCIBLEOFF2:
|
||||
@@ -8222,21 +8224,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
if (md) mob_unlocktarget(md, tick);
|
||||
break;
|
||||
|
||||
case NPC_KEEPING:
|
||||
case NPC_BARRIER:
|
||||
{
|
||||
int skill_time = skill_get_time(skill_id,skill_lv);
|
||||
struct unit_data *ud = unit_bl2ud(bl);
|
||||
if (clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
||||
sc_start(src,bl,type,100,skill_lv,skill_time))
|
||||
&& ud) { //Disable attacking/acting/moving for skill's duration.
|
||||
ud->attackabletime =
|
||||
ud->canact_tick =
|
||||
ud->canmove_tick = tick + skill_time;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case NPC_REBIRTH:
|
||||
if( md && md->state.rebirth )
|
||||
break; // only works once
|
||||
|
||||
Reference in New Issue
Block a user