Seite 7 von 180 ErsteErste ... 345678910111757107 ... LetzteLetzte
Ergebnis 91 bis 105 von 2699

Thema: Der SDK-Fragen-Thread

  1. #91
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.566
    Die Simpelste Lösung wäre wohl indem du die ID des gebäude rausfinden würdest, hier die Schmiede. die ID um 1 erhöhst. Checkst ob es immer noch eine SChmiede ist und falls ja überprüfst falls nein komplett aufhörst. Da musst du aber in den XML alle UB hinter ihr Gebäude setzen.

    Gibt's kein GetUniqueVersionOf(Building) oder so?

  2. #92
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    hm so vielleicht einfach?

    PHP-Code:
            for (iI 0iI GC.getNumBuildingClassInfos(); iI++)
            {
                if (
    GC.getBuildingInfo(eBuilding).isBuildingClassNeededInCity(iI))
                {

                    for (
    iJ 0iJ GC.getNumCivilizationInfos(); iJ++)
                    {

                        
    ePrereqBuilding = ((BuildingTypes)(GC.getCivilizationInfo(iJ).getCivilizationBuildings(iI)));

                        if (
    ePrereqBuilding != NO_BUILDING)
                        {
                            if (
    == getNumBuilding(ePrereqBuilding/* && (bContinue || (getFirstBuildingOrder(ePrereqBuilding) == -1))*/)
                            {
                                return 
    false;
                            }
                        }
                    }
                }

            } 
    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. #93

  4. #94
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    1>CvCity.cpp(2249) : error C2664: 'CvCivilizationInfo &CvGlobals::getCivilizationInfo(CivilizationTypes)' : cannot convert parameter 1 from 'int' to 'CivilizationTypes'

    geht um

    PHP-Code:
    ePrereqBuilding = ((BuildingTypes)(GC.getCivilizationInfo(iJ).getCivilizationBuildings(iI))); 
    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. #95
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    da fehlt noch irgendwas oder? iJ alleine schon nur ne zahl zu sein, da braucht man aber nen civtype. ansonsten versteh ich die fehlermeldung nicht.
    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. #96

  7. #97
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    ?

    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. #98
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.566
    Keine Ahnung

    Ich wollte grad sagen du brauchst sowas wie gc.getCivilizationInfo(iJ) aber .. oh wait

  9. #99
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.566
    Jedenfalls was mir noch aufgefallen ist: Das return false muss umgekehrt werden, ansonsten haut's dich immer beim ersten falschen Ding aus der Funktion. Mach da ein return true draus und aus if (0 == getNumBuilding(ePrereqBuilding) ein if (0 != getNumBuilding(ePrereqBuilding) dann haut's dich aus der Funktion wenn es was findet.

  10. #100
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    Habs... das Konvertieren ist eigentlich einfach.

    PHP-Code:
            for (iI 0iI GC.getNumBuildingClassInfos(); iI++)
            {
                if (
    GC.getBuildingInfo(eBuilding).isBuildingClassNeededInCity(iI))
                {
                    
    int iJ;
                    for (
    iJ 0iJ GC.getNumCivilizationInfos(); iJ++)
                    {
                        
    ePrereqBuilding = ((BuildingTypes)(GC.getCivilizationInfo((CivilizationTypes)iJ).getCivilizationBuildings(iI)));

                        if (
    ePrereqBuilding != NO_BUILDING)
                        {
                            if (
    == getNumBuilding(ePrereqBuilding/* && (bContinue || (getFirstBuildingOrder(ePrereqBuilding) == -1))*/)
                            {
                                return 
    false;
                            }
                        }
                    }
                }
            } 
    jetzt muss ichs nur noch testen.
    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. #101
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    okay
    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. #102
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    muss dann nicht noch irgendwo anders return false hin?

    edit: oder das ganze muss man zu cannot construct verschieben. gibts nicht.
    Geändert von Cybah (30. August 2011 um 17:04 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)

  13. #103
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    so wird das nichts... man muss wohl ne liste erstellen und wenn diese liste leer ist, wird false zurückgegeben. bzw man muss dann jedes gebäude der liste prü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)

  14. #104
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.566
    Zitat Zitat von Cybah Beitrag anzeigen
    muss dann nicht noch irgendwo anders return false hin?

    edit: oder das ganze muss man zu cannot construct verschieben. gibts nicht.
    Zitat Zitat von [VK] Beitrag anzeigen
    Jedenfalls was mir noch aufgefallen ist: Das return false muss umgekehrt werden, ansonsten haut's dich immer beim ersten falschen Ding aus der Funktion. Mach da ein return true draus und aus if (0 == getNumBuilding(ePrereqBuilding) ein if (0 != getNumBuilding(ePrereqBuilding) dann haut's dich aus der Funktion wenn es was findet.
    Hast du das gelesen gehabt

  15. #105
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    jaja, schon eingebaut. es bringt nichts ein true rauszugeben, es muss ein false für den umgekehrten fall generiert werden.

    im jetzigen fall kann man immer alle weltwunder bauen, weil kein false generiert wird, wenn entsprechende gebäude nicht vorhanden sind.

    also das hier funktioniert nicht:

    PHP-Code:
            for (iI 0iI GC.getNumBuildingClassInfos(); iI++)
            {
                if (
    GC.getBuildingInfo(eBuilding).isBuildingClassNeededInCity(iI))
                {
                    
    int iJ;
                    for (
    iJ 0iJ GC.getNumCivilizationInfos(); iJ++)
                    {
                        
    ePrereqBuilding = ((BuildingTypes)(GC.getCivilizationInfo((CivilizationTypes)iJ).getCivilizationBuildings(iI)));

                        if (
    ePrereqBuilding != NO_BUILDING)
                        {
                            if (
    != getNumBuilding(ePrereqBuilding/* && (bContinue || (getFirstBuildingOrder(ePrereqBuilding) == -1))*/)
                            {
                                return 
    true;
                            }
                        }
                    }
                }
            } 
    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)

Seite 7 von 180 ErsteErste ... 345678910111757107 ... LetzteLetzte

Berechtigungen

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