Fixed more of SSC. Trash, held item, piggy items, and safe items are all cleared upon first login.
This commit is contained in:
parent
6495496cd4
commit
f5e1b79fbb
3 changed files with 220 additions and 55 deletions
|
|
@ -14,34 +14,44 @@ namespace TShockAPI
|
||||||
public struct NetItem
|
public struct NetItem
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The size of the player's inventory (inventory, coins, ammo, trash)
|
/// 40 - The number of slots in a piggy bank
|
||||||
|
/// </summary>
|
||||||
|
public static readonly int PiggySlots = 40;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 40 - The number of slots in a safe
|
||||||
|
/// </summary>
|
||||||
|
public static readonly int SafeSlots = PiggySlots;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 59 - The size of the player's inventory (inventory, coins, ammo)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int InventorySlots = 59;
|
public static readonly int InventorySlots = 59;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The number of armor slots.
|
/// 20 - The number of armor slots.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int ArmorSlots = 20;
|
public static readonly int ArmorSlots = 20;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The number of other equippable items
|
/// 5 - The number of other equippable items
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int MiscEquipSlots = 5;
|
public static readonly int MiscEquipSlots = 5;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The number of dye slots.
|
/// 10 - The number of dye slots.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int DyeSlots = 10;
|
public static readonly int DyeSlots = 10;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The number of other dye slots (for <see cref="MiscEquipSlots"/>)
|
/// 5 - The number of other dye slots (for <see cref="MiscEquipSlots"/>)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int MiscDyeSlots = 5;
|
public static readonly int MiscDyeSlots = MiscEquipSlots;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The inventory size (including armour, dies, coins, ammo, and trash)
|
/// 179 - The inventory size (including armour, dies, coins, ammo, piggy, safe, and trash)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static readonly int MaxInventory = 99;
|
public static readonly int MaxInventory = InventorySlots + ArmorSlots + DyeSlots + MiscEquipSlots + MiscDyeSlots + PiggySlots + SafeSlots + 1;
|
||||||
|
|
||||||
[JsonProperty("netID")]
|
[JsonProperty("netID")]
|
||||||
private int _netId;
|
private int _netId;
|
||||||
|
|
|
||||||
|
|
@ -1149,6 +1149,10 @@ namespace TShockAPI
|
||||||
Item[] dye = player.TPlayer.dye;
|
Item[] dye = player.TPlayer.dye;
|
||||||
Item[] miscEqups = player.TPlayer.miscEquips;
|
Item[] miscEqups = player.TPlayer.miscEquips;
|
||||||
Item[] miscDyes = player.TPlayer.miscDyes;
|
Item[] miscDyes = player.TPlayer.miscDyes;
|
||||||
|
Item[] piggy = player.TPlayer.bank.item;
|
||||||
|
Item[] safe = player.TPlayer.bank2.item;
|
||||||
|
Item trash = player.TPlayer.trashItem;
|
||||||
|
|
||||||
for (int i = 0; i < NetItem.MaxInventory; i++)
|
for (int i = 0; i < NetItem.MaxInventory; i++)
|
||||||
{
|
{
|
||||||
if (i < NetItem.InventorySlots)
|
if (i < NetItem.InventorySlots)
|
||||||
|
|
@ -1156,31 +1160,53 @@ namespace TShockAPI
|
||||||
//0-58
|
//0-58
|
||||||
this.inventory[i] = (NetItem)inventory[i];
|
this.inventory[i] = (NetItem)inventory[i];
|
||||||
}
|
}
|
||||||
else if (i < NetItem.InventorySlots
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots)
|
||||||
+ NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots)
|
|
||||||
{
|
{
|
||||||
//59-78
|
//59-78
|
||||||
var index = i - NetItem.InventorySlots;
|
var index = i - NetItem.InventorySlots;
|
||||||
this.inventory[i] = (NetItem)armor[index];
|
this.inventory[i] = (NetItem)armor[index];
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots - NetItem.MiscDyeSlots)
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots)
|
||||||
{
|
{
|
||||||
//79-88
|
//79-88
|
||||||
var index = i - (NetItem.MaxInventory -
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
|
||||||
(NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
|
||||||
this.inventory[i] = (NetItem)dye[index];
|
this.inventory[i] = (NetItem)dye[index];
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots)
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
|
||||||
{
|
{
|
||||||
//89-93
|
//89-93
|
||||||
var index = i - (NetItem.MaxInventory - (NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots);
|
||||||
this.inventory[i] = (NetItem)miscEqups[index];
|
this.inventory[i] = (NetItem)miscEqups[index];
|
||||||
}
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
|
||||||
|
+ NetItem.MiscDyeSlots)
|
||||||
|
{
|
||||||
|
//93-98
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots);
|
||||||
|
this.inventory[i] = (NetItem)miscDyes[index];
|
||||||
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots)
|
||||||
|
{
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
|
||||||
|
this.inventory[i] = (NetItem)piggy[index];
|
||||||
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
|
||||||
|
{
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
|
||||||
|
this.inventory[i] = (NetItem)safe[index];
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//93-98
|
this.inventory[i] = (NetItem)trash;
|
||||||
var index = i - (NetItem.MaxInventory - NetItem.MiscDyeSlots);
|
|
||||||
this.inventory[i] = (NetItem)miscDyes[index];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1236,8 +1262,7 @@ namespace TShockAPI
|
||||||
player.TPlayer.inventory[i].prefix = this.inventory[i].PrefixId;
|
player.TPlayer.inventory[i].prefix = this.inventory[i].PrefixId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.InventorySlots
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots)
|
||||||
+ NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots)
|
|
||||||
{
|
{
|
||||||
//59-78
|
//59-78
|
||||||
var index = i - NetItem.InventorySlots;
|
var index = i - NetItem.InventorySlots;
|
||||||
|
|
@ -1249,11 +1274,10 @@ namespace TShockAPI
|
||||||
player.TPlayer.armor[index].prefix = (byte)this.inventory[i].PrefixId;
|
player.TPlayer.armor[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots - NetItem.MiscDyeSlots)
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots)
|
||||||
{
|
{
|
||||||
//79-88
|
//79-88
|
||||||
var index = i - (NetItem.MaxInventory -
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
|
||||||
(NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
|
||||||
player.TPlayer.dye[index].netDefaults(this.inventory[i].NetId);
|
player.TPlayer.dye[index].netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
if (player.TPlayer.dye[index].netID != 0)
|
if (player.TPlayer.dye[index].netID != 0)
|
||||||
|
|
@ -1262,10 +1286,11 @@ namespace TShockAPI
|
||||||
player.TPlayer.dye[index].prefix = (byte)this.inventory[i].PrefixId;
|
player.TPlayer.dye[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots)
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
|
||||||
{
|
{
|
||||||
//89-93
|
//89-93
|
||||||
var index = i - (NetItem.MaxInventory - (NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots);
|
||||||
player.TPlayer.miscEquips[index].netDefaults(this.inventory[i].NetId);
|
player.TPlayer.miscEquips[index].netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
if (player.TPlayer.miscEquips[index].netID != 0)
|
if (player.TPlayer.miscEquips[index].netID != 0)
|
||||||
|
|
@ -1274,10 +1299,13 @@ namespace TShockAPI
|
||||||
player.TPlayer.miscEquips[index].prefix = (byte)this.inventory[i].PrefixId;
|
player.TPlayer.miscEquips[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
|
||||||
|
+ NetItem.MiscDyeSlots)
|
||||||
{
|
{
|
||||||
//93-98
|
//93-98
|
||||||
var index = i - (NetItem.MaxInventory - NetItem.MiscDyeSlots);
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots);
|
||||||
player.TPlayer.miscDyes[index].netDefaults(this.inventory[i].NetId);
|
player.TPlayer.miscDyes[index].netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
if (player.TPlayer.miscDyes[index].netID != 0)
|
if (player.TPlayer.miscDyes[index].netID != 0)
|
||||||
|
|
@ -1286,34 +1314,85 @@ namespace TShockAPI
|
||||||
player.TPlayer.miscDyes[index].prefix = (byte)this.inventory[i].PrefixId;
|
player.TPlayer.miscDyes[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots)
|
||||||
|
{
|
||||||
|
//98-138
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
|
||||||
|
player.TPlayer.bank.item[index].netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
|
if (player.TPlayer.bank.item[index].netID != 0)
|
||||||
|
{
|
||||||
|
player.TPlayer.bank.item[index].stack = this.inventory[i].Stack;
|
||||||
|
player.TPlayer.bank.item[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
|
||||||
|
{
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
|
||||||
|
player.TPlayer.bank2.item[index].netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
|
if (player.TPlayer.bank2.item[index].netID != 0)
|
||||||
|
{
|
||||||
|
player.TPlayer.bank2.item[index].stack = this.inventory[i].Stack;
|
||||||
|
player.TPlayer.bank2.item[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId);
|
||||||
|
|
||||||
|
if (player.TPlayer.trashItem.netID != 0)
|
||||||
|
{
|
||||||
|
player.TPlayer.trashItem.stack = this.inventory[i].Stack;
|
||||||
|
player.TPlayer.trashItem.prefix = (byte)this.inventory[i].PrefixId;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float slot = 0f;
|
float slot = 0f;
|
||||||
for (int k = 0; k < NetItem.InventorySlots; k++)
|
for (int k = 0; k < NetItem.InventorySlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix, 0f, 0);
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix, 0f, 0);
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.DyeSlots; k++)
|
for (int k = 0; k < NetItem.DyeSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix, 0f, 0);
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix, 0f, 0);
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix, 0f, 0);
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
|
for (int k = 0; k < NetItem.PiggySlots; k++)
|
||||||
|
{
|
||||||
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
|
||||||
|
slot++;
|
||||||
|
}
|
||||||
|
for (int k = 0; k < NetItem.SafeSlots; k++)
|
||||||
|
{
|
||||||
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank2.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
|
||||||
|
slot++;
|
||||||
|
}
|
||||||
|
|
||||||
|
NetMessage.SendData(5, -1, -1, Main.player[player.Index].trashItem.name, player.Index, slot, (float)Main.player[player.Index].trashItem.prefix);
|
||||||
|
|
||||||
NetMessage.SendData(4, -1, -1, player.Name, player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(4, -1, -1, player.Name, player.Index, 0f, 0f, 0f, 0);
|
||||||
NetMessage.SendData(42, -1, -1, "", player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(42, -1, -1, "", player.Index, 0f, 0f, 0f, 0);
|
||||||
|
|
@ -1322,29 +1401,42 @@ namespace TShockAPI
|
||||||
slot = 0f;
|
slot = 0f;
|
||||||
for (int k = 0; k < NetItem.InventorySlots; k++)
|
for (int k = 0; k < NetItem.InventorySlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix, 0f, 0);
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].inventory[k].name, player.Index, slot, (float)Main.player[player.Index].inventory[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
for (int k = 0; k < NetItem.ArmorSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix, 0f, 0);
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].armor[k].name, player.Index, slot, (float)Main.player[player.Index].armor[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.DyeSlots; k++)
|
for (int k = 0; k < NetItem.DyeSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix, 0f, 0);
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].dye[k].name, player.Index, slot, (float)Main.player[player.Index].dye[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
for (int k = 0; k < NetItem.MiscEquipSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix, 0f, 0);
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscEquips[k].name, player.Index, slot, (float)Main.player[player.Index].miscEquips[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
for (int k = 0; k < NetItem.MiscDyeSlots; k++)
|
||||||
{
|
{
|
||||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix, 0f, 0);
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].miscDyes[k].name, player.Index, slot, (float)Main.player[player.Index].miscDyes[k].prefix);
|
||||||
slot++;
|
slot++;
|
||||||
}
|
}
|
||||||
|
for (int k = 0; k < NetItem.PiggySlots; k++)
|
||||||
|
{
|
||||||
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank.item[k].prefix);
|
||||||
|
slot++;
|
||||||
|
}
|
||||||
|
for (int k = 0; k < NetItem.SafeSlots; k++)
|
||||||
|
{
|
||||||
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank2.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank2.item[k].prefix);
|
||||||
|
slot++;
|
||||||
|
}
|
||||||
|
|
||||||
|
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].trashItem.name, player.Index, slot, (float)Main.player[player.Index].trashItem.prefix);
|
||||||
|
|
||||||
NetMessage.SendData(4, player.Index, -1, player.Name, player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(4, player.Index, -1, player.Name, player.Index, 0f, 0f, 0f, 0);
|
||||||
NetMessage.SendData(42, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(42, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0);
|
||||||
NetMessage.SendData(16, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0);
|
NetMessage.SendData(16, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0);
|
||||||
|
|
|
||||||
|
|
@ -430,12 +430,6 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
if (args.Player.IsLoggedIn)
|
if (args.Player.IsLoggedIn)
|
||||||
args.Player.SaveServerCharacter();
|
args.Player.SaveServerCharacter();
|
||||||
|
|
||||||
if (args.Player.ItemInHand.type != 0)
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage("Attempting to bypass SSC with item in hand.");
|
|
||||||
args.Handled = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>NetHooks_NameCollision - Internal hook fired when a name collision happens.</summary>
|
/// <summary>NetHooks_NameCollision - Internal hook fired when a name collision happens.</summary>
|
||||||
|
|
@ -1664,6 +1658,9 @@ namespace TShockAPI
|
||||||
Item[] dye = player.TPlayer.dye;
|
Item[] dye = player.TPlayer.dye;
|
||||||
Item[] miscEquips = player.TPlayer.miscEquips;
|
Item[] miscEquips = player.TPlayer.miscEquips;
|
||||||
Item[] miscDyes = player.TPlayer.miscDyes;
|
Item[] miscDyes = player.TPlayer.miscDyes;
|
||||||
|
Item[] piggy = player.TPlayer.bank.item;
|
||||||
|
Item[] safe = player.TPlayer.bank2.item;
|
||||||
|
Item trash = player.TPlayer.trashItem;
|
||||||
|
|
||||||
for (int i = 0; i < NetItem.MaxInventory; i++)
|
for (int i = 0; i < NetItem.MaxInventory; i++)
|
||||||
{
|
{
|
||||||
|
|
@ -1685,8 +1682,7 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.InventorySlots
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots)
|
||||||
+ NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots)
|
|
||||||
{
|
{
|
||||||
//59-78
|
//59-78
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
|
|
@ -1700,17 +1696,16 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
check = true;
|
check = true;
|
||||||
player.SendMessage(
|
player.SendMessage(
|
||||||
String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[i - 48].stack),
|
String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[index].stack),
|
||||||
Color.Cyan);
|
Color.Cyan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots - NetItem.MiscDyeSlots)
|
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots)
|
||||||
{
|
{
|
||||||
//79-88
|
//79-88
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
var index = i - (NetItem.MaxInventory -
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
|
||||||
(NetItem.DyeSlots + NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
|
||||||
if (dye[index] != null && dye[index].netID != 0)
|
if (dye[index] != null && dye[index].netID != 0)
|
||||||
{
|
{
|
||||||
item.netDefaults(dye[index].netID);
|
item.netDefaults(dye[index].netID);
|
||||||
|
|
@ -1725,11 +1720,12 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (i < NetItem.MaxInventory - NetItem.MiscEquipSlots)
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
|
||||||
{
|
{
|
||||||
//89-93
|
//89-93
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
var index = i - (NetItem.MaxInventory - (NetItem.MiscDyeSlots + NetItem.MiscEquipSlots));
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots);
|
||||||
if (miscEquips[index] != null && miscEquips[index].netID != 0)
|
if (miscEquips[index] != null && miscEquips[index].netID != 0)
|
||||||
{
|
{
|
||||||
item.netDefaults(miscEquips[index].netID);
|
item.netDefaults(miscEquips[index].netID);
|
||||||
|
|
@ -1739,16 +1735,19 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
check = true;
|
check = true;
|
||||||
player.SendMessage(
|
player.SendMessage(
|
||||||
String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, dye[index].stack),
|
String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, miscEquips[index].stack),
|
||||||
Color.Cyan);
|
Color.Cyan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
|
||||||
|
+ NetItem.MiscDyeSlots)
|
||||||
{
|
{
|
||||||
//93-98
|
//93-98
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
var index = i - (NetItem.MaxInventory - NetItem.MiscDyeSlots);
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots);
|
||||||
if (miscDyes[index] != null && miscDyes[index].netID != 0)
|
if (miscDyes[index] != null && miscDyes[index].netID != 0)
|
||||||
{
|
{
|
||||||
item.netDefaults(miscDyes[index].netID);
|
item.netDefaults(miscDyes[index].netID);
|
||||||
|
|
@ -1758,7 +1757,71 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
check = true;
|
check = true;
|
||||||
player.SendMessage(
|
player.SendMessage(
|
||||||
String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.name, dye[index].stack),
|
String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.name, miscDyes[index].stack),
|
||||||
|
Color.Cyan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots)
|
||||||
|
{
|
||||||
|
//98-138
|
||||||
|
Item item = new Item();
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
|
||||||
|
if (piggy[index] != null && piggy[index].netID != 0)
|
||||||
|
{
|
||||||
|
item.netDefaults(piggy[index].netID);
|
||||||
|
item.Prefix(piggy[index].prefix);
|
||||||
|
item.AffixName();
|
||||||
|
|
||||||
|
if (piggy[index].stack > item.maxStack)
|
||||||
|
{
|
||||||
|
check = true;
|
||||||
|
player.SendMessage(
|
||||||
|
String.Format("Stack cheat detected. Remove Piggy-bank item {0} ({1}) and then rejoin", item.name, piggy[index].stack),
|
||||||
|
Color.Cyan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (i <
|
||||||
|
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||||
|
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
|
||||||
|
{
|
||||||
|
//138-178
|
||||||
|
Item item = new Item();
|
||||||
|
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||||
|
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
|
||||||
|
if (safe[index] != null && safe[index].netID != 0)
|
||||||
|
{
|
||||||
|
item.netDefaults(safe[index].netID);
|
||||||
|
item.Prefix(safe[index].prefix);
|
||||||
|
item.AffixName();
|
||||||
|
|
||||||
|
if (safe[index].stack > item.maxStack)
|
||||||
|
{
|
||||||
|
check = true;
|
||||||
|
player.SendMessage(
|
||||||
|
String.Format("Stack cheat detected. Remove Safe item {0} ({1}) and then rejoin", item.name, safe[index].stack),
|
||||||
|
Color.Cyan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Item item = new Item();
|
||||||
|
if (trash != null && trash.netID != 0)
|
||||||
|
{
|
||||||
|
item.netDefaults(trash.netID);
|
||||||
|
item.Prefix(trash.prefix);
|
||||||
|
item.AffixName();
|
||||||
|
|
||||||
|
if (trash.stack > item.maxStack)
|
||||||
|
{
|
||||||
|
check = true;
|
||||||
|
player.SendMessage(
|
||||||
|
String.Format("Stack cheat detected. Remove trash item {0} ({1}) and then rejoin", item.name, trash.stack),
|
||||||
Color.Cyan);
|
Color.Cyan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue