Music box fix

This commit is contained in:
Zack Piispanen 2013-09-30 20:11:01 -04:00
parent f21adbfc42
commit fb9a3d0e1b
3 changed files with 28 additions and 8 deletions

View file

@ -1883,7 +1883,7 @@ namespace TShockAPI
if (action == EditAction.PlaceTile && TShock.Config.PreventInvalidPlaceStyle && ((editData == 4 && style > 8) ||
(editData == 13 && style > 4) || (editData == 15 && style > 1) || (editData == 21 && style > 6) ||
(editData == 82 && style > 5) || (editData == 91 && style > 3) || (editData == 105 && style > 42) ||
(editData == 135 && style > 3) || (editData == 139 && style > 12) || (editData == 144 && style > 2) ||
(editData == 135 && style > 3) || (editData == 139 && style > 27) || (editData == 144 && style > 2) ||
(editData == 149 && style > 2)))
{
args.Player.SendTileSquare(tileX, tileY);

View file

@ -633,7 +633,7 @@ namespace TShockAPI
Main.item[itemid].stack = stack;
Main.item[itemid].owner = Index;
Main.item[itemid].prefix = (byte) prefix;
Main.item[itemid].noGrabDelay = 1;
Main.item[itemid].noGrabDelay = 1;
Main.item[itemid].velocity = Main.player[this.Index].velocity;
NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, "", itemid, 0f, 0f, 0f);
NetMessage.SendData((int)PacketTypes.ItemOwner, -1, -1, "", itemid, 0f, 0f, 0f);

View file

@ -1541,9 +1541,10 @@ namespace TShockAPI
Item[] inventory = player.TPlayer.inventory;
Item[] armor = player.TPlayer.armor;
Item[] dye = player.TPlayer.dye;
for (int i = 0; i < NetItem.maxNetInventory; i++)
{
if (i < 49)
if (i < NetItem.maxNetInventory - (NetItem.armorSlots + NetItem.dyeSlots))
{
Item item = new Item();
if (inventory[i] != null && inventory[i].netID != 0)
@ -1560,15 +1561,16 @@ namespace TShockAPI
}
}
}
else
else if(i < (NetItem.maxNetInventory - (NetItem.armorSlots + NetItem.dyeSlots)))
{
Item item = new Item();
if (armor[i - 48] != null && armor[i - 48].netID != 0)
var index = i - (NetItem.maxNetInventory - (NetItem.armorSlots + NetItem.dyeSlots));
if (armor[index] != null && armor[index].netID != 0)
{
item.netDefaults(armor[i - 48].netID);
item.Prefix(armor[i - 48].prefix);
item.netDefaults(armor[index].netID);
item.Prefix(armor[index].prefix);
item.AffixName();
if (armor[i - 48].stack > item.maxStack)
if (armor[index].stack > item.maxStack)
{
check = true;
player.SendMessage(
@ -1577,6 +1579,24 @@ namespace TShockAPI
}
}
}
else if (i < (NetItem.maxNetInventory - (NetItem.armorSlots + NetItem.dyeSlots)))
{
Item item = new Item();
var index = i - (NetItem.maxNetInventory - NetItem.dyeSlots);
if (dye[index] != null && dye[index].netID != 0)
{
item.netDefaults(dye[index].netID);
item.Prefix(dye[index].prefix);
item.AffixName();
if (dye[index].stack > item.maxStack)
{
check = true;
player.SendMessage(
String.Format("Stack cheat detected. Remove dye {0} ({1}) and then rejoin", item.name, dye[index].stack),
Color.Cyan);
}
}
}
}
return check;