mixed AI/Human MP mod

maxp

Chieftain
Joined
Aug 2, 2012
Messages
64
Location
Sydney, AUS
Hi Guys,

Seeing how the new MP changes with the BNW patch didn't fix this issue, I was hoping a mod could.

I would like to enable AI civs in MP games to contact human players as if it were a SP game. This is a small issue for most, but seeing how it affects 90%+ of my games, I would like to see a fix, and I know there are others out there that feel the same.

Would it even be possible to mod this in? I heard that mods now work a bit better in MP, or am I wrong?

If its possible, I would be happy to do the coding, I just need some direction.

Thanks.
 
Unfortunately it's not possible to fix the MP AI with a mod. Even if it was, we'd be forced to play it over GMR (which is great but slow as hell with the reloading) as there is still no native MP Mod support.
 
I would like to enable AI civs in MP games to contact human players as if it were a SP game. This is a small issue for most, but seeing how it affects 90%+ of my games, I would like to see a fix, and I know there are others out there that feel the same.

This is explicitly forbidden in the DLL, probably for technical reasons that I haven't figured or nor do I want to, but if you wanted to fix this (which is impossible, by the way), you would start by changing this.

Code:
// DoContactMajorCivs()
// Loop through AI Players
	PlayerTypes eLoopPlayer;
	int iPlayerLoop;

	for(iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)
	{
		eLoopPlayer = (PlayerTypes) iPlayerLoop;

		if(!IsPlayerValid(eLoopPlayer))
			continue;

		// No humans
		if(GET_PLAYER(eLoopPlayer).isHuman())
			continue;

		DoContactPlayer(eLoopPlayer);
	}

	// Loop through HUMAN Players - if we're not in MP
	if(!CvPreGame::isNetworkMultiplayerGame())
	{
		for(iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)
		{
			eLoopPlayer = (PlayerTypes) iPlayerLoop;

			if(!IsPlayerValid(eLoopPlayer))
				continue;

			// No AI
			if(!GET_PLAYER(eLoopPlayer).isHuman())
				continue;

			DoContactPlayer(eLoopPlayer);
		}
	}
 
Ah, thanks.

Thanks for the info. Maybe one day it will be possible, and I can use that snippet of code :)
 
Top Bottom