UnitNameEventManager.py:
PHP-Code:
def onUnitBuilt(self, argsList):
'Unit Completed'
pCity = argsList[0]
pUnit = argsList[1]
iPlayer = pUnit.getOwner()
pPlayer = gc.getPlayer(iPlayer)
lUnitReName = UnitReName()
#BUGPrint("onUnitBuild-A")
if (pUnit == None
or pUnit.isNone()):
return
#BUGPrint("onUnitBuild-B %s %s %s" % (iPlayer, CyGame().getActivePlayer(), UnitNamingOpt.isEnabled()))
if not (iPlayer == CyGame().getActivePlayer()
and UnitNamingOpt.isEnabled()):
return
#BUGPrint("onUnitBuild-C")
zsEra = gc.getEraInfo(pPlayer.getCurrentEra()).getType()
zsUnitCombat = lUnitReName.getUnitCombat(pUnit)
zsUnitClass = gc.getUnitClassInfo(pUnit.getUnitClassType()).getType()
#BUGPrint("ERA(%s)" % (zsEra))
#BUGPrint("Combat(%s)" % (zsUnitCombat))
#BUGPrint("Class(%s)" % (zsUnitClass))
zsUnitNameConv = lUnitReName.getUnitNameConvFromIniFile(zsEra, zsUnitClass, zsUnitCombat)
zsUnitName = lUnitReName.getUnitName(zsUnitNameConv, pUnit, pCity, True)
#BUGPrint("onUnitBuild-D")
if not (zsUnitName == ""):
pUnit.setName(zsUnitName)
#BUGPrint("onUnitBuild-E")
return
Vor der Abfrage pUnit == None wird schon auf pUnit zugegriffen. Die Abfrage sollte vor dem ersten Nutzen von pUnit platziert werden. Die Abfrage ist sonst sinnfrei, weil der komplette Codeteil sonst nicht ausgeführt wird, genauer gesagt wegen einer Ausnahme abgebrochen wird. Das kann die Ursache der Meldung sein. Weil der Code so oder so nicht ausgeführt wird, passiert auch nichts Falsches.