diff --git a/binaries/data/mods/public/maps/scripts/ConquestCommon.js b/binaries/data/mods/public/maps/scripts/ConquestCommon.js index b118216ae1..767c18ce99 100644 --- a/binaries/data/mods/public/maps/scripts/ConquestCommon.js +++ b/binaries/data/mods/public/maps/scripts/ConquestCommon.js @@ -49,7 +49,8 @@ Trigger.prototype.ConquestAddStructure = function(msg) let player = cmpOwnership.GetOwner(); if (!this.conquestEntitiesByPlayer[player]) { - warn("ConquestAddStructure: Unknown player " + player); + if (player != 0) + warn("ConquestAddStructure: Unknown player " + player); return; } diff --git a/binaries/data/mods/public/simulation/components/Foundation.js b/binaries/data/mods/public/simulation/components/Foundation.js index be2de0d792..ddcc07fa05 100644 --- a/binaries/data/mods/public/simulation/components/Foundation.js +++ b/binaries/data/mods/public/simulation/components/Foundation.js @@ -331,10 +331,11 @@ Foundation.prototype.Build = function(builderEnt, work) cmpBuildingObstruction.SetControlGroup2(cmpObstruction.GetControlGroup2()); // ---------------------------------------------------------------------- - + var cmpPlayerStatisticsTracker = QueryOwnerInterface(this.entity, IID_StatisticsTracker); - cmpPlayerStatisticsTracker.IncreaseConstructedBuildingsCounter(building); - + if (cmpPlayerStatisticsTracker) + cmpPlayerStatisticsTracker.IncreaseConstructedBuildingsCounter(building); + var cmpHealth = Engine.QueryInterface(this.entity, IID_Health); var cmpBuildingHealth = Engine.QueryInterface(building, IID_Health); cmpBuildingHealth.SetHitpoints(cmpHealth.GetHitpoints()); diff --git a/binaries/data/mods/public/simulation/helpers/Commands.js b/binaries/data/mods/public/simulation/helpers/Commands.js index 3ae567fdb3..9cea08481c 100644 --- a/binaries/data/mods/public/simulation/helpers/Commands.js +++ b/binaries/data/mods/public/simulation/helpers/Commands.js @@ -1016,7 +1016,7 @@ function TryConstructBuilding(player, cmpPlayer, controlAllUnits, cmd) // Check entity limits var cmpEntityLimits = QueryPlayerIDInterface(player, IID_EntityLimits); - if (!cmpEntityLimits || !cmpEntityLimits.AllowedToBuild(cmpBuildRestrictions.GetCategory())) + if (cmpEntityLimits && !cmpEntityLimits.AllowedToBuild(cmpBuildRestrictions.GetCategory())) { if (g_DebugCommands) warn("Invalid command: build limits check failed for player "+player+": "+uneval(cmd)); @@ -1028,8 +1028,7 @@ function TryConstructBuilding(player, cmpPlayer, controlAllUnits, cmd) } var cmpTechnologyManager = QueryPlayerIDInterface(player, IID_TechnologyManager); - - if (!cmpTechnologyManager.CanProduce(cmd.template)) + if (cmpTechnologyManager && !cmpTechnologyManager.CanProduce(cmd.template)) { if (g_DebugCommands) warn("Invalid command: required technology check failed for player "+player+": "+uneval(cmd)); diff --git a/binaries/data/mods/public/simulation/helpers/InitGame.js b/binaries/data/mods/public/simulation/helpers/InitGame.js index d3fbe863cb..980ec658d1 100644 --- a/binaries/data/mods/public/simulation/helpers/InitGame.js +++ b/binaries/data/mods/public/simulation/helpers/InitGame.js @@ -45,7 +45,7 @@ function InitGame(settings) // Sandbox, Very Easy, Easy, Medium, Hard, Very Hard let rate = [ 0.50, 0.64, 0.80, 1.00, 1.25, 1.56 ]; let cmpAIManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_AIManager); - for (let i = 1; i < settings.PlayerData.length; ++i) + for (let i = 0; i < settings.PlayerData.length; ++i) { let cmpPlayer = QueryPlayerIDInterface(i); cmpPlayer.SetCheatsEnabled(!!settings.CheatsEnabled);