Issue information

Issue ID
#8655
Status
New
Severity
None
Started
xathenx
Apr 27, 2015 6:59
Last Post
xathenx
Jun 22, 2015 13:41
Confirmation
N/A

xathenx - Apr 27, 2015 6:59

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.

This post has been edited by xathenx on May 2, 2015 12:32

Anisotropic Defixation - May 3, 2015 9:47

Last time I checked, you could also manhole barricades and guardian stones.

xathenx - May 3, 2015 10:22

So another bug in manhole found.

Anisotropic Defixation - May 7, 2015 5:13

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.[code=auto: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; [/code]

This post has been edited by Anisotropic Defixation on May 7, 2015 8:22

Anisotropic Defixation - May 7, 2015 12:03

I managed to fix most of it.

To block all skills other than Shadow Form, in status.c find[code=auto:0] //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; } } } } [/code]replace with:[code=auto:0] //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; } } [/code]To imitate the "miss" attacks, find:[code=auto:0] 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; } [/code]replace with[code=auto:0] 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; } [/code]To stop it from affecting barricades, guardian stones and guardians, find:[code=auto:0] // Other Effects case SC_VACUUM_EXTREME: case SC_NETHERWORLD: return 0; } } [/code]replace with:[code=auto:0] // Other Effects case SC_VACUUM_EXTREME: case SC_NETHERWORLD: case SC__MANHOLE: case SC__BLOODYLUST: case SC__CHAOS: return 0; } } [/code]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?

This post has been edited by Anisotropic Defixation on May 7, 2015 12:10

xathenx - Jun 22, 2015 13:41

any update?