MNAI 2.71 release

Tholal

Emperor
Joined
May 19, 2009
Messages
1,676
https://forums.civfanatics.com/resources/more-naval-ai-ffh-mod.14499/

Should be compatible with previous saves.

Download is now a simple zip file. Extract to your preferred FFH directory. (let me know if you prefer the installer).

Also, a debug DLL and the source code are now included as part of the download.


AI
  • Infernals will no longer create the Glory Everlasting project
  • AI more interested in buildings that let them train units who are higher tier than any they currently own
  • some tweaks to AI_foundValue(); AI less interested in water tiles until it can work them; AI gives some value to Canal and Choke points
  • Added a couple of additional checks for isMaintainFeatures() that weren't in place before
  • increasing AIvalue for Mithril
  • increased AI minimum attack odds in a number of places; Patrol groups more likely to explore lairs and deal with nearby danger
  • slightly increased situational awareness when AI is valuing spells that add or remove promotions
  • tweaks to how AI values bonuses (using happiness, health and commerce weights when valuing bonuses that change those values; Sheaim should be more interested in Death mana; civs with desert terrain should be more interested in water mana
  • Loki will put less value on trying to turn cities that arent bordering his civ; AI should try to reserve a node for MetaMagic if pursuing a Tower Victory
  • account for isNoUnhappiness() and isNoUnhealthyPopulation() when determining AI_getHappinessWeight and AI_getHealthWeight respectively
  • minor tweaks to how the AI values pursuing Tower and Altar victories; tweak to the AI_magicCombatValue() function
  • added a hack to help the AI better evaluate the combat potential of Pyre Zombies
  • removed negative AIweights from Disciples, Lunatics and Asylums
  • AI should place a little more value on techs that allow commerce improvements and little less on religions; AI will place more value on feature clearing techs when they have blocked resources
  • AI will build more troops when at war; AI will use commerceWeight vlaues when valuing buildings that add commerce
  • increased minimum odds for a number of attack checks; added some randomness to how barbarians choose target cities; added some checks to try and encourage the AI to attack undefended cities; tweaked how the AI decides how big of a group it needs to attack a city

Bugfixes
  • fix for an assert related to Advanced Diplomacy
  • the Revelation spell no longer has any pyRequirements (fix for issue #97)
  • Fix deal auto-cancelling bug
  • Fix for text not showing for Perfect Sight provided by Pallens Engine
  • Demonic Citizens are now flagged as Infernal only (fix for bugs #115 - Puppet States getting Demonic Citizens
  • Fix for players being able to make multiple Puppets from one civ
  • added a bunch of missing XML entries for various Advanced Diplomacy tags. Should help the AI be less crazy about offering deals when Advanced Tactics is on.
  • switched out text for a hint that had outdated info (bugs #122)
  • Fix for Embassy not showing in the Advanced Scoreboard (fix for issue #80)
  • Held units can no longer cast releaseFromCage
  • Updated scenarios to fix issue with them failing to load from the in-game menu (issue #113)
  • fix for error when using the auto Unit Naming option with UNITAI_ANIMAL
  • AI / Code - Adding CIV4YieldInfos.xml to the mod. It was defaulting to base Civ4 values which gave Production a weight of 110%, food 100% and commerce 80%. They are now all 100%. The AI does lots of situational calculating in the DLL and these weight values arent really needed for this mod.
  • removed a hacky section of AI code I had added a while back; Tweak to keep the AI from building too many ships for escorting missionaries

User Interface
  • River of Blood message will now include the name of the affected city as well as the real amount of population lost
  • research bonuses from Bonuses are now displayed as a percenatge increase in the research mouseover in the city screen
  • when viewing improvement upgrade times in debug mode, interface will take into account civ-specific improvements for the player owning the plot

General
  • Puppet States now get a few more initial defenders on creation
  • Dragons are now Disease Immune
  • Workboats no longer flagged as MilitaryProduction
  • Disabled POWtrading for the Writing tech (didnt want to remove the tag entirely and break save games)
  • Barbarian cities with culture can no longer be culture flipped (may effect mods!)

Code
  • Additional logging
  • removed some obsolete hardcode related to Freak Shows
 
I think I prefer the installer. I'm not even sure if I set it up correctly. It still says "More Naval AI v2.7" when I mouse over the flag, and scenarios don't seem to load any better than before.

Thank you for the update, though.
 
I think I prefer the installer. I'm not even sure if I set it up correctly. It still says "More Naval AI v2.7" when I mouse over the flag, and scenarios don't seem to load any better than before.

Thank you for the update, though.

Bah! Looks like I forgot to update the version number.

I'll re-release tonight sometime to fix the version issue. Probably wont fix whatever is going on with the scenarios.
 
At first I extracted the files to their own folder because I saw the update to the mod before this post and wasn't sure what to do. I just copied and pasted them into the Assets folder, because that seemed like where they should go, but then I extracted them into the FFH folder for good measure.

I just made a fresh copy of the unmodded FFH folder and extracted the files into the Assets folder of that, but Norton decided that CvGameCoreDLL.dll is unsafe and deleted it, which probably explains the XML errors that I got when I tried to run Fall From Heaven 2.
 

Attachments

  • XML error.png
    XML error.png
    22.5 KB · Views: 297
Norton also removed the file for an unofficial patch for SMAC, so I decided to go ahead and replace Norton with Security Essentials, and WinRAR with 7-Zip while I was at it. I re-extracted to the Assets folder and things seem to be working fine now. It stopped an Open Borders deal from auto-cancelling.

Scenarios still not loading properly, but what ya gonna do, amirite? :p Standard workaround (clicking the scenario file) still works.
 
I have merged this with MagisterModmod, but am reluctant to release yet because my last several games have crashed inexplicably. I just switched to using the Debug DLL to see if it can reveal why. I have not explained a crash yet, but have already gotten these messages:

Code:
Assert Failed

File:  CvXMLLoadUtilityGet.cpp
Line:  656
Expression:  false
Message:  Error in GetChildXmlVal function, unable to find a child node

----------------------------------------------------------


Assert Failed

File:  CvCity.cpp
Line:  1517
Expression:  isNoBonus((BonusTypes)iI) || getNumBonuses((BonusTypes)iI) >= ((isConnectedToCapital()) ? (GET_PLAYER(getOwnerINLINE()).getBonusImport((BonusTypes)iI) - GET_PLAYER(getOwnerINLINE()).getBonusExport((BonusTypes)iI)) : 0)
Message:

----------------------------------------------------------


Assert Failed

File:  CvArtFileMgr.cpp
Line:  182
Expression:  false
Message:  get##name##ArtInfo:  was not found

----------------------------------------------------------
Assert Failed

File:  CvCity.cpp
Line:  11824
Expression:  getFreeBonus(eIndex) >= 0
Message:

----------------------------------------------------------

Assert Failed

File:  CvCity.cpp
Line:  7751
Expression:  getBonusGoodHealth() >= 0
Message:

----------------------------------------------------------




Assert Failed

File:  CvCity.cpp
Line:  7753
Expression:  getBonusGoodHealth() >= 0
Message:  getBonusGoodHealth is expected to be >= 0

----------------------------------------------------------


Assert Failed

File:  CvCity.cpp
Line:  8326
Expression:  getBonusGoodHappiness() >= 0
Message:

----------------------------------------------------------

Assert Failed

File:  CvSelectionGroup.cpp
Line:  1050
Expression:  false
Message: 

----------------------------------------------------------

edit: My test game crashed again, right after receiving this warning
Code:
Assert Failed

File:  CvGlobals.cpp
Line:  1845
Expression:  eImprovementNum > -1
Message:  

----------------------------------------------------------
 
Last edited:
@MagisterCultuum - I've seen the bonus related asserts in MNAI before. They dont seem to cause any issues and I'm not entirely sure what is causing them (I'm guessing it's related to buildings that provide bonuses but have not been able to track it down). If you're seeing those in the early game, then that may assist with debugging.

If you can provide me with an alpha of your merged mod, I can try to debug on my end and see if I can figure out the crashing issue.
 
I get most of those Asserts fairly early on. The first one happens when starting the game, including loading any saved game. The next several tend to happen fairly soon and recur often if I don't say to ignore them.

The Selection group asserts only happens in Worldbuilder, if I select a unit to edit it.

The only Assert that actually seems to be related to any real problem is the last one, in Line 1845 of CvGlobals.cpp. The game always crashes right after that.

I'm attaching a saved game from the turn before the crash.

I'm uploading an alpha version of ModDB now, as it is too large to post to the forum. (Note: While trying to make the files smaller I deleted the files which are duplicates from MNAI 2.71 instead of only the base FfH2 duplicates, so when you extract the files from this archive you will need to insert them into a renamed copy of your modmod.)

This link should work eventually, but says there are no available mirrors right now.
http://www.moddb.com/games/civilization-iv/downloads/magister-modmod-for-ffh2-alpha

Since I have work in the morning, I'm not going to stay up long enough to wait for a mirror to become available.
 

Attachments

  • Magister TURN-0230.CivBeyondSwordSave
    445.4 KB · Views: 247
Thank you Tholal, for all your enduring work on your mod. You have kept me playing this game longer than any other civ game.
 
Are the Disciples of Acherus and Sons of Inferno meant to be untethered from Acheron's city?
I had the misfortune of starting a Griggori game on a continent with the Calabim and five Barbarian cities -- I was expecting a rough game of warrior rushes (Alexis got steamrolled pretty quick), and the nuisance of dealing with Acheron nearby, but then my cities got fireballed pretty quick with Acheron's units roaming around, and was incinerated by turn 127 by Fire Elementals.
That early in the game, there's no real counter to that.
Settings were Barbarian World and Raging Barbarians.
 
Raging Barbarians allows Acheron mages (and fireballs) to stray from their city.
Don't play with this setting on, unless you feel extra hardcore.
 
Note to make Raging Barbarians and Acheron mutually exclusive for my future multiplayer games then.
Single player game, as Illians. Source of Iron in my borders, have Iron Working. My units have not gotten the Iron Weapons upgrade.
Did Bronze Weapons become an upgrade prerequisite? If so, that can lead to fatal resource disadvantages...

Edit: Iron weapons aren't applying to warriors. Champions had no issues. Intended?

OOS issues: One, on continuing from a save game -- one computer froze on the load screen from Windows deciding to ram through some updates at that moment.
The other, after Barbarians released from a lair by one player destroyed another, with the OOS occurring when they attempted to switch to a new civ when the game prompted them.
 
Last edited:
Warriors are limited to Bronze Weapons. Contrast their Civilopedia entry to the one for Axemen, for example. Similarly, Longbowmen and Crossbowmen can't use Mithril Weapons.
 
Is there a way to reduce or eliminate the change to make the AI value canals and chokepoints more? I now see the AI sending settlers all the way across the map (literally) to settle its second city on a chokepoint or canal site. It seems like the AI now values canals and chokepoints as city locations to the detriment of all other priorities, e.g., they're settling iceball cities that happen to be on canal sites far away from their capitals before settling fertile territory very close to the capital. I think overall this has been a major negative change for AI behavior.
 
Top Bottom