FfH2 Bug Thread

I've never had a problem with this before, but now when I go to click to open a scenario from the menu page, it just crashes the game. This wasn't a problem even two days ago, but now I can't start any new scenarios. Anyone know what's up?
 
If you're sure nothing else has changed, it's probably a file corruption. Can happen for various reasons, but it's pretty rare with modern hard drives. Anyway, reinstalling usually solves it. You can try reinstalling over top of the existing one (without first uninstalling it), but if that doesn't work, uninstall and then reinstall. Also, you might be able to save yourself some time by trying to just reinstall FfH2 (don't forget to reinstall the latest patch and any modmods too). But if that doesn't work, you might have to go back and reinstall Civ4 and BtS (plus the 3.19 patch).

Hope that helps.
 
Here is my save, but I am also using "Better Naval AI" mod-mod...is that an issue? If so, no worries, if not, thank you and look forward to hearing anything! :)

Hey Lord Stubby. If you're having issues with my More Naval AI mod, it's better to post in the mod thread itself (see my sig for the link)

I tried to take a look at this savegame but it won't load with version 2.0, so I'm guessing that you're using an older version. I suggest you upgrade to the new version, though you'll have to start a new game.
 
Hi Tholal, thanks for having a look but yep I was using 1.7, downloaded your newest version, will see how this pans out! *If* I have any issues I'll post in the More Naval AI thread - what normally causes no turn progression, if anyone knows?

Cheers!
 
So is this "no turn progression" or the game "freezes"? There's definitely a difference. The latter is usually caused by the same things that freeze other programs, e.g. file corruption, memory allocation problems, etc.

The former is what has become known as the "WoC bug", wherein the poor human player must wait seemingly til the end of time for the other civilizations to finish making their moves. There are some theories as to the ultimate cause, but thus far that bug has not been permanently squashed. Bruenor's posts seem to indicate that a computer-controlled unit is being ordered to follow a path that it can't follow, for example when a unit on board a transport becomes barbarian (enraged), and so must disembark, but is unable to do so because it is not near land and has no square to move to. Maybe somebody else can shed more light on it, but that's the way I understand it.
 
In my case, I think it's a freeze as all the animations (e.g. water crashing onto shore) stop, but I tend not to wait more than a few mins...

May be worth me trying the "brute force" option A Moon suggested...
 
Yeah, that's a freeze. If it was a WoC error, the static animations (sounds like an oxymoron), e.g. waves) would still be happening. If your computer is underpowered, sometimes big, global animations like Lanun's worldspell, can cause it to freeze, but usually temporarily.
 
I just tried an experiment with the Mercurains-put a barb ogre and a Kuriotate/Good/RoK warrior between a lot of peaks and a barb ogre and a Kandros Fir/Neutral/RoK warrior between some other peaks. On the next turn, the barb ogres killed both the warriors, but I didn't get any spirits reborn in my empire? Both of them were RoK, and Cardith was Good. Even tried it out with a Soldier of Kilmorph and a Stonewarden. Is there something I miss about this mechanic?
EDIT:Tried it out with about ten Runekeepers and I got 2 angels. The civilopedia entry says they are created, not a 'chance' of them being created.
 
I just tried an experiment with the Mercurains-put a barb ogre and a Kuriotate/Good/RoK warrior between a lot of peaks and a barb ogre and a Kandros Fir/Neutral/RoK warrior between some other peaks. On the next turn, the barb ogres killed both the warriors, but I didn't get any spirits reborn in my empire? Both of them were RoK, and Cardith was Good. Even tried it out with a Soldier of Kilmorph and a Stonewarden. Is there something I miss about this mechanic?
EDIT:Tried it out with about ten Runekeepers and I got 2 angels. The civilopedia entry says they are created, not a 'chance' of them being created.

I believe the chance depends on the number of angels you already have, and the xp of the unit that dies.
 
I second That.

RoK (and FoL?) only gives chances for creating angels.

only order and empy always create angels.
 
I believe the chance depends on the number of angels you already have, and the xp of the unit that dies.

It's based on the unit's religion.

I second That.

RoK (and FoL?) only gives chances for creating angels.

only order and empy always create angels.

The Order, The Empyrean, and the Runes of Kilmorph are treated the same when it comes to gifting angels. Mercurian units (except animals) are treated the same as those with a good religion. Fellowship of the Leaves units do not return as either Angels or Manes, at least not based on their religion.

