Fix projectile removal.
This commit is contained in:
parent
be6a5a771b
commit
d5affa3ba5
4 changed files with 61 additions and 11 deletions
|
|
@ -870,40 +870,40 @@ namespace TShockAPI
|
||||||
if (args.Player.Index != owner)
|
if (args.Player.Index != owner)
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dmg > 175)
|
if (dmg > 175)
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TShock.CheckIgnores(args.Player))
|
if (TShock.CheckIgnores(args.Player))
|
||||||
{
|
{
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TShock.CheckProjectilePermission(args.Player, index, type))
|
if (TShock.CheckProjectilePermission(args.Player, index, type))
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.Player.ProjectileThreshold >= TShock.Config.ProjectileThreshold)
|
if (args.Player.ProjectileThreshold >= TShock.Config.ProjectileThreshold)
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
|
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
|
||||||
{
|
{
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -938,26 +938,26 @@ namespace TShockAPI
|
||||||
if (args.Player.Index != Main.projectile[index].owner)
|
if (args.Player.Index != Main.projectile[index].owner)
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TShock.CheckIgnores(args.Player))
|
if (TShock.CheckIgnores(args.Player))
|
||||||
{
|
{
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TShock.CheckProjectilePermission(args.Player, index, type))
|
if (TShock.CheckProjectilePermission(args.Player, index, type))
|
||||||
{
|
{
|
||||||
args.Player.LastThreat = DateTime.UtcNow;
|
args.Player.LastThreat = DateTime.UtcNow;
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
|
if ((DateTime.UtcNow - args.Player.LastThreat).TotalMilliseconds < 5000)
|
||||||
{
|
{
|
||||||
args.Player.SendData(PacketTypes.ProjectileNew, "", index);
|
args.Player.RemoveProjectile(ident, owner);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
35
TShockAPI/Net/ProjectileRemoveMsg.cs
Normal file
35
TShockAPI/Net/ProjectileRemoveMsg.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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)
|
public virtual bool SendTileSquare(int x, int y, int size = 10)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,7 @@
|
||||||
<Compile Include="Net\BaseMsg.cs" />
|
<Compile Include="Net\BaseMsg.cs" />
|
||||||
<Compile Include="Net\DisconnectMsg.cs" />
|
<Compile Include="Net\DisconnectMsg.cs" />
|
||||||
<Compile Include="Net\NetTile.cs" />
|
<Compile Include="Net\NetTile.cs" />
|
||||||
|
<Compile Include="Net\ProjectileRemoveMsg.cs" />
|
||||||
<Compile Include="Net\SpawnMsg.cs" />
|
<Compile Include="Net\SpawnMsg.cs" />
|
||||||
<Compile Include="Net\WorldInfoMsg.cs" />
|
<Compile Include="Net\WorldInfoMsg.cs" />
|
||||||
<Compile Include="DB\RegionManager.cs" />
|
<Compile Include="DB\RegionManager.cs" />
|
||||||
|
|
@ -182,7 +183,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
<VisualStudio>
|
<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>
|
</VisualStudio>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue