Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!
Ja, jetzt habe ich es gefunden. Kommen viele Exceptions, da bekommt man richtig Angst! Leider verstehe ich nicht einmal die Hälfte.
Irgend etwas stimmt jedenfalls nicht mit der ZeileDie habe ich bei den Exceptions herausgelesen, aber was damit war . Ich verstehe nichts von Python und weiß auch nicht, weilche der kryptischen Fehlermeldungen nun mein Problem beschreibt. Was bedeutet zum Beispiel "Traceback (most recent call last)"? Ich meine, viele Dinge werden offenbar auch ignoriert, ohne dass es schiefläuft.Code:pUnit = gc.getPlayer(ePlayer).getUnit(iUnitId) //get Unit Archer (UnId=Archer(nächste zeile))
Edit:
Habe mal einen Testlauf ohne die modifizierte GameUtil.py gemacht, da ist tatsächlich nur mein Mapscript fehlerhaft. Was aber nicht bedeutet, dass ich die FehlermeldungenundFile"<string>", line 1 in ?, die immer wieder auftreten, richtig interpretieren kann. Was bedeuten sie, sind sie wichtig?File"<string>", line 52 in load_module
Beim Testlauf kommen noch einige Meldungen der Art 'File "CvScreensInterface" line 12 in ?". Wie finde ich heraus, was er mit "in ?" meint?
Dazu kommen noch sehr viele leere Fehlermeldungen, und er sagt "failed to load python CvEventinterface", obschon ich das gar nicht verändere. Und all das nur wegen dem bisschen Code, das Civ erstellt hat. Python muss eine verdammt komplizierte Sache sein.
Geändert von Kathy (15. Juni 2009 um 10:48 Uhr)
Gib am besten mal her.
Wenn das Ding sich bereits in Zeile 1 verabschiedet, dann meist weil irgendein anderes Skript, was dran hängt, abgeschmiert ist.
Traceback: Most recent call ist wohl einfach nur die Anzeige für den letzten Fehler, nix spezielleres.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Also, das entsprechende Skript hängt ein paar Beiträge früher noch in meinem Anhang. Wenn allerdings ein anderes mit drinhängt, brauchst du das dann auch? Ich habe vorsichtshalber einmal meinen ganzen Python-Ordner gepackt.
Geändert von Kathy (09. Juni 2011 um 20:56 Uhr)
Heut' keine Zeit mehr, ich guck's mir morgen an.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Kacke, wie dumm.
In dem Quellcode von hier ist mit "//" kommentiert wurden, was auch in fast jeder Programmiersprache so akzeptiert wird, allerdings nicht in python.
Ersetz' die "//" durch #, dann sollte das klappen.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
JA! Es funktioniert!
Danke, The_J! So ein dummer Fehler, einfach nur falsch reinkopiert. Tja, wenn man keine Ahnung von Python hat... Ich hoffe, ich kann es mir merken, falls ich wieder irgendwo Code ausleihe.
Hab jetzt den Code von The_J (Seite 4) im Spiel eingebunden!
Der Code, der machen sollte, dass man mit 1 Öl nur 10 Panzer bauen kann. Das Spiel läuft ohne Fehlermeldungen, erst wenn der Bildschirm kommt, wo man die Produktion einer Stadt auswählen muss, kommt der Fehler:
Traceback (most Recent call last):
File "CcGameInterface", line 146, in CannotTrain
File "CvGameUtils", line 173, in cannottrain
AttributeError: 'CyGlobalContext' object has no attribute 'getInfoTypeForString'
Wo liegt der Fehler?
Edith korrigiert: Es kommt schon nur, wenn man eine Runde beendet! Nicht erst beim Auswahlbildschirm für die Prod!
Geändert von Civ (18. Juni 2009 um 12:37 Uhr)
Hm, ist das die Zeile, wo tank als erstes steht?
wenn ja, dann musst du mal statt dem einfachen ' ein " schreiben. Ich benutze nämlich immer die hier: "xx" und nicht 'xx'.
Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!
Hab ich bereits versucht! Ich versuchs aber nochmal (vielleicht hab ich da ja was vergessen!)
Edith: funktioniert nicht!
Code:
Sollte man da was ändern?PHP-Code:
Oil = gc.getInfoTypeForString("BONUS_OIL")
ePlayer = pCity.getOwner()
pPlayer = gc.getPlayer(ePlayer)
MyOil = pPlayer.getNumAvailableBonuses(Oil)
tankclass = gc.getInfoTypeForString('UNITCLASS_TANK')
NumTanks = pPlayer.getUnitClassCount(tankclass)
normaltank = gc.getInfoTypeForString('UNIT_TANK')
germantank = gc.getInfoTypeForString('UNIT_GERMAN_PANZER')
if ((eUnit == normaltank)OR(eUnit == germantank)):
if (NumTanks > (MyOil*10)) :
return True
Edith meint: Hab noch
hinzugefügt! Nun gibt es zwar keine Fehler mehr, jedoch lassen sich Panzer überhaupt nicht mehr bauen...?PHP-Code:
Else :
return False
Geändert von Civ (19. Juni 2009 um 17:49 Uhr)