Extra slot will now function correctly in SSC. Fixes #1036

This commit is contained in:
White 2015-10-09 17:56:56 +10:30
parent fb401f03ef
commit be4d741f2b
2 changed files with 10 additions and 4 deletions

View file

@ -41,6 +41,7 @@ namespace TShockAPI.DB
new SqlColumn("Mana", MySqlDbType.Int32), new SqlColumn("Mana", MySqlDbType.Int32),
new SqlColumn("MaxMana", MySqlDbType.Int32), new SqlColumn("MaxMana", MySqlDbType.Int32),
new SqlColumn("Inventory", MySqlDbType.Text), new SqlColumn("Inventory", MySqlDbType.Text),
new SqlColumn("extraSlot", MySqlDbType.Int32),
new SqlColumn("spawnX", MySqlDbType.Int32), new SqlColumn("spawnX", MySqlDbType.Int32),
new SqlColumn("spawnY", MySqlDbType.Int32), new SqlColumn("spawnY", MySqlDbType.Int32),
new SqlColumn("skinVariant", MySqlDbType.Int32), new SqlColumn("skinVariant", MySqlDbType.Int32),
@ -92,6 +93,7 @@ namespace TShockAPI.DB
inventory.AddRange(new NetItem[NetItem.MaxInventory - inventory.Count]); inventory.AddRange(new NetItem[NetItem.MaxInventory - inventory.Count]);
} }
playerData.inventory = inventory.ToArray(); playerData.inventory = inventory.ToArray();
playerData.extraSlot = reader.Get<int>("extraSlot");
playerData.spawnX = reader.Get<int>("spawnX"); playerData.spawnX = reader.Get<int>("spawnX");
playerData.spawnY = reader.Get<int>("spawnY"); playerData.spawnY = reader.Get<int>("spawnY");
playerData.skinVariant = reader.Get<int>("skinVariant"); playerData.skinVariant = reader.Get<int>("skinVariant");
@ -172,8 +174,8 @@ namespace TShockAPI.DB
try try
{ {
database.Query( database.Query(
"INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, spawnX, spawnY, skinVariant, hair, hairDye, hairColor, pantsColor, shirtColor, underShirtColor, shoeColor, hideVisuals, skinColor, eyeColor, questsCompleted) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19);", "INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, extraSlot, spawnX, spawnY, skinVariant, hair, hairDye, hairColor, pantsColor, shirtColor, underShirtColor, shoeColor, hideVisuals, skinColor, eyeColor, questsCompleted) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20);",
player.User.ID, playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, String.Join("~", playerData.inventory), player.TPlayer.SpawnX, player.TPlayer.SpawnY, player.TPlayer.skinVariant, player.TPlayer.hair, player.TPlayer.hairDye, TShock.Utils.EncodeColor(player.TPlayer.hairColor), TShock.Utils.EncodeColor(player.TPlayer.pantsColor),TShock.Utils.EncodeColor(player.TPlayer.shirtColor), TShock.Utils.EncodeColor(player.TPlayer.underShirtColor), TShock.Utils.EncodeColor(player.TPlayer.shoeColor), TShock.Utils.EncodeBoolArray(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor),TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished); player.User.ID, playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, String.Join("~", playerData.inventory), playerData.extraSlot, player.TPlayer.SpawnX, player.TPlayer.SpawnY, player.TPlayer.skinVariant, player.TPlayer.hair, player.TPlayer.hairDye, TShock.Utils.EncodeColor(player.TPlayer.hairColor), TShock.Utils.EncodeColor(player.TPlayer.pantsColor),TShock.Utils.EncodeColor(player.TPlayer.shirtColor), TShock.Utils.EncodeColor(player.TPlayer.underShirtColor), TShock.Utils.EncodeColor(player.TPlayer.shoeColor), TShock.Utils.EncodeBoolArray(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor),TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished);
return true; return true;
} }
catch (Exception ex) catch (Exception ex)
@ -186,8 +188,8 @@ namespace TShockAPI.DB
try try
{ {
database.Query( database.Query(
"UPDATE tsCharacter SET Health = @0, MaxHealth = @1, Mana = @2, MaxMana = @3, Inventory = @4, spawnX = @6, spawnY = @7, hair = @8, hairDye = @9, hairColor = @10, pantsColor = @11, shirtColor = @12, underShirtColor = @13, shoeColor = @14, hideVisuals = @15, skinColor = @16, eyeColor = @17, questsCompleted = @18, skinVariant = @19 WHERE Account = @5;", "UPDATE tsCharacter SET Health = @0, MaxHealth = @1, Mana = @2, MaxMana = @3, Inventory = @4, spawnX = @6, spawnY = @7, hair = @8, hairDye = @9, hairColor = @10, pantsColor = @11, shirtColor = @12, underShirtColor = @13, shoeColor = @14, hideVisuals = @15, skinColor = @16, eyeColor = @17, questsCompleted = @18, skinVariant = @19, extraSlot = @20 WHERE Account = @5;",
playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, String.Join("~", playerData.inventory), player.User.ID, player.TPlayer.SpawnX, player.TPlayer.SpawnY, player.TPlayer.hair, player.TPlayer.hairDye, TShock.Utils.EncodeColor(player.TPlayer.hairColor), TShock.Utils.EncodeColor(player.TPlayer.pantsColor), TShock.Utils.EncodeColor(player.TPlayer.shirtColor), TShock.Utils.EncodeColor(player.TPlayer.underShirtColor), TShock.Utils.EncodeColor(player.TPlayer.shoeColor), TShock.Utils.EncodeBoolArray(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor), TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished, player.TPlayer.skinVariant); playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, String.Join("~", playerData.inventory), player.User.ID, player.TPlayer.SpawnX, player.TPlayer.SpawnY, player.TPlayer.hair, player.TPlayer.hairDye, TShock.Utils.EncodeColor(player.TPlayer.hairColor), TShock.Utils.EncodeColor(player.TPlayer.pantsColor), TShock.Utils.EncodeColor(player.TPlayer.shirtColor), TShock.Utils.EncodeColor(player.TPlayer.underShirtColor), TShock.Utils.EncodeColor(player.TPlayer.shoeColor), TShock.Utils.EncodeBoolArray(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor), TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished, player.TPlayer.skinVariant, player.TPlayer.extraAccessory ? 1 : 0);
return true; return true;
} }
catch (Exception ex) catch (Exception ex)

