From ccccd641d7bc39c26573a41c474dfac4c318b418 Mon Sep 17 00:00:00 2001 From: CoderCow Date: Mon, 17 Feb 2014 12:19:45 +0100 Subject: [PATCH 1/3] Fixed PlayerInfo packet handling. --- TShockAPI/GetDataHandlers.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 33cd90796..4a30e84fe 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1385,7 +1385,15 @@ private static bool HandlePlayerInfo(GetDataHandlerArgs args) var playerid = args.Data.ReadInt8(); var hair = args.Data.ReadInt8(); var male = args.Data.ReadBoolean(); - args.Data.Position += 21; + byte hairDye = args.Data.ReadInt8(); + BitsByte hideVisual = args.Data.ReadInt8(); + Color hairColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color skinColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color eyeColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color shirtColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color underShirtColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color pantsColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); + Color shoeColor = new Color(args.Data.ReadInt8(), args.Data.ReadInt8(), args.Data.ReadInt8()); var difficulty = args.Data.ReadInt8(); string name = Encoding.UTF8.GetString(args.Data.ReadBytes((int) (args.Data.Length - args.Data.Position - 1))); @@ -1402,6 +1410,14 @@ private static bool HandlePlayerInfo(GetDataHandlerArgs args) } if (args.Player.ReceivedInfo) { + args.Player.TPlayer.hairDye = hairDye; + + // Since Terraria 1.2.3 these settings can be changed afterwards. + args.Player.TPlayer.shirtColor = shirtColor; + args.Player.TPlayer.shirtColor = shirtColor; + args.Player.TPlayer.underShirtColor = underShirtColor; + args.Player.TPlayer.shoeColor = shoeColor; + args.Player.TPlayer.hideVisual = hideVisual; return true; } if (TShock.Config.MediumcoreOnly && difficulty < 1) From 1fd56011764208c64a95d04a338feca9ad78cfbe Mon Sep 17 00:00:00 2001 From: CoderCow Date: Mon, 17 Feb 2014 12:33:22 +0100 Subject: [PATCH 2/3] Fix to previous commit. --- TShockAPI/GetDataHandlers.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index 4a30e84fe..f933c81fd 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1410,10 +1410,9 @@ private static bool HandlePlayerInfo(GetDataHandlerArgs args) } if (args.Player.ReceivedInfo) { - args.Player.TPlayer.hairDye = hairDye; - // Since Terraria 1.2.3 these settings can be changed afterwards. - args.Player.TPlayer.shirtColor = shirtColor; + args.Player.TPlayer.hairDye = hairDye; + args.Player.TPlayer.pantsColor = pantsColor; args.Player.TPlayer.shirtColor = shirtColor; args.Player.TPlayer.underShirtColor = underShirtColor; args.Player.TPlayer.shoeColor = shoeColor; From 9b07ecaa67550577b72366eb03bcac291a80698e Mon Sep 17 00:00:00 2001 From: CoderCow Date: Mon, 17 Feb 2014 15:23:35 +0100 Subject: [PATCH 3/3] Allowed for ingame hair color changes too. --- TShockAPI/GetDataHandlers.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TShockAPI/GetDataHandlers.cs b/TShockAPI/GetDataHandlers.cs index f933c81fd..5dfdcfb67 100755 --- a/TShockAPI/GetDataHandlers.cs +++ b/TShockAPI/GetDataHandlers.cs @@ -1410,7 +1410,8 @@ private static bool HandlePlayerInfo(GetDataHandlerArgs args) } if (args.Player.ReceivedInfo) { - // Since Terraria 1.2.3 these settings can be changed afterwards. + // Since Terraria 1.2.3 these character properties can change ingame. + args.Player.TPlayer.hairColor = hairColor; args.Player.TPlayer.hairDye = hairDye; args.Player.TPlayer.pantsColor = pantsColor; args.Player.TPlayer.shirtColor = shirtColor;