Fixed ancient MvP dmotion/walkdelay/hitlock exploit, bugreport:1851
-- The fix on this commit works thanks to a previous commit i did weeks ago to fix other mob walk delay bug git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15330 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
6e0b7ee4c0
commit
ea2417cc0f
@ -4563,8 +4563,10 @@ static unsigned short status_calc_dmotion(struct block_list *bl, struct status_c
|
|||||||
{
|
{
|
||||||
if( !sc || !sc->count || map_flag_gvg(bl->m) || map[bl->m].flag.battleground )
|
if( !sc || !sc->count || map_flag_gvg(bl->m) || map[bl->m].flag.battleground )
|
||||||
return cap_value(dmotion,0,USHRT_MAX);
|
return cap_value(dmotion,0,USHRT_MAX);
|
||||||
|
/**
|
||||||
if( sc->data[SC_ENDURE] )
|
* It has been confirmed on official servers that MvP mobs have no dmotion even without endure
|
||||||
|
**/
|
||||||
|
if( sc->data[SC_ENDURE] || ( bl->type == BL_MOB && (((TBL_MOB*)bl)->status.mode&MD_BOSS) ) )
|
||||||
return 0;
|
return 0;
|
||||||
if( sc->data[SC_CONCENTRATION] )
|
if( sc->data[SC_CONCENTRATION] )
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -962,6 +962,12 @@ int unit_set_walkdelay(struct block_list *bl, unsigned int tick, int delay, int
|
|||||||
struct unit_data *ud = unit_bl2ud(bl);
|
struct unit_data *ud = unit_bl2ud(bl);
|
||||||
if (delay <= 0 || !ud) return 0;
|
if (delay <= 0 || !ud) return 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MvP mobs have no walk delay
|
||||||
|
**/
|
||||||
|
if( bl->type == BL_MOB && (((TBL_MOB*)bl)->status.mode&MD_BOSS) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (type) {
|
if (type) {
|
||||||
if (DIFF_TICK(ud->canmove_tick, tick+delay) > 0)
|
if (DIFF_TICK(ud->canmove_tick, tick+delay) > 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user