From d9baeaa2e12618380169dc3d8e3b4161653a9a97 Mon Sep 17 00:00:00 2001 From: Markus Isberg <3e849f2e5c@pm.me> Date: Tue, 11 Jan 2022 23:47:46 +0900 Subject: [PATCH] Hotfix 0.15.23.0 --- .../ClientSource/Characters/CharacterNetworking.cs | 3 ++- Barotrauma/BarotraumaClient/LinuxClient.csproj | 2 +- Barotrauma/BarotraumaClient/MacClient.csproj | 2 +- Barotrauma/BarotraumaClient/WindowsClient.csproj | 2 +- Barotrauma/BarotraumaServer/LinuxServer.csproj | 2 +- Barotrauma/BarotraumaServer/MacServer.csproj | 2 +- .../ServerSource/Characters/CharacterNetworking.cs | 1 + .../GameSession/GameModes/MultiPlayerCampaign.cs | 1 + .../ServerSource/Networking/GameServer.cs | 2 +- .../ServerSource/Networking/RespawnManager.cs | 1 + .../BarotraumaServer/ServerSource/Networking/Voting.cs | 2 +- Barotrauma/BarotraumaServer/WindowsServer.csproj | 2 +- Barotrauma/BarotraumaShared/changelog.txt | 9 +++++++++ 13 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterNetworking.cs b/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterNetworking.cs index 62ebb226f..946301454 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterNetworking.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterNetworking.cs @@ -323,9 +323,10 @@ namespace Barotrauma } break; case 1: //NetEntityEvent.Type.Control + bool myCharacter = msg.ReadBoolean(); byte ownerID = msg.ReadByte(); ResetNetState(); - if (ownerID == GameMain.Client.ID) + if (myCharacter) { if (controlled != null) { diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj index 9bd087b75..7bbfaee3a 100644 --- a/Barotrauma/BarotraumaClient/LinuxClient.csproj +++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 Barotrauma diff --git a/Barotrauma/BarotraumaClient/MacClient.csproj b/Barotrauma/BarotraumaClient/MacClient.csproj index 79f8088a0..315be0cad 100644 --- a/Barotrauma/BarotraumaClient/MacClient.csproj +++ b/Barotrauma/BarotraumaClient/MacClient.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 Barotrauma diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj index bad4553d8..f6d190782 100644 --- a/Barotrauma/BarotraumaClient/WindowsClient.csproj +++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 Barotrauma diff --git a/Barotrauma/BarotraumaServer/LinuxServer.csproj b/Barotrauma/BarotraumaServer/LinuxServer.csproj index b3c51f3b8..f8be62734 100644 --- a/Barotrauma/BarotraumaServer/LinuxServer.csproj +++ b/Barotrauma/BarotraumaServer/LinuxServer.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma Dedicated Server - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 DedicatedServer diff --git a/Barotrauma/BarotraumaServer/MacServer.csproj b/Barotrauma/BarotraumaServer/MacServer.csproj index da76addf9..ee4cfe02e 100644 --- a/Barotrauma/BarotraumaServer/MacServer.csproj +++ b/Barotrauma/BarotraumaServer/MacServer.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma Dedicated Server - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 DedicatedServer diff --git a/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs b/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs index bc7428d42..a61d869c3 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Characters/CharacterNetworking.cs @@ -321,6 +321,7 @@ namespace Barotrauma case NetEntityEvent.Type.Control: msg.WriteRangedInteger(1, min, max); Client owner = (Client)extraData[1]; + msg.Write(owner == c && owner.Character == this); msg.Write(owner != null && owner.Character == this && GameMain.Server.ConnectedClients.Contains(owner) ? owner.ID : (byte)0); break; case NetEntityEvent.Type.Status: diff --git a/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs b/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs index a47a9f704..34883971f 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/GameSession/GameModes/MultiPlayerCampaign.cs @@ -220,6 +220,7 @@ namespace Barotrauma { RespawnManager.ReduceCharacterSkills(characterInfo); characterInfo.RemoveSavedStatValuesOnDeath(); + characterInfo.CauseOfDeath = null; } c.CharacterInfo = characterInfo; characterData.RemoveAll(cd => cd.MatchesClient(c)); diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs index bf3347923..199860e32 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs @@ -1337,9 +1337,9 @@ namespace Barotrauma.Networking break; case ClientPermissions.ManageRound: bool end = inc.ReadBoolean(); - bool save = inc.ReadBoolean(); if (end) { + bool save = inc.ReadBoolean(); if (gameStarted) { Log("Client \"" + GameServer.ClientLogName(sender) + "\" ended the round.", ServerLog.MessageType.ServerMessage); diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs index be893a291..f39ffd210 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/RespawnManager.cs @@ -399,6 +399,7 @@ namespace Barotrauma.Networking { ReduceCharacterSkills(characterInfos[i]); characterInfos[i].RemoveSavedStatValuesOnDeath(); + characterInfos[i].CauseOfDeath = null; } } } diff --git a/Barotrauma/BarotraumaServer/ServerSource/Networking/Voting.cs b/Barotrauma/BarotraumaServer/ServerSource/Networking/Voting.cs index 8d37c948a..5868b7235 100644 --- a/Barotrauma/BarotraumaServer/ServerSource/Networking/Voting.cs +++ b/Barotrauma/BarotraumaServer/ServerSource/Networking/Voting.cs @@ -131,7 +131,7 @@ namespace Barotrauma { string subName = inc.ReadString(); SubmarineInfo subInfo = SubmarineInfo.SavedSubmarines.FirstOrDefault(s => s.Name == subName); - if (GameMain.GameSession?.Campaign is MultiPlayerCampaign campaign && campaign.CanPurchaseSub(subInfo)) + if (GameMain.GameSession?.Campaign is MultiPlayerCampaign campaign && (campaign.CanPurchaseSub(subInfo) || GameMain.GameSession.IsSubmarineOwned(subInfo))) { StartSubmarineVote(subInfo, voteType, sender); } diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj index 6901aac71..ec80b7889 100644 --- a/Barotrauma/BarotraumaServer/WindowsServer.csproj +++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj @@ -6,7 +6,7 @@ Barotrauma FakeFish, Undertow Games Barotrauma Dedicated Server - 0.15.22.1 + 0.15.23.0 Copyright © FakeFish 2018-2020 AnyCPU;x64 DedicatedServer diff --git a/Barotrauma/BarotraumaShared/changelog.txt b/Barotrauma/BarotraumaShared/changelog.txt index e40a686b8..cbb8356d3 100644 --- a/Barotrauma/BarotraumaShared/changelog.txt +++ b/Barotrauma/BarotraumaShared/changelog.txt @@ -1,3 +1,12 @@ +--------------------------------------------------------------------------------------------------------- +v0.15.23.0 +--------------------------------------------------------------------------------------------------------- + +- Fixed inability to switch subs in multiplayer campaign, unless you opt to switch at the same time as you purchase the new sub. +- Fixed server not loading the previous save, but continuing from where you left off if you return to the server lobby without saving and try to continue. +- Fixed characters who've died and respawned during a round getting a penalty to their skills again on the following round. +- Attempt to fix clients sometimes gaining control of an incorrect character in the multiplayer campaign. + --------------------------------------------------------------------------------------------------------- v0.15.22.1 ---------------------------------------------------------------------------------------------------------