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) || if (action == EditAction.PlaceTile && TShock.Config.PreventInvalidPlaceStyle && ((editData == 4 && style > 8) ||
(editData == 13 && style > 4) || (editData == 15 && style > 1) || (editData == 21 && style > 6) || (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 == 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))) (editData == 149 && style > 2)))
{ {
args.Player.SendTileSquare(tileX, tileY); args.Player.SendTileSquare(tileX, tileY);

View file

@ -633,7 +633,7 @@ namespace TShockAPI
Main.item[itemid].stack = stack; Main.item[itemid].stack = stack;
Main.item[itemid].owner = Index; Main.item[itemid].owner = Index;
Main.item[itemid].prefix = (byte) prefix; 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; Main.item[itemid].velocity = Main.player[this.Index].velocity;
NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, "", itemid, 0f, 0f, 0f); NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, "", itemid, 0f, 0f, 0f);
NetMessage.SendData((int)PacketTypes.ItemOwner, -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[] inventory = player.TPlayer.inventory;
Item[] armor = player.TPlayer.armor; Item[] armor = player.TPlayer.armor;
Item[] dye = player.TPlayer.dye;
for (int i = 0; i < NetItem.maxNetInventory; i++) for (int i = 0; i < NetItem.maxNetInventory; i++)
{ {
if (i < 49) if (i < NetItem.maxNetInventory - (NetItem.armorSlots + NetItem.dyeSlots))
{ {
Item item = new Item(); Item item = new Item();
if (inventory[i] != null && inventory[i].netID != 0) 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(); 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.netDefaults(armor[index].netID);
item.Prefix(armor[i - 48].prefix); item.Prefix(armor[index].prefix);
item.AffixName(); item.AffixName();
if (armor[i - 48].stack > item.maxStack) if (armor[index].stack > item.maxStack)
{ {
check = true; check = true;
player.SendMessage( 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; return check;