February 6, 2003, 16:05
|
#31
|
Settler
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Feb 2003
Posts: 19
|
Unfortunately I don't know much about SLIC so the question to the experts: would it be possible to define the prio for GOAL_SETTLE_LAND in strategies.txt (if this is the right switch) dynamicly, depending to the gov type and the current number of cities to prevent the AI from overgrowing?
I have the same problem on a 200x400 map and it is too easy. I've only to wait and the AI grows into self-destruction.
|
|
|
|
February 6, 2003, 17:09
|
#32
|
Super Moderator
Local Time: 17:16
Local Date: November 1, 2010
Join Date: Mar 2001
Location: Tübingen, Germany
Posts: 6,206
|
Quote:
|
Originally posted by itsamic
Unfortunately I don't know much about SLIC so the question to the experts: would it be possible to define the prio for GOAL_SETTLE_LAND in strategies.txt (if this is the right switch) dynamicly, depending to the gov type and the current number of cities to prevent the AI from overgrowing?
I have the same problem on a 200x400 map and it is too easy. I've only to wait and the AI grows into self-destruction.
|
Well I think the best sollution on ultra gigantic maps is to increase the city caps, that will give the AI some room and also for the human so that it is possible to achieve the bloodlust victory. Also the priorities of the goals can be changed by switshing the strategies via slic during the game. But on oversized maps as I said the real problem are the city caps.
-Martin
__________________
Civ2 military advisor: "No complaints, Sir!"
|
|
|
|
February 6, 2003, 17:48
|
#33
|
Prince
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
|
itsamic, the way I did it was to make a strategy which simply removed settlers from the AIs priorities altogether, and force that strategy to be adopted once they hit the city limit.
__________________
Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs." - Mike Breitkreutz, Firaxis
|
|
|
|
February 14, 2003, 20:14
|
#34
|
Settler
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Feb 2003
Posts: 19
|
I have already increased city caps, but it should be in a limit because to much cities speeds up the game too much. I'm using 22 Civs because I think a large map and many civs make the game more "realistic", there are much more interactions possible. At the moment I'm trying with the modified pop.txt but I'm not sure if entertainers will solve the problem. If a civ grows to fast at the beginning (with many smal cities) the problem still appears.
@Immortal Wombat
Would you please post the code for changing the priority according to the city limit? I know that it is the wrong way to learn the SLIC syntax but....
|
|
|
|
February 15, 2003, 13:48
|
#35
|
Super Moderator
Local Time: 17:16
Local Date: November 1, 2010
Join Date: Mar 2001
Location: Tübingen, Germany
Posts: 6,206
|
Increasing the city cap is needed if you increase the map size, also necessary is to modify the pollution settings.
By the way in my last test game I found an AI that was 7 cities over the city cap without any problems, they lowered the slider settings but only a few cities had minor problems of happiness of 72/71.
-Martin
__________________
Civ2 military advisor: "No complaints, Sir!"
|
|
|
|
February 16, 2003, 08:32
|
#36
|
Prince
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
|
Quote:
|
Originally posted by itsamic
@Immortal Wombat
Would you please post the code for changing the priority according to the city limit? I know that it is the wrong way to learn the SLIC syntax but....
|
I'm afraid my modem's bust so I can't post from home, where the files are... I'll try to respond when I get a new modem.
__________________
Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs." - Mike Breitkreutz, Firaxis
|
|
|
|
February 17, 2003, 07:54
|
#37
|
Settler
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Feb 2003
Posts: 19
|
I have already increased city cap and pollution settings. Additionally I gave water filter the ability to decrease pollution, reduced the probability to find settlers and citys in the huts, increased the min distance between cities and the nice factor for founding new cities. Currently I'm testing these settings. I think this will keep me busy for a week or so, so far it looks fine.
The next I want is to stretch the time line and the tech tree and after this it could be necessary again to steer the growing of the AI.
|
|
|
|
April 27, 2003, 14:59
|
#38
|
Prince
Local Time: 16:16
Local Date: November 1, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
|
oops, forgot about this...
Actually, it seems I lied. What I did was to stop the AI building settlers when it hadn't built a city for 'a long time', and had a certain number of cities already. I don't know if this is needed, but it saves the AI hauling a whole load of settlers around a map that's already fully settled.
It's quite simple actually:
Code:
|
// In strategies.txt
STRATEGY_ENOUGH_OF_THE_SETTLERS {
SettlerUnitsCount 0
}
STRATEGY_ALMOST_ENOUGH_OF_THE_SETTLERS {
SettlerUnitsCount 1
}
// In a SLIC file
int_t CityCountdown[];
HandleEvent(BeginTurn) 'settler_watcher' pre{
if(g.year <= 1){
for(i=0;i < preference("NumPlayers"); i = i + 1){
CityCountdown[player[i]] = 0
}
}
CityCountdown[player[0]] = CityCountdown[player[0]] + 1;
if(CityCountdown[player[0]] >= 200 && player[0].cities >=15){
SetStrategicState(player[0], StrategyDB(STRATEGY_ENOUGH_OF_THE_SETTLERS_ALREADY));
} elseif(CityCountdown[player[0]] >= 100 && player[0].cities >=15){
SetStrategicState(player[0], StrategyDB(STRATEGY_ALMOST_ENOUGH_OF_THE_SETTLERS_ALREADY));
}
}
HandleEvent(CreateCity) 'reset_city_watch' pre{
int_t tmpPlayer;
tmpPlayer = player[0];
CityCountdown[tmpPlayer] = 0;
} |
If you have Dale's WhatGovAmI? code installed and running in the mod, it wouldn't be too difficult to make it check for city limits.
Code:
|
// assuming GOVT_WhatGovtAmI array is set up.
HandleEvent(BeginTurn) 'check_city_limits' pre{
int_t maxCities;
government[0]=GOVT_WhatGovtAmI[player[0].owner];
maxCities=GovernmentDB(government[0].type).TooManyCitiesThreshold;
if(PlayerCityCount(player[0].owner) >= maxCities){
SetStrategicState(player[0], StrategyDB(STRATEGY_ENOUGH_OF_THE_SETTLERS_ALREADY));
}
} |
Or something.
Untried, untested, don't sue me, hate me, or trust me ever again if it all goes pear-shaped.
__________________
Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs." - Mike Breitkreutz, Firaxis
|
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is On
|
|
|
All times are GMT -4. The time now is 11:16.
|
|