Wäre das mit meiner Sonnenaktivität auch möglich?
Im Moment wird der ist Zustand nicht richtig gespeichert....;(
Also der Ertrag der improvements bei hoher/niedriger Sonnenaktivität .
Wäre das mit meiner Sonnenaktivität auch möglich?
Im Moment wird der ist Zustand nicht richtig gespeichert....;(
Also der Ertrag der improvements bei hoher/niedriger Sonnenaktivität .
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...
Ans Speichern+Laden zu denken vergesse ich auch gerne
Es ginge auch in Python relativ einfach indem du die setScriptData-Felder von den Plots verwendest, um die Information zu speichern. Es gibt auch schon Vorlagen/Modding-Libs, welche die Verwendung vereinfachen sollen. Habe ich aber nicht ausprobiert und stattdessen bei PAE (im Thread zu den Flüssen) ein eigene Erweiterung vom ScriptData-Feld geschrieben.
SDK ist theoretisch einfacher, aber ich weiß nicht ob du Thorgal damit weiter hilft. Und es wird schwieriger mit der Savekompatibilität.
Jein. Es wird ja auch bei dir was gespeichert. Da habe ich einen (lustigen) anderen Ansatz genommen und den Integer-Wert in den Beziehungen des Barbaren gespeichert. Die Werte werden nirgends benötigt und können daher für solche Sachen missbraucht werden (Zumindest hoffe ich das)
Leider stimmt was mit der Erkennung der aktuellen Season nicht und ich weiß immer noch nicht wieso.
Kann man beim Speichern und Laden über Python herausbekommen, wie der Dateiname des Spielstandes ist?
Ich glaube das geht nicht mal im Sdk. Die Methoden kriegen ja alle nur den Steam gereicht, aber die Erzeugung des Steams liegt außerhalb.
Man könnte höchsten mal gucken ob der Save-Name in der Struktur landet, die mit CyVariableSystem ausgelesen werden. Ist aber eher für die INI-Werte gedacht, glaube ich. Beispiel-Implementation ist in CvDefineEditor.py zu finden
Ich habe das jetzt mit pickle und GyGame::setScriptData bzw. getScriptData gelöst:
seasons.py:
Achtung Spoiler:
seasonsEventManager.py:
Achtung Spoiler:
Also ich hab jetzt die beiden py-Dateien (seasons, seasonseventmanager) nach deiner Vorlage erstellt und in den Python-Ordner gelegt, muss ich dann noch etwas im Event-Manager ändern? Weil nur mit den beiden Dateien funktioniert es bei mir noch nicht.
Das fehlt noch:
EntryPoints/CvEventManager.py:
Achtung Spoiler:
Habe ich nur nicht nochmal geschrieben, weil sich hier nichts geändert hatte.
Weiß jemand, was genau ich hierunter zu verstehen habe? Was sollte ich vermeiden zu tun, und lieber auf onModNetMessage zurückgreifen?Zitat von civ4bug.sourceforge.net/PythonAPI/
Bisschen konkreter (geht um PAE):
In MainInterface platziere ich einen neuen Button für eine Einheit, bei Klicken des Knopfes wird handleInput() (in MainInterface) aufgerufen. An dieser Stelle wird dann normalerweise (also bei den sonstigen Funktionalitäten von PAE) immer, je nach gedrücktem Button, onModNetMessage mit einer den Button identifizierenden ID aufgerufen und dort dann der übrige Kram erledigt. Statt onModNetMessage könnte ich ja aber auch eine beliebige andere Methode aufrufen, die dann die gewünschte Funktionalität ausführt, kann das zu Problemen führen und sollte ich lieber onModNetMessage verwenden? Im Wesentlichen wird in der Methode dann nur noch ein Popup generiert (das dann auch noch eine Methode in ScreensInterface aufruft), Zufallselemente kommen keine vor. Wüsste nicht, was da zu OOS führen sollte, aber ich dachte, ich frag besser nochmal.
"Only Germans, perhaps, could make a game about economics - a stylish, intelligent and captivating one at that." - The New York Times
Es wird genau dann kritisch wenn du den Zustand des Spiels änderst. Beispielweise das Ändern eines Feldes oder das ScriptData-Feld. Passiert dies alles innerhalb von onModNetMessage so ist sichergestellt, dass es bei allen Teilnehmern des Spiels stattfinden. Anderenfalls wird es nur beim aktiven Spieler ausgeführt.
Interessant Gilt das für den ganzen EventManager, dass Änderungen des Spielzustands bei allen Spielern ankommen? Denn es kann ja nicht sein, dass das nur innerhalb von onModNetMessage so ist Ich bin jetzt ein wenig verwirrt
Und wenn ich innerhalb von onModNetMessage einen Methodenaufruf habe, hab ich in diesem dann auch garantierte Synchronizität?
"Only Germans, perhaps, could make a game about economics - a stylish, intelligent and captivating one at that." - The New York Times
Jein, es gilt auch für andere Abschnitte des EventManagers, aber nicht für alle ( mouseEvent z.B. erwartbarerweise nicht ). Aber spielt letztlich auch keine Rolle für dich welche Abschnitte sonst noch aufgerufen werden. onModNetMessage wäre der Platz an dem es am besten passt.
Zur zweiten Frage: Ja. Beim „aktiven Spieler“ wird sendModNetMessage aufgerufen und damit bei allen das Event ausgelöst.
Alles klar (hoff ich ), danke
"Only Germans, perhaps, could make a game about economics - a stylish, intelligent and captivating one at that." - The New York Times