Bank3 Implementation

This commit is contained in:
Zaicon Kiroshu 2016-11-23 18:51:11 -06:00
parent 73294cc2e2
commit a0a98d19f3
4 changed files with 66 additions and 3 deletions

View file

@ -41,6 +41,11 @@ namespace TShockAPI
/// </summary> /// </summary>
public static readonly int SafeSlots = PiggySlots; public static readonly int SafeSlots = PiggySlots;
/// <summary>
/// 40 - The number of slots in a forge
/// </summary>
public static readonly int ForgeSlots = SafeSlots;
/// <summary> /// <summary>
/// 59 - The size of the player's inventory (inventory, coins, ammo, held item) /// 59 - The size of the player's inventory (inventory, coins, ammo, held item)
/// </summary> /// </summary>
@ -69,7 +74,7 @@ namespace TShockAPI
/// <summary> /// <summary>
/// 180 - The inventory size (inventory, held item, armour, dies, coins, ammo, piggy, safe, and trash) /// 180 - The inventory size (inventory, held item, armour, dies, coins, ammo, piggy, safe, and trash)
/// </summary> /// </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")] [JsonProperty("netID")]
private int _netId; private int _netId;

View file

@ -117,6 +117,7 @@ namespace TShockAPI
Item[] miscDyes = player.TPlayer.miscDyes; Item[] miscDyes = player.TPlayer.miscDyes;
Item[] piggy = player.TPlayer.bank.item; Item[] piggy = player.TPlayer.bank.item;
Item[] safe = player.TPlayer.bank2.item; Item[] safe = player.TPlayer.bank2.item;
Item[] forge = player.TPlayer.bank3.item;
Item trash = player.TPlayer.trashItem; Item trash = player.TPlayer.trashItem;
for (int i = 0; i < NetItem.MaxInventory; i++) for (int i = 0; i < NetItem.MaxInventory; i++)
@ -172,9 +173,18 @@ namespace TShockAPI
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots); + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
this.inventory[i] = (NetItem)safe[index]; 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 else
{ {
//179 //220
this.inventory[i] = (NetItem)trash; this.inventory[i] = (NetItem)trash;
} }
} }
@ -320,6 +330,20 @@ namespace TShockAPI
player.TPlayer.bank2.item[index].prefix = (byte)this.inventory[i].PrefixId; 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 else
{ {
player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId); 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); 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++; 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); 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); 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++; 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); NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].trashItem.name, player.Index, slot, (float)Main.player[player.Index].trashItem.prefix);

View file

@ -1926,6 +1926,7 @@ namespace TShockAPI
Item[] miscDyes = player.TPlayer.miscDyes; Item[] miscDyes = player.TPlayer.miscDyes;
Item[] piggy = player.TPlayer.bank.item; Item[] piggy = player.TPlayer.bank.item;
Item[] safe = player.TPlayer.bank2.item; Item[] safe = player.TPlayer.bank2.item;
Item[] forge = player.TPlayer.bank3.item;
Item trash = player.TPlayer.trashItem; Item trash = player.TPlayer.trashItem;
for (int i = 0; i < NetItem.MaxInventory; i++) 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 else
{ {
Item item = new Item(); Item item = new Item();

@ -1 +1 @@
Subproject commit e0eb82d1f30c18bd954cee215a86367bd2d8b4af Subproject commit 9050642fb6a98d4f50d97db34f837aaf485d3bf7