Issue Information
-
#008655
-
0 - None Assigned
-
New
Issue Confirmations
-
Yes (0)No (0)
Manhole is bug.
in iRO you can't use Fullstrip and any masquerade skill except shadow form when enemy is in manhole status.
but in Hercules you can use Ful strip and any skill when the enemy is in manhole status.
in iRO you can't use Fullstrip and any masquerade skill except shadow form when enemy is in manhole status.
but in Hercules you can use Ful strip and any skill when the enemy is in manhole status.
Last time I checked, you could also manhole barricades and guardian stones.
So another bug in manhole found.
Also, you still can chain manhole targets (spamming it on the cell near the trapped target). Is this also broken on rA? I compared code and there's nothing different.
You can use any debuff on the target even though the code is supposed to only allow Shadow Form.
You can use any debuff on the target even though the code is supposed to only allow Shadow Form.
if( sc->data[SC__MANHOLE] || ((tsc = status->get_sc(target)) && tsc->data[SC__MANHOLE]) ) { switch(skill_id) {//##TODO## make this a flag in skill_db? // Skills that can be used even under Man Hole effects. case SC_SHADOWFORM: break; default: return 0;
Edited by Anisotropic Defixation, 07 May 2015 - 08:22 AM.
I managed to fix most of it.
To block all skills other than Shadow Form, in status.c find
I have no idea about making it not chainable though, can anyone help?
To block all skills other than Shadow Form, in status.c find
//Skill blocking. if ( (sc->data[SC_VOLCANO] && skill_id == WZ_ICEWALL) || (sc->data[SC_ROKISWEIL] && skill_id != BD_ADAPTATION) || (sc->data[SC_HERMODE] && skill->get_inf(skill_id) & INF_SUPPORT_SKILL) || (sc->data[SC_NOCHAT] && sc->data[SC_NOCHAT]->val1&MANNER_NOSKILL) ) return 0; if( sc->data[SC__MANHOLE] || ((tsc = status->get_sc(target)) && tsc->data[SC__MANHOLE]) ) { switch(skill_id) {//##TODO## make this a flag in skill_db? // Skills that can be used even under Man Hole effects. case SC_SHADOWFORM: break; default: return 0; } } } }replace with:
//Skill blocking. if ( (sc->data[SC_VOLCANO] && skill_id == WZ_ICEWALL) || (sc->data[SC_ROKISWEIL] && skill_id != BD_ADAPTATION) || (sc->data[SC_HERMODE] && skill->get_inf(skill_id) & INF_SUPPORT_SKILL) || (sc->data[SC_NOCHAT] && sc->data[SC_NOCHAT]->val1&MANNER_NOSKILL) || (sc->data[SC__MANHOLE] || ((tsc = status->get_sc(target)) && tsc->data[SC__MANHOLE]) && skill_id != SC_SHADOWFORM) ) return 0; } }To imitate the "miss" attacks, find:
if(tsc && tsc->count) { /* attacks in invincible are capped to 1 damage and handled in batte.c; allow spell break and eske for sealed shrine GDB when in INVINCIBLE state. */ if( tsc->data[SC_INVINCIBLE] && !tsc->data[SC_INVINCIBLEOFF] && skill_id && !(skill_id&(SA_SPELLBREAKER|SL_SKE)) ) return 0; if(!skill_id && tsc->data[SC_TRICKDEAD]) return 0; if((skill_id == WZ_STORMGUST || skill_id == WZ_FROSTNOVA || skill_id == NJ_HYOUSYOURAKU) && tsc->data[SC_FREEZE]) return 0; if(skill_id == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE))) return 0; if( ( tsc->data[SC_STEALTHFIELD] || tsc->data[SC_CAMOUFLAGE] ) && !(st->mode&(MD_BOSS|MD_DETECTOR)) && flag == 4 ) return 0; }replace with
if(tsc && tsc->count) { /* attacks in invincible are capped to 1 damage and handled in batte.c; allow spell break and eske for sealed shrine GDB when in INVINCIBLE state. */ if( tsc->data[SC_INVINCIBLE] && !tsc->data[SC_INVINCIBLEOFF] && skill_id && !(skill_id&(SA_SPELLBREAKER|SL_SKE)) ) return 0; if(!skill_id && tsc->data[SC_TRICKDEAD]) return 0; if((skill_id == WZ_STORMGUST || skill_id == WZ_FROSTNOVA || skill_id == NJ_HYOUSYOURAKU) && tsc->data[SC_FREEZE]) return 0; if(skill_id == PR_LEXAETERNA && (tsc->data[SC_FREEZE] || (tsc->data[SC_STONE] && tsc->opt1 == OPT1_STONE))) return 0; if( ( tsc->data[SC_STEALTHFIELD] || tsc->data[SC_CAMOUFLAGE] ) && !(st->mode&(MD_BOSS|MD_DETECTOR)) && flag == 4 ) return 0; if (skill_id == SC__MANHOLE && tsc->data[SC_MANHOLE]) return 0; }To stop it from affecting barricades, guardian stones and guardians, find:
// Other Effects case SC_VACUUM_EXTREME: case SC_NETHERWORLD: return 0; } }replace with:
// Other Effects case SC_VACUUM_EXTREME: case SC_NETHERWORLD: case SC__MANHOLE: case SC__BLOODYLUST: case SC__CHAOS: return 0; } }This includes some other statuses bosses are supposed to be immune to, this is a general clause but Manhole is disabled outside of PvP maps anyway.
I have no idea about making it not chainable though, can anyone help?
Edited by Anisotropic Defixation, 07 May 2015 - 12:10 PM.
any update?