diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/clif.c | 8 | ||||
-rw-r--r-- | src/map/skill.c | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 308f419a7..9fec0bc66 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5128,8 +5128,12 @@ int clif_skill_damage(struct block_list *src, struct block_list *dst, int64 tick damage = (int)cap_value(in_damage,INT_MIN,INT_MAX); type = clif_calc_delay(type,div,damage,ddelay); - sc = status->get_sc(dst); - if(sc && sc->count) { + +#if PACKETVER >= 20131223 + if( type == 6 ) type = 8; //bugreport:8263 +#endif + + if( ( sc = status->get_sc(dst) ) && sc->count ) { if(sc->data[SC_ILLUSION] && damage) damage = damage*(sc->data[SC_ILLUSION]->val2) + rnd()%100; } diff --git a/src/map/skill.c b/src/map/skill.c index 393c88df2..db1296260 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -8696,8 +8696,8 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin sc_start(src,bl,SC_SILENCE,100,skill_lv,sd->bonus.shieldmdef * 30000); } else { int opt = 0, val = 0, splashrange = 0; - struct item_data *shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]]; - if( !shield_data || shield_data->type != IT_ARMOR ) { + struct item_data *shield_data = NULL; + if( sd->equip_index[EQI_HAND_L] < 0 || !( shield_data = sd->inventory_data[sd->equip_index[EQI_HAND_L]] ) || shield_data->type != IT_ARMOR ) { //Skill will first check if a shield is equipped. If none is found on the caster the skill will fail. clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; |