Seite 2 von 162 ErsteErste 1234561252102 ... LetzteLetzte
Ergebnis 16 bis 30 von 2421

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

  1. #16
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Zitat Zitat von rucivfan Beitrag anzeigen
    Mein erster richtiger Erfahrungsbericht mit Cythoncode:

    Ausgetasucht habe ich erstmal nur wieder die PLE.py mit PLE.pyd, was in Base für das Einheiteninterface zuständig ist.

    Bild

    Damit meine ich die kleinen Symbole unter den Einheiten auf dem Bild. Ich werde dann noch mal ohne Cython ausprobieren um einen direkten Vergleich zu haben, aber es ist eindeutig eine wesentliche Verbesserung!

    Es dauert nur noch fast Echtzeit, die Einheitenanzeige dort umzustellen.

    Mit Echtzeit meine ich weniger als eine 1 Sekunde warten.
    Endlich habe ich Cython unter Base am laufen.

  2. #17
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    d.h. du kannst einzelne Files ersetzen? das ist natürlich nice. aber der eventmanager und die gameutils müssen wohl Python bleiben - außer ich komme mi cython klar.
    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. #18
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Bei der PLE ist es aber auch am nötigstens. Ich habe dazu aber auch nur direkt das Pythonfile PLE.py mit Cython compiliert.

    Der einzige hacken ist das lächerliche Importverhalten, was Firaxis verschuldet hat.

    Statt nur einmal den Arbeitsordner festzulegen, muss in jeden Pythonfile, was die Cythonfiles importiert, der Arbeitspfad erstmal angepasst werden.

    Wahrscheinlich muss in jedes Pythonfile oben

    Code:
    import os, sys
    sys.path.append(os.getcwd() + "/Mods/" + CyGlobalContext().getBASE_FOLDER() + "/Assets/Python")
    hin.

    Man muss also den Base-Ordner direkt mit angeben. Das habe ich aber schon im SDK zentralisiert und kann auch bei den Code für das Ldaen der Startpunkt angewendet werden. Damit musst du nur bei den globalen Variabeln zur Zeit den Base-Ordnernamen angeben. Genaueres probiere ich noch aus.

  4. #19
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Das ist ja der Vorteil an Cython. Es ist fast vollständig Python. Einzig wenn man Optimierungen machen will/muss, dann muss man etwas mehr wissen, aber nur über Cython.

  5. #20
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Zitat Zitat von rucivfan Beitrag anzeigen
    Hier ist schon das nächste Packet

    In der CvEventManager kannst du mit den Packet an folgender Stelle unter anderen die Deutsche Civeigenschaft anpassen. Es sei angemerkt, dass dies nur für Änderungen von K zu L geschehen sollte, weil man nur diese unterscheiden kann.

    Code:
    	def onLoadGame(self, argsList):
    	
    		if gc.getGame().getBaseVersion() <= 3:
    			#Deutschland Gemeinde anpassen für Burnsy
    	
    		CvAdvisorUtils.resetNoLiberateCities()
    		return 0
    Versteh ich das richtig: Beim Laden merkt BASE, dass das Version 3 ist und gibt den Bonus. Beim nächsten Save wirds aber als Version 4 gespeichert, weshalb der Bonus die nächsten Male dann nicht erneut vergeben wird.
    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. #21
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Da müsste jetzt auch noch der neue Exp Code rein usw. Ich würde eher sagen: Pech gehabt. Das bei jedem Patch zu machen, ist ja erstens nicht möglich und zweitens zu umständlich.
    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. #22
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Zitat Zitat von Cybah Beitrag anzeigen
    Versteh ich das richtig: Beim Laden merkt BASE, dass das Version 3 ist und gibt den Bonus. Beim nächsten Save wirds aber als Version 4 gespeichert, weshalb der Bonus die nächsten Male dann nicht erneut vergeben wird.
    Richtig.

  8. #23
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Zitat Zitat von Cybah Beitrag anzeigen
    Da müsste jetzt auch noch der neue Exp Code rein usw. Ich würde eher sagen: Pech gehabt. Das bei jedem Patch zu machen, ist ja erstens nicht möglich und zweitens zu umständlich.
    Immerhin macht Burnsy eine Story mit Deutschland! Vergiss nicht, dass er den alten Erfahurngs-Bonus verliert! Bei Exp ist das fast egal. In eurem PBEM hat Indie noch den alten Gesundheitsbonus, weil der im Save fest ist.

  9. #24
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Dann mach ichs jetzt nur für Deutschland.
    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. #25
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    so vermutlich?

    PHP-Code:
        def onLoadGame(selfargsList):
            if 
    gc.getGame().getBaseVersion() <= 3:
    # ZE: Deutschland für alte Savegames Start -----------------------------------------------------------------------------------------------
            
    for iPlayer in range(gc.getMAX_PLAYERS()):
                
    pPlayer gc.getPlayer(iPlayer)
                if 
    pPlayer.isAlive() and pPlayer.getCivilizationType() == gc.getInfoTypeForString("CIVILIZATION_GERMANY"):
                    
    pPlayer.changeImprovementYieldChange(gc.getInfoTypeForString("IMPROVEMENT_TOWN"), YieldTypes.YIELD_PRODUCTION1)
    # ZE: Deutschland für alte Savegames End -----------------------------------------------------------------------------------------------
            
    CvAdvisorUtils.resetNoLiberateCities()
            return 

    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. #26
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Die forschleife muss ncoh eingerückt werden!

  12. #27
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    stimmt
    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. #28
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    beim Laden eines alten Saves kam gerade:

    Bild



    Den Fehler bekomm ich häufiger mal.
    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)

  14. #29
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Der Fehler kommt mir bekannt vor. Kann sein, dass ich dir dazu mal eine Lösung geshcikt habe.

  15. #30
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Im August habe ich an der Datei was verändert, falls du den Bugfix meinst.

    edit, das ging um was anderes:

    Zitat Zitat von rucivfan
    Die Mission, entferne Bugs, die Details, siehe unten.

    Contrib\Civ4lerts.py

    Code:
    	def checkIfIsAnyOrHasMetAllTeams(self, *eTeams):
    		"""
    		Calls check() only if the active team is any or has met all of the given teams.
    		"""
    		eActiveTeam, activeTeam = PlayerUtil.getActiveTeamAndID()
    		for eTeam in eTeams:
    			#Fuyu Assert failure fix
    			if eActiveTeam != eTeam and eTeam != -1:
    				if not activeTeam.isHasMet(eTeam):
    					return
    		self.check()
    Die Nachricht wird sich im Lauf der Zeit selbst zerstören.
    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 2 von 162 ErsteErste 1234561252102 ... LetzteLetzte

Berechtigungen

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