Das sind Dateien, die mein Editor vim erstellt. Die werden gebraucht für recovery/History/kA. Kannst du löschen. Also alles mit .swp und .py~ sind solche Dateien.Zitat von Octavian
Das sind Dateien, die mein Editor vim erstellt. Die werden gebraucht für recovery/History/kA. Kannst du löschen. Also alles mit .swp und .py~ sind solche Dateien.Zitat von Octavian
Guten Morgen!
Ich habe mir das genauer angeschaut und es bleiben jetzt doch noch ein oder zwei Fragen. In deiner kleinen Modifikation habe ich noch zwei Ini-Dateien gefunden, "Sansi" und "Sansi2". Hat "Sansi" noch irgendeine Bedeutung?Zitat von sansi
Um meine CVEventManger.py zu bekommen, kopiere ich eine aus den Szenarien und passe diese an. Woher weiß man, welche zusätzlichen Python-Dateien man noch importieren muss oder anders gefragt: Woher weißt du, in welcher Datei sich einzelne deiner gebrauchten Funktionen verstecken?
Bsp:
Wieso brauchst du zum Beispiel "sys"? Ist das einfach so übernommen? Ich hätte jetzt gedacht, dass ich nur die Dateien brauche, deren Objekt ich in meiner CvEventManger.py benutze., zum Beispiel "Popup", wenn ich ein Fenster öffnen möchte.Code:from CvPythonExtensions import * import sys import Popup as PyPopup from PyHelpers import PyPlayer import pickle import CvEventManager from CvScreenEnums import * from PyHelpers import * import CvUtil
Die .ini Datei kannst du dir mal anschauen: Da kann man einfach ein paar Einstellungen für den Mod vornehmen. Exisitiert diese Datei nicht, so erstellt sie Civ4 beim ersten Starten des Mods. Was da alles möglich ist, habe ich kA. Vielleicht gibt es irgendwann und irgednwo eine Beschreibung
Die imports habe ich einfach stehen lassen vom Mod, aus dem ich dieses File kopiert habe: Ich denke dass zumindest sys, PyHelpers, pickle, CvScreenEnums und CvUtil nicht nötig sind.
sys und pickle sind Pythonmodule aus der Standarddistriubution: Hier gibt's ne vollständige Liste mit allem was du wissen musst.
Was man importieren muss: Einfach alles, was gebraucht wird Die Module kann du dir überigens alle anschauen. Entweder sind es 'offizielle' Python module oder sie sind im Civ4 Verzeichniss. (Zum Beispiel ist pickle im Verzeichnis python -> System)
Wenn du einen grossen Mod schreibst, kannst du gewisse Hilfsmodule in eigene Dateien auslagern. Oder wenn du gewisse Funktionen/Klassen in mehreren Mods brauchst, kannst du eigene Module erstellen. Lies dir die Dokumentation zu Modulen und dem import mal in den Tutorials genau durch. Das ist für Python sehr wichtig zu verstehen, was da passiert.
Schankedön.... Ich arbeite mich weiter durch.
Hallo!
Ich habe wieder einige Fragen: Ich bin gerade dabei, mir einige Python-Dateien aus den Modifikationen anzuschauen. Jetzt bin ich bei "Desert War" (CvDesertWar) auf eine Liste gestoßen. Diese nennt sich "forbiddenUnitList" und sperrt einige Einheiten, sobald ein bestimmtes "Event" eintritt. Leider finde ich nirgends den Aufruf dieser Liste. Bei dem Ereignis finde ich keinen Bezug zu og. Liste. Irgendwo muss doch Civ IV gesagt werden: Sobald das eintritt, kannst du bestimmte Einheiten nicht mehr bauen.
Gruß
Octavian
Also, ich hab das versucht und dies direkt in das Spiel (also unter CustomAssets die Eintrage aus deinem Zip in die jeweilige Datei übertragen), dies führt aber zu nichts, will sagen, ich habe keine Kaserne und keine Krieger, aber diese Popup-Meldung "Hello World!" bekomme ich pro Spieler und pro Runde...Zitat von sansi
Irgendwas muss da schief laufen...
MfG
Caesium
Zitat von cstelter
Hmm, das ist schon richtig: Jede Runde kommte ein Hello World und wenn du eine Stadt baust, steht automatisch ein Krieger drin. Mehr macht dieser Testmod nicht.
Besser als in die Customassets kopierst du diesen Testmod in das MODS Verzeichnis. So kannst du rumspielen mit dem Testmod und das Originalspiel steht weiter zur Verfügung, ohne dass du CutomsAssets immer löschen musst.
Naja, ich hatte nicht jede Runde ein, sodern je nach Anzahl Spielern x "Hello World. Werds mal als Mod ausprobieren. Falls es dort funktionieren sollte, müsste ich doch die Einträge in die CustomAssets direkt überführen können, da ich auf diese Weise später mal Mods spielen können möchte, hat ja auch mit AbandonRazeDemolish und SettlerReligion funktioniert...Zitat von sansi
MfG
Caesium
Auch das ist richtig: Es sollte einfach ein kleiner Demonstartionsmod sein, der keinen spielerischen Sinn macht. Also kriegt man für jede Ziv ein 'hello world'.Zitat von cstelter
Es ging hier nur drum zu zeigen, wie ein Mod den Eventmanager überschreiben kann und dabei auf die vorhandenen Funktionen zurückgreift.
Du kannst die Funktion mit dem 'hello world' auch einfach löschen. Der 'Mod' funktioniert in CustomAssets und im Modsordner, da gibt es keinen Untershied. Ich habe dir empfohlen, das im Modsordner zu machen, damit dein Originalspiel weiter zur Verfügung steht, während du am testen bist. Von der Funktionalität her gibt es da keinen Unterschied.
Zitat von Octavian
Hierfür habe ich jetzt übrigens eine Lösung gefunden. Die Liste wird durch eine Funktion aufgerufen, die die Produktionsliste der Städte überprüft. Ich habe es bei meiner Modifikation benutzt, um die Glaubensfanatiker an die CIVIC "Theokratie" zu binden.
Näheres findet man unter diesem Link
Ich habs auch grad bemerkt... hab die Datei modifiziert und wollte folgenden Eintrag schalten:Zitat von sansi
if city.getOwner() == 0:
player = gc.getPlayer(0)
player.initBuilding(09, city.getX(), city.getY())
player.initUnit(17, city.getX(), city.getY(), UnitAITypes.NO_UNITAI)
Doch ich bekomme keinen Getreidespeicher und der Krieger bleibt auch aus. Mittlerweile verstehe ich Python ja ein wenig, aber hier an dieser einfachen Stelle she ich den Wald vor lauter Bäumen wohl nicht.
MfG
Caseium
Poste mal bitte die komplette Datei, vielleicht gibt das näheren Aufschluß. Ich würde das Gebäude auch anders simulieren, aber da du keine Fehlermeldung bekommen hast, geht das anscheinend auch so.
So, hier das Minimödchen; wenn du weisst, wies auch anders geht, ich bin für jeden Vorschlag offen.
p.s. Dass du neben deinem Mod noch Zeit findest, hier im Forum zu helfen -> RESPEKT!
Danke dir, aber die Zeit sollte man sich immer nehmen, schließlich haben mir so manche Tipps auch schon geholfen.... Außerdem kann ich so auch immer was dazulernen.
Ich komme leider erst später dazu, mir die Sachen anzuschauen. Ich hoffe, dass ich dann aber auch fundiert Stellung beziehen kann.