Seite 254 von 271 ErsteErste ... 154204244250251252253254255256257258264 ... LetzteLetzte
Ergebnis 3.796 bis 3.810 von 4063

Thema: Der Pythonthread

  1. #3796
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Code:
    def findInfoTypeNum(infoGetter, numInfos, typeStr):
    	if (typeStr == 'NONE'):
    		return -1
    	idx = gc.getInfoTypeForString(typeStr)
    	pyAssert(idx != -1, "Can't find type enum for type tag %s" %(typeStr,))
    	return idx
    infoGetter und numInfos werden noch nicht mal verwendet. Von dieser Funktion ist so abzuraten.

  2. #3797
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Könnte man meinen, aber wenn man in die Datei CvUtil.py guckt findet man leider folgendes…
    Code:
    169 def findInfoTypeNum(infoGetter, numInfos, typeStr):
    170   if (typeStr == 'NONE'):
    171     return -1
    172   idx = gc.getInfoTypeForString(typeStr)
    173   pyAssert(idx != -1, "Can't find type enum for type tag %s" %(typeStr,))
    174   return idx

  3. #3798
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.445
    Naja, warum abzuraten? Ist halt ein umständlicher Alias.

    Sind denn die Spezial-Getter exposed to Python? Dann könnte man das Ding da ja fertig implementieren.

  4. #3799
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Zitat Zitat von Flunky Beitrag anzeigen
    Sind denn die Spezial-Getter exposed to Python? Dann könnte man das Ding da ja fertig implementieren.
    Glaube nicht. Insgesamt bringen Optimierungen bei der getInfoTypeForString relativ wenig. Ich habe mal alle Aufrufe per Parser so ersetzt, dass das Resultat nur einmal gesucht. Ohne irgendwelche Laufzeiten zu messen fühlte ich bei Interface-zugriffen (Screens-Klassen) keine Beschleunigung.

  5. #3800
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.014
    Dann ist das also ein ziemlich überflüssiges Konstrukt, und ich werde weiterhin mit getInfoTypeForString arbeiten. Da ich ohnehin zunehmend auf SDK umsteige und versuche, auch da getInfoTypeForString zu vermeiden, ist es auch nicht so wichtig.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  6. #3801
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    So langsam ist getInfoTypeForString jetzt auch nicht. Da mit einer Hashtabelle gearbeitet wird, können die Sachen schnell gefunden werden.

  7. #3802
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Kleine Verständnisfrage für diesen Codeschnipsel...

    Code:
    if not pTeam.isHasTech(gc.getInfoTypeForString("TECH_PERSONALITY_TRANSCRIPTION")):
    						# Tech, die Fluesse anzeigt
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_ENVIRONMENTAL_ECONOMICS")): bShowRivers = True
    						else: bShowRivers = False
    Wenn der Spieler/Team die TECH_PERSONALITY_TRANSCRIPTION nicht hat,
    aber die TECH_ENVIRONMENTAL_ECONOMICS hat, zeige keine Flüße an


    Und ist das hier... (was aber irgendwie nicht funktionierte, Küste färbte sich in schwarz zurück)

    Code:
    # Tech, die Kuesten anzeigt
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_DOCTRINE_FLEXIBILITY")): bShowCoasts = True
    						else: bShowCoasts = False
    sowie.. (habe ich hinzugefügt da Code oben nicht funktionierte)

    Code:
    # Tech, die TERRAIN_SHELF und TERRAIN_OCEAN sowie TERRAIN_COAST anzeigt
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_ALGACULTURE")): bShow1 = True
    						else: bShow1 = False
    nicht das Gleich???
    Könnte ich das obere löschen?



    Code:
    if not bDontGoBlackAnymore:
       							for i in range (MapW):
       								for j in range (MapH):
       									pPlot = CyMap().plot(i, j)
    
       									if not pPlot.isVisible (iTeam, 0) and pPlot.isRevealed (iTeam, 0):
    
       										# 50% Chance auf Schwarzem Nebel oder Standard-Nebel ( = langsame Verdunkelung)
       										if gc.getGame().getSorenRandNum(2, "Black fog of war") > 0:
       											bGoBlack = True
    
       											# Cities
       											if pPlot.isCity():
       												pCity = pPlot.getPlotCity()
       												if pCity.getNumWorldWonders() > 0: bGoBlack = False
    
       											# Technologien
       											if bShowRivers and pPlot.isRiverSide(): bGoBlack = False
       											if bShowCoasts and pPlot.isCoastalLand(): bGoBlack = False
    											if bShow1 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_COAST"): bGoBlack = False
       											if bShow1 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_SHELF"): bGoBlack = False
    											if bShow1 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_OCEAN"): bGoBlack = False
       											if bShow2 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_FLAT_ARID"): bGoBlack = False
       											if bShow2 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_FLAT_MOIST"): bGoBlack = False
    											if bShow2 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_FLAT_RAINY"): bGoBlack = False
       											if bShow3 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_ROCKY_POLAR"): bGoBlack = False
       											if bShow3 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_FLAT_POLAR"): bGoBlack = False
    											if bShow4 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_ROCKY_MOIST"): bGoBlack = False
    											if bShow4 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_ROCKY_ARID"): bGoBlack = False
    											if bShow4 and pPlot.getTerrainType() == gc.getInfoTypeForString("TERRAIN_ROCKY_RAINY"): bGoBlack = False
    
       											# Verdunkelung
       											if bGoBlack
    Geändert von Monaldinio (20. Oktober 2015 um 10:59 Uhr)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  8. #3803
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.014
    Ich verstehe deine Frage nicht, bzw. was du wissen willst.
    Code:
    if not pTeam.isHasTech(gc.getInfoTypeForString("TECH_PERSONALITY_TRANSCRIPTION")):
    						# Tech, die Fluesse anzeigt
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_ENVIRONMENTAL_ECONOMICS")): bShowRivers = True
    						else: bShowRivers = False
    Was passiert, wenn man TECH_PERSONALITY_TRANSCRIPTION hat? Ist dann bShowRivers true?

    Code:
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_DOCTRINE_FLEXIBILITY")): bShowCoasts = True
    						else: bShowCoasts = False
    ist ungleich dem nächsten, denn das nächste hat 1. eine andere Technologie und das eine gilt nur für TERRAIN_COAST, während das 2. für COAST; SHELF und OCEAN gilt - ich vermute einmal, dass das alles Wasser ist. Weg kann es also nur, wenn Aquacultur alles zeigen soll und nicht Flexibilität vorher schon den Küstenverlauf.
    Warum es nicht funktioniert kann ich nicht sagen, da ich nicht weiß, wie die Verdunkelung gemacht wird.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  9. #3804
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Code:
    if not pTeam.isHasTech(gc.getInfoTypeForString("TECH_PERSONALITY_TRANSCRIPTION")):
    						# Tech, die Fluesse anzeigt
    						if pTeam.isHasTech(gc.getInfoTypeForString("TECH_ENVIRONMENTAL_ECONOMICS")): bShowRivers = True
    						else: bShowRivers = False
    Was passiert, wenn man TECH_PERSONALITY_TRANSCRIPTION hat? Ist dann bShowRivers true?
    Meine Frage ist, was passiert, wenn man TECH_PERSONALITY_TRANSCRIPTION nicht hat.
    Werden dann keine Flüsse gezeigt? (Auch wenn man die TECH_ENVIRONMENTAL_ECONOMICS hat?)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  10. #3805
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Zitat Zitat von Monaldinio Beitrag anzeigen
    Meine Frage ist, was passiert, wenn man TECH_PERSONALITY_TRANSCRIPTION nicht hat.
    Werden dann keine Flüsse gezeigt? (Auch wenn man die TECH_ENVIRONMENTAL_ECONOMICS hat?)
    Genau. Das erste if muss hinhauen, damit man zum nächsten if kommt
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  11. #3806
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Merci!
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  12. #3807
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Ich habe ein Problem mit folgenden Code in der CvGameUtils

    Code:
    if eBuilding == gc.getInfoTypeForString("BUILDING_DEFLECTOR") or eBuilding == gc.getInfoTypeForString("BUILDING_ADV_DEFLECTOR"):
    			if pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ADV_DEFLECTOR")) or pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_DEFLECTOR_SHIELDING")): return True
    			iPlayer = pCity.getOwner()
    			pPlayer = gc.getPlayer(iPlayer)
          			for i in range (pPlayer.getNumCities()):
    				if pPlayer.getCity(i).getNumRealBuilding(gc.getInfoTypeForString("BUILDING_NATIONAL_SHIELD")): return True
    Dieser soll verhindern das, nachdem man den ADV_DEFLECTOR gebaut hat, wieder der DEFLECTOR erscheint.
    Bzw. nachdem man den DEFLECTOR_SHIELDING gebaut hat, der ADV_DEFLECTOR wieder gebaut werden kann.

    Im Eventmanager habe ich noch das hier:

    Code:
    if iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"):  
    			pCity.setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR"), False)  
    		elif iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR_SHIELDING"):  
    			pCity.setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"), False)  
    		elif iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_NATIONAL_SHIELD"):  
    			for i in range (pPlayer.getNumCities()): 
    				pPlayer.getCity(i).setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR"), False)  
    				pPlayer.getCity(i).setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"), False)
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  13. #3808
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Und was ist das Problem?

  14. #3809
    Registrierter Benutzer Avatar von Monaldinio
    Registriert seit
    10.11.09
    Ort
    HRO
    Beiträge
    7.650
    Das Problem ist, das es nicht funktioniert.
    Nachdem ich zb den Adv_deflector gebaut habe, kann ich wieder den normalen deflector bauen!;(
    Conflict on Chiron - Sid Meier's Alpha Centauri vs. Call to Power!

    Neu Version Conflict on Chiron v3.4 BETA - 16.01.16

    Patch1 - 07.04.16

    Die deutschen Sounds und Wunderfilme sind bereits in der MainFile integriert!
    Ihr könnt sofort loslegen.

    Über Feedback würde ich mich freuen...

  15. #3810
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Das für den Bau von ADV_DEFLECTOR DEFLECTOR_SHIELDING vorgeausgesetzt wird kann über XML geregelt werden. Gibt da den Tag BuildingClassNeededs, hier kann man eine Liste von Gebäuden angeben, die in der Stadt vorhanden sein müssen.

    Wie verhalten sollen sich DEFLECTOR und ADV_DEFLECTOR genau zueinander verhalten?
    Also wenn DEFLECTOR gebaut wurde und dann anschließend ADV_DEFLECTOR, was soll dann mit DEFLECTOR passieren?

    Und ADV_DEFLECTOR soll auch dann gebaut werden können, wenn DEFLECTOR nicht vorhanden ist?

Seite 254 von 271 ErsteErste ... 154204244250251252253254255256257258264 ... LetzteLetzte

Berechtigungen

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