From e5cbee82e9a06d798bfe0d696eed25a606f8c994 Mon Sep 17 00:00:00 2001 From: White Date: Fri, 10 Jul 2015 14:34:42 +0930 Subject: [PATCH 1/3] Backwards compatibility for databases with pre-existing SSC entries --- TShockAPI/DB/CharacterManager.cs | 7 ++++++- TShockAPI/TSPlayer.cs | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/TShockAPI/DB/CharacterManager.cs b/TShockAPI/DB/CharacterManager.cs index bd416ad4..c6f68cff 100755 --- a/TShockAPI/DB/CharacterManager.cs +++ b/TShockAPI/DB/CharacterManager.cs @@ -77,7 +77,12 @@ namespace TShockAPI.DB playerData.maxHealth = reader.Get("MaxHealth"); playerData.mana = reader.Get("Mana"); playerData.maxMana = reader.Get("MaxMana"); - playerData.inventory = reader.Get("Inventory").Split('~').Select(NetItem.Parse).ToArray(); + List inventory = reader.Get("Inventory").Split('~').Select(NetItem.Parse).ToList(); + if (inventory.Count < NetItem.MaxInventory) + { + inventory.AddRange(new NetItem[NetItem.MaxInventory - inventory.Count]); + } + playerData.inventory = inventory.ToArray(); playerData.spawnX = reader.Get("spawnX"); playerData.spawnY = reader.Get("spawnY"); playerData.hair = reader.Get("hair"); diff --git a/TShockAPI/TSPlayer.cs b/TShockAPI/TSPlayer.cs index 96fba189..69f5e604 100755 --- a/TShockAPI/TSPlayer.cs +++ b/TShockAPI/TSPlayer.cs @@ -1106,6 +1106,13 @@ namespace TShockAPI } } + /// + /// Stores an item at the specific storage slot + /// + /// + /// + /// + /// public void StoreSlot(int slot, int netID, byte prefix, int stack) { if (slot > (this.inventory.Length - 1)) //if the slot is out of range then dont save @@ -1116,6 +1123,10 @@ namespace TShockAPI this.inventory[slot] = new NetItem(netID, stack, prefix); } + /// + /// Copies a characters data to this object + /// + /// public void CopyCharacter(TSPlayer player) { this.health = player.TPlayer.statLife > 0 ? player.TPlayer.statLife : 1; @@ -1192,6 +1203,7 @@ namespace TShockAPI NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots) { + //98-138 var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots); this.inventory[i] = (NetItem)piggy[index]; @@ -1200,17 +1212,23 @@ namespace TShockAPI NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots) { + //138-178 var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots); this.inventory[i] = (NetItem)safe[index]; } else { + //179 this.inventory[i] = (NetItem)trash; } } } + /// + /// Restores a player's character to the state stored in the database + /// + /// public void RestoreCharacter(TSPlayer player) { // Start ignoring SSC-related packets! This is critical so that we don't send or receive dirty data! From 11d0fd1209ef57a043512dd614e900832050657f Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Fri, 10 Jul 2015 01:07:14 -0600 Subject: [PATCH 2/3] Update max projectile damage to 1,175. --- CHANGELOG.md | 1 + TShockAPI/ConfigFile.cs | 2 +- scripts/deploy_release.py | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 874a97d3..0d38c1db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin * Fixed disappearing NPCs (@WhiteXZ) * Added much more performant code, SendQ, to server module. Reduces downstream network overhead by at least 40% (@tylerjwatson) * API: Updated TSPlayer.Disable to use new buffs (@Enerdy) +* Updated default max projectile damage to 1,175 (based on 625 people) ## TShock 4.3.1 diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index adcea438..4bf67d4c 100755 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -293,7 +293,7 @@ namespace TShockAPI public int MaxDamage = 175; [Description("The maximum damage a projectile can inflict.")] - public int MaxProjDamage = 175; + public int MaxProjDamage = 1175; [Description("Kicks a user if set to true, if they inflict more damage then the max damage.")] public bool KickOnDamageThresholdBroken = false; diff --git a/scripts/deploy_release.py b/scripts/deploy_release.py index a9194eba..5e2a90e1 100644 --- a/scripts/deploy_release.py +++ b/scripts/deploy_release.py @@ -99,7 +99,7 @@ upload_headers = {'Authorization': 'token ' + token, 'Content-Type':'application #upload the binary, resulting in a complete binary r = requests.post(upload_url, data=open(release_name, 'rb'), headers = upload_headers, verify=False) -read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt") -read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt") -read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt") -read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt") \ No newline at end of file +# read_and_update_config_on_confluence(config_desc_page, "ConfigDescriptions.txt") +# read_and_update_config_on_confluence(ssc_desc_page, "ServerSideConfigDescriptions.txt") +# read_and_update_config_on_confluence(permissions_desc_page, "PermissionsDescriptions.txt") +# read_and_update_config_on_confluence(rest_desc_page, "RestDescriptions.txt") \ No newline at end of file From 23ab14df4fa1326c0ffac967570a78931df058e7 Mon Sep 17 00:00:00 2001 From: White Date: Fri, 10 Jul 2015 16:58:32 +0930 Subject: [PATCH 3/3] Added backwards compatibility for SSC --- TShockAPI/DB/CharacterManager.cs | 8 ++++++++ TShockAPI/NetItem.cs | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/TShockAPI/DB/CharacterManager.cs b/TShockAPI/DB/CharacterManager.cs index c6f68cff..20ec8b82 100755 --- a/TShockAPI/DB/CharacterManager.cs +++ b/TShockAPI/DB/CharacterManager.cs @@ -80,6 +80,14 @@ namespace TShockAPI.DB List inventory = reader.Get("Inventory").Split('~').Select(NetItem.Parse).ToList(); if (inventory.Count < NetItem.MaxInventory) { + //TODO: unhardcode this - stop using magic numbers and use NetItem numbers + //Set new armour slots empty + inventory.InsertRange(67, new NetItem[2]); + //Set new vanity slots empty + inventory.InsertRange(77, new NetItem[2]); + //Set new dye slots empty + inventory.InsertRange(87, new NetItem[2]); + //Set the rest of the new slots empty inventory.AddRange(new NetItem[NetItem.MaxInventory - inventory.Count]); } playerData.inventory = inventory.ToArray(); diff --git a/TShockAPI/NetItem.cs b/TShockAPI/NetItem.cs index 35fef45d..af2c8ac8 100644 --- a/TShockAPI/NetItem.cs +++ b/TShockAPI/NetItem.cs @@ -24,7 +24,7 @@ namespace TShockAPI public static readonly int SafeSlots = PiggySlots; /// - /// 59 - The size of the player's inventory (inventory, coins, ammo) + /// 59 - The size of the player's inventory (inventory, coins, ammo, held item) /// public static readonly int InventorySlots = 59; @@ -49,7 +49,7 @@ namespace TShockAPI public static readonly int MiscDyeSlots = MiscEquipSlots; /// - /// 179 - The inventory size (including armour, dies, coins, ammo, piggy, safe, and trash) + /// 180 - The inventory size (inventory, held item, armour, dies, coins, ammo, piggy, safe, and trash) /// public static readonly int MaxInventory = InventorySlots + ArmorSlots + DyeSlots + MiscEquipSlots + MiscDyeSlots + PiggySlots + SafeSlots + 1;