Seite 6 von 14 ErsteErste ... 2345678910 ... LetzteLetzte
Ergebnis 76 bis 90 von 204

Thema: Python - Fragen über Fragen

  1. #76
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    So, habe noch was ausprobiert:

    PHP-Code:
                    teamID CyGlobalContext().getPlayer(0).getTeam()
                    if 
    int(teamID) == and city.canConstruct(8FalseFalseTrue):
                            
    city.setHasRealBuilding(8true
    und
    PHP-Code:
                    if city.isHuman() and city.canConstruct(8FalseFalseTrue):
                            
    city.setHasRealBuilding(8True
    funktionieren!!!
    Man muss bloss auf Groß- und Kleinschreibung achtgeben.

    PHP-Code:
    self.iGRANARYID CvUtil.findInfoTypeNum(gc.getBuildingInfogc.getNumBuildingInfos(), 'BUILDING_GRANARY'
    funktioniert auch!
    PHP-Code:
                    self.iGRANARYID CvUtil.findInfoTypeNum(gc.getBuildingInfogc.getNumBuildingInfos(), 'BUILDING_GRANARY')
                    if 
    city.isHuman() and city.canConstruct(self.iGRANARYIDFalseFalseTrue):
                            
    city.setHasRealBuilding(self.iGRANARYIDTrue
    sieht doch recht edel aus, oder?

  2. #77

  3. #78
    KSV Hessen Kassel Avatar von jok
    Registriert seit
    24.01.02
    Ort
    Kassel
    Beiträge
    3.630
    Zitat Zitat von Octavian
    PHP-Code:
    def onCityAcquired(selfargsList):
    'City Acquired'
    owner,playerType,city,bConquest,bTrade argsList
    pTeamOldOwner 
    gc.getTeam(owner)
    if 
    pTeamOldOwner.isHasTech(self.iNationalismID) and (bConquest): 
    Hier scheint "owner" also keinen Int-Wert wiederzugeben, wenn ich die Argumentation richtig verstanden habe.
    Richtig. Owner ist hier ein Python-Objekt von PyPlayer.
    Somit ist pTeamOldOwner kein Int-Wert.

  4. #79
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Octavian
    Gute Arbeit, Caesium!
    Danke, aber ich hatte wirklich gute Lehrer!

  5. #80
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Und wieder eine Frage:

    PHP-Code:
    player CyGlobalContext().getPlayer()
    self.iARCHERID CvUtil.findInfoTypeNum(gc.getUnitInfogc.getNumUnitInfos(), 'UNIT_ARCHER')
    if 
    city.canConscript(self.iARCHERID):
    player.initUnit(self.iARCHERIDcity.getX(), city.getY(), UnitAITypes.NO_UNITAI
    Gibt die Meldung:

    ArgumentError: Python argument types in city.canConscript(CyCity, int) did not match C++ signature: canConscript(class CyCity{lvalue})
    Was bedeutet das (obwohl ich glaube, es verstanden zu haben), und wie behebe ich das, bzw. wie lauten ähnliche Befehle?

  6. #81
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Caesium
    Ich habe hier eine Civ4 Python Dokumentation gefunden. Vielleicht kennt ihr sie ja noch nicht.
    Edit zu #57:
    Siehe #7, dort nennt uns auch schon Octivian diese URL...
    Sorry, sollte kein Diebstahl werden...

  7. #82
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824
    ArgumentError: Python argument types in city.canConscript(CyCity, int) did not match C++ signature: canConscript(class CyCity{lvalue})

    Das heisst, dass canConscript als Argument ein Objekt der Klasse CyCity will als lvalue, aber von dir eine Integer erhalten hat.

  8. #83
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von sansi
    Das heisst, dass canConscript als Argument ein Objekt der Klasse CyCity will als lvalue, aber von dir eine Integer erhalten hat.
    Soweit wars schon klar, aber welche Werte hat lvalue im Gegensatz zu ganzen Zahlen, oder anders, wie überführe ich lvalue in int? Hätte ich bloss C++ gelernt.

  9. #84
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824
    Wenn ich es richtig sehe, musst du bei dieser Funktion gar kein Argument angeben. Dadurch, dass du schreibst city.canConscript() wird das CyCitty Objekt als erstes Argument an die Memmberfunktion übergeben. Probier es mal ohne Argument.

    Ein int kannst du nicht einfach so in ein Objekt umwandel. Dazu bräuchtest du eine Funktion, welche das richtige Objekt sucht und dann zurückgibt.

  10. #85
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Upps, war ich das etwa?

    Conscript, Sklaven zum Rushen nutzen...

    Ich wollte eigentlich abfragen, ob die Einheit gebaut werden kann.

    Nächster Versuch

    Edit:

    PHP-Code:
    player CyGlobalContext().getPlayer()
    self.iARCHERID CvUtil.findInfoTypeNum(gc.getUnitInfogc.getNumUnitInfos(), 'UNIT_ARCHER')
    if 
    city.canTrain(self.iARCHERID):
    player.initUnit(self.iARCHERIDcity.getX(), city.getY(), UnitAITypes.NO_UNITAI
    Jetzt läufts...
    Muss meinen Langenscheidt mal wieder aus dem Regal holen...

  11. #86
    KSV Hessen Kassel Avatar von jok
    Registriert seit
    24.01.02
    Ort
    Kassel
    Beiträge
    3.630
    Wie ist denn in diesem Codeabschnitt die "City" definiert?

    Und setz mal statt canConscript canTrain ein

  12. #87
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von jok
    Wie ist denn in diesem Codeabschnitt die "City" definiert?

    Und setz mal statt canConscript canTrain ein
    Schon geschehen in Post #85 im Edit. Jetzt funktioniert auch alles.
    Mal schauen, so wie ich das sehe, wirds mit einem richtigen Mod wohl noch ein wenig dauern

  13. #88
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    So, mal wieder eine Frage, und ich glaube, die ist ziemlich grundlegend, zumindest für mich:

    PHP-Code:
    canConstruct(...) - bool (int eBuildingbool bContinuebool bTestVisiblebool bIgnoreCost
    bContinue, bTestVisible, bIgnoreCost und andere b...-Terme sind alle Boolean, soviel habe ich verstanden, sie wirken sich dementsprechend auf den jeweiligen Befehl, in diesem Besipiel canConstruct aus. Aber was bedeuten diese b...-Werte? Ist es da wirklich so, dass man die nach Lust und Laune True oder False setzt, oder gibt es da ein System. Hab schon "gegooglet" (tolles denglisch), aber nichts gefunden.

  14. #89
    KSV Hessen Kassel Avatar von jok
    Registriert seit
    24.01.02
    Ort
    Kassel
    Beiträge
    3.630
    bContinue kenne ich nur von den Technologien, der ist bei der Futurtech auf True gesetzt, dass die Erforschung immer wiederholt werden kann.

    Die anderen beiden hab ich hier nach Gefühl vorgeschlagen.

  15. #90
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824
    Die Bedeutung kenne ich auch nicht, du kannst aber in den bestehenden Dateien schauen, ob du die rausfindest. Hier was grep zurückgibt:

    PHP-Code:
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvAdvisorUtils.py:                                        if pCity.canConstruct(eLoopBuildingFalseFalseFalse):
    CvGameUtils.py:    def canConstruct(self,argsList):
    EntryPoints/CvGameInterface.py:def canConstruct(argsList):
    EntryPoints/CvGameInterface.py:    #CvUtil.pyPrint( "CvGameInterface.canConstruct" )
    EntryPoints/CvGameInterface.py:    return gameUtils().canConstruct(argsList)
    PyHelpers.py:    def canConstruct (selfiBuilding):
    PyHelpers.py:        return self.city.canConstruct(iBuildingFalseFalseFalse)
    Screens/CvMainInterface.py:                        if (pHeadSelectedCity.canConstruct(eLoopBuildingFalseTrueFalse)):
    Screens/CvMainInterface.py:                            if ( not pHeadSelectedCity.canConstruct(eLoopBuildingFalseFalseFalse) ):
    Screens/CvMainInterface.py:                        if (pHeadSelectedCity.canConstruct(eLoopBuildingFalseTrueFalse)):
    Screens/CvMainInterface.py:                            if ( not pHeadSelectedCity.canConstruct(eLoopBuildingFalseFalseFalse) ): 

Seite 6 von 14 ErsteErste ... 2345678910 ... LetzteLetzte

Berechtigungen

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