The chance of a unit that can return as an Angel or Mane actually returning is based on the unit's xp and on the number of players alive in the game. (Each evil unit to die has a chance of generating two Manes, whereas a good unit has a chance of generating only one Angel.)
Code:
			if (unit.getReligion() == gc.getInfoTypeForString('RELIGION_COUNCIL_OF_ESUS') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_OCTOPUS_OVERLORDS') or unit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH1')) or unit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY1'))):
				cf.giftUnit(gc.getInfoTypeForString('UNIT_MANES'), gc.getInfoTypeForString('CIVILIZATION_INFERNAL'), 0, unit.plot(), unit.getOwner())
				cf.giftUnit(gc.getInfoTypeForString('UNIT_MANES'), gc.getInfoTypeForString('CIVILIZATION_INFERNAL'), 0, unit.plot(), unit.getOwner())

			if (unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_EMPYREAN') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_ORDER') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_RUNES_OF_KILMORPH') or (unit.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_ANIMAL') and pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'))):
				cf.giftUnit(gc.getInfoTypeForString('UNIT_ANGEL'), gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'), unit.getExperience(), unit.plot(), unit.getOwner())

Code:
	def giftUnit(self, iUnit, iCivilization, iXP, pFromPlot, iFromPlayer):
		iAngel = gc.getInfoTypeForString('UNIT_ANGEL')
		iManes = gc.getInfoTypeForString('UNIT_MANES')
		if (iUnit == iAngel or iUnit == iManes):
			iChance = 100 - (CyGame().countCivPlayersAlive() * 3)
			iChance = iChance + iXP
			if iChance < 5:
				iChance = 5
			if iChance > 95:
				iChance = 95
			if CyGame().getSorenRandNum(100, "Gift Unit") > iChance:
				iUnit = -1
		if iUnit != -1:
			bValid = False
			for iPlayer in range(gc.getMAX_PLAYERS()):
				pPlayer = gc.getPlayer(iPlayer)
				if (pPlayer.isAlive()):
					if pPlayer.getCivilizationType() == iCivilization:
						py = PyPlayer(iPlayer)
						if pPlayer.getNumCities() > 0:
							iRnd = CyGame().getSorenRandNum(py.getNumCities(), "Gift Unit")
							pCity = py.getCityList()[iRnd]
							pPlot = pCity.plot()
							newUnit = pPlayer.initUnit(iUnit, pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
							newUnit.changeExperience(iXP, -1, false, false, false)
							newUnit.setWeapons()
							if (pFromPlot != -1 and gc.getPlayer(iFromPlayer).isHuman()):
								bValid = True
							if pPlayer.isHuman():
								if iUnit == iManes:
									CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_ADD_MANES",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Demon.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
								if iUnit == iAngel:
									CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_ADD_ANGEL",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Angel.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
							if (pPlayer.isHuman() == False and iUnit == iManes and pCity != -1):
								if CyGame().getSorenRandNum(100, "Manes") < (100 - (pCity.getPopulation() * 5)):
									pCity.changePopulation(1)
									newUnit.kill(True, PlayerTypes.NO_PLAYER)
			if bValid:
				if iUnit == iManes:
					CyInterface().addMessage(iFromPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_UNIT_FALLS",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Demon.dds',ColorTypes(7),pFromPlot.getX(),pFromPlot.getY(),True,True)
				if iUnit == iAngel:
					CyInterface().addMessage(iFromPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_UNIT_RISES",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Angel.dds',ColorTypes(7),pFromPlot.getX(),pFromPlot.getY(),True,True)
 
if (iUnit == iAngel or iUnit == iManes):
iChance = 100 - (CyGame().countCivPlayersAlive() * 3)
iChance = iChance + iXP
if iChance < 5:
iChance = 5
if iChance > 95:
iChance = 95
if CyGame().getSorenRandNum(100, "Gift Unit") > iChance:
iUnit = -1

Just for anyone who who speaks English instead of code, I'm fairly sure this means that when a unit dies, in a normal 7 civilization game, any unit with the appropriate religon has a (79+their xp)% chance of being reborn, but there will all always be at least a 5% chance that they won't get reborn.
 
Oh.
then I learned something today ;)
 
Sorry for my bad English, please.
When I played Internet game with my friend when I used Gibbon Goetia (I wished to control another civilization) his game crushed. When we loud that game I started to play that civ but after 13-14 turns his game also crushed and we couldn't continue this game because of this. I didn't returned to my body while that happened.
We used GameRanger and I was host.
What should we do?
 
When I played Internet game with my friend when I used Gibbon Goetia (I wished to control another civilization) his game crushed.

This particular ability should not be used in multiplayer games. If you reload a saved game from before you used Gibbon's special ability, you should be able to continue playing.
 
if (iUnit == iAngel or iUnit == iManes):
iChance = 100 - (CyGame().countCivPlayersAlive() * 3)
iChance = iChance + iXP
if iChance < 5:
iChance = 5
if iChance > 95:
iChance = 95
if CyGame().getSorenRandNum(100, "Gift Unit") > iChance:
iUnit = -1

Just for anyone who who speaks English instead of code, I'm fairly sure this means that when a unit dies, in a normal 7 civilization game, any unit with the appropriate religon has a (79+their xp)% chance of being reborn, but there will all always be at least a 5% chance that they won't get reborn.

Oh, so it was just my bad luck:(
 
Back
Top Bottom