Fix projectile removal.

This commit is contained in:
Zidonuke 2011-12-29 18:53:27 -05:00
parent be6a5a771b
commit d5affa3ba5
4 changed files with 61 additions and 11 deletions

View file

@ -870,40 +870,40 @@ namespace TShockAPI
if (args.Player.Index != owner)
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (dmg > 175)
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (TShock.CheckIgnores(args.Player))
{
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (TShock.CheckProjectilePermission(args.Player, index, type))
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (args.Player.ProjectileThreshold >= TShock.Config.ProjectileThreshold)
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
{
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
@ -938,26 +938,26 @@ namespace TShockAPI
if (args.Player.Index != Main.projectile[index].owner)
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (TShock.CheckIgnores(args.Player))
{
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if (TShock.CheckProjectilePermission(args.Player, index, type))
{
args.Player.LastThreat = DateTime.UtcNow;
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
{
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
args.Player.RemoveProjectile(ident, owner);
return true;
}

View file

@ -0,0 +1,35 @@
using System.IO;
using System.IO.Streams;
namespace TShockAPI.Net
{
public class ProjectileRemoveMsg : BaseMsg
{
public override PacketTypes ID
{
get
{
return PacketTypes.ProjectileNew;
}
}
public short Index { get; set; }
public byte Owner { get; set; }
public override void Pack(Stream stream)
{
stream.WriteInt16(Index);
stream.WriteSingle(-1);
stream.WriteSingle(-1);
stream.WriteSingle(0);
stream.WriteSingle(0);
stream.WriteSingle(0);
stream.WriteInt16(0);
stream.WriteByte(Owner);
stream.WriteByte(0);
stream.WriteSingle(0);
stream.WriteSingle(0);
stream.WriteSingle(0);
}
}
}

View file

@ -281,6 +281,20 @@ namespace TShockAPI
}
}
public void RemoveProjectile(int index, int owner)
{
using (var ms = new MemoryStream())
{
var msg = new ProjectileRemoveMsg()
{
Index = (short)index,
Owner = (byte)owner
};
msg.PackFull(ms);
SendRawData(ms.ToArray());
}
}
public virtual bool SendTileSquare(int x, int y, int size = 10)
{
try

View file

@ -107,6 +107,7 @@
<Compile Include="Net\BaseMsg.cs" />
<Compile Include="Net\DisconnectMsg.cs" />
<Compile Include="Net\NetTile.cs" />
<Compile Include="Net\ProjectileRemoveMsg.cs" />
<Compile Include="Net\SpawnMsg.cs" />
<Compile Include="Net\WorldInfoMsg.cs" />
<Compile Include="DB\RegionManager.cs" />
@ -182,7 +183,7 @@
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_IncrementBeforeBuild="False" BuildVersion_StartDate="2011/6/17" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_BuildAction="Both" BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" />
<UserProperties BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildAction="Both" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_StartDate="2011/6/17" BuildVersion_IncrementBeforeBuild="False" />
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.