Index: binaries/data/mods/public/gui/credits/texts/programming.json =================================================================== --- binaries/data/mods/public/gui/credits/texts/programming.json +++ binaries/data/mods/public/gui/credits/texts/programming.json @@ -28,6 +28,7 @@ { "nick": "Alan", "name": "Alan Kemp" }, { "nick": "Alex", "name": "Alexander Yakobovich" }, { "nick": "alpha123", "name": "Peter P. Cannici" }, + { "nick": "Ampaex", "name": "Antonio Vazquez" }, { "name": "André Puel" }, { "nick": "andy5995", "name": "Andy Alt" }, { "nick": "Angen" }, Index: binaries/data/mods/public/simulation/helpers/Commands.js =================================================================== --- binaries/data/mods/public/simulation/helpers/Commands.js +++ binaries/data/mods/public/simulation/helpers/Commands.js @@ -734,6 +734,14 @@ } var cmpTechnologyManager = QueryOwnerInterface(ent, IID_TechnologyManager); + + //Check if the player requiring a technology has cmpTecnologyManager + if(cmpUpgrade.GetRequiredTechnology(cmd.template) && !cmpTechnologyManager){ + if (g_DebugCommands) + warn("Invalid command: the selected player cannot upgrade this technology : " + uneval(cmd)); + continue; + } + if (cmpUpgrade.GetRequiredTechnology(cmd.template) && !cmpTechnologyManager.IsTechnologyResearched(cmpUpgrade.GetRequiredTechnology(cmd.template))) { if (g_DebugCommands)