View file

@ -1156,6 +1156,7 @@ namespace TShockAPI
public bool exists; public bool exists;
public int spawnX= -1; public int spawnX= -1;
public int spawnY= -1; public int spawnY= -1;
public int? extraSlot;
public int? skinVariant; public int? skinVariant;
public int? hair; public int? hair;
public byte hairDye; public byte hairDye;
@ -1220,6 +1221,7 @@ namespace TShockAPI
this.spawnX = player.TPlayer.SpawnX; this.spawnX = player.TPlayer.SpawnX;
this.spawnY = player.TPlayer.SpawnY; this.spawnY = player.TPlayer.SpawnY;
} }
extraSlot = player.TPlayer.extraAccessory ? 1 : 0;
this.skinVariant = player.TPlayer.skinVariant; this.skinVariant = player.TPlayer.skinVariant;
this.hair = player.TPlayer.hair; this.hair = player.TPlayer.hair;
this.hairDye = player.TPlayer.hairDye; this.hairDye = player.TPlayer.hairDye;
@ -1323,6 +1325,8 @@ namespace TShockAPI
player.TPlayer.hairDye = this.hairDye; player.TPlayer.hairDye = this.hairDye;
player.TPlayer.anglerQuestsFinished = this.questsCompleted; player.TPlayer.anglerQuestsFinished = this.questsCompleted;
if (extraSlot != null)
player.TPlayer.extraAccessory = extraSlot.Value == 1 ? true : false;
if (this.skinVariant != null) if (this.skinVariant != null)
player.TPlayer.skinVariant = this.skinVariant.Value; player.TPlayer.skinVariant = this.skinVariant.Value;
if (this.hair != null) if (this.hair != null)