Тогда выход один - ковырять код их модов...
Слушай, есть у меня еще одна проблема. Данный скрипт перемещает юнитов на необходимое место и селит их. До операции с pushMission все идет нормально. Далее - нет. Вернее, сказать, он работает от случая к случаю и зависит от текущей клетки(то есть существуют клетки, на которых вылетает ошибка "NoneType", а есть такие, которые спокойно это делают). Сами клетки вполне себе валидны и пусты(у меня существует массив с перечислением оных). Данная ошибка приводит меня в замешательство. Собственно, вот он:
А вот ошибка в логах:PHP код:def removeUnitsFromArea(self, iPlayer, tCoords, tDesant):
for idx in tCoords:
for x in range(idx[0]-2, idx[0]+4):
for y in range(idx[1]-2, idx[1]+4):
area = gc.getMap().plot( x, y )
iNumUnitsInAPlot = area.getNumUnits()
if iNumUnitsInAPlot:
for i in range(iNumUnitsInAPlot):
unit = area.getUnit(i)
if not area.isWater():
if(unit.getUnitType() == iSettler):
if(unit.getOwner() == iPlayer):
unit.setXY(tDesant[0], tDesant[1] , False, True, True)
for l in range(iNumUnitsInAPlot):
accompUnit = area.getUnit(l)
if not area.isWater():
if(accompUnit.getOwner() == iPlayer):
accompUnit.setXY(tDesant[0], tDesant[1] , False, True, True)
pPlayer = gc.getPlayer(iPlayer)
for iUnit in range(pPlayer.getNumUnits()):
pUnit = pPlayer.getUnit(iUnit)
pGroup = pUnit.getGroup()
pGroup.pushMission(MissionTypes.MISSION_FOUND, tDesant[0], tDesant[1], 0, False, True, MissionAITypes.MISSIONAI_FOUND, pUnit.plot(), pUnit)
PHP код:Traceback (most recent call last):
File "CvEventInterface", line 23, in onEvent
File "CvEventManager", line 190, in handleEvent
File "CvEventManager", line 372, in onBeginGameTurn
File "fmtfe", line 783, in removeUnitsFromAreaSource
File "fmtfe", line 726, in removeUnitsFromArea
AttributeError: 'NoneType' object has no attribute 'pushMission'
ERR: Python function onEvent failed, module CvEventInterface