From 0ea58cde3e8b88301fddd35ec776db53ed787729 Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Tue, 13 May 2014 23:08:23 -0400 Subject: [PATCH] Update SSC to include quests, skin color, eye color --- TShockAPI/DB/CharacterManager.cs | 22 +++++++++++++++------- TShockAPI/TSPlayer.cs | 14 +++++++++++++- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/TShockAPI/DB/CharacterManager.cs b/TShockAPI/DB/CharacterManager.cs index 7286c264..dc392eb5 100755 --- a/TShockAPI/DB/CharacterManager.cs +++ b/TShockAPI/DB/CharacterManager.cs @@ -47,7 +47,10 @@ namespace TShockAPI.DB new SqlColumn("shirtColor", MySqlDbType.Int32), new SqlColumn("underShirtColor", MySqlDbType.Int32), new SqlColumn("shoeColor", MySqlDbType.Int32), - new SqlColumn("hideVisuals", MySqlDbType.Int32) + new SqlColumn("hideVisuals", MySqlDbType.Int32), + new SqlColumn("skinColor", MySqlDbType.Int32), + new SqlColumn("eyeColor", MySqlDbType.Int32), + new SqlColumn("questsCompleted", MySqlDbType.Int32) ); var creator = new SqlTableCreator(db, db.GetSqlType() == SqlType.Sqlite @@ -82,6 +85,9 @@ namespace TShockAPI.DB playerData.underShirtColor = TShock.Utils.DecodeColor(reader.Get("underShirtColor")); playerData.shoeColor = TShock.Utils.DecodeColor(reader.Get("shoeColor")); playerData.hideVisuals = TShock.Utils.DecodeBitsByte(reader.Get("hideVisuals")); + playerData.skinColor = TShock.Utils.DecodeColor(reader.Get("skinColor")); + playerData.eyeColor = TShock.Utils.DecodeColor(reader.Get("eyeColor")); + playerData.questsCompleted = reader.Get("questsCompleted"); return playerData; } } @@ -99,8 +105,8 @@ namespace TShockAPI.DB string initialItems = "-15,1,0~-13,1,0~-16,1,45~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0~0,0,0"; try { - database.Query("INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, spawnX, spawnY) VALUES (@0, @1, @2, @3, @4, @5, @6, @7);", user.ID, - 100, 100, 20, 20, initialItems, -1, -1); + database.Query("INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, spawnX, spawnY, completedQuests) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8);", user.ID, + 100, 100, 20, 20, initialItems, -1, -1, 0); return true; } catch (Exception ex) @@ -123,8 +129,9 @@ namespace TShockAPI.DB { try { - database.Query("INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, spawnX, spawnY, hair, hairDye, hairColor, pantsColor, shirtColor, underShirtColor, shoeColor, hideVisuals) VALUES (@0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14);", player.UserID, - playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, NetItem.ToString(playerData.inventory), 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.EncodeBitsByte(player.TPlayer.hideVisual)); + database.Query( + "INSERT INTO tsCharacter (Account, Health, MaxHealth, Mana, MaxMana, Inventory, spawnX, spawnY, 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);", + player.UserID, playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, NetItem.ToString(playerData.inventory), 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.EncodeBitsByte(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor), TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished); return true; } catch (Exception ex) @@ -136,8 +143,9 @@ namespace TShockAPI.DB { try { - 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 WHERE Account = @5;", playerData.health, playerData.maxHealth, - playerData.mana, playerData.maxMana, NetItem.ToString(playerData.inventory), player.UserID, 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.EncodeBitsByte(player.TPlayer.hideVisual)); + 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 WHERE Account = @5;", + playerData.health, playerData.maxHealth, playerData.mana, playerData.maxMana, NetItem.ToString(playerData.inventory), player.UserID, 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.EncodeBitsByte(player.TPlayer.hideVisual), TShock.Utils.EncodeColor(player.TPlayer.skinColor), TShock.Utils.EncodeColor(player.TPlayer.eyeColor), player.TPlayer.anglerQuestsFinished); return true; } catch (Exception ex) diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index 553cd640..e21ce03a 100755 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -1290,8 +1290,10 @@ namespace TShockAPI public Color? shirtColor; public Color? underShirtColor; public Color? shoeColor; + public Color? skinColor; + public Color? eyeColor; public BitsByte? hideVisuals; - + public int questsCompleted; public PlayerData(TSPlayer player) { @@ -1358,6 +1360,9 @@ namespace TShockAPI this.underShirtColor = player.TPlayer.underShirtColor; this.shoeColor = player.TPlayer.shoeColor; this.hideVisuals = player.TPlayer.hideVisual; + this.skinColor = player.TPlayer.skinColor; + this.skinColor = player.TPlayer.eyeColor; + this.questsCompleted = player.TPlayer.anglerQuestsFinished; Item[] inventory = player.TPlayer.inventory; Item[] armor = player.TPlayer.armor; @@ -1446,6 +1451,7 @@ namespace TShockAPI player.sX = this.spawnX; player.sY = this.spawnY; player.TPlayer.hairDye = this.hairDye; + player.TPlayer.anglerQuestsFinished = this.questsCompleted; if (this.hair != null) player.TPlayer.hair = this.hair.Value; @@ -1459,6 +1465,11 @@ namespace TShockAPI player.TPlayer.underShirtColor = this.underShirtColor.Value; if (this.shoeColor != null) player.TPlayer.shoeColor = this.shoeColor.Value; + if (this.skinColor != null) + player.TPlayer.skinColor = this.skinColor.Value; + if (this.eyeColor != null) + player.TPlayer.eyeColor = this.eyeColor.Value; + if (this.hideVisuals != null) player.TPlayer.hideVisual = this.hideVisuals.Value; else @@ -1591,6 +1602,7 @@ namespace TShockAPI } NetMessage.SendData(50, -1, -1, "", player.Index, 0f, 0f, 0f, 0); NetMessage.SendData(50, player.Index, -1, "", player.Index, 0f, 0f, 0f, 0); + NetMessage.SendData(76, -1, -1, "", player.Index); } }