Seite 3 von 14 ErsteErste 123456713 ... LetzteLetzte
Ergebnis 31 bis 45 von 204

Thema: Python - Fragen über Fragen

  1. #31
    Bruttrainer
    Registriert seit
    05.05.02
    Beiträge
    496
    Was ich schon sagen kann ist, dass er bei der Zeile

    player.initBuilding(09, city.getX(), city.getY())

    eine Fehlermeldung anzeigt. Hast du es denn zum Laden bekommen, ohne das eine Fehlermeldung angezeigt wird?

  2. #32
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Octavian
    Was ich schon sagen kann ist, dass er bei der Zeile

    player.initBuilding(09, city.getX(), city.getY())

    eine Fehlermeldung anzeigt. Hast du es denn zum Laden bekommen, ohne das eine Fehlermeldung angezeigt wird?
    Ja, der Mod lädt problemlos, und Spiele lassen sich auch ganz normal starten. Ohne den Eintrag für den Getreidespeicher bekomme ich ja den Krieger, wenn ich den Getreidespeicher einfüge, dann nicht mehr...

  3. #33
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824
    Den Tipp in #12 umgesetzt? Python Exceptions werden sonst nicht angezeigt!

  4. #34
    Bruttrainer
    Registriert seit
    05.05.02
    Beiträge
    496
    So, jetzt funktioniert es.

    Ändere bitte die Zeile

    player.initBuilding(09, city.getX(), city.getY())

    bitte in

    city.setHasRealBuilding(8, true)

    ab.

    Die Schreibweise "0X" mag er nicht. "9" war übrigens das Aquädukt, "8" ist der Nahrungsmittelspeicher. Wenn du deine Kenntnisse erweiterst, wirst du feststellen, dass viele Modifikationen diese Zahlen in den XML-Dateien "auslesen" lassen, sodass keine Verzählprobleme mehr auftauchen sollten und leicht eine Kompatibilität hergestellt werden kann. Wenn jemand jetzt nämlich die XML-Dateien verändert, kann es sein, dass "8" dann für ein anderes Gebäude steht. Ähnliches gilt für Einheiten.

    Ein Beispiel findest du in meiner Modifikation oder in den mitgelieferten Szenarios.

    PHP-Code:
    self.iSWORDSMANID CvUtil.findInfoTypeNum(gc.getUnitInfogc.getNumUnitInfos(), 'UNIT_SWORDSMAN'
    Liefert den Wert für den Schwertkämpfer.

  5. #35
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Danke euch beiden.
    Bei den Python Exceptions wird man ja wahnsinnig; sind ca 20 an der Zahl und sehr oft nur leere Fenster oder ohne Aussagekraft.
    Ich hänge diese mal an, lasse aber doppelte weg. Die Reihenfolge ist die, in der die Meldungen angezeigt wurden.
    @Octavian: Danke, das hat funktioniert; da habe ich mich wohl beim zählen in der XML vertan.

    MfG
    Caesium
    Angehängte Dateien Angehängte Dateien

  6. #36
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Octavian
    So, jetzt funktioniert es.

    Ändere bitte die Zeile

    player.initBuilding(09, city.getX(), city.getY())

    bitte in

    city.setHasRealBuilding(8, true)

    ab.
    Wie gesagt, erledigt und funktioniert jetzt auch. Wenn ich jetzt noch frage, wie ichs mache, dass der Getreidespeicher erst ab Töpferei bei Gründung der Städte auftaucht, reisst du mir dern Kopf ab, oder?

    Ein Beispiel findest du in meiner Modifikation oder in den mitgelieferten Szenarios.

    PHP-Code:
    self.iSWORDSMANID CvUtil.findInfoTypeNum(gc.getUnitInfogc.getNumUnitInfos(), 'UNIT_SWORDSMAN'
    Liefert den Wert für den Schwertkämpfer.
    Dieser Wert steht dann in self.iSWORDSMANID? Oder wo kann ich den auslesen?
    Geändert von cstelter (09. Januar 2006 um 15:58 Uhr)

  7. #37
    Bruttrainer
    Registriert seit
    05.05.02
    Beiträge
    496
    Zitat Zitat von cstelter
    Wie gesagt, erledigt und funktioniert jetzt auch. Wenn ich jetzt noch frage, wie ichs mache, dass der Getreidespeicher erst ab Töpferei bei Gründung der Städte auftaucht, reisst du mir dern Kopf ab, oder?
    Kennst du das Sprichwort (etwas abgewandelt): Man reicht ihm den kleinen Finger und er nimmt die ganze Hand....

    Grundsätzlich ist das etwas komplizierter. Ähnliches habe ich auch in meiner Modifkation gebraucht, deswegen sollte es nicht so schwer sein, dir die Routinen zu nennen:

    PHP-Code:
    def onCityBuilt(selfargsList):
            
    'City Built'
            
    city argsList[0]
            
    # if (city.getOwner() == CyGame().getActivePlayer()):
            #    self.__eventEditCityNameBegin(city)    
            
    CvUtil.pyPrint('City Built Event: %s' %(city.getName()))

                    
    player CyGlobalContext().getPlayer(0)
                    
    pTeamOldOwner gc.getTeam(player)
            if 
    city.getOwner() == and pTeamOldOwner.isHasTech(WERT_FÜR_TÖPFERN_AUS_XML_DATEI):
                
    city.setHasRealBuilding(8true
    Du musst für den player das zughörige Team finden ( pTeamOldOwner = gc.getTeam(player) ). Dies ist nötig, da die Instance player die Funktion isHasTech nicht kennt, diese tritt nur bei Teams auf. Dann muss lediglich noch der korrekte Wert abgefragt werden (pTeamOldOwner.isHasTech(WERT_FÜR_TÖPFERN_AUS_XML_DATEI) . Ich habe dies jetzt nicht ausprobiert, es sollte vom Aufbau her allerdings klappen.


    Dieser Wert steht dann in self.iSWORDSMANID? Oder wo kann ich den auslesen?
    Richtig. Es könnte dann also anstatt der 17 für den Krieger wie folgt heißen:

    PHP-Code:
     player.initUnit(self.iSWORDSMANIDcity.getX(), city.getY(), UnitAITypes.NO_UNITAI

  8. #38
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824
    Zitat Zitat von cstelter
    Danke euch beiden.
    Bei den Python Exceptions wird man ja wahnsinnig; sind ca 20 an der Zahl und sehr oft nur leere Fenster oder ohne Aussagekraft.

    Dazu habe ich nur einen Tipp: Schritt für Schritt.

    Also fang an mit etwas, was fehlerfrei läuft und füge dann Zeile um Zeile, Ausdruck um Ausdruck hinzu. Du kannst dabei ruhig mal Konstanten einfügen für etwas, was sich später noch ändern soll. Scheint mühsam zu sein, spart dir aber auf die Dauer unheimlich viel Zeit

    Es gibt für Python überigens noch einen Debugger: den HAPDebugger, man kann die Verbindung in der Civ4.ini einschalten. Hat das jemand schon probiert? Das ist das nächste, was ich mal testen will, kann in gewissen Situationen ganz praktisch sein.

  9. #39
    Bruttrainer
    Registriert seit
    05.05.02
    Beiträge
    496
    Wahrscheinlich habe ich was falsch gemacht, aber als ich ihn wie folgt aktvierte, hat er mir Civ IV nicht mehr geladen:

    Code:
    ; Establish connection to Python Debugger
    HAPDebugger = 1
    Ich habe aus der dort stehenden 0 eine 1 gemacht. Vielleicht muss man irgendwas anderes machen noch machen...?

  10. #40
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von sansi
    Dazu habe ich nur einen Tipp: Schritt für Schritt.

    Also fang an mit etwas, was fehlerfrei läuft und füge dann Zeile um Zeile, Ausdruck um Ausdruck hinzu. Du kannst dabei ruhig mal Konstanten einfügen für etwas, was sich später noch ändern soll. Scheint mühsam zu sein, spart dir aber auf die Dauer unheimlich viel Zeit

    Es gibt für Python überigens noch einen Debugger: den HAPDebugger, man kann die Verbindung in der Civ4.ini einschalten. Hat das jemand schon probiert? Das ist das nächste, was ich mal testen will, kann in gewissen Situationen ganz praktisch sein.
    Zuerst dachte ich ja auch, das läge an den evtl. falsch implementierten anderen Mods, aber nachdem ich die eine Textzeile, wie von Octavian empfohlen, geändert hatte, gabs gar keine Fehlermeldung mehr, d.h. diese eine kleine Veränderung des Textes brachte mir die ca. 20 Fehlermeldungen; den "Film" kannst du dir ja mal anschauen, Bild für Bild, von 2 bis keine Ahnung, in der Reihenfolge erschienen die Fehlermeldungen.
    Ist ja jetzt gelöst. Python verstand wohl einfach nicht, was ich von ihm wollte.
    Mensch, Mensch, Mensch, mit diesen ganzen Infos lässt sich ja bald eine ganze Enzyklopädie füllen...

  11. #41
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Octavian
    Wahrscheinlich habe ich was falsch gemacht, aber als ich ihn wie folgt aktvierte, hat er mir Civ IV nicht mehr geladen:

    Code:
    ; Establish connection to Python Debugger
    HAPDebugger = 1
    Ich habe aus der dort stehenden 0 eine 1 gemacht. Vielleicht muss man irgendwas anderes machen noch machen...?
    Vielleicht musst du ja eine Programmverknüpfung oder einen Pfad zu eben dem Debugger definieren?
    Denen traue ich fast alles zu.

  12. #42
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Zitat Zitat von Octavian
    Kennst du das Sprichwort (etwas abgewandelt): Man reicht ihm den kleinen Finger und er nimmt die ganze Hand....
    Das hatte ich eigentlich auch nicht vor. Nochmals vielen Dank. Mittlerweile erschliessen sich mir immer mehr Zusammenhänge; jede Programmiersprache hat so ihre Eigenheiten und man muss die Befehle erst mal kennenlernen.
    Mal schauen, vielleicht ist im SDK ja ne Übersicht über die von CivIV verwendeten Befehle drin.

  13. #43
    ...
    Registriert seit
    30.09.04
    Ort
    Bern
    Beiträge
    5.824

  14. #44
    the cosmos rocks Avatar von Caesium
    Registriert seit
    08.12.03
    Ort
    Faerûn
    Beiträge
    9.104
    Danke für den Link Sansi, nur bin ich einer, der auch noch Beispiele braucht, da hilft mir z.B. dieser Thread um einiges mehr. Aber für eine generelle Übersicht über die Befehle ist es nicht zu verachten. Werds mal bookmarken.

    Caesium
    Geändert von cstelter (09. Januar 2006 um 17:11 Uhr)

  15. #45
    Bruttrainer
    Registriert seit
    05.05.02
    Beiträge
    496
    Zitat Zitat von cstelter
    Das hatte ich eigentlich auch nicht vor. Nochmals vielen Dank. Mittlerweile erschliessen sich mir immer mehr Zusammenhänge; jede Programmiersprache hat so ihre Eigenheiten und man muss die Befehle erst mal kennenlernen.
    Mal schauen, vielleicht ist im SDK ja ne Übersicht über die von CivIV verwendeten Befehle drin.

    Ich habe den Smiliey ja nicht ohne Grund gesetzt. Du darfst natürlich noch gern mehr fragen und ich beantworte die Sachen nach bestem Wissen und Gewissen.

Seite 3 von 14 ErsteErste 123456713 ... LetzteLetzte

Berechtigungen

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