Hello guys how can i do this... calculation of the damage boss/monster damage received that can be reduced by mapflag, its working but only with players pvp,gvg.... i really appreciate who can help me😀Â
like this in src/map/battle.c
int64 battle_calc_pc_damage(struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv)
{
int flag = d->flag;
switch (skill_id) {
//case PA_PRESSURE: /* pressure also belongs to this list but it doesn't reach this area -- so don't worry about it */
case HW_GRAVITATION:
case NJ_ZENYNAGE:
case KO_MUCHANAGE:
break;
default:
if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex]
if (flag & BF_WEAPON)
damage = damage * map->list[bl->m].weapon_damage_rate / 100;
if (flag & BF_MAGIC)
damage = damage * map->list[bl->m].magic_damage_rate / 100;
if (flag & BF_MISC)
damage = damage * map->list[bl->m].misc_damage_rate / 100;
} else { //Normal attacks get reductions based on range.
if (flag & BF_SHORT)
damage = damage * map->list[bl->m].short_damage_rate / 100;
if (flag & BF_LONG)
damage = damage * map->list[bl->m].long_damage_rate / 100;
}
if (!damage)
damage = 1;
break;
}
return damage;
}
Hello guys how can i do this... calculation of the damage boss/monster damage received that can be reduced by mapflag, its working but only with players pvp,gvg.... i really appreciate who can help me😀Â
like this in src/map/battle.c
int64 battle_calc_pc_damage(struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv) { int flag = d->flag; switch (skill_id) { //case PA_PRESSURE: /* pressure also belongs to this list but it doesn't reach this area -- so don't worry about it */ case HW_GRAVITATION: case NJ_ZENYNAGE: case KO_MUCHANAGE: break; default: if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex] if (flag & BF_WEAPON) damage = damage * map->list[bl->m].weapon_damage_rate / 100; if (flag & BF_MAGIC) damage = damage * map->list[bl->m].magic_damage_rate / 100; if (flag & BF_MISC) damage = damage * map->list[bl->m].misc_damage_rate / 100; } else { //Normal attacks get reductions based on range. if (flag & BF_SHORT) damage = damage * map->list[bl->m].short_damage_rate / 100; if (flag & BF_LONG) damage = damage * map->list[bl->m].long_damage_rate / 100; } if (!damage) damage = 1; break; } return damage; }
Â
Edited by HidekitakaseShare this post
Link to post
Share on other sites