/annoy should work correctly now.

/annoy's loop has a check to make sure player hasn't changed in the mean time (hopefully what I'm doing is thread-safe)
This commit is contained in:
Deathmax 2011-08-15 17:30:54 +08:00
parent e5a725a513
commit 5d7c38817a
2 changed files with 8 additions and 7 deletions

View file

@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.2.6.0813")]
[assembly: AssemblyFileVersion("3.2.6.0813")]
[assembly: AssemblyVersion("3.2.6.0815")]
[assembly: AssemblyFileVersion("3.2.6.0815")]

View file

@ -309,11 +309,12 @@ namespace TShockAPI
if (Main.player[i] != null & Main.player[i].active && i != Index)
player = i;
SendMessage("You are now being annoyed.", Color.Red);
var oriinv = Main.player[0].inventory[player];
while ((DateTime.UtcNow - launch).TotalSeconds < time2)
var oriinv = Main.player[player].inventory[0];
var startname = Name;
while ((DateTime.UtcNow - launch).TotalSeconds < time2 && startname == Name)
{
Main.player[0].inventory[player].SetDefaults("Whoopie Cushion");
Main.player[0].inventory[player].stack = 1;
Main.player[player].inventory[0].SetDefaults("Whoopie Cushion");
Main.player[player].inventory[0].stack = 1;
SendData(PacketTypes.PlayerSlot, "Whoopie Cushion", player, 0f);
Main.player[player].position = TPlayer.position;
Main.player[player].selectedItem = 0;
@ -324,7 +325,7 @@ namespace TShockAPI
SendData(PacketTypes.PlayerUpdate, number: player);
Thread.Sleep(50);
}
Main.player[0].inventory[0] = oriinv;
Main.player[player].inventory[0] = oriinv;
SendData(PacketTypes.PlayerSlot, oriinv.name, player, 0f);
}