Unofficial Patch 0.21 Released

Dresden

Emperor
Joined
Jul 10, 2008
Messages
1,081
BTS 3.17 Unofficial Patch 0.21

This is a modification of the core DLL for the game Civiliztion 4: Beyond the Sword. It is a community effort to add fixes and improvements beyond the latest Official patch release with intent to fix obvious bugs but not drastically alter gameplay.

Dedicated Forum: http://forums.civfanatics.com/forumdisplay.php?f=299
Sourceforge Project: http://sourceforge.net/projects/civ4btspatch/

Download:


Forum-friendly version of the Readme:

Intro:
Spoiler :
Beyond the Sword 3.17 Unofficial Patch

Version 0.21

CivFanatics Forum: http://forums.civfanatics.com/forumdisplay.php?f=299
SourceForge Project: http://sourceforge.net/projects/civ4btspatch/

This is an update to the Unofficial Patch originally created by Solver.
This version was developed by Dresden with help from other CFC members.

Source is included but contains only those files which have changed from
the official 3.17 release. All changes should be documented in the code.
The Makefile provided is a slightly-altered version of the 3.17 Makefile
provided by Refar with his Visual Studio debugging setup instructions.
Ref: http://forums.civfanatics.com/downloads.php?do=file&id=10018


Changes from version 0.19.1
Spoiler :

Changes between version 0.19.1 and version 0.19
Spoiler :

Changes between 0.19 and the Official 3.17 patch (order is bottom to top):
Spoiler :
  • AI plane/ship retreating logic when city is in danger extended to Forts
  • Vassal's spies no longer caught in master's territory
    CvUnit::isIntruding()
  • AI logic on banning nukes tweaked to account for AI leader personality and the global situation
    CvPlayerAI::AI_diploVote()
  • Undid galley production changes from Better BtS AI (see **)
  • Non-native collateral damage tweaked (thanks guys)
    CvUnit::collateralCombat()
  • Civilopedia will now display "replaced by" lines for buildings that get replaced by UBs
    CvGameTextMgr::setBuildingHelp()
  • AI guided missiles will lean towards destroying resource-producing tiles as opposed to improvements like Towns
    CvUnitAI::AI_airBombPlots()
  • Damaged AI attack planes may choose to continue attacking if no defending interceptors are around
    CvUnitAI::AI_attackAirMove()
  • Rivers running through deserts will result in floodplains
    CvGame::normalizeAddRiver()
  • Start location tweaks per SevenSpirits
    CvGame::normalizeAddExtras(); CvGame::normalizeAddFoodBonuses()
  • Workers not as lazy, per Bhruic's patch
    CvUnitAI::AI_workerMove()
  • Glance screen reactivated
    (Python) CvExoticForeignAdvisor.py
  • AI will no longer settle Great People in cities that are in danger of being captured
    CvUnitAI::AI_join()
  • AI will try to retreat air assets from endangered cities
    CvUnitAI::AI_attackAirMove(); CvUnitAI::AI_defenseAirMove()
  • AI will no longer refuse to retreat damaged planes
    CvUnitAI::AI_attackAirMove()
  • AI will change civics during Golden Ages
    CvPlayerAI::AI_doCivics()
  • Revised collateral damage formula for non-native collateral units, if modded in
    CvUnit::collateralCombat()
  • Fixed bug in the map generator with water starts
    CvGame::normalizeAddExtras()
  • AI may now try to use Warlords to create super-medic units
    CvUnitAI::AI_promotionValue(); CvUnitAI::AI_lead()
  • Fixed bug that prevented random events that target a unit from triggering
    CvPlayer::pickTriggerUnit(); CvUnit::getTriggerValue()
  • Access to the Barrage line removed from armored units. If units with access to Barrage and no inherent collateral damage are modded in, they will work.
    (XML) CvPromotionInfos.xml
  • Fixed AI defender bug for newly captured cities.
    CvCityAI::AI_neededDefenders()
  • ** Fixed overproduction of transports in land wars courtesy of better BtS AI team.
  • Made the AI more likely to use missiles on cruisers/subs to strike against enemy improvements.
    CvUnitAI::AI_missileAirMove()
  • Made AI ships prioritize retreating if docked in a city which is in the danger of imminent capture by enemy.
    CvUnitAI::AI_attackSeaMove(); CvUnitAI::AI_reserveSeaMove(); CvUnitAI::AI_escortSeaMove();
    CvUnitAI::AI_exploreSeaMove(); CvUnitAI::AI_carrierSeaMove(); CvUnitAI::AI_missileCarrierSeaMove()
  • Civilopedia and mouseover help for units that cause collateral damage will now show the collateral damage limit (50% for Catapults, etc.)
    CvGameTextMgr::setUnitHelp(); CvGameTextMgr::setBasicUnitHelp()
  • Somewhat experimental AI change: Aggressive AI now considerably less likely to want peace if it poses more of an immediate threat to enemy cities than it currently faces itself.
    CvTeamAI::AI_endWarVal()
  • Fixed unavailability of foreign civ demographics if playing with espionage disabled.
    (Python) CvInfoScreen.py
  • Barrage promotions made working again on Tanks and other units with no base collateral ability
    CvUnit::collateralCombat()

