• Firaxis announces Civilization 2K23! Discuss these news with us here.

Is there anyone who played before BTS released?

spqkfk

Chieftain
Joined
Jun 20, 2019
Messages
11
I heard that before BTS( in Vanilla, Warlord ), AI used to ask for peace to player.
But I've never seen that in BTS.
Is this True?
 

lymond

Rise Up! (Phoenix Style!)
Moderator
Hall of Fame Staff
Joined
Mar 11, 2008
Messages
24,121
Yep, AIs would offer peace deals. Can't remember if it was just Vanilla or present in Warlords too.
 

spqkfk

Chieftain
Joined
Jun 20, 2019
Messages
11
Yep, AIs would offer peace deals. Can't remember if it was just Vanilla or present in Warlords too.

Really?
Wow.. I have no idea why they put it off.
It would be more fun if they kept it, I think.

Well, now I am thinking if there are any mods which enable that feature again.
Do you have any clues?
 

Lexicus

Deity
Joined
Aug 28, 2007
Messages
29,194
Location
Sovereign State of the Have-Nots
I'm like 95% sure I've had the AI offer me peace in BTS too...but maybe I'm wrong...
 

Colon

King
Joined
Sep 25, 2001
Messages
865
Huh? Doesn't the AI ask for peace in BTS? Am I that oblivious I never realised during the course of many years?
 

Major Tom

Immortal
Joined
Jun 1, 2005
Messages
717
Location
Oslo
Either they refuse to talk or they will talk, but human needs to take initiative. They will take initiative to surrender and become vassal when doomed, tho. I think.

Edit: Recently finished (and won) two conquest games and at no point they took initiative to talk peace. Vassals was off there.
 

lymond

Rise Up! (Phoenix Style!)
Moderator
Hall of Fame Staff
Joined
Mar 11, 2008
Messages
24,121
They will take initiative to surrender and become vassal when doomed, tho. I think..
Nope..they don't do not do that..that is still a peace deal by the way

You may be confusing that with them offering to peace vassal
 
Last edited:

Lennier

Emperor
Joined
Mar 10, 2013
Messages
1,418
Location
Orange County, NY
They will sometimes offer to be your peace vassal.
 

f1rpo

plastics
Joined
May 22, 2014
Messages
1,552
Location
Germany
[...] I have no idea why they put it off.
It would be more fun if they kept it, I think.
I'm almost positive that it's a bug, i.e. not an intentional change.
Well, now I am thinking if there are any mods which enable that feature again.
Do you have any clues?
Civ4BeyondSword.exe double-checks all AI-initiated offers at the start of the human turn, and that's where the peace offers get killed. I guess that's why none of the unofficial patches fixed this; source code for the GameCore DLL is available, but not for the EXE. It is possible to fix it through a workaround in the DLL, and I did that earlier this year in my mod Advanced Civ. To my knowledge, @keldath's Doto is the only other mod that has adopted my bugfix. I'm attaching a screenshot of a peace offer (a capitulation offer; it's the only screenshot I have at hand). I don't think that the AI suing for peace adds much to the game really; just a bit of flavor.
 

Attachments

  • capitulation_offer_advc.jpg
    capitulation_offer_advc.jpg
    165.7 KB · Views: 385

swipernoswiping

Chieftain
Joined
Oct 17, 2015
Messages
2
I'm almost positive that it's a bug, i.e. not an intentional change.Civ4BeyondSword.exe double-checks all AI-initiated offers at the start of the human turn, and that's where the peace offers get killed. I guess that's why none of the unofficial patches fixed this; source code for the GameCore DLL is available, but not for the EXE. It is possible to fix it through a workaround in the DLL, and I did that earlier this year in my mod Advanced Civ. To my knowledge, @keldath's Doto is the only other mod that has adopted my bugfix. I'm attaching a screenshot of a peace offer (a capitulation offer; it's the only screenshot I have at hand). I don't think that the AI suing for peace adds much to the game really; just a bit of flavor.

Really? Literally, I had no idea that was ,actually, a bug.
I thought that it is related to the dopeace part in some way. So I searched it but couldn't find anything from it.
Now I see what was wrong.

Btw, I'm defenitely gonna try your mod. It looks really promising.
Thank you so much!! :thumbsup:
 

f1rpo

plastics
Joined
May 22, 2014
Messages
1,552
Location
Germany
I thought that it is related to the dopeace part in some way. So I searched it but couldn't find anything from it.
The DLL side is fine, i.e. beginDiplomacy gets called. I'm guessing that the additional check is part of the trade table code in the EXE. And, apparently, the EXE requires the two teams to be at peace when it should actually require them to be at war. So the workaround is to have CvTeam::isAtWar lie to the EXE at just the right moment. Cool that I'm not the only person who cares about this obscure error.
 

Civlopod

Chieftain
Joined
Dec 5, 2019
Messages
6
I bought Vanilla Civ 4 and was not really impressed. Mainly because religion was used as espionage, and founding a religion meant you could see what was going on in every city with the religion present. It made religion a huge liability if it wasn't your own. They didn't alter it until BTS, which fixed things nicely.
 

Bestban

Chieftain
Joined
Oct 13, 2019
Messages
18
So the workaround is to have CvTeam::isAtWar lie to the EXE at just the right moment. Cool that I'm not the only person who cares about this obscure error.
Nice finding and good job! Thanks, f1rpo :thumbsup:. I'll port your commit as my very first modding exercise over an yet-to-exist personal mod :lol:, based on said BBAI.
 
Last edited:

f1rpo

plastics
Joined
May 22, 2014
Messages
1,552
Location
Germany
That commit is wordier than I remembered it. :mischief: It should work correctly, but I've made a couple of improvements since then:
Spoiler technical details :

- Added a .def file to avoid the messy changes to isAtWar calls in CvGameCoreUtils.cpp and CvPlayer.cpp (Git commit). That requires the /DEF:CvGameCoreDLL.def option when linking.
- Added a line to CvPlayerAI::AI_offerCapitulation to get the AI to offer reparations along with a capitulation.
It might be best to run a full-text search for "advc.134a" on the latest CvGameCoreDLL folder and to mostly disregard the Git commits.
Anyway, good luck.
 
Top Bottom