Seite 31 von 33 ErsteErste ... 2127282930313233 LetzteLetzte
Ergebnis 451 bis 465 von 487

Thema: BASE: KI-Diskussion

  1. #451
    ohne Ironie! Avatar von Drullo321
    Registriert seit
    27.07.05
    Beiträge
    3.113
    In diesem Fall leider nicht.

  2. #452
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454


    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)

  3. #453
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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:
    PHP-Code:
    DenialTypes CvTeamAI::AI_openBordersTrade(TeamTypes eTeam) const
    {

    (...)

    /************************************************************************************************/
    /* Afforess                      Start         03/30/10                                               */
    /*                                                                                              */
    /* Ruthless AI: Get Open Borders with Nearby Allies, reject them with enemies                   */
    /************************************************************************************************/
        //CD Tweaks - always do this
        //if (GC.getGameINLINE().isOption(GAMEOPTION_RUTHLESS_AI))
        //{
            
    bool bWarplans getAnyWarPlanCount(true) > 0;
            if (
    AI_getWarPlan(eTeam) == NO_WARPLAN && bWarplans)
            {
                for (
    iI 0iI MAX_TEAMSiI++)
                {
                    if (
    GET_TEAM((TeamTypes)iI).isAlive())
                    {
                        if (
    GET_TEAM((TeamTypes)iI).getID() != getID())
                        {
                            
    //victim
                            
    if (AI_getWarPlan((TeamTypes)iI) != NO_WARPLAN)
                            {
                                
    //Share borders with our enemy
                                
    if (GET_TEAM(eTeam).AI_teamCloseness((TeamTypes)iI) > 0)
                                {
                                    return 
    NO_DENIAL;
                                }
                            }
                        }
                    }
                }
            }
            
    //We are going to attack eTeam soon
            //CD Tweaks - don't cancel existing open borders unless we are more powerful, we don't want to give away the element of surprise
            
    else if ((bWarplans) && (!isOpenBorders(eTeam) || (getPower(true) + GET_TEAM(eTeam).getEnemyPower() > (GET_TEAM(eTeam).getPower(true) * 120) / 100)))
            {
                return 
    DENIAL_MYSTERY;
            }
        
    //}
    /************************************************************************************************/
    /* Afforess                         END                                                            */
    /************************************************************************************************/    

    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)

  4. #454
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  5. #455
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  6. #456
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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 0iI MAX_PLAYERSiI++)
        {
            if (
    GET_PLAYER((PlayerTypes)iI).isAlive() && GET_PLAYER((PlayerTypes)iI).getTeam() == getID())
            {
                
    int iLoop;
                
    int iAvgTargetCities = -1;
                for (
    CvCitypLoopCity GET_PLAYER((PlayerTypes)iI).firstCity(&iLoop); pLoopCity != NULLpLoopCity GET_PLAYER((PlayerTypes)iI).nextCity(&iLoop))
                {
                    
    int iConnectedForeignCities = -1;
                    for (
    int iJ 0iJ GC.getNumBuildingInfos(); iJ++)
                    {
                        if (
    GC.getBuildingInfo((BuildingTypes)iJ).getForeignConnectedCommerce() > && pLoopCity->getNumRealBuilding((BuildingTypes)iJ) > 0)
                        {
                            
    int iMaxCommerce GC.getBuildingInfo((BuildingTypes)iJ).getMaxForeignConnectedCommerce();
                            if (
    iMaxCommerce <= 0iMaxCommerce 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 == -1iAvgTargetCities pLoopCity->getAvgTargetCities();

                                
    //Scale based on number of target cities
                                
    iCitiesRequiredPerCommerce += iTargetCities;
                                
    iCitiesRequiredPerCommerce -= iAvgTargetCities;
                            }
                            
    iCitiesRequiredPerCommerce std::max(1iCitiesRequiredPerCommerce);

                            
    //Avoid calculating multiple times for each building
                            
    if (iConnectedForeignCities == -1iConnectedForeignCities pLoopCity->getConnectedForeignCities();

                            
    int iCitiesRequired iCitiesRequiredPerCommerce iMaxCommerce;
                            
    iForeignConnectednessNeeded std::max(iForeignConnectednessNeedediCitiesRequired iConnectedForeignCities);
                        }
                    }
                }
            }
        }

        
    int iValue std::min(iForeignConnectednessNeededGET_TEAM(eTeam).getNumCities());

        
    //if we are planning war, but not against them
        
    if (AI_getWarPlan(eTeam) == NO_WARPLAN && getAnyWarPlanCount(true) > 0)
        {
            for (
    int iI 0iI MAX_TEAMSiI++)
            {
                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) > && 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)

  7. #457
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  8. #458
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  9. #459
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  10. #460
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  11. #461
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    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)

  12. #462
    Registrierter Benutzer Avatar von AlphA
    Registriert seit
    19.06.09
    Ort
    Beijing
    Beiträge
    2.567
    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 Moralvorstellung
    GT: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 ist
    Yasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.

  13. #463
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Zitat Zitat von vR|AlphA Beitrag anzeigen
    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
    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.

  14. #464
    Registrierter Benutzer Avatar von AlphA
    Registriert seit
    19.06.09
    Ort
    Beijing
    Beiträge
    2.567
    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 Moralvorstellung
    GT: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 ist
    Yasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.

  15. #465
    Registrierter Benutzer Avatar von AlphA
    Registriert seit
    19.06.09
    Ort
    Beijing
    Beiträge
    2.567
    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 Moralvorstellung
    GT: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 ist
    Yasmin D'Ahara: Ne, Hausfrauen und Mütter sind einfach nur Arbeitslose, die dies halt nur nicht zugegeben wollen :sz:.

Seite 31 von 33 ErsteErste ... 2127282930313233 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •