Combining Better BUG AI and BAT

Does everything from r47 include a compiled dll?
Anyway, I have no clue what's happening. I haven't tested 2.2 myself yet but I can only find it strange that it doesn't work... maybe try it without deleting python folder next time? idk
 
I'm stumped too. Definitely must delete the Python folder or you'll get other errors. I don't see how the working Python code in BULLAI would fail in BAT. :confused: I'll give it a shot when I get home.
 
Oops, it appears that I messed up in my own step 2 and deleted the Python folder in the BAT Mod 2.2 I meant to stay as BAT, and not in the one I overwrote with Better BUG AI. Sorry for the false alarm! I appreciate your modesty in saying you're stumped instead of I'm careless, lol.

I'm still getting the multiple "ERR: Call function getModPath failed. Can't find module Full_of_Resources_3_10.py" errors in PythonErr.py. But now that I have BAT Mod 2.2 correctly restored, I see that I get those same errors there. So apparently that's a BAT Mod 2.2 issue, and I'll post a bug report there instead.
 
I followed the instructions in this thread and got BAT 2.2 + BBAI r47 working. That is
*Install BAT 2.2
*Delete the BAT 2.2 Python folder
*Copy everytthing from the BBAI folder and replace anything when prompted.
Now I have noticed one minor strange thing after playing for a while.

Before I did this install I played on an install with BUG 4.3 + BAI 0.84. In my old install when I hovered over an AI in either the Foreign Advisor screen or while talking directly to an AI I could see the deals I had with said AI. Also I could see the deals the AI's had with each other by selecting an AI in the Foreign Advisor screen and then hover over another AI. Now I see no trade deals at all when hovering.

What I see now is
*Attitudes (A new one from my earlier install is the First Impression now showing)
*At War
*Have Peace Treaty
*Is Worst Enemy

Finding my own deals is still doable in the more tiresome regular way in the Forein Advisor under Active but I can no longer see the AI Open Borders deals they have with each other which can be quite a problem sometimes.

Anyone have a clue what might be causing it? I found it strange since I don't have any other problem that I know of. Otherwise it is a really great modcombination!
 
The trade deals are no longer shown automatically because we added all that extra info to the hover and it was wrapping sometimes.

To see deals between you and a rival, hold down the CTRL key when hovering over their leaderhead. You can also hover over the Trade Network icon (3 arrows) on the scoreboard without needing to hold CTRL.

On the F4:RELATIONS tab, if you select another leader you can hold CTRL and hover over other leaders to see deals between them. I don't recall if you have to hold CTRL to see deals between rivals on the F4:GLANCE tab.
 
Is it possible to use JDOG's latest BBAI (version 1.00a) replacing just the DLL of Fuyu's BBUG AI?, version 0.90r, which is slightly behind JDOG's latest AI or, I take it, that will mess up the BULL changes?

Edit: Game does not crash anyway, but that appears to be the case, either you can get the latest better AI or fuyu's BULL changes.
Merging two DLL's is not something the average user can do right?
 
That will remove the BULL changes entirely since they are all in the DLL. BUG and Better AI would still work, however.
 
entwood: That depends on how you define the average user. If the average 'user' doesn't compile his own dll, then merging in the latest Better AI will not be possible; for the average modder however that would task would be pretty easy. edit: or not. Obviously I don't know enough modders to derive a realistic average, I was just thinking it would be very easy for jdog, EF, phungus, or Afforess.
Anyway, here's my merge with latest Better AI changes:
Better BUG AI 1.00a (2010-05-03) @ mediafire
 
entwood: That depends on how you define the average user. If the average 'user' doesn't compile his own dll, then merging in the latest Better AI will not be possible; for the average modder however that would task would be pretty easy.
Your average modder never moves beyond XML editing, and some of the most popular mods out there have mod makers that refuse to even touch the SDK, and they only really work with python in order to get merges to work right. So I disagree. Plus Civ4's XML offers alot of power in it, most hobby modders will never find themselves needing to go beyond it's scope.
 
SDK ... yuk. Don't make me touch it.

+1 with phungus
 
The one BULL component that is not enabled in Better BUG AI, Global Warming, comes with extra XML Assets. I wonder why they haven't broken anything for anyone yet?
Code:
  Assets/
    XML/
M     GlobalDefinesAlt.xml [COLOR="Gray"]<- will be overwritten[/COLOR]
      GameInfo/
M       [B]CIV4GameOptionInfos.xml[/B] <- delete this file
      Terrain/
R       [B]CIV4FeatureInfos.xml[/B] <- delete this file
R       [B]CIV4TerrainSchema.xml[/B] <- delete this file
      Text/
A       GlobalWarmingTextInfos.xml [COLOR="Gray"]<- doesn't matter[/COLOR]
 
Well neither text nor globaldefines would cause trouble; I understand the gameoption would only break savegame compatibility to my merge without BAT where the number of gameoptions would be different (right?), but I'm not sure about the FeatureInfos with one additional item. If the item is declared in the schema then it can be savely ignored in the XML loading process? Would make sense too, crashing would only occur if something that is expected is missing, like when you use a dll with Global Warming Mod enabled but forget the required xml assets - I speak from experience there.
 
My only concern was the additional items in the schema, but I think you're correct that it would only cause trouble the other way. For sure running a DLL with the option on without the assets would be problematic.

Similarly, the extra game option in the XML is probably just not loaded (hopefully) since the total number expected is compiled into the DLL. It depends on whether or not it loops over the constant or the full file. If the latter it could be reading a CvGameOptionInfo into memory that doesn't belong to it, or maybe it allocates the length of the array based on the number of items in the XML which would be fine and ignored later--as long as the new item is added at the end of the file.
 
If the item is declared in the schema then it can be savely ignored in the XML loading process?
My recent experience with adding a tag in the XML worked fine, as long as I declared it in the schema file. I mistakenly thought that the tag was enabled in the DLL, and it hasn't been yet. I had repeated crashes until I added the tag to the schema. Now it loads and plays fine, it just doesn't process the new tag in the appropriate XML file.
 
CIV4InterfaceModeInfos.xml is safe too? Then yes, it would save people the trouble of merging XML files.
The GameOptions should stay out though, just make Rising Seas an XML option, to be enabled via GlobalsDefinesAlt.
 
It looks like all of the infos are stored in vectors and all items are read from the XML. As long as all new elements are at the end of the XML files they will be read but ignored since the ones that have additional elements have #defined constants that are used as loop constraints. We'd really need to do a thorough test, but it looks promising.

One thing I still need to do is find a good alternative to using PlayerOptions for features that cause OOS issues: Governor Builds Workers, Safe Moves, and Pre-Chop. One idea is to keep them as normal options and copy their values to PlayerOptions if the player is using the MP BULL DLL. I'd rather not have a separate DLL for MP, though.
 
Top Bottom