Maniac
Apolyton Sage
Modding certain Python files will make it impossible to play a multiplayer game effectively because whenever they are called you will get OOS errors. Anything using custom script data, for instance, will do this.
Script data? You mean the following code is guaranteed to cause OOS?
Does Final Frontier not work in multiplayer?
Code:
def onUnitBuildImprovement(self, argsList):
'Unit begins enacting a Build (building an Improvement or Route)'
pUnit, iBuild, bFinished = argsList
iBuildFortID = CvUtil.findInfoTypeNum(gc.getBuildInfo,gc.getNumBuildInfos(),'BUILD_FORT')
iBuildFungalTowerID = CvUtil.findInfoTypeNum(gc.getBuildInfo,gc.getNumBuildInfos(),'BUILD_FUNGAL_TOWER')
iBuildKelpID = CvUtil.findInfoTypeNum(gc.getBuildInfo,gc.getNumBuildInfos(),'BUILD_KELP_FARM')
iWindmillSea = gc.getInfoTypeForString('IMPROVEMENT_WINDMILL_SEA')
iMiningPlatform = gc.getInfoTypeForString('IMPROVEMENT_MINING_PLATFORM')
iTidalHarness = gc.getInfoTypeForString('IMPROVEMENT_TIDAL_HARNESS')
if (iBuild == iBuildKelpID):
pPlot = pUnit.plot()
if pPlot.getImprovementType() == iWindmillSea:
pUnit.setScriptData("BuildingKelpOnMill")
elif pPlot.getImprovementType() == iMiningPlatform:
pUnit.setScriptData("BuildingKelpOnMine")
elif pPlot.getImprovementType() == iTidalHarness:
pUnit.setScriptData("BuildingKelpOnTidal")
elif (iBuild == iBuildFortID):
pUnit.setScriptData("BuildingFort")
elif (iBuild == iBuildFungalTowerID):
pUnit.setScriptData("BuildingFungalTower")
def onImprovementBuilt(self, argsList):
...
elif iImprovement == gc.getInfoTypeForString('IMPROVEMENT_KELP_FARM'):
pPlot.setFeatureType(gc.getInfoTypeForString('FEATURE_KELP'),0)
for iUnitLoop in range(pPlot.getNumUnits()):
pUnit = pPlot.getUnit(iUnitLoop)
if (pUnit.getScriptData() == "BuildingKelpOnMill"):
pPlot.setImprovementType(iWindmillSea)
pUnit.setScriptData("")
elif (pUnit.getScriptData() == "BuildingKelpOnMine"):
pPlot.setImprovementType(iMiningPlatform)
pUnit.setScriptData("")
elif (pUnit.getScriptData() == "BuildingKelpOnTidal"):
pPlot.setImprovementType(iTidalHarness)
pUnit.setScriptData("")
else:
pPlot.setImprovementType(-1)
pUnit.setScriptData("")