FfH2 Bug Thread

Looks like I have a feeling for running into infinity load.:sad:
Just when I was about to own the world as Lanun, the game won't stop loading, even after I re-tried several times.
Here's the file, hoping that something can be done.:confused:

It works OK for me. Do you have patch n?

Best wishes,

Breunor

PS You can probably declare yourself the winner here!
 
Are the severe OOS issues that arise after the Infernals are summoned being looked at? I've taken to playing every multiplayer game with Compact Enforced, as the game becomes unplayable without it due to this.
 
Its not really that much of an issue. The OOS only occurs when the player switches to one of the summoned teams.

Simply save the game when you get an OOS error, and then rehost the game from that save. Join as the Infernals (or Mercurians) and everything will be fine from there.

The problem is caused whenever a human takes over an AI team, either through a Hotjoin or by joining a summoned team. Considering its not hard to rehost the game (and frequently we've played games for up to 50 extra turns with an OOS error) its not really a big issue to be fixed.
 
No player ever switches, and it goes OOS. I save and rehost, but the game goes OOS every few turns (at best, often worse) from then on.

EDIT: I should mention that the first OOS isn't always on the exact turn that Hyborem appears, but always within a few turns. They're very frequent from then on.
 
Save n, Windows 7. Hit end turn. Patiently wait. Game crashes.

Darrell

The AI is casting a spell which causes war. Since they are either in enemy territory or sharing a plot with enemy units this cause all the units in the stack to be moved away. In doing so they leave the old group and join a new one (with just one unit per group). Why does this cause a crash? Because the old group is now empty and should be removed but it's not. Then we call something for the head unit, which doesn't exist, and we get a crash.


Coding stuff
In all places where you/AI can cast spells there has to be sanity checks for if the unit/group is dead. In this case it's in CvSelectionGroup::groupAttack. It's actually really stupid of the AI to cast the spell in this case, since they're about to attack a city and instead get all their units moved plus a new war to deal with. It's really stupid of the AI to so easily declare war in the first place simply because there's a lot more enemy units nearby than non-enemy units.

The lines I don't like are these in CvUnitAI::AI_DirectDamageCast
Spoiler code :
Code:
                                        if (pLoopUnit->isEnemy(getTeam()))
                                        {
                                            if (pLoopUnit->getDamage() < iDmgLimit)
                                            {
                                                iValue += iDmg * 10;
                                            }
                                        }
                                        if (pLoopUnit->getTeam() == getTeam())
                                        {
                                            iValue -= iDmg * 20;
                                        }
                                        if (pLoopUnit->getTeam() != getTeam() && pLoopUnit->isEnemy(getTeam()) == false)
                                        {
                                            iValue -= 1000;
                                        }

Assuming no same team units, if we can damage 100/iDmg enemies we don't care that we declare war, because we're doing so much damage. If we're casting say maelstrom, that means we'll declare war if there's seven enemies per non-enemy unit! Regardless of who we declare war on!



Enough complaining about poor AI :p
To solve the bug, after _every_ spellcasting attempt, check if the group is dead. If you do not do it after every spell attempt the behavior can be unpredictable. I saw some units cast spells that were no longer even part of the group, before the CtD.

In CvSelectionGroup::groupAttack
pLoopUnit->AI_DirectDamageCast(5);
if (doDelayedDeath())
{
return false;
}
This does cause an FAssert (later on trying to remove the group after it's already removed) but I don't think it'll cause any actual bugs.

The same code after the other three spellcasts. And after any other spellcasts anywhere else in the code.
 
Assuming no same team units, if we can damage 100/iDmg enemies we don't care that we declare war, because we're doing so much damage. If we're casting say maelstrom, that means we'll declare war if there's seven enemies per non-enemy unit! Regardless of who we declare war on!

I've seen evidence of that before with a friendly nation moving their SoD through my territory to visit Acheron and then casting maelstrom just inside barbarian territory, injuring my units.

I've also had my vassals declare war on me in that way, even though we're meant to be on the same team! A fix of some sort would be appreciated.
 
I am playing the Infernals and have not had any hell terrain spawn at all in my lands. Is all the Infernal land supposed to be hell terrain, as soon as they control it? Regardless, there is none. Also, is the first city Dis supposed to have all of the automatic buildings that their founded cities get? Because mine doesn't, it only started with the palace. Seems kind of dumb that thier capital would be Fallow yet without Demonic Citizens...
 
Thanks snarko! I guess I'll stick this game on ice (pun intended) until this gets fixed :).

Darrell

You can go into the worldbuilder, and kill the mages that cast the spell. Then, you can bring them back (put new units on the map) a turn or 2 later to compensate.

Best wishes,

Breunor
 
StarbuckTheCat are you sure you haven't accidentally ticked the option that exclude hell terrain from the game?
Don't know about your second problem.
 
StarbuckTheCat are you sure you haven't accidentally ticked the option that exclude hell terrain from the game?
Don't know about your second problem.

I started this game with the "Play Now!" button, which I believe uses the mod default settings (i.e. none checked). I was wondering if I didn't start with any hell terrain because my starting city was surrounded by tundra (there aren't hell versions of ice and tundra AFAIK). So if there wasn't any initial hell terrain, there would be none to spread, but then I even added hell terrain inside my cultural borders via the Worldbuilder, but it still would not spread after I resumed playing...
 
Hell terrain won't convert mountain, snow and tundra terrains. But it will spread through them. The rate of spread is based on the Armageddon counter. Keep an eye on the closest piece of land that isn't one of the above terrains. It should eventually convert as long as it isn't under another civ's control (in which case their alignment will affect the spread).
 
Hi all, I have run into a very strange problem. I run Civ4 through steam on a windows7 box, but every time i try to load the FfH2 mod the game will not load it. In fact to even get it to show up I had to place the files in the "C:\Users\user\Documents\My Games\beyond the sword\MODS" file. Which is also in my steam program file for regular(64-bit) and the x86(32-bit) program file.:confused:

Same here. I can select ffh2 but game just goes to desktop and nothing happends. BTW on steam version we dont have civilization4.exe. Many other mods work though.
 
Same here. I can select ffh2 but game just goes to desktop and nothing happends. BTW on steam version we dont have civilization4.exe. Many other mods work though.

I am going to go out on a limb and guess this is the same problem I had with the direct download version of Fallout 3. I'm assuming that the Steam version of Civ 4 encrypts the executable files to only run on your computer. Since FfH2 changes some of the executable files (which are not encrypted) the game exits when it tries to load/run them. Not every mod needs to alter the executable files, which is why some of them will work.
 
Hell terrain won't convert mountain, snow and tundra terrains. But it will spread through them. The rate of spread is based on the Armageddon counter. Keep an eye on the closest piece of land that isn't one of the above terrains. It should eventually convert as long as it isn't under another civ's control (in which case their alignment will affect the spread).

I played the Infernals from AC ~25 to AC 100 :D and never saw hell terrain that I didn't add myself via Worldbuilder. I have a couple modmods installed, the Naval AI one and the graphics one that changes the default civiliazations' buildings, so maybe one of them is the culprit. I'll try again with a fresh install of FfH2 and see what happens.
 
I played the Infernals from AC ~25 to AC 100 :D and never saw hell terrain that I didn't add myself via Worldbuilder. I have a couple modmods installed, the Naval AI one and the graphics one that changes the default civiliazations' buildings, so maybe one of them is the culprit. I'll try again with a fresh install of FfH2 and see what happens.

The Naval AI mod is mine and I haven't seen this happen before. Perhaps there were some XML conflicts between it and the Civ buildings mod.
 
The worker automation AI does not know how to handle Mud Golems. It garrisons them in cities rather than using them to work the countryside. This can be solved by controlling Mud Golems manually, but it could be a problem for an AI-controlled Luchuirp nation.

Some dungeon exploration results cause animals to appear, which works well in unclaimed territory, but if it happens in your own territory, the animals are unable to move and attack.
 
Back
Top Bottom