diff --git a/src/map/skill.cpp b/src/map/skill.cpp index e2637e4485..7cf5c91654 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -10700,18 +10700,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui status_heal(bl, heal, 0, 0); } break; case HVAN_EXPLOSION: - { - clif_skill_nodamage(src, *src, skill_id, skill_lv, 1); - map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR | BL_SKILL, src, skill_id, skill_lv, tick, flag | BCT_ENEMY, skill_castend_damage_id); + if( hd != nullptr ){ + clif_skill_nodamage(src, *src, skill_id, skill_lv, 1); + map_foreachinshootrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR | BL_SKILL, src, skill_id, skill_lv, tick, flag | BCT_ENEMY, skill_castend_damage_id); - homun_data& hd = reinterpret_cast(*src); - hd.homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION); - clif_send_homdata(hd, SP_INTIMATE); + hd->homunculus.intimacy = hom_intimacy_grade2intimacy(HOMGRADE_HATE_WITH_PASSION); + clif_send_homdata(*hd, SP_INTIMATE); - // There's a delay between the explosion and the homunculus death - skill_addtimerskill(src, tick + skill_get_time(skill_id, skill_lv), src->id, 0, 0, skill_id, skill_lv, 0, flag); - break; - } + // There's a delay between the explosion and the homunculus death + skill_addtimerskill(src, tick + skill_get_time(skill_id, skill_lv), src->id, 0, 0, skill_id, skill_lv, 0, flag); + } break; // Homun single-target support skills [orn] case HLIF_CHANGE: #ifndef RENEWAL