Bank3 Implementation
This commit is contained in:
parent
73294cc2e2
commit
a0a98d19f3
4 changed files with 66 additions and 3 deletions
|
|
@ -41,6 +41,11 @@ namespace TShockAPI
|
|||
/// </summary>
|
||||
public static readonly int SafeSlots = PiggySlots;
|
||||
|
||||
/// <summary>
|
||||
/// 40 - The number of slots in a forge
|
||||
/// </summary>
|
||||
public static readonly int ForgeSlots = SafeSlots;
|
||||
|
||||
/// <summary>
|
||||
/// 59 - The size of the player's inventory (inventory, coins, ammo, held item)
|
||||
/// </summary>
|
||||
|
|
@ -69,7 +74,7 @@ namespace TShockAPI
|
|||
/// <summary>
|
||||
/// 180 - The inventory size (inventory, held item, armour, dies, coins, ammo, piggy, safe, and trash)
|
||||
/// </summary>
|
||||
public static readonly int MaxInventory = InventorySlots + ArmorSlots + DyeSlots + MiscEquipSlots + MiscDyeSlots + PiggySlots + SafeSlots + 1;
|
||||
public static readonly int MaxInventory = InventorySlots + ArmorSlots + DyeSlots + MiscEquipSlots + MiscDyeSlots + PiggySlots + SafeSlots + ForgeSlots + 1;
|
||||
|
||||
[JsonProperty("netID")]
|
||||
private int _netId;
|
||||
|
|
|
|||
|
|
@ -117,6 +117,7 @@ namespace TShockAPI
|
|||
Item[] miscDyes = player.TPlayer.miscDyes;
|
||||
Item[] piggy = player.TPlayer.bank.item;
|
||||
Item[] safe = player.TPlayer.bank2.item;
|
||||
Item[] forge = player.TPlayer.bank3.item;
|
||||
Item trash = player.TPlayer.trashItem;
|
||||
|
||||
for (int i = 0; i < NetItem.MaxInventory; i++)
|
||||
|
|
@ -172,9 +173,18 @@ namespace TShockAPI
|
|||
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
|
||||
this.inventory[i] = (NetItem)safe[index];
|
||||
}
|
||||
else if (i <
|
||||
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots + NetItem.ForgeSlots)
|
||||
{
|
||||
//179-219
|
||||
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.ForgeSlots);
|
||||
this.inventory[i] = (NetItem)forge[index];
|
||||
}
|
||||
else
|
||||
{
|
||||
//179
|
||||
//220
|
||||
this.inventory[i] = (NetItem)trash;
|
||||
}
|
||||
}
|
||||
|
|
@ -320,6 +330,20 @@ namespace TShockAPI
|
|||
player.TPlayer.bank2.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 + NetItem.ForgeSlots)
|
||||
{
|
||||
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots);
|
||||
player.TPlayer.bank3.item[index].netDefaults(this.inventory[i].NetId);
|
||||
|
||||
if (player.TPlayer.bank3.item[index].netID != 0)
|
||||
{
|
||||
player.TPlayer.bank3.item[index].stack = this.inventory[i].Stack;
|
||||
player.TPlayer.bank3.item[index].prefix = (byte)this.inventory[i].PrefixId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId);
|
||||
|
|
@ -368,6 +392,11 @@ namespace TShockAPI
|
|||
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++;
|
||||
}
|
||||
for (int k = 0; k < NetItem.ForgeSlots; k++)
|
||||
{
|
||||
NetMessage.SendData(5, -1, -1, Main.player[player.Index].bank3.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank3.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);
|
||||
|
||||
|
|
@ -411,6 +440,11 @@ namespace TShockAPI
|
|||
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++;
|
||||
}
|
||||
for (int k = 0; k < NetItem.ForgeSlots; k++)
|
||||
{
|
||||
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].bank3.item[k].name, player.Index, slot, (float)Main.player[player.Index].bank3.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);
|
||||
|
||||
|
|
|
|||
|
|
@ -1926,6 +1926,7 @@ namespace TShockAPI
|
|||
Item[] miscDyes = player.TPlayer.miscDyes;
|
||||
Item[] piggy = player.TPlayer.bank.item;
|
||||
Item[] safe = player.TPlayer.bank2.item;
|
||||
Item[] forge = player.TPlayer.bank3.item;
|
||||
Item trash = player.TPlayer.trashItem;
|
||||
|
||||
for (int i = 0; i < NetItem.MaxInventory; i++)
|
||||
|
|
@ -2074,6 +2075,29 @@ namespace TShockAPI
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (i <
|
||||
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
|
||||
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots + NetItem.ForgeSlots)
|
||||
{
|
||||
//179-219
|
||||
Item item = new Item();
|
||||
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
|
||||
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots);
|
||||
if (forge[index] != null && forge[index].netID != 0)
|
||||
{
|
||||
item.netDefaults(forge[index].netID);
|
||||
item.Prefix(forge[index].prefix);
|
||||
item.AffixName();
|
||||
|
||||
if (forge[index].stack > item.maxStack)
|
||||
{
|
||||
check = true;
|
||||
player.SendMessage(
|
||||
String.Format("Stack cheat detected. Remove Defender's Forge item {0} ({1}) and then rejoin", item.name, forge[index].stack),
|
||||
Color.Cyan);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Item item = new Item();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue