Seite 10 von 162 ErsteErste ... 678910111213142060110 ... LetzteLetzte
Ergebnis 136 bis 150 von 2421

Thema: BASE: SDK & Python Diskussion (Coder's Lair)

  1. #136
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    okay das ist jetzt strange... offensichtlich hat platyping aber recht. man vergleiche bildnachricht und code:



    PHP-Code:
        def onPlotFeatureRemoved(selfargsList):
            
    'Plot Revealed'
            
    pPlot argsList[0]
            
    iFeatureType argsList[1]
            
    pCity argsList[2# This can be null

            
    iPlayer pPlot.getOwner()
            if 
    iPlayer != -and pCity != -1:
                
    pPlayer gc.getPlayer(iPlayer)
                
    pCapital pPlayer.getCapitalCity()
                
    iTeam pPlayer.getTeam()
                
    pTeam gc.getTeam(iTeam)

    ##### Note to Modders, the codes look weird, because Firaxis named the variables wrongly #######
    # ZE: Brasilien 2/2 Start -----------------------------------------------------------------------------------------------
                
    if pPlayer.isAlive() and pPlayer.getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_BRAZIL") :
                    
    iTech gc.getInfoTypeForString("TECH_BRAZIL")
                    if 
    gc.getTeam(pPlayer.getTeam()).isHasTech(iTech):

                        if 
    pCity == gc.getInfoTypeForString("FEATURE_FOREST"):
                            
    iExtraWood 20 * (100 pPlayer.getFeatureProductionModifier()) * gc.getGameSpeedInfo(CyGame().getGameSpeedType()).getFeatureProductionPercent() / 10000
                            iExtraWood 
    /= 5
                            pCapital
    .changeProduction(iExtraWood)

                        
    elif pCity == gc.getInfoTypeForString("FEATURE_JUNGLE"):
                            
    iExtraWood 30 * (100 pPlayer.getFeatureProductionModifier()) * gc.getGameSpeedInfo(CyGame().getGameSpeedType()).getFeatureProductionPercent() / 10000
                            iExtraWood 
    /= 5
                            pCapital
    .changeProduction(iExtraWood)

                        
    CyInterface().addMessage(iPlayer,true,20,CyTranslator().getText("TXT_MOREWOOD",(iExtraWood,iFeatureType.getName(),)),'',0,'',-1,-1,-1true,true)
    # ZE: Brasilien 2/2 End ----------------------------------------------------------------------------------------------- 
    Angehängte Grafiken Angehängte Grafiken
    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)

  2. #137
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Zitat Zitat von rucivfan Beitrag anzeigen
    Code:
    void CvDllPythonEvents::reportPlotFeatureRemoved(CvPlot *pPlot, FeatureTypes eFeature, CvCity* pCity)
    {
    	if (preEvent())
    	{
    		CyArgsList eventData;
    		eventData.add("plotFeatureRemoved");						// add key to lookup python handler fxn
    
    		CyPlot* pCyPlot = new CyPlot(pPlot);
    		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyPlot));
    		CyCity* pCyCity= new CyCity(pCity);
    		eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity));
    		eventData.add((int)eFeature);
    
    		postEvent(eventData);
    		delete pCyPlot;
    		delete pCyCity;
    	}
    }
    Hier steckt der Fehler.

    Die Zeilen eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity)); und eventData.add((int)eFeature); müssen getauscht werden.

    edit:

    Ich setze das gleich mit um!
    ah.
    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. #138
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Auf dem Bild seh ich auch gerade, dass die Zahl noch nicht stimmt. Liegt daran, dass ich im SDK wohl nur die Anzahl der Hämmer ändere und nicht den Modifier.
    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. #139
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Frage mich gerade, warum Brasilien überhaupt 40 bekommt.... Standardwert ist doch 20? Plus 50% = 30...

    edit: achne, offensichtlich war der wert schon immer 30. dschungel in bts war 20.

    edit2: aber wie kommt man dann auf 40? HÄ?

    edit3: hmmmm andere zivs bekommen doch nur 20. jetzt raff ich gar nix mehr.
    Geändert von Cybah (14. September 2013 um 13:37 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)

  5. #140
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    rucivfan, du hast Brasilien 100% Bonus gegeben.

    PHP-Code:
        // new code[
        
    if (GET_PLAYER((*ppCity)->getOwnerINLINE()).getCivilizationType() == GC.getCIVILIZATION_BRAZIL() &&
            
    GET_TEAM(eTeam).isHasTech((TechTypes)(GC.getTECH_BRAZIL())))
        {
            
    iProduction *= std::max(0, (GET_PLAYER((*ppCity)->getOwnerINLINE()).getFeatureProductionModifier() + 200));
            
    iProduction /= 100;
        }
        else
        {
            
    iProduction *= std::max(0, (GET_PLAYER((*ppCity)->getOwnerINLINE()).getFeatureProductionModifier() + 100));
            
    iProduction /= 100;
        }
        
    // ]new code
        // ]rucivfan_code_optimization rco 
    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. #141
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Kann passieren. Ich habe eben gleich deine gedachte Änderung übernommen.
    Geändert von rucivfan (14. September 2013 um 14:04 Uhr)

  7. #142
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Wie bau ich den Entfernungsmodifikator ein?

    PHP-Code:
                        if iFeatureType == gc.getInfoTypeForString("FEATURE_FOREST") or iFeatureType == gc.getInfoTypeForString("FEATURE_JUNGLE"):
                            
    iExtraWood 30 * (150 pPlayer.getFeatureProductionModifier()) * gc.getGameSpeedInfo(CyGame().getGameSpeedType()).getFeatureProductionPercent() / 10000
                            iExtraWood 
    /= 5
                            pCapital
    .changeProduction(iExtraWood
    Die Prod wird ja geringer, wenn es nicht unmittelbar neben der Stadt stattfindet oder?
    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. #143
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Ersetze "neben Stadt" mit Stadtkreuz, unabhängig davon, ob das Feld zur Stadt gehört.

  9. #144
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Zitat Zitat von rucivfan Beitrag anzeigen
    Ersetze "neben Stadt" mit Stadtkreuz, unabhängig davon, ob das Feld zur Stadt gehört.
    So einfach geht das nicht.

    Irgendwie mit sowas (aus SDK):

    PHP-Code:
    iProduction = (GC.getBuildInfo(eBuild).getFeatureProduction(getFeatureType()) - (std::max(0, (plotDistance(getX_INLINE(), getY_INLINE(), (*ppCity)->getX_INLINE(), (*ppCity)->getY_INLINE()) - 2)) * 5)) 
    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. #145
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Es ist aber so! Lerne Codelesen.

    Die "- 2" hinten bewirkt das!

  11. #146
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Einfach ist es trotzdem nicht, weil im Code oben kein "neben Stadt" ist. es wird nur überprüft, ob überhaupt ne stadt betroffen ist. Versuche jetzt den SDK Code in Python umzuschreiben.
    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. #147
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Nur zum Verständnis: Aufgrund der iProduction = Zeile da oben wird auch bei 1 Abstand (wenn direkt neben der Stadt gechoppt wird) aus den 30 (in XML eingetragen) 20 richtig?

    Man bekommt als Nichtbrasilianer nämlich nur 20 raus bei diesem Wert:

    PHP-Code:
                <FeatureStructs>
                    <
    FeatureStruct>
                        <
    FeatureType>FEATURE_FOREST</FeatureType>
                        <
    PrereqTech>TECH_BRONZE_WORKING</PrereqTech>
                        <
    iTime>300</iTime>
                        <
    iProduction>30</iProduction>
                        <
    bRemove>1</bRemove>
                    </
    FeatureStruct>
                </
    FeatureStructs
    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. #148
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Glaube, ich habs jetzt verstanden. Bitte korrigier mich wenn falsch:

    Wenn nicht im Fatcross der Stadt geholzt wird, gibts nen Malus. Ansonsten macht 1 oder 2 Abstand keinen Unterschied? So sehen die Werte jedenfalls ingame aus.

    edit: trotzdem hat man NIE die vollen 30. das raff ich 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)

  14. #149
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Das muss ein Fehler bei dir sein. Man bekommt den Wert, der dort steht und dann kommen die % durch Mathe drauf.

  15. #150
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.456
    Teste mal selbst. Es kann kein Pythonfehler sein, sondern nur ein SDK Fehler. Teste mal direkt neben der Stadt und außen im Fatcross. Es macht keinen Unterschied.
    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 10 von 162 ErsteErste ... 678910111213142060110 ... LetzteLetzte

Berechtigungen

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