[MOD] More Naval AI

Yeah, I am getting a repeatable OOS where if either my brother or I start as the Illians, we are getting an OOS error. We even both completely reinstalled Fall From Heaven, the patch, the media pack, and the More Naval AI mod.
 
So we've solved one OOS error: if you begin a settler (probably a worker, too, but we didn't try) with citizen automation turned on, an OOS will occur. The OOS will continue to occur even if a player reconnects (it will resume on the next turn). Thus, you need to make sure citizen automation is not on if making a worker or settler... the problem is, it might still OOS if an AI is building a worker or settler - I'm not sure.

Once we got past that OOS error, we got another one some 20+ turns down the road, and we're not sure what's causing it. It may have something to do with Acheron, as we got an OOS the turn AFTER Acheron spawned (though we had played a previous round where Acheron spawning caused no issues).

Here are two saves. Pre-OOS is just to emulate the settler issue; Pre-OOS2 is right after Acheron spawns, and pressing end turn generates the OOS error. Sorry, I'm sure providing multiplayer saves doesn't help much, but I'm not sure how to do OOS logging (but will be happy to provide them once I find out; turning "synchronize logging" via file config and the auto-log feature in BUG didn't seem to do anything).

I did see the earlier post about an OOS file appearing in the BTS directory, but this file is not appearing for me on either my laptop or the other laptop that is being used. I got an MPLog file to appear on the computers, which provides a bunch of seed values and actions that accompany those values, but it's pretty non-sensical. Regardless, I'll upload the files from both computers.

When playing with Auric Ulvin in a multiplayer game, it seems the player who is NOT playing as Ulvin has a ThemeParseLog generated in their BTS folder which contains the following (though the other computer doesn't seem to be creating log files as readily, despite logging being turned on on both computers):

[Jun 24, 2012 - 04:26:07] Messages while processing 'Resource/Civ4.thm'

Error : Decl - ('Civ4Theme_Common.thm', Ln:401, Col:13) Assignment source propertyId 'SF_CtrlTheme_Civ4_Control_Font_Size3_Italic' not found
Error : Decl - ('Civ4Theme_Common.thm', Ln:402, Col:13) Assignment source propertyId 'SF_CtrlTheme_Civ4_Control_Font_Size3_BoldItalic' not found
Error : Decl - ('Civ4Theme_Common.thm', Ln:408, Col:13) Assignment source propertyId 'SF_CtrlTheme_Civ4_Control_Font_Size1_Bold' not found
Error : Decl - ('Civ4Theme_Window.thm', Ln:3048, Col:9) Assignment source propertyId 'SF_CtrlTheme_Civ4_Control_Font_Size1_Bold' not found
Error : Syntax - ('Civ4Theme_HUD.thm', Ln:887, Col:13) Unexpected '.' in the identifier assignment statement
Error : Syntax - ('Civ4Theme_HUD.thm', Ln:927, Col:13) Unexpected '.' in the identifier assignment statement
 

Attachments

  • pre OOS.CivBeyondSwordSave
    187.3 KB · Views: 51
  • pre OOS2.CivBeyondSwordSave
    211.1 KB · Views: 59
  • MPLog_Kuriotates_Not_Host.txt
    350.7 KB · Views: 44
  • MPLog_Sheaim_Host.txt
    354 KB · Views: 40
Weird unit upgrade bug, which is probably been in the game from the beginning, but nevertheless should get fixed:

Normally, warriors become obsolete when you build both an archery range and a training yard, as you can build both of the units warriors upgrade to. When playing as the Luchuirp, warriors become obsolete after you build both an archery range and a sculptor's studio. This makes little sense, because warriors can't upgrade into wood golems (the Luchuirp axeman replacement), nor any of the other Luchuirp units up the melee line (i.e. any of the other golems).

I was curious how this works for the Sheaim, the only other civ that can't upgrade up the melee line. So I created a quick game, gave the Sheaim the needed techs, and WB'ed an archery range onto their city. They couldn't make warriors. As soon as I took away the range, the ability to make warriors returned. (Pyre zombies were enabled either way, of course.) This is how things are meant to work, I think.

There is no functional difference between the Luchirp and the Sheaim - the only difference is that the game seems to think that the Luchuirp will be able to upgrade warriors to axemen once they build a sculptor's studio. This is wrong, of course. So, whether warriors become obsolete for the Luchuirp should depend on one building only - the archery range - just like with the Sheaim.

--

The only reason I noticed this was because I received a city with both an archery range and a sculptor's studio in a city that I took in peace negotiations. The training yard in that city magically transformed into a sculptor's studio when I gained it. That makes no sense, either. Most of the other building switches make sense - Pagan temples becoming desert shrines or temples of the hand makes sense, training yards becoming arenas and vice versa is fine, even governor's manor/courthouse is passable. But training yards becoming sculptor's studios doesn't make sense at all.

This brings me to my suggested solution: The sculptor's studio should not be a replacement for the training yard. It should simply be a unique building for the Luchuirp, who should (still) not be able to build training yards. This neatly solves both the problem of training yards morphing into sculptor's studios upon capture, and the problem of the game getting confused and letting you build warriors when you have an archery range but no sculptor's studio.
 
Second, somewhat related point:

Should warriors go obsolete for civs with the Octopus Overlords religion? The reason I noticed the oddity above was that I was making drowns from warriors in this game. Of course, you can manage your cities to avoid warriors becoming obsolete, but we let the Calabim build Bloodpets all game long, despite building archery ranges and training yards, for similar reasons. (And yes, you can build drowns directly, but warriors require fewer hammers and can get living-only promotions.)

(Either way, the change I suggest above to sculptor's studios should probably be implemented, as that's an independent issue.)
 
Revolutions still seems way too common, particularly for those using civics like Sacrifice the Weak.

Revolutions do not seem to be scaled to difficulty level, which makes them the biggest threat at lower levels.

I don't think I was getting any errors early on, but eventually I kept getting this with each new revolution:
Code:
Traceback (most recent call last):
  File "BugEventManager", line 361, in _handleDefaultEvent
  File "Revolution", line 635, in onEndPlayerTurn
  File "Revolution", line 1076, in updatePlayerRevolution
  File "Revolution", line 2307, in checkForRevolution
  File "Revolution", line 3158, in pickRevolutionStyle
AttributeError: 'NoneType' object has no attribute 'getID'

It may be relevant that I was playing as Tebryn Arbandi of the Sheaim, and that by the time I started getting those errors I was fighting against a rebel faction led by Gosea. The problem may thus be related to the fact that the Sheaim do not have access to most of the normal Melee units.


I also found ti rather annoying that the game did not seem to let me trade anything but mana with Hyborme once he became my willing vassal. I had lots of technologies and lots of cities I would like to have gifted him, but when I tried to do so the diplomacy screen just sort of flicked without giving him anything.


Edit:
I just found that I can stop the instant loss in the Lord of the Balors scenario if I edit it so that no one has contact with anyone at the start of the game.

I still get this message at the start of the game though
Code:
Traceback (most recent call last):
  File "BugEventManager", line 361, in _handleDefaultEvent
  File "autologEventManager", line 342, in onGameStart
  File "autologEventManager", line 1454, in storeStuff
RuntimeError: unidentifiable C++ exception

Edit: I just looked through autologEventManager.py and found that the problem occurs when the game is trying to set the attitudes between every player. I then discovered that it appears that there is a player missing, between Keelyn and Basium. The bug is probably trying to set the diplomatic bonuses tat each player has with NONE.

Code:
BeginPlayer
	Team=3
	LeaderType=NONE
	CivType=NONE
	Color=NONE
	ArtStyle=NONE
	Handicap=HANDICAP_NOBLE
EndPlayer

When I decided to add another player to the game in this slot, the bug went away.

In my last test the players did not seem to be at war as they should have been though. Maybe going back and resetting permanent war between players in the scenario file will be fine now without the empty team 3.
 
Another thing: jungles are converted to forests if the tile is under the influence of a temple of Hand. However, if the tile is turned to snow by any other means, you'll get the weird snowy jungle.

I believe that all the other ways tiles get converted to snow are temporary, so in a way it makes sense to keep the existing features.

Well, I guess that the Illian ritual The Deepening is permanent too and rather widespread at that.
 
So we've solved one OOS error: if you begin a settler (probably a worker, too, but we didn't try) with citizen automation turned on, an OOS will occur.

Interesting. Thanks for the info.

I did see the earlier post about an OOS file appearing in the BTS directory, but this file is not appearing for me on either my laptop or the other laptop that is being used. I got an MPLog file to appear on the computers, which provides a bunch of seed values and actions that accompany those values, but it's pretty non-sensical. Regardless, I'll upload the files from both computers.

Thanks for the files and save games. I haven't yet been able to get my laptop and main computer synced up to test multiplayer, but hopefully I can use your save files to reproduce the error. You're right that the MP logs aren't that useful. Not sure what's going on with the OOS logs. I have no experience at OOS debugging so this is all new to me as well.

When playing with Auric Ulvin in a multiplayer game, it seems the player who is NOT playing as Ulvin has a ThemeParseLog generated in their BTS folder which contains the following (though the other computer doesn't seem to be creating log files as readily, despite logging being turned on on both computers):


This brings me to my suggested solution: The sculptor's studio should not be a replacement for the training yard. It should simply be a unique building for the Luchuirp, who should (still) not be able to build training yards. This neatly solves both the problem of training yards morphing into sculptor's studios upon capture, and the problem of the game getting confused and letting you build warriors when you have an archery range but no sculptor's studio.

Interesting discovery. I'll consider your suggestion though I do worry that changing the classes for Wood Golems and Sculptor's Studios might have some sort of cascading effect that would require more changes.

Should warriors go obsolete for civs with the Octopus Overlords religion?

I dont think there is an easy way to tie obsoleteness to religion. Perhaps the simpler solution would be to just let Warriors always be built.

I don't think I was getting any errors early on, but eventually I kept getting this with each new revolution:
Code:
Traceback (most recent call last):
  File "BugEventManager", line 361, in _handleDefaultEvent
  File "Revolution", line 635, in onEndPlayerTurn
  File "Revolution", line 1076, in updatePlayerRevolution
  File "Revolution", line 2307, in checkForRevolution
  File "Revolution", line 3158, in pickRevolutionStyle
AttributeError: 'NoneType' object has no attribute 'getID'

OK. Just another line of code that isn't doing proper error checking. I'll fix it in my next release. In the meantime, you can add if instigator != None: line before that code section and that should fix it.

I also found ti rather annoying that the game did not seem to let me trade anything but mana with Hyborme once he became my willing vassal. I had lots of technologies and lots of cities I would like to have gifted him, but when I tried to do so the diplomacy screen just sort of flicked without giving him anything.

Weird. You have a savegame I can look at?

re: scenarios

There seems to be a lot of assert errors with pretty much every scenario, so I'm not really sure what's going on here. I find it a bit strange that a middle player would be empty in the Balors scenario. Is there any known reason for that?

Wages of Sin is crashing on me at startup and I dont know why. I feel like I need to first deal with all the assert errors, but much like OOS debugging, fixing Scenarios is not part of my repertoire at the moment.

In my last test the players did not seem to be at war as they should have been though. Maybe going back and resetting permanent war between players in the scenario file will be fine now without the empty team 3.

That sounds like it would work.
 
This brings me to my suggested solution: The sculptor's studio should not be a replacement for the training yard. It should simply be a unique building for the Luchuirp, who should (still) not be able to build training yards. This neatly solves both the problem of training yards morphing into sculptor's studios upon capture, and the problem of the game getting confused and letting you build warriors when you have an archery range but no sculptor's studio.
Interesting discovery. I'll consider your suggestion though I do worry that changing the classes for Wood Golems and Sculptor's Studios might have some sort of cascading effect that would require more changes.
I'm not sure, but it might be enough to change the Sculptor's Studios without changing the Wood Golems. Warriors become obsolete for the Sheaim just by building an archery range.

Honestly, though, I'd be happier if all the Golems, and the Pyre Zombies, weren't classed as replacement units for anything. Having them as "replacements" for units in the melee line puts them in the unit upgrade trees, which is a bit confusing (and wrong).

Should warriors go obsolete for civs with the Octopus Overlords religion?
I dont think there is an easy way to tie obsoleteness to religion. Perhaps the simpler solution would be to just let Warriors always be built.
That would work, but it's a pretty extreme solution to a narrow problem - I'd prefer if warriors weren't available all game long in every city with any religion.

The best possible option, to me, would be to create a second version of the warrior that requires OO as a religion, obsoletes the standard warrior, and does not go obsolete itself.

(Another, less attractive option would be to give all living units the Drown ability if state religion is OO, so that you can drown Axemen if you have OO.)
 
There seems to be a lot of assert errors with pretty much every scenario, so I'm not really sure what's going on here. I find it a bit strange that a middle player would be empty in the Balors scenario. Is there any known reason for that?

Wages of Sin is crashing on me at startup and I dont know why. I feel like I need to first deal with all the assert errors, but much like OOS debugging, fixing Scenarios is not part of my repertoire at the moment.
I can't think of any good reason to have an empty player/team 3. My best guess is that Kael (or whatever team member was responsible for making that scenario) originally intended the game to include another player and then changed his mind. They probably forgot to remove the player completely because base FfH2 simply ignored it, but BUG is more particular.


Are you getting errors when you load scenarios directly from the files, or only when you try to load them from the scenario screen as Kael intended?

I believe that I now have all the scenarios themselves working without any errors in my modmod (and would doubt that any but Lord of the Balors would cause a problem in your version), but loading them from the scenarios screen has resulted in crashes every time I tried it.
 
So I've been getting back into FfH2 lately, playing your mod. I have one bug, which might already be known, and one request.

BUG:
I hadn't played somnium in a long time, but decided to 'bet my pride' against the AI in my most recent game. I get a game crash during the turn change after doing so, win or lose. The diplomacy modification must be somehow causing it as a 'pleasant' game doesn't cause a crash.

REQUEST:
A long time ago I used a modified XML file supplied by Monkeyfinger that monkeys with the LSystem to make elven forests look more like forests when they have improvements, especially towns, built in them. You can find the discussion and related file linked in this old thread.

http://forums.civfanatics.com/showthread.php?p=7724992

Could you incorporate the adjustments into your mod mod? I'm tempted to use the file again, but was unsure about compatibility.

REALLY REALLY appreciate the work you put into the continuing refinement of this game. Bravo!
 
The crash occurs either before or after you've played Somnium for pride, whether you win or lose.

OK. Thanks for the saved game! I've found the problem and will fix it for the next release.

[to_xp]Gekko;11592905 said:
what about the civ4alerts when cities are about to grow into unhappiness btw?

I'm not entirely sure why the civ4alerts arent working properly. If anyone wants to look into it for me, that would be great.
 
Are you getting errors when you load scenarios directly from the files, or only when you try to load them from the scenario screen as Kael intended?

I'm loading them from the scenarios screen. The errors I'm seeing are C++ assert errors. It seems to start when setting the plot types for the plots on the map, starting at 0,0. For some reason, it thinks that every plot is in range of a city, so it tries to go through some yield calculation functions but then throws errors because there is no active player.

I can skip through all of those errors (and there are a lot), but then I get a very ungraceful crash while setting the river edge on a plot. Some sort of memory error I think.

The first part seems to happen with most if not all of the scenarios, so I'm guessing there is just some improper coding somewhere that is causing the trouble.

I'll try loading the scenarios directly next time and see if that makes any difference.
 
Well that's certainly interesting. Loading the scenarios directly by double-clicking on the scenario file bypasses all the setplottype errors.

I was able to get Lord of the Balors to load by making team 3 an empty team and removing all other cross-references to team 3. Edit: This is causing other issues. This scenario might need to have all teams above team 2 adjusted downwards so there aren't any gaps.

Wages of Sin has a similar issue where a team is defined but not given any players. I'll update both of these with the next release
 
Hey Tholal! Awesome mod the AI kicks arss now!

But I think I found a bug(I'm playing Magisters mod), the promotions are a little messed up like bless,stigmata, or any promotions targeting the opposing enemy.

Basically let's say I have destroy undead promotion and hover over an undead and that +70% against undead won't show in my combat odds, but if I would play as an undead and hover to the guy that has that promotion, I would get that 70%!! But it has no effect because the other guy isn't undead.... makes sense?:lol::crazyeye:

I posted this on Magisters mod as well so I don't know what's the problem.
 
BUG:
I'm using Gibbon, making water elementals, which have the illusion race instead of the elemental race. However, when they die in combat, the offspring spawned after it splits are not illusions, but regular elementals instead.

I'm wondering if it even makes sense to have the illusion characteristic be a race instead of a normal upgrade. You'd think an illusion would keep its racial characteristics.

REQUEST:
edited to add another thing related to splitting water elementals. When you cast reveal on a water elemental, it would make more sense if the water elementals spawned after the split were also spawned in the revealed state.
 
:mad: my Stygian Guards are refusing to attack from sea... They prefer to step on land, then attack .. no matter how I initiate the move.
 
Man, would just like to thank you for making FFH playable in multiplayer again!
 
I'm running FFH2, patch o, with the media pack and blue marble. When I run just these, I have no problems. As soon as I patch it with More Naval AI, my game crashes upon the conclusion of map gen. Any ideas?
 
But I think I found a bug(I'm playing Magisters mod), the promotions are a little messed up like bless,stigmata, or any promotions targeting the opposing enemy.

Basically let's say I have destroy undead promotion and hover over an undead and that +70% against undead won't show in my combat odds, but if I would play as an undead and hover to the guy that has that promotion, I would get that 70%!! But it has no effect because the other guy isn't undead.... makes sense?:lol::crazyeye:

Looks like its just a display issue. I'll fix it for the next release.

BUG:
I'm using Gibbon, making water elementals, which have the illusion race instead of the elemental race. However, when they die in combat, the offspring spawned after it splits are not illusions, but regular elementals instead.

I'm wondering if it even makes sense to have the illusion characteristic be a race instead of a normal upgrade. You'd think an illusion would keep its racial characteristics.

I should be able to make it so that units spawned by illusions are also illusions. Kale purposefully made the Illusion promo cancel out race so that other anti-race promos (such as undead slaying) would not have an effect on the illusion.

:mad: my Stygian Guards are refusing to attack from sea... They prefer to step on land, then attack .. no matter how I initiate the move.

I've seen this before and its some sort of issue with pathfinding. Not sure I can easily fix it. In the meantime, you can use the numberpad to move your units manually.

Man, would just like to thank you for making FFH playable in multiplayer again!

Glad that you're enjoying it!

I'm running FFH2, patch o, with the media pack and blue marble. When I run just these, I have no problems. As soon as I patch it with More Naval AI, my game crashes upon the conclusion of map gen. Any ideas?

My guess would be that the Blue Marble pack is causing some kind of conflict.
 
Top Bottom