Fixed bugreport:5586 SC_CAMOUFLAGE can be removed by using RA_CAMOUFLAGE again, also portals won't warp players under this status.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15902 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
5c60eb69e5
commit
02adb19ade
@ -896,7 +896,7 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y)
|
|||||||
}
|
}
|
||||||
switch(map[m].npc[i]->subtype) {
|
switch(map[m].npc[i]->subtype) {
|
||||||
case WARP:
|
case WARP:
|
||||||
if( pc_ishiding(sd) )
|
if( pc_ishiding(sd) || (sd->sc.count && sd->sc.data[SC_CAMOUFLAGE]) )
|
||||||
break; // hidden chars cannot use warps
|
break; // hidden chars cannot use warps
|
||||||
pc_setpos(sd,map[m].npc[i]->u.warp.mapindex,map[m].npc[i]->u.warp.x,map[m].npc[i]->u.warp.y,CLR_OUTSIGHT);
|
pc_setpos(sd,map[m].npc[i]->u.warp.mapindex,map[m].npc[i]->u.warp.x,map[m].npc[i]->u.warp.y,CLR_OUTSIGHT);
|
||||||
break;
|
break;
|
||||||
|
@ -8708,6 +8708,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|||||||
case SC_CLOAKINGEXCEED:
|
case SC_CLOAKINGEXCEED:
|
||||||
case SC__INVISIBILITY:
|
case SC__INVISIBILITY:
|
||||||
sc->option &= ~OPTION_CLOAK;
|
sc->option &= ~OPTION_CLOAK;
|
||||||
|
case SC_CAMOUFLAGE:
|
||||||
opt_flag|= 2;
|
opt_flag|= 2;
|
||||||
break;
|
break;
|
||||||
case SC_CHASEWALK:
|
case SC_CHASEWALK:
|
||||||
|
@ -1290,7 +1290,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh
|
|||||||
} else if( sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4) && skill_num != GC_CLOAKINGEXCEED ) {
|
} else if( sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4) && skill_num != GC_CLOAKINGEXCEED ) {
|
||||||
status_change_end(src,SC_CLOAKINGEXCEED, INVALID_TIMER);
|
status_change_end(src,SC_CLOAKINGEXCEED, INVALID_TIMER);
|
||||||
if (!src->prev) return 0;
|
if (!src->prev) return 0;
|
||||||
} else
|
} else if( sc->data[SC_CAMOUFLAGE] && skill_num != RA_CAMOUFLAGE )
|
||||||
status_change_end(src,SC_CAMOUFLAGE,-1);
|
status_change_end(src,SC_CAMOUFLAGE,-1);
|
||||||
|
|
||||||
if( sc->data[SC_CURSEDCIRCLE_ATKER] ) {
|
if( sc->data[SC_CURSEDCIRCLE_ATKER] ) {
|
||||||
@ -1418,7 +1418,7 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh
|
|||||||
} else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4)) {
|
} else if (sc->data[SC_CLOAKINGEXCEED] && !(sc->data[SC_CLOAKINGEXCEED]->val4&4)) {
|
||||||
status_change_end(src, SC_CLOAKINGEXCEED, INVALID_TIMER);
|
status_change_end(src, SC_CLOAKINGEXCEED, INVALID_TIMER);
|
||||||
if (!src->prev) return 0;
|
if (!src->prev) return 0;
|
||||||
} else
|
} else if( sc->data[SC_CAMOUFLAGE] && skill_num != RA_CAMOUFLAGE )
|
||||||
status_change_end(src,SC_CAMOUFLAGE,-1);
|
status_change_end(src,SC_CAMOUFLAGE,-1);
|
||||||
|
|
||||||
if( sc->data[SC_CURSEDCIRCLE_ATKER] ) {
|
if( sc->data[SC_CURSEDCIRCLE_ATKER] ) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user