Special thanks to DanF5771 for investigating, code suggestions, and testing. Also thanks to ViterboKnight, jdog5000, ruff_hi, and EmperorFool for providing fixes and the many other community members who reported bugs and/or provided saves demonstrating problems.

Download (Standard version):

Download (50 Civ version):
 
Fix-it List for next version (0.23)


Issues which have been fixed in the current development version and will be included in the next release.
  1. Diplomacy summary will no longer claim that a civ is the worst enemy of a human team. Save and screenshot from PH-14 SG
  2. Fixed problem regarding lightly-damaged AI planes always choosing not to attack. [jdog5000] See jdog's post below.
  3. Groups on sentry now awake based on farthest-seeing unit's vision rather than head unit's vision. [Pep] See Pep's Bug Report.
  4. Hidden Nationality units can now enter friendly rival territory (without open borders) when starting move in a city. [Pep] This is Pep's Privateer fix.

Issues which are being actively worked on in the current development version and are planned to be included in the next release.
  1. AP Hammer bonus issues which came too late to make it into 0.21

Issues which are up for discussion and on which no decisions have been made.
  1. Tech value issue on dogpile war trades.
  2. The old sea-patrol/withdraw can of worms. ;) Proposed fixes late in the topic (such as post 199)
  3. Problems where civs go into perpetual WHEEORN because they can't find a route to their target and refuse to use boats. An example is Gliese's Deity game.
  4. The Liberalism cheat where you can get the free tech to apply to a different game. Listed here because I'm not yet sure it can be fixed in the SDK.
  5. Possible change so that if you tell a unit to goto a plot in the fog or black it won't automatically attack if it finds a previously-unseen enemy when it gets there; also a similar change for transport auto-unload on a plot in the black. Both are part of Pep's New sentry actions for units modcomp.
  6. Changing Air unit recon back to the pre-BTS behavior of ignoring the terrain of the plot being reconned; see posts below beginning with Roland Johansen's request
  7. Fixing some of the worst No Espionage problems such as EP-granting events, the Communism Free GSpy, and espionage buildings that serve no other purpose. See discussion below beginning with r_rolo1's request.
  8. Privateers can see invisible/stealth units. See jdog5000's post below.
  9. Colonies which replace eliminated players still display the old civ's name and leadername in some places (like the scoreboard) because those names are stored outside the SDK and the API doesn't provide a way to change them; should be able to be worked around via methods the Revolution mod uses. Save from GravityWave.

Issues which either can not or will not be addressed in the next release.
Nothing yet
 
Just a quick note that grumbler's Installer has been updated to this version and links added to the first post. A 50-civ version of the DLL will be posted soon too.

Also my apologies to DanF5771 for screwing up his username in the readme. :blush: I always want to put 5571 instead. :hammer2:
 
hakuna matata, Drösdön ;). What's in a name?

Thanks for pushing Civ-things forward in such a professional way :goodjob:!
 
Dresden, this sounds great. I am currently working on a mod, and I am trying to get to ~20-22 players.

Most of the mod (and WBS file) is done. I attempted to bring in your patch by including it in the mod, but that didn't seem to work.

My question is, if I install your new patch into the main Civ IV directory, is this going to have any adverse effects on my mod (kill the ability for it to load, etc...). Or, what would you recommend? I think I am going to have to go into the WBS file and alter some of the team/player data anyways, but might I need to go into other portions of the pre-existing files?
I am NOT a computer code person by ANY stretch of the term. I am good at cutting, pasting, trial and error, and finding lines of code that seem to contain that which I am interested in.

-Zen Blade
 
@Zen Blade:

First, if your mod/scenario uses more than 18 players then you want to use the 50-civ version as a base. I'm not completely sure of the effects of installing that as the main DLL as it was made on request and I play with the "standard" 18 civ-max myself.

However, as long as your mod doesn't have its own custom DLL, using an Unofficial Patch DLL should not cause any problems whether it is installed as the main DLL or installed only for your mod. Depending on how extensively you have changed units, you may wish to not include the Unofficial Patch XML changes though. The Promotions info only removes barrage promotions from tanks and the Units info only gives Conquistadors the ignore walls ability so it is generally easier to just mirror those changes in your own XML (if they apply.)
 
thanks for the response Dresden,

My concern though is that my already existing WBS file (when I add in the extra civs and have the 18+ DLL present) does not appear to function... I'm not completely sure what the cause of this is...

However, you think that having the 50 player DLL within the mod, while having the game patched to the official 3.17 version... should work? Could the new DLL conflict at all with the already existing WBS file?

thanks!

-Zen Blade
 
To make sure the patch is active, load/start a game and hover your mouse over the flag on the main interface. If you see the BTS and Patch version numbers above your leader info, then it is running.
 
Hello

I appreciate the efforts made to update this unofficial patch, well done.

Noting that the Better AI is now at version 0.41 are there similarities between that and this patch..?

I am eagerly waiting for Ninja2 to complete his fabulous work in merging this patch along with Better AI, Wofshanzes, and others, in his latest release but I do not have the skills to merge Better AI with the Unofficial patch.

So does the unofficial patch and the Better AI share some game fixes and perhaps the latter attempting to improve the AI gameplay..?
 
The DLL change in and of itself should not cause you any problems.

Hi Dresden,

well, I am getting problems. After changing the dll, I have tried to go into the WBS file (increasing the number of players/teams...) and I often get the "you are defeated" screen. I can see improvements remaining on the map, but the cities (and most units) are no longer there. Some civs still have a random start unit (or two), but the established positions have all been nuked.

any thoughts?
thanks,
-Zen Blade
 
Hello

Noting that the Better AI is now at version 0.41 are there similarities between that and this patch..?

I am eagerly waiting for Ninja2 to complete his fabulous work in merging this patch along with Better AI, Wofshanzes, and others, in his latest release but I do not have the skills to merge Better AI with the Unofficial patch.

So does the unofficial patch and the Better AI share some game fixes and perhaps the latter attempting to improve the AI gameplay..?
In his post announcing Better AI 0.41, jdog5000 mentions that 0.41 includes the changes made by Dresden in his unofficial patch. That would mean that if you use Better AI 0.41, you don't need to merge Better AI and the unofficial patch.

Oh, and many thanks for the patch, Dresden!! :goodjob: That is great work and I waited eagerly for your patch before I updated to 3.17. :)
 
Hi Dresden,

well, I am getting problems. After changing the dll, I have tried to go into the WBS file (increasing the number of players/teams...) and I often get the "you are defeated" screen. I can see improvements remaining on the map, but the cities (and most units) are no longer there. Some civs still have a random start unit (or two), but the established positions have all been nuked.

any thoughts?
thanks,
-Zen Blade
So simply changing from the original 3.17 DLL to the Unofficial Patch DLL results in these oddities? And is there any difference between using the standard Unofficial Patch DLL & the 50-civ one? I don't know much about the WBS-editing area of modding but perhaps there is an issue because of the increased number of players.
 
Dresden,

I agree that it is likely a result of the changed number of players... but I am really not sure what needs to be changed.

I have not yet tried the standard unofficial patch.
If anyone else out there has any ideas, please feel free to post.

Dresden, Although we can't figure it out (quickly), thanks for your effort. I'm just gonna push forward with what I have (with the 18 player version).

-Zen Blade
 
:goodjob: on the new Patch!

Quick question though: if there's an installer, why not incorporate it into the patch DL?:confused:
 
Well Dresden, I'm not sure if this one is covered........

From PH-14 ( save avaliable here ) :
Spoiler :

:D

It is not the first time I see this in the forums, but this time I have a save :p Well, it is not more than a line of code anyway ......
 
Thanks r_rolo1; both for the report and the save. I've heard of that but hadn't seen it recently; hopefully it's just a simple isHuman() check that needs to be added. I guess the vacation's already over and it's time to start the to-do list for 0.23. :cry:
 
Top Bottom