daanizin 0 Posted December 31, 2024 HELLO, I'm trying to enable friendly fire (miss) in the sharp shooting via the source, in skill.c in the function: static int skill_attack and at first I put it like this, but it didn't have any effect when I turn on @gvgon it doesn't hit the ally with sharp shooting: if ( skill_id == SN_SHARPSHOOTING ) { killer_sd = BL_CAST(BL_PC, src); dest_sd = BL_CAST(BL_PC, bl); if ( killer_sd && dest_sd && bl->type == BL_PC) { if ( map_flag_gvg(killer_sd->bl.m) || map_flag_gvg2(killer_sd->bl.m) || map->list[killer_sd->bl.m].flag.gvg_castle ) { if ( killer_sd->status.guild_id == dest_sd->status.guild_id ) { dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; } } else if ( map->list[killer_sd->bl.m].flag.pvp || map->list[killer_sd->bl.m].flag.pvp_noguild || map->list[killer_sd->bl.m].flag.pvp_noparty ) ; // if you are on a pvp map, take it normally [Isaac] else { if ( killer_sd->status.guild_id == dest_sd->status.guild_id ) { dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; } } } else if ( killer_sd && src->type == BL_PC && bl->type == BL_MOB && map->list[killer_sd->bl.m].flag.battleground ) { dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; } } Quote Share this post Link to post Share on other sites
HELLO,
I'm trying to enable friendly fire (miss) in the sharp shooting via the source, in skill.c in the function:
static int skill_attack
and at first I put it like this, but it didn't have any effect when I turn on @gvgon it doesn't hit the ally with sharp shooting:
if ( skill_id == SN_SHARPSHOOTING )
{
killer_sd = BL_CAST(BL_PC, src);
dest_sd = BL_CAST(BL_PC, bl);
if ( killer_sd && dest_sd && bl->type == BL_PC)
{
if ( map_flag_gvg(killer_sd->bl.m) || map_flag_gvg2(killer_sd->bl.m) || map->list[killer_sd->bl.m].flag.gvg_castle )
{
if ( killer_sd->status.guild_id == dest_sd->status.guild_id )
{
dmg.damage = dmg.damage2 = 0;
dmg.dmg_lv = ATK_MISS;
}
}
else if ( map->list[killer_sd->bl.m].flag.pvp || map->list[killer_sd->bl.m].flag.pvp_noguild || map->list[killer_sd->bl.m].flag.pvp_noparty )
; // if you are on a pvp map, take it normally [Isaac]
else
{
if ( killer_sd->status.guild_id == dest_sd->status.guild_id )
{
dmg.damage = dmg.damage2 = 0;
dmg.dmg_lv = ATK_MISS;
}
}
}
else if ( killer_sd && src->type == BL_PC && bl->type == BL_MOB && map->list[killer_sd->bl.m].flag.battleground )
{
dmg.damage = dmg.damage2 = 0;
dmg.dmg_lv = ATK_MISS;
}
}
Share this post
Link to post
Share on other sites