private bool hitAndAttachProjectile(Player p) { if (!attatchesToAllies && (!p.hostile || p.team == Main.player[projectile.owner].team)) { return(false); } if (!attatchesToEnemies && (p.hostile && p.team != Main.player[projectile.owner].team)) { return(false); } bool?b = PlayerHooks.CanHitPvpWithProj(projectile, p); if (b.HasValue && !b.Value) { return(false); } b = ProjectileLoader.CanHitPvp(projectile, p); if (b.HasValue && !b.Value) { return(false); } npcIndex = (short)(p.whoAmI + Main.npc.Length); FishPlayer fOwner = Main.player[projectile.owner].GetModPlayer <FishPlayer>(mod); p.GetModPlayer <FishPlayer>(mod).isHooked++; if (fOwner.seals) { p.GetModPlayer <FishPlayer>(mod).isSealed++; } projectile.Center = p.Center; updatePos = false; if (Main.netMode != 0) { /* * ModPacket pk = mod.GetPacket(); * pk.Write((byte)2); * pk.Write((ushort)(projectile.whoAmI)); * pk.Write(npcIndex); * pk.Write(projectile.ai[0]); * pk.Send();*/ NetMessage.SendData(27, -1, -1, null, projectile.whoAmI, 0f, 0f, 0f, 0, 0, 0); } /* if(projectile.damage > 0) * { * damagePlayer(p); * }*/ return(true); }
public override bool?CanBeHitByProjectile(Projectile projectile) { Player player = Main.player[projectile.owner]; if ((projectile.owner == (int)npc.target) || (player.heldProj != projectile.whoAmI) || !(ProjectileLoader.CanHitPvp(projectile, Main.player[npc.target]) && PlayerHooks.CanHitPvpWithProj(projectile, Main.player[npc.target]))) { return(false); } return(base.CanBeHitByProjectile(projectile)); }