Zlatko
CIW
Use raze function if kill gives problems.
I try platy but i get errors.
I changed:
Code:
def onCityRazed(self, argsList):
'City Razed'
city, iPlayer = argsList [COLOR="Red"][B]# line 2132[/B][/COLOR]
iOwner = city.findHighestCulture()
## RECONSTRUCTION Start
CyInterface().addMessage(0,true,15,"onCityRazed: "+str(CyTranslator().getText(str(self.TargetFound),())),'',0,'',13,-1,-1, true,true)
## RECONSTRUCTION End
# Partisans!
if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
owner = gc.getPlayer(iOwner)
if not owner.isBarbarian() and owner.getNumCities() > 0:
if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) < 0:
triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
#Raze the Arcology
owner = PyPlayer(city.getOwner())
razor = PyPlayer(iPlayer)
self.iArcologyCityID = -1
if city.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ARCOLOGY")):
self.iArcologyCityID = city.getID()
CvUtil.pyPrint('Player %d Civilization %s City %s was razed by Player %d'
%(owner.getID(), owner.getCivilizationName(), city.getName(), razor.getID()))
CvUtil.pyPrint("City Razed Event: %s" %(city.getName(),))
def onCityAcquired(self, argsList):
'City Acquired'
iPreviousOwner,iNewOwner,pCity,bConquest,bTrade = argsList
## RECONSTRUCTION Start
pPlayerNew = gc.getPlayer(iNewOwner)
pPlayerPrevious = gc.getPlayer(iPreviousOwner)
if bConquest:
#bPlayer = gc.getPlayer(gc.getBARBARIAN_PLAYER())
#if(bPlayer.getID() == iNewOwner):
#if(pPlayerNew == bPlayer):
pPlotX = CyMap().plot(pCity.getX(), pCity.getY())
#self.TargetFound = 0
#CyInterface().addMessage(0,true,15,"onCityAcquired: "+str(CyTranslator().getText(str(self.TargetFound),())),'',0,'',13,-1,-1, true,true)
#CyInterface().addMessage(iNewOwner,true,15,"Osvajac-Broj jedinica porazeni: "+str(CyTranslator().getText(str(pPlayerPrevious.getNumUnits()),())),'',0,'',13,-1,-1, true,true)
#CyInterface().addMessage(iNewOwner,true,15,"Osvajac-Broj jedinica osvajac: "+str(CyTranslator().getText(str(pPlayerNew.getNumUnits()),())),'',0,'',13,-1,-1, true,true)
#CyInterface().addMessage(iPreviousOwner,true,15,"Porazeni-Broj jedinica porazeni: "+str(CyTranslator().getText(str(pPlayerPrevious.getNumUnits()),())),'',0,'',13,-1,-1, true,true)
#CyInterface().addMessage(iPreviousOwner,true,15,"Porazeni-Broj jedinica osvajac: "+str(CyTranslator().getText(str(pPlayerNew.getNumUnits()),())),'',0,'',13,-1,-1, true,true)
(loopUnit, iter) = pPlayerNew.firstUnit(false)
while(loopUnit):
if(loopUnit.isHasPromotion(gc.getInfoTypeForString("PROMOTION_CITY_RAZE"))):
if(loopUnit.getX() == pCity.getX() and loopUnit.getY() == pCity.getY()):
for iPopulation in xrange(pCity.getPopulation()):
pNewUnit = pPlayerNew.initUnit(loopUnit.getUnitType(), loopUnit.getX(), loopUnit.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)
pNewUnit.finishMoves()
self.TargetFound = 1
#pPlayerNew.disband(pCity)
break
(loopUnit, iter) = pPlayerNew.nextUnit(iter, false)
#if(self.TargetFound == 1):
# pCity.kill()
#for iUnit in xrange(pPlotX.getNumUnits()):
# pUnitX = pPlotX.getUnit(iUnit)
# if(pUnitX.getOwner() == iNewOwner and pUnitX.isHasPromotion(gc.getInfoTypeForString("PROMOTION_CITY_RAZE"))):
# for iPopulation in xrange(pCity.getPopulation()):
# pNewUnit = pPlayerNew.initUnit(pUnitX.getUnitType(), pCity.getX(), pCity.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)
# pPlayerNew.disband(pCity)
# break
## RECONSTRUCTION End
CvUtil.pyPrint('City Acquired Event: %s' %(pCity.getName()))
## RECONSTRUCTION Start
[COLOR="Red"]if(self.TargetFound == 1):
self.TargetFound = 0
self.onCityRazed(argsList)[/COLOR] [COLOR="DarkGreen"][B]#line 2202[/B][/COLOR]
## RECONSTRUCTION End
def onCityAcquiredAndKept(self, argsList):
'City Acquired and Kept'
iOwner,pCity = argsList
CvUtil.pyPrint('City Acquired and Kept Event: %s' %(pCity.getName()))
and i gets these errors:
1) ValueError: too many values to unpack
2) File "CvEventManager", line 2132 in onCityRazed
3) File "CvEnentManager", line 2202, in onCityAcquired
4) File "BugEventManager", line 361, in _handleDefaultEvent
5) Traceback(most recent call last):
What is Civ4lerts, the old version or Platy's?
The last Python error is the most important one. Note the line that is referred there and try to adjust it if possible.
I use BUG from LoR.
@for ALL:
All errors from THIS code (post #4311):
1) RuntimeError: unidentifiable C++ exception
2) File "Civ4lerts", line 485, in _passesTest
3) File "Civ4lerts", line 362, in resetCity
4) File "Civ4lerts", line 242, in _resetCity
5) File "Civ4lerts", line 213, in onCityAcquiredAndKept
6) File "BugEventManager", line 361, in _handleDefaultEvent
7) Traceback (most recent call last):