ahmadshidqi - Mar 15, 2014 4:19
#0 0x081c5683 in skill_check_shadowform (bl=0xa00c858, damage=134, hit=1)
at skill.c:15452
sc = 0xa00cb88
src = <value optimized out>
#1 0x081dfc2b in skill_attack (attack_type=1, src=<value optimized out>,
dsrc=0xb5cd9b28, bl=<value optimized out>, skill_id=2482, skill_lv=1,
tick=39889841, flag=0) at skill.c:2597
dmg = {damage = 134, damage2 = 0, type = 0, div_ = 1, amotion = 450,
dmotion = 100, blewcount = <value optimized out>,
flag = <value optimized out>, dmg_lv = <value optimized out>}
sstatus = 0x86
tstatus = 0xa00cb28
sc = 0xa00cb88
sd = 0x9f8e288
tsd = 0xa00c858
type = <value optimized out>
damage = 134
rmdamage = <value optimized out>
additional_effects = <value optimized out>
shadow_flag = false
#2 0x081c149b in skill_unit_onplace (src=0xb5cd9b28, bl=0xa00c858,
tick=39889841) at skill.c:11464
sg = 0xb3df2b58
[quote]
bool skill_check_shadowform(struct block_list *bl, int64 damage, int hit){
struct status_change *sc;
struct block_list *src;
nullpo_retr(false, bl);
sc = status->get_sc(bl);
if( sc && sc->data[SC__SHADOWFORM] && damage ) {
src = map->id2bl(sc->data[SC__SHADOWFORM]->val2);
if( !src || src->m != bl->m ) {
status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
return false;
}
if( src && (status->isdead(src) || !battle->check_target(bl,src,BCT_ENEMY)) ){
if( src->type == BL_PC )
((TBL_PC*)src)->shadowform_id = 0;
status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
return false;
}
status->damage(bl, src, damage, 0, clif->damage(src, src, 500, 500, damage, hit, (hit > 1 ? 8 : 0), 0), 0);
if( (--sc->data[SC__SHADOWFORM]->val3) <= 0 ) {
status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER);
if( src->type == BL_PC ) ----------------------> 15452
((TBL_PC*)src)->shadowform_id = 0;
}
return true;
}
return false;
}[/quote]
This post has been edited by
ahmadshidqi
on Mar 15, 2014 10:17