Hello everyone, It seems like the magic reflect does not only reflect damage but also cast the spell . (different from pre-re , so we also tried to switch off renewal_cast but it didn't matter)
We tried a lot of stuff around skill.c & renewal.h but it seems like it doesn't work ...
maybe it's something around this in skill.c :
// Checks if 'bl' should reflect back a spell cast by 'src'.
// type is the type of magic attack: 0: indirect (aoe), 1: direct (targetted)
// In case of success returns type of reflection, otherwise 0
// 1 - Regular reflection (Maya)
// 2 - SL_KAITE reflection
static int skill_magic_reflect(struct block_list* src, struct block_list* bl, int type)
{
struct status_change *sc = status_get_sc(bl);
struct map_session_data* sd = BL_CAST(BL_PC, bl);
if (!sc || !sc->data[SC_KYOMU]) { // Kyomu doesn't reflect
// Item-based reflection - Bypasses Boss check
if (sd && sd->bonus.magic_damage_return && type && rnd()%100 < sd->bonus.magic_damage_return)
return 1;
}
// Magic Mirror reflection - Bypasses Boss check
if (sc && sc->data[SC_MAGICMIRROR] && rnd()%100 < sc->data[SC_MAGICMIRROR]->val2)
return 1;
if( status_get_class_(src) == CLASS_BOSS )
return 1;
// status-based reflection
if( !sc || sc->count == 0 )
return 1;
// Kaite reflection - Does not bypass Boss check
if( sc->data[SC_KAITE] && (src->type == BL_PC || status_get_lv(src) <= 80) ) {
// Kaite only works against non-players if they are low-level.
// Kyomu doesn't disable Kaite, but the "skill fail chance" part of Kyomu applies to it.
clif_specialeffect(bl, 438, AREA);
if( --sc->data[SC_KAITE]->val2 <= 0 )
status_change_end(bl, SC_KAITE, INVALID_TIMER);
return 1;
}
return 0;
}
Question
Graff
Hello everyone, It seems like the magic reflect does not only reflect damage but also cast the spell . (different from pre-re , so we also tried to switch off renewal_cast but it didn't matter)
We tried a lot of stuff around skill.c & renewal.h but it seems like it doesn't work ...
maybe it's something around this in skill.c :
// Checks if 'bl' should reflect back a spell cast by 'src'. // type is the type of magic attack: 0: indirect (aoe), 1: direct (targetted) // In case of success returns type of reflection, otherwise 0 // 1 - Regular reflection (Maya) // 2 - SL_KAITE reflection static int skill_magic_reflect(struct block_list* src, struct block_list* bl, int type) { struct status_change *sc = status_get_sc(bl); struct map_session_data* sd = BL_CAST(BL_PC, bl); if (!sc || !sc->data[SC_KYOMU]) { // Kyomu doesn't reflect // Item-based reflection - Bypasses Boss check if (sd && sd->bonus.magic_damage_return && type && rnd()%100 < sd->bonus.magic_damage_return) return 1; } // Magic Mirror reflection - Bypasses Boss check if (sc && sc->data[SC_MAGICMIRROR] && rnd()%100 < sc->data[SC_MAGICMIRROR]->val2) return 1; if( status_get_class_(src) == CLASS_BOSS ) return 1; // status-based reflection if( !sc || sc->count == 0 ) return 1; // Kaite reflection - Does not bypass Boss check if( sc->data[SC_KAITE] && (src->type == BL_PC || status_get_lv(src) <= 80) ) { // Kaite only works against non-players if they are low-level. // Kyomu doesn't disable Kaite, but the "skill fail chance" part of Kyomu applies to it. clif_specialeffect(bl, 438, AREA); if( --sc->data[SC_KAITE]->val2 <= 0 ) status_change_end(bl, SC_KAITE, INVALID_TIMER); return 1; } return 0; }
If anyone can help, feel free to coment !
we still trying btw ..
Regards
Link to comment
Share on other sites
10 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.