Merge pull request #1354 from DogooFalchion/general-devel

Fix Prefixes in the Forge not being correct.
This commit is contained in:
Rodrigo 2016-12-22 10:18:26 +00:00 committed by GitHub
commit 94c19b6afd
3 changed files with 80 additions and 92 deletions

View file

@ -71,6 +71,11 @@ namespace TShockAPI
/// </summary> /// </summary>
public static readonly int MiscDyeSlots = MiscEquipSlots; public static readonly int MiscDyeSlots = MiscEquipSlots;
/// <summary>
/// 1 - The number of trash can slots.
/// </summary>
public static readonly int TrashSlots = 1;
/// <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>
@ -83,7 +88,8 @@ namespace TShockAPI
public static readonly Tuple<int, int> MiscDyeIndex = new Tuple<int, int>(MiscEquipIndex.Item2, MiscEquipIndex.Item2 + MiscDyeSlots); public static readonly Tuple<int, int> MiscDyeIndex = new Tuple<int, int>(MiscEquipIndex.Item2, MiscEquipIndex.Item2 + MiscDyeSlots);
public static readonly Tuple<int, int> PiggyIndex = new Tuple<int, int>(MiscDyeIndex.Item2, MiscDyeIndex.Item2 + PiggySlots); public static readonly Tuple<int, int> PiggyIndex = new Tuple<int, int>(MiscDyeIndex.Item2, MiscDyeIndex.Item2 + PiggySlots);
public static readonly Tuple<int, int> SafeIndex = new Tuple<int, int>(PiggyIndex.Item2, PiggyIndex.Item2 + SafeSlots); public static readonly Tuple<int, int> SafeIndex = new Tuple<int, int>(PiggyIndex.Item2, PiggyIndex.Item2 + SafeSlots);
public static readonly Tuple<int, int> ForgeIndex = new Tuple<int, int>(SafeIndex.Item2, SafeIndex.Item2 + ForgeSlots); public static readonly Tuple<int, int> TrashIndex = new Tuple<int, int>(SafeIndex.Item2, SafeIndex.Item2 + TrashSlots);
public static readonly Tuple<int, int> ForgeIndex = new Tuple<int, int>(TrashIndex.Item2, TrashIndex.Item2 + ForgeSlots);
[JsonProperty("netID")] [JsonProperty("netID")]
private int _netId; private int _netId;

View file

@ -164,16 +164,17 @@ namespace TShockAPI
var index = i - NetItem.SafeIndex.Item1; var index = i - NetItem.SafeIndex.Item1;
this.inventory[i] = (NetItem)safe[index]; this.inventory[i] = (NetItem)safe[index];
} }
else if (i < NetItem.ForgeIndex.Item2) else if (i < NetItem.TrashIndex.Item2)
{ {
//179-219 //179-219
var index = i - NetItem.ForgeIndex.Item1; this.inventory[i] = (NetItem)trash;
this.inventory[i] = (NetItem)forge[index];
} }
else else
{ {
//220 //220
this.inventory[i] = (NetItem)trash; var index = i - NetItem.ForgeIndex.Item1;
this.inventory[i] = (NetItem)forge[index];
} }
} }
} }
@ -226,7 +227,7 @@ namespace TShockAPI
for (int i = 0; i < NetItem.MaxInventory; i++) for (int i = 0; i < NetItem.MaxInventory; i++)
{ {
if (i < NetItem.InventorySlots) if (i < NetItem.InventoryIndex.Item2)
{ {
//0-58 //0-58
player.TPlayer.inventory[i].netDefaults(this.inventory[i].NetId); player.TPlayer.inventory[i].netDefaults(this.inventory[i].NetId);
@ -237,10 +238,10 @@ 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 + NetItem.ArmorSlots) else if (i < NetItem.ArmorIndex.Item2)
{ {
//59-78 //59-78
var index = i - NetItem.InventorySlots; var index = i - NetItem.ArmorIndex.Item1;
player.TPlayer.armor[index].netDefaults(this.inventory[i].NetId); player.TPlayer.armor[index].netDefaults(this.inventory[i].NetId);
if (player.TPlayer.armor[index].netID != 0) if (player.TPlayer.armor[index].netID != 0)
@ -249,10 +250,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.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots) else if (i < NetItem.DyeIndex.Item2)
{ {
//79-88 //79-88
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots); var index = i - NetItem.DyeIndex.Item1;
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)
@ -261,11 +262,10 @@ 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 < else if (i < NetItem.MiscEquipIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
{ {
//89-93 //89-93
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots); var index = i - NetItem.MiscEquipIndex.Item1;
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)
@ -274,13 +274,10 @@ namespace TShockAPI
player.TPlayer.miscEquips[index].prefix = (byte)this.inventory[i].PrefixId; player.TPlayer.miscEquips[index].prefix = (byte)this.inventory[i].PrefixId;
} }
} }
else if (i < else if (i < NetItem.MiscDyeIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
+ NetItem.MiscDyeSlots)
{ {
//93-98 //93-98
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots var index = i - NetItem.MiscDyeIndex.Item1;
+ 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)
@ -289,13 +286,10 @@ 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 < else if (i < NetItem.PiggyIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
NetItem.MiscDyeSlots + NetItem.PiggySlots)
{ {
//98-138 //98-138
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots var index = i - NetItem.PiggyIndex.Item1;
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
player.TPlayer.bank.item[index].netDefaults(this.inventory[i].NetId); player.TPlayer.bank.item[index].netDefaults(this.inventory[i].NetId);
if (player.TPlayer.bank.item[index].netID != 0) if (player.TPlayer.bank.item[index].netID != 0)
@ -304,12 +298,10 @@ namespace TShockAPI
player.TPlayer.bank.item[index].prefix = (byte)this.inventory[i].PrefixId; player.TPlayer.bank.item[index].prefix = (byte)this.inventory[i].PrefixId;
} }
} }
else if (i < else if (i < NetItem.SafeIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
{ {
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots //138-178
+ NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots); var index = i - NetItem.SafeIndex.Item1;
player.TPlayer.bank2.item[index].netDefaults(this.inventory[i].NetId); player.TPlayer.bank2.item[index].netDefaults(this.inventory[i].NetId);
if (player.TPlayer.bank2.item[index].netID != 0) if (player.TPlayer.bank2.item[index].netID != 0)
@ -318,22 +310,10 @@ 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 < else if (i < NetItem.TrashIndex.Item2)
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
{ {
//179-219
var index = i - NetItem.TrashIndex.Item1;
player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId); player.TPlayer.trashItem.netDefaults(this.inventory[i].NetId);
if (player.TPlayer.trashItem.netID != 0) if (player.TPlayer.trashItem.netID != 0)
@ -342,6 +322,19 @@ namespace TShockAPI
player.TPlayer.trashItem.prefix = (byte)this.inventory[i].PrefixId; player.TPlayer.trashItem.prefix = (byte)this.inventory[i].PrefixId;
} }
} }
else
{
//220
var index = i - NetItem.ForgeIndex.Item1;
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);
}
}
} }
float slot = 0f; float slot = 0f;
@ -380,13 +373,13 @@ 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++;
} }
NetMessage.SendData(5, -1, -1, Main.player[player.Index].trashItem.name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
for (int k = 0; k < NetItem.ForgeSlots; k++) 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); 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++; 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);
@ -428,13 +421,14 @@ 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++;
} }
NetMessage.SendData(5, player.Index, -1, Main.player[player.Index].trashItem.name, player.Index, slot++, (float)Main.player[player.Index].trashItem.prefix);
for (int k = 0; k < NetItem.ForgeSlots; k++) 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); 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++; 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);

View file

@ -1962,10 +1962,9 @@ namespace TShockAPI
Item[] safe = player.TPlayer.bank2.item; Item[] safe = player.TPlayer.bank2.item;
Item[] forge = player.TPlayer.bank3.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++)
{ {
if (i < NetItem.InventorySlots) if (i < NetItem.InventoryIndex.Item2)
{ {
//0-58 //0-58
Item item = new Item(); Item item = new Item();
@ -1983,11 +1982,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots) else if (i < NetItem.ArmorIndex.Item2)
{ {
//59-78 //59-78
var index = i - NetItem.ArmorIndex.Item1;
Item item = new Item(); Item item = new Item();
var index = i - NetItem.InventorySlots;
if (armor[index] != null && armor[index].netID != 0) if (armor[index] != null && armor[index].netID != 0)
{ {
item.netDefaults(armor[index].netID); item.netDefaults(armor[index].netID);
@ -2002,11 +2001,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots) else if (i < NetItem.DyeIndex.Item2)
{ {
//79-88 //79-88
var index = i - NetItem.DyeIndex.Item1;
Item item = new Item(); Item item = new Item();
var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
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);
@ -2021,12 +2020,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < else if (i < NetItem.MiscEquipIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
{ {
//89-93 //89-93
var index = i - NetItem.MiscEquipIndex.Item1;
Item item = new Item(); Item item = new Item();
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);
@ -2041,14 +2039,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < else if (i < NetItem.MiscDyeIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
+ NetItem.MiscDyeSlots)
{ {
//93-98 //93-98
var index = i - NetItem.MiscDyeIndex.Item1;
Item item = new Item(); Item item = new Item();
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);
@ -2063,14 +2058,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < else if (i < NetItem.PiggyIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
NetItem.MiscDyeSlots + NetItem.PiggySlots)
{ {
//98-138 //98-138
var index = i - NetItem.PiggyIndex.Item1;
Item item = new Item(); 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) if (piggy[index] != null && piggy[index].netID != 0)
{ {
item.netDefaults(piggy[index].netID); item.netDefaults(piggy[index].netID);
@ -2086,14 +2078,11 @@ namespace TShockAPI
} }
} }
} }
else if (i < else if (i < NetItem.SafeIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
{ {
//138-178 //138-178
var index = i - NetItem.SafeIndex.Item1;
Item item = new Item(); 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) if (safe[index] != null && safe[index].netID != 0)
{ {
item.netDefaults(safe[index].netID); item.netDefaults(safe[index].netID);
@ -2109,31 +2098,9 @@ namespace TShockAPI
} }
} }
} }
else if (i < else if (i < NetItem.TrashIndex.Item2)
NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots + NetItem.ForgeSlots)
{ {
//179-219 //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(); Item item = new Item();
if (trash != null && trash.netID != 0) if (trash != null && trash.netID != 0)
{ {
@ -2150,6 +2117,27 @@ namespace TShockAPI
} }
} }
} }
else
{
//220
var index = i - NetItem.ForgeIndex.Item1;
Item item = new Item();
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);
}
}
}
} }
return check; return check;