diff --git a/src/map/status.cpp b/src/map/status.cpp index eda439bb77..9148d70d4b 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -1922,13 +1922,18 @@ int status_revive(struct block_list *bl, unsigned char per_hp, unsigned char per */ bool status_check_skilluse(struct block_list *src, struct block_list *target, uint16 skill_id, int flag) { struct status_data *status; - status_change *sc = NULL, *tsc; int hide_flag; - status = src ? status_get_status_data(src) : &dummy_status; + if (src) { + if (src->type != BL_PC && status_isdead(src)) + return false; + status = status_get_status_data(src); + }else{ + status = &dummy_status; + } - if (src && src->type != BL_PC && status_isdead(src)) - return false; + status_change *sc = status_get_sc(src); + status_change *tsc = status_get_sc(target); if (!skill_id) { // Normal attack checks. if (sc && sc->cant.attack) @@ -1945,12 +1950,8 @@ bool status_check_skilluse(struct block_list *src, struct block_list *target, ui switch( skill_id ) { #ifndef RENEWAL case PA_PRESSURE: - if( flag && target ) { - // Gloria Avoids pretty much everything.... - tsc = status_get_sc(target); - if(tsc && tsc->option&OPTION_HIDE) - return false; - } + if( flag && tsc && tsc->option&OPTION_HIDE) + return false; // Gloria Avoids pretty much everything.... break; #endif case GN_WALLOFTHORN: @@ -1973,9 +1974,6 @@ bool status_check_skilluse(struct block_list *src, struct block_list *target, ui break; } - if ( src ) - sc = status_get_sc(src); - if( sc && sc->count ) { if (sc->getSCE(SC_ALL_RIDING)) return false; //You can't use skills while in the new mounts (The client doesn't let you, this is to make cheat-safe) @@ -2094,11 +2092,9 @@ bool status_check_skilluse(struct block_list *src, struct block_list *target, ui } } - if (target == NULL || target == src) // No further checking needed. + if (target == nullptr || target == src) // No further checking needed. return true; - tsc = status_get_sc(target); - if (tsc && tsc->count) { /** * Attacks in invincible are capped to 1 damage and handled in battle.cpp.