zldrago1000
Chieftain
- Joined
- Feb 8, 2013
- Messages
- 78
Hey Magister, could you upload the February 1st 2018 archive? I'm reinstalling CIV4, and I only seem to have the setup versions.
Feel free to post savegames of reproducible errors in the unofficial bugfixes thread.2 freezing at about turn 200 on epic
Traceback (most recent call last):
File "BugEventManager", line 361, in _handleDefaultEvent
File "CvEventManager", line 4215, in onUnitKilled
File "CustomFunctions", line 3114, in doAfterlife
File "CustomFunctions", line 3106, in findAfterlife
NameError: global name 'iReligion' is not defined
This encouraged me to redownload the mod.Had two quick games go through without any CtDs or freezes. Couple long turn loads and errors in the event log, but overall much more stable and smooth!
edit: an option similar to this (https://forums.civfanatics.com/threads/ffh2-total-victory-mode.213973/) would be sick now that we've got stability for the whole game, I wanna explore more of the mod and play with all the toys :v
While I don't really play MagisterModmod, I'm sure it is appreciated. At the very least it may help Magister to fix the bug.My programming experience is next to none, so this might be a sloppy fix. However, I thought that it would be good to document my results for anyone with the same problem who comes searching.
Is this something you experience in every game? If this is not present in MNAI, it might be caused by a combination of Magister's changes and MNAI's AI. I usually play Extramodmod and never noticed something like this.The AI's leaving their Capitol empty or poorly defended.
That was a new game. I hadn't been on in a while. I'll try creating a new game.Is this something you experience in every game? If this is not present in MNAI, it might be caused by a combination of Magister's changes and MNAI's AI. I usually play Extramodmod and never noticed something like this.
Traceback (most recent call last):
File "BugEventManager", line 361, in _handleDefaultEvent
File "CvEventManager", line 4069, in onUnitCreated
File "CvEventManager", line 4567, in onUnitPromoted
MemoryError: Stack overflow
def effectPuppet(pCaster):
iSummoner = pCaster.getSummoner()
if iSummoner != 1:
pPlayer = gc.getPlayer(pCaster.getOwner())
pSummoner = pPlayer.getUnit(iSummoner)
pCaster.setName("Puppet of " + pSummoner.getName())
if pCaster.getUnitType() == gc.getInfoTypeForString('UNIT_PUPPET'):
iChanneling1 = gc.getInfoTypeForString('PROMOTION_CHANNELING1')
iChanneling2 = gc.getInfoTypeForString('PROMOTION_CHANNELING2')
iChanneling3 = gc.getInfoTypeForString('PROMOTION_CHANNELING3')
bChanneling1 = pSummoner.isHasPromotion(iChanneling1)
bChanneling2 = pSummoner.isHasPromotion(iChanneling2)
bChanneling3 = pSummoner.isHasPromotion(iChanneling3)
for iProm in [ iChanneling1, iChanneling2, iChanneling3,
gc.getInfoTypeForString('PROMOTION_DRUIDIC'),
gc.getInfoTypeForString('PROMOTION_UNHOLY_TAINT'),
gc.getInfoTypeForString('PROMOTION_EXTENSION1'),
gc.getInfoTypeForString('PROMOTION_EXTENSION2'),
gc.getInfoTypeForString('PROMOTION_EXTENSION3'),
gc.getInfoTypeForString('PROMOTION_ARCANE'),
gc.getInfoTypeForString('PROMOTION_SUMMONER'),
gc.getInfoTypeForString('PROMOTION_SUNDERED'),
gc.getInfoTypeForString('PROMOTION_TWINCAST')
]:
pCaster.setHasPromotion(iProm, pSummoner.isHasPromotion(iProm))
listMana = [
(gc.getInfoTypeForString('PROMOTION_AIR1'), gc.getInfoTypeForString('PROMOTION_AIR2'), gc.getInfoTypeForString('PROMOTION_AIR3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_AIR')),
(gc.getInfoTypeForString('PROMOTION_BODY1'), gc.getInfoTypeForString('PROMOTION_BODY2'), gc.getInfoTypeForString('PROMOTION_BODY3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_BODY')),
(gc.getInfoTypeForString('PROMOTION_CHAOS1'), gc.getInfoTypeForString('PROMOTION_CHAOS2'), gc.getInfoTypeForString('PROMOTION_CHAOS3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_CHAOS')),
(gc.getInfoTypeForString('PROMOTION_DEATH_ARAWN1'), gc.getInfoTypeForString('PROMOTION_DEATH_ARAWN2'), gc.getInfoTypeForString('PROMOTION_DEATH_ARAWN3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_DEATH_ARAWN')),
(gc.getInfoTypeForString('PROMOTION_DEATH1'), gc.getInfoTypeForString('PROMOTION_DEATH2'), gc.getInfoTypeForString('PROMOTION_DEATH3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_DEATH')),
(gc.getInfoTypeForString('PROMOTION_DIMENSIONAL1'), gc.getInfoTypeForString('PROMOTION_DIMENSIONAL2'), gc.getInfoTypeForString('PROMOTION_DIMENSIONAL3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_DIMENSIONAL')),
(gc.getInfoTypeForString('PROMOTION_EARTH1'), gc.getInfoTypeForString('PROMOTION_EARTH2'), gc.getInfoTypeForString('PROMOTION_EARTH3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_EARTH')),
(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT1'), gc.getInfoTypeForString('PROMOTION_ENCHANTMENT2'), gc.getInfoTypeForString('PROMOTION_ENCHANTMENT3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_ENCHANTMENT')),
(gc.getInfoTypeForString('PROMOTION_ENTROPY1'), gc.getInfoTypeForString('PROMOTION_ENTROPY2'), gc.getInfoTypeForString('PROMOTION_ENTROPY3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_ENTROPY')),
(gc.getInfoTypeForString('PROMOTION_FIRE1'), gc.getInfoTypeForString('PROMOTION_FIRE2'), gc.getInfoTypeForString('PROMOTION_FIRE3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_FIRE')),
(gc.getInfoTypeForString('PROMOTION_FORCE1'), gc.getInfoTypeForString('PROMOTION_FORCE2'), gc.getInfoTypeForString('PROMOTION_FORCE3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_FORCE')),
(gc.getInfoTypeForString('PROMOTION_ICE1'), gc.getInfoTypeForString('PROMOTION_ICE2'), gc.getInfoTypeForString('PROMOTION_ICE3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_ICE')),
(gc.getInfoTypeForString('PROMOTION_LAW1'), gc.getInfoTypeForString('PROMOTION_LAW2'), gc.getInfoTypeForString('PROMOTION_LAW3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_LAW')),
(gc.getInfoTypeForString('PROMOTION_LIFE1'), gc.getInfoTypeForString('PROMOTION_LIFE2'), gc.getInfoTypeForString('PROMOTION_LIFE3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_LIFE')),
(gc.getInfoTypeForString('PROMOTION_METAMAGIC1'), gc.getInfoTypeForString('PROMOTION_METAMAGIC2'), gc.getInfoTypeForString('PROMOTION_METAMAGIC3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_METAMAGIC')),
(gc.getInfoTypeForString('PROMOTION_MIND1'), gc.getInfoTypeForString('PROMOTION_MIND2'), gc.getInfoTypeForString('PROMOTION_MIND3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_MIND')),
(gc.getInfoTypeForString('PROMOTION_NATURE1'), gc.getInfoTypeForString('PROMOTION_NATURE2'), gc.getInfoTypeForString('PROMOTION_NATURE3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_NATURE')),
(gc.getInfoTypeForString('PROMOTION_SHADOW1'), gc.getInfoTypeForString('PROMOTION_SHADOW2'), gc.getInfoTypeForString('PROMOTION_SHADOW3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_SHADOW')),
(gc.getInfoTypeForString('PROMOTION_SPIRIT1'), gc.getInfoTypeForString('PROMOTION_SPIRIT2'), gc.getInfoTypeForString('PROMOTION_SPIRIT3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_SPIRIT')),
(gc.getInfoTypeForString('PROMOTION_SUN1'), gc.getInfoTypeForString('PROMOTION_SUN2'), gc.getInfoTypeForString('PROMOTION_SUN3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_SUN')),
(gc.getInfoTypeForString('PROMOTION_WATER1'), gc.getInfoTypeForString('PROMOTION_WATER2'), gc.getInfoTypeForString('PROMOTION_WATER3'), gc.getInfoTypeForString('PROMOTION_AFFINITY_WATER'))
]
for iSpell1, iSpell2, iSpell3, iAffinity in listMana:
if pCaster.isHasPromotion(iAffinity):
pCaster.setHasPromotion(iAffinity, False)
if pSummoner.isHasPromotion(iAffinity):
if bChanneling1:
pCaster.setHasPromotion(iSpell1, True)
if bChanneling2:
pCaster.setHasPromotion(iSpell2, True)
if bChanneling3:
pCaster.setHasPromotion(iSpell3, True)
else:
pCaster.setHasPromotion(iSpell1, pSummoner.isHasPromotion(iSpell1))
pCaster.setHasPromotion(iSpell2, pSummoner.isHasPromotion(iSpell2))
pCaster.setHasPromotion(iSpell3, pSummoner.isHasPromotion(iSpell3))
Traceback (most recent call last):
File "CvSpellInterface", line 32, in canCast
File "<string>", line 0, in ?
File "CvSpellInterface", line 1055, in effectDefrock
NameError: global name 'pPlot' is not defined
ERR: Python function canCast failed, module CvSpellInterface
def effectDefrock(pCaster):
if not pCaster.isAvatarOfCivLeader():
iPlayer = pCaster.getOwner()
pPlayer = gc.getPlayer(iPlayer)
sName = "<color=%d,%d,%d,%d>%s</color>" %(pPlayer.getPlayerTextColorR(), pPlayer.getPlayerTextColorG(), pPlayer.getPlayerTextColorB(), pPlayer.getPlayerTextColorA(), pCaster.getName() )
iDivine = gc.getInfoTypeForString('PROMOTION_DIVINE')
iLuo = gc.getInfoTypeForString('UNIT_LUONNOTAR')
if pCaster.isHasPromotion(iDivine):
if pCaster.getUnitType() == iLuo:
pCaster.setHasPromotion(iDivine, False)
else:
CyInterface().addMessage(iPlayer, True, 25, CyTranslator().getText("TXT_KEY_MESSAGE_DEFROCK", (sName, )), '', InterfaceMessageTypes.MESSAGE_TYPE_INFO, pCaster.getButton(), gc.getInfoTypeForString('COLOR_RED'), pCaster.getX(), pCaster.getY(), True, True)
pCaster.kill(True, PlayerTypes.NO_PLAYER)
elif pPlayer.getStateReligion() != -1:
pCaster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LOYALTY'), False)
pCaster.setHasPromotion(gc.getInfoTypeForString('PROMOTION_REBELLIOUS'), True)
if pCaster.isBarbarian():
pPlot = pCaster.plot()
if pPlot.isOwned():
iPlayerP = pPlot.getOwner()
pPlayerP = gc.getPlayer(iPlayerP)
if pPlayerP.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_GRIGORI'):
CyInterface().addMessage(iPlayerP, True, 25, CyTranslator().getText("TXT_KEY_MESSAGE_DEFROCK_BARB_TO_GRIGORI", (sName, )), '', InterfaceMessageTypes.MESSAGE_TYPE_INFO, pCaster.getButton(), gc.getInfoTypeForString('COLOR_GREEN'), pCaster.getX(), pCaster.getY(), True, True)
newUnit = pPlayerP.initUnit(pCaster.getUnitType(), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.convert(pCaster)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_REBELLIOUS'), False)
newUnit.setReligion(gc.getInfoTypeForString('RELIGION_CHILDREN_OF_THE_ONE'))