Можно.
Вот решение для урона от навыков(только от навыков): грубо, но быстро...
clif.c -> ищи функцию
int clif_skill_damage(struct block_list *src,struct block_list *dst,unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type)
в ней перед
#if PACKETVER < 3
вставь это
if(dst->type == BL_PC) { pc_setregistry(((TBL_PC*)dst),"LAST_DAMAGE",damage,3); pc_setregistry(((TBL_PC*)dst),"LAST_DAMAGE_SKILL_ID",skill_id,3); pc_setregistry(((TBL_PC*)dst),"LAST_DAMAGE_SKILL_LVL",skill_lv,3); npc_event_doall_id("OnDamage",dst->id); }
Ну, переменные говорят сами за себя
Для тестов:
- script DAMAGE -1,{ OnDamage: mes "Урон: "+LAST_DAMAGE; mes "ID навыка: "+LAST_DAMAGE_SKILL_ID; mes "Ур. навыка: "+LAST_DAMAGE_SKILL_LVL; close; }