In diesem Fall leider nicht.
Hab ne Codestelle gefunden, aber sowas ist ohne Save ätzend zu überprüfen.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Dabei handelt es sich zwar um eine Denial-Entscheidung (z.B. übers Handelsfenster), aber rucivfan und ich vermuten, das könnte auch fürs Canceln sorgen:
Achtung Spoiler:
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Habe gerade rausgefunden, dass das Verhalten mit "intelligentere KI" zu tun hat. Oben genannter Code wird inzwischen ohne die Option ausgeführt, ist dafür also nicht verantwortlich.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Es liegt an Afforess Code zur Spieloption hier:
PHP-Code:
int CvTeamAI::AI_openBordersTradeVal(TeamTypes eTeam) const
{
/************************************************************************************************/
/* Afforess Start 03/19/10 */
/* */
/* Ruthless AI */
/************************************************************************************************/
//Normal Firaxis calculation
int iValue;
iValue = (getNumCities() + GET_TEAM(eTeam).getNumCities());
if (GC.getGameINLINE().isOption(GAMEOPTION_RUTHLESS_AI))
{
//if we are planning war, but not against them
if (AI_getWarPlan(eTeam) == NO_WARPLAN && getAnyWarPlanCount(true) > 0)
{
iValue *= 2;
}
}
return iValue;
/************************************************************************************************/
/* Afforess END */
/************************************************************************************************/
}
Ich weiß nur noch nicht, warum.
1. Was hat der Krieg des Spielers, dessen Grenzen von allen KIs wieder geschlossen werden damit zu tun?
2. Hier wird multipliziert, man sollte also denken, dass offene Grenzen eher bevorzugt als vermieden werden.
3. Nur beim Menschen oder generell? (Test to do)
Geändert von Cybah (08. Juni 2015 um 04:24 Uhr)
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Der Code scheint unvollständig oder von Afforess selbst nochmal überarbeitet worden zu sein:
PHP-Code:
void CvTeamAI::AI_invalidateOpenBordersTradeVal()
{
m_iOpenBordersVal = -1;
}
int CvTeamAI::AI_openBordersTradeVal(TeamTypes eTeam) const
{
// Afforess
if (m_iOpenBordersVal != -1)
{
if (m_iOpenBordersVal > 0)
{
return getNumCities() + GET_TEAM(eTeam).getNumCities();
}
return m_iOpenBordersVal;
}
int iForeignConnectednessNeeded = 0;
int iTargetCities = GC.getWorldInfo(GC.getMapINLINE().getWorldSize()).getTargetNumCities();
for (int iI = 0; iI < MAX_PLAYERS; iI++)
{
if (GET_PLAYER((PlayerTypes)iI).isAlive() && GET_PLAYER((PlayerTypes)iI).getTeam() == getID())
{
int iLoop;
int iAvgTargetCities = -1;
for (CvCity* pLoopCity = GET_PLAYER((PlayerTypes)iI).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER((PlayerTypes)iI).nextCity(&iLoop))
{
int iConnectedForeignCities = -1;
for (int iJ = 0; iJ < GC.getNumBuildingInfos(); iJ++)
{
if (GC.getBuildingInfo((BuildingTypes)iJ).getForeignConnectedCommerce() > 0 && pLoopCity->getNumRealBuilding((BuildingTypes)iJ) > 0)
{
int iMaxCommerce = GC.getBuildingInfo((BuildingTypes)iJ).getMaxForeignConnectedCommerce();
if (iMaxCommerce <= 0) iMaxCommerce = MAX_INT;
int iCitiesRequiredPerCommerce = GC.getBuildingInfo((BuildingTypes)iJ).getCitiesRequiredPerForeignConnectedCommerce();
//Scale for mapsize, if iCitiesRequiredPerCommerce > 1
if (iCitiesRequiredPerCommerce > 1)
{
//Avoid calculating multiple times for each building
if (iAvgTargetCities == -1) iAvgTargetCities = pLoopCity->getAvgTargetCities();
//Scale based on number of target cities
iCitiesRequiredPerCommerce += iTargetCities;
iCitiesRequiredPerCommerce -= iAvgTargetCities;
}
iCitiesRequiredPerCommerce = std::max(1, iCitiesRequiredPerCommerce);
//Avoid calculating multiple times for each building
if (iConnectedForeignCities == -1) iConnectedForeignCities = pLoopCity->getConnectedForeignCities();
int iCitiesRequired = iCitiesRequiredPerCommerce * iMaxCommerce;
iForeignConnectednessNeeded = std::max(iForeignConnectednessNeeded, iCitiesRequired - iConnectedForeignCities);
}
}
}
}
}
int iValue = std::min(iForeignConnectednessNeeded, GET_TEAM(eTeam).getNumCities());
//if we are planning war, but not against them
if (AI_getWarPlan(eTeam) == NO_WARPLAN && getAnyWarPlanCount(true) > 0)
{
for (int iI = 0; iI < MAX_TEAMS; iI++)
{
if (GET_TEAM((TeamTypes)iI).isAlive() && AI_getWarPlan((TeamTypes)iI) != NO_WARPLAN)
{
//If we are adjacent to this team, and they are adjacent to one of our enemies
if (AI_calculateAdjacentLandPlots(eTeam) > 0 && GET_TEAM(eTeam).AI_calculateAdjacentLandPlots((TeamTypes)iI) > 0)
{
iValue += GET_TEAM(eTeam).getNumCities() * 10;
break;
}
}
}
}
m_iOpenBordersVal = iValue;
return iValue;
}
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Hm, witzigerweise findet man im letzten A New Dawn Code genau meinen fehlerhaften Code und nicht seinen ellenlangen.
Edit: Im 1.74 Code ist meiner, aber von A New Dawn scheint es was neueres zu geben.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Werde mir später mal den 2.92 Code ansehen.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Selbst die Mod Caveman 2 Cosmos hat den fehlerhaften Code. Finde leider keinen RoM 2.xx Code.
Geändert von Cybah (08. Juni 2015 um 11:10 Uhr)
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Ich hab irgendwie die Vermutung, dass iValue im Moment immer -1 ist. Im Falle der Option wird daraus ein -2. -1 wird normalerweise ignoriert, -2 als Negativwert sorgt wahrscheinlich fürs Schließen der Grenzen.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Ich lass den Schmarrn erstmal auskommentiert.
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Wieso greifen mich KIs durch Gebiete anderer KIs hinduch an, obwohl sie selbst noch Siedlungsplatz haben und die eroberte Stadt niemals halten könnten? Nur aufgrund des Militärwertes zueinander?
MfG
AlphA
Gullix: nach dem großen Erfolg von "Gutmensch" präsentieren wir meine neue Lieblingsbeleidigung: Mensch mit MoralvorstellungGT:Leute, hört doch bitte auf den Troll zu füttern!Chris der Phönix: Sieht komisch aus so ohne mumu.... Und wiwi frag jetzt wieder nicht was eine mumu istYasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.
Weil das noch nie anders war? Ich erinnere mich noch an ein Duel mit Shakka KI. Shakka kart massen Einheiten gegen mich, trotz Siedelplatz und das es noch keine echte Grenze zwischen uns gab. Das passiert nicht mehr, wenn du mit intelligentere KI spielst. Dort greift die KI nur Nachbarn an.
Das muss ich nochmal überprüfen ob die Option an war, da ich generell mit dieser Option spiele. Danke.
MfG
AlphA
Gullix: nach dem großen Erfolg von "Gutmensch" präsentieren wir meine neue Lieblingsbeleidigung: Mensch mit MoralvorstellungGT:Leute, hört doch bitte auf den Troll zu füttern!Chris der Phönix: Sieht komisch aus so ohne mumu.... Und wiwi frag jetzt wieder nicht was eine mumu istYasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.
Das Spiel war mit intelligenter KI, zwei haben mich durch Territorien anderer Spieler hindurch angegriffen, obwohl sie a) noch Siedlungsplatz hatten und b) es KI´s in ihrer unmittelbaren Umgebung gab zu denen sie eine schlechtere Beziehung hatten.
MfG
AlphA
Gullix: nach dem großen Erfolg von "Gutmensch" präsentieren wir meine neue Lieblingsbeleidigung: Mensch mit MoralvorstellungGT:Leute, hört doch bitte auf den Troll zu füttern!Chris der Phönix: Sieht komisch aus so ohne mumu.... Und wiwi frag jetzt wieder nicht was eine mumu istYasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.