From b36d3fc70ee80f9ece36e9310d6c6441d3678ac0 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Sun, 3 Dec 2017 15:32:51 +0200 Subject: [PATCH] Fixed clients not getting notified when a character is spawned midround by a repeating MonsterEvent (eventually causing them to be kicked out because of desync). Closes #59 --- Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs b/Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs index c63780770..9c2ed6ec2 100644 --- a/Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs +++ b/Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs @@ -73,14 +73,14 @@ namespace Barotrauma { base.Init(); - monsters = SpawnMonsters(Rand.Range(minAmount, maxAmount, Rand.RandSync.Server)); + monsters = SpawnMonsters(Rand.Range(minAmount, maxAmount, Rand.RandSync.Server), false); if (GameSettings.VerboseLogging) { DebugConsole.NewMessage("Initialized MonsterEvent (" + monsters[0]?.SpeciesName + " x" + monsters.Length + ")", Color.White); } } - private Character[] SpawnMonsters(int amount) + private Character[] SpawnMonsters(int amount, bool createNetworkEvent) { if (disallowed) return null; @@ -101,7 +101,7 @@ namespace Barotrauma { spawnPos.X += Rand.Range(-0.5f, 0.5f, Rand.RandSync.Server); spawnPos.Y += Rand.Range(-0.5f, 0.5f, Rand.RandSync.Server); - monsters[i] = Character.Create(characterFile, spawnPos, null, GameMain.Client != null, true, false); + monsters[i] = Character.Create(characterFile, spawnPos, null, GameMain.Client != null, true, createNetworkEvent); } return monsters; @@ -127,7 +127,7 @@ namespace Barotrauma { if (monsters[i] == null || monsters[i].Removed || monsters[i].IsDead) { - monsters[i] = SpawnMonsters(1)[0]; + monsters[i] = SpawnMonsters(1, true)[0]; } } }