Seite 37 von 53 ErsteErste ... 2733343536373839404147 ... LetzteLetzte
Ergebnis 541 bis 555 von 784

Thema: Mod für PB-Spiele: PB Mod_v1

  1. #541
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ich habe alle Quellcodes veröffentlicht, aber ihr nicht. Also liegt es auch an euch das mergen zu übernehmen.

  2. #542
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Ich habe alle Quellcodes veröffentlicht, aber ihr nicht. Also liegt es auch an euch das mergen zu übernehmen.
    Dann mache ich das morgen im Lauf des Tag. Ich kann aus den Link am Anfang alles nehmen?

    Apropo Quelloffen, an mir liegt es nicht.

  3. #543
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ja, und beim Github-Projekt sind die Branches "master, unstable und PBMod_v5" gerade auf dem gleichen Stand. Nimm also am besten den PBMod_v5-Branch.

  4. #544
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    PBMod_v5-Branch runtergeladen -> abgeharkt

  5. #545
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    In der DLL für de 76er Fix ist auch der restliche SDK Code aus deinen Mod enthalten, Ramkhamhaeng.

  6. #546
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ein User bei den Civfanatics nutzt jetzt auch den Wrapper , hat mich aber auf ein Problem bei diesem hingewiesen.
    Ich hatte den Downloader der Spielstände so programmiert dass er erst über https:// versucht einen Spielstand zu laden und dann http:// probiert. Der Timeout zwischen den beiden Versuchen war aber abscheinend zu hoch und die http://-Variante klappte nie.
    Habe ich jetzt nicht nochmal ganau untersucht, aber das deckt sich mit meinen damaligen Tests. Kann mich an Probleme erinnern, nachdem ich für Zulans Server die Https-Variante eingebaut hatte.

    Daher habe ich jetzt die Url-Erkennung im Wrapper so angepasst dass er gleich das richtige Protokoll wählt.
    Außerdem bin ich Zulans Wunsch nach mehr std::string statt char* nachgekommen und habe etwas aufgeräumt.
    Die Änderungen sind bisher nur im unstable-Branch von PBStats zu finden. Wandert dann bei Gelegenheit in den Master-Branch.
    Geändert von Ramkhamhaeng (26. März 2016 um 18:15 Uhr)

  7. #547
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.901
    Waere es technisch irgendwie mit vertretbarem Aufwand moeglich ein Server-Seitiges oder zumindest konfigurierbares XML-Balancing zu implementieren?
    Also so, dass man z.B. ein PB machen kann, bei dem Mining abgeschwaecht ist, aber der die selbe Version des Mods zum verbinden mit anderen PBs, wo das nicht der Fall ist, genutzt werden kann?

  8. #548
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Das wäre schon möglich. Man könnte die Änderungen vor/mit/nach (das wäre noch zu überlegen) dem Spielstand übertragen und die durch das XML initialisierten Werte anpassen.
    Falls man die Optionen aber nicht nur an den PB-Modus sondern an alle MP-Modi knüpfen wird, ist es etwas schwerer.

    Vielleicht gibt es auch schon eine Mod, welche viele der gewünschten Balancing-Änderungen schon beinhaltet. In der K-Mod sehe ich nichts im Changelog aber kann man den Modder fragen, der die PB-Mod dort integriert hat.

  9. #549
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.901
    Meine Gedanken gehen in die Richtung, dass das Balancing von PB zu PB leicht angepasst wird. Wenn man dann bedenkt wie lange die PBs dauern wird es kompliziert... Wenn man da einigermassen flexible XML overrides im save speichern koennte waere das schon eine interessante Variante.

  10. #550
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Wenn man dieses Nachladekonzept auf eine Stelle im Code projezieren soll, würde ich mich für
    Code:
    Header
    void LoadGlobalClassInfo(std::vector<T*>& aInfos, const char* szFileRoot, const char* szFileDirectory, const char* szXmlPath, bool bTwoPass, CvCacheObject* (CvDLLUtilityIFaceBase::*pArgFunction) (const TCHAR*) = NULL);
    
    Beispielaufruf
    LoadGlobalClassInfo(GC.getTechInfo(), "CIV4TechInfos", "Technologies", "Civ4TechInfos/TechInfos/TechInfo", true, &CvDLLUtilityIFaceBase::createTechInfoCacheObject);
    entscheiden. Leider ist der Inhalt von LoadGlobalClassInfo und der Cache-Handler (letztes Argument) nicht im SDK enthalten. Es gibt aber im SDK ein paar Hilfsfunktionen, die höchstwahrscheinlich von LoadGlobalClassInfo aufgerufen werden. Damit kann man die Variablen in der Funktion etwas beeinflussen.


    Eine Art simples Nachladen könnte man dadurch erreichen, dass man den eigentlichen Vektor ( GC.getTechInfo())
    durch einen Dummy D austauscht und nach dem Laden dann den richtigen Vektor überschreibt. Den ursprünglichen Vektor muss man außerdem behalten, um nach Verlassen des Spiels den vorherigen Zustand wieder herzustellen.
    Leider kann man bei LoadGlobalClassInfo nicht den Dateipfad angeben sondern nur den Namen. Es wird dann vom Programm an bestimmten vordefinierten Positionen nach ihnen gesucht.

    Wenn es möglich ist ein eigenen Verzeichnis in die Suche zu schmuggeln, hätte man einen probaten Weg:
    1. Auf dem Server wird ein Verzeichnis XML angelegt (mit der gleichen Struktur wie Assets/XML) und die
    Änderungen dort hinein gepackt.
    2. PB-Server zippt das Verzeichnis beim Start.
    3. Save wird um Variable erweitert, die gezipptes Verzeichnis beinhaltet.
    4. Client entpackt als erstes die XML-Dateien in ein temporäres Verzeichnis (alles im Speicher zu erledigen wäre noch besser?!) und aktualisert die Daten.
    5. Client läd Rest vom Save.

    Nachteil 1: Python-Code kann man so nicht ändern. Nennen wir das mal Sicherheitsfeature…
    Nachteil 2: Update bestehender Daten zieht manchmal weitere Änderungen nach sich. (Im Code gibt es da beispielsweise Methoden mit dem Namen readPass2 und readPass3…) Ignoriert man dass kann der Zustand inkonsistent werden.
    Vorteil: Als Anwender recht leichte Handhabe. Man muss nur die XML-Dateien bei gleichem Pfad replizieren. Um die Dateien klein zu halten schmeißt man alle unveränderten Dateien raus.

    Falls das nicht geht könnte man die Sache auch näher an den Dateistukturen anpacken, also bei den CvInfo::read(CvXMLLoadUtility* pXML))-Methoden. Die füllen letztlich die Datenstrukturen. Man müsst dann mit den Daten aus dem Save die pXML-Streams selber produzieren.

  11. #551
    Say My Name Avatar von Zulan
    Registriert seit
    13.03.08
    Beiträge
    8.901
    Man koennte es auch so machen, das alle Balancing Varianten in einer Modversion inkludiert sind, aber beim Verbinden die richtige Variante ausgewaehlt wird. Dann muesste man nicht XML-Zips entpacken. Wenn es dann noch so kompatibel ist, dass eine alte clientseitige modversion sich zu einer neuen serverseitigen modversion, die aber eine alte balancing-Variante nutzt, verbinden kann, brauchten nur wir bzw. die leute die an neuen PB teilnehmen ihre Mods aktualisieren.

  12. #552
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    So, hier die von Civstats gekl., äh adaptierte Gewinnmeldung auch noch als Bild Hat sich ganz schon gezogen das zu erstellen, wenn man bei Django schon wieder raus ist.
    Update erfordert im Idealfall nur compilestatic, collectstatic, migrate, runserver, aber wann hat das schon mal geklappt.
    Achtung die Settingsdateien habe ich auch etwas geändert. Sofern deine Einstellungen in settings_local.py stehen sollte da aber nix kollidieren.

    Bild


    Zitat Zitat von Zulan Beitrag anzeigen
    Man koennte es auch so machen, das alle Balancing Varianten in einer Modversion inkludiert sind, aber beim Verbinden die richtige Variante ausgewaehlt wird. Dann muesste man nicht XML-Zips entpacken. Wenn es dann noch so kompatibel ist, dass eine alte clientseitige modversion sich zu einer neuen serverseitigen modversion, die aber eine alte balancing-Variante nutzt, verbinden kann, brauchten nur wir bzw. die leute die an neuen PB teilnehmen ihre Mods aktualisieren.
    Der Weg ist meiner Meinung nach vom Level der Programmierung genauso komplex. Allerdings müssen die Spieler dann ihre Mod-Versionen manuell aktualisieren. Das zieht sich meist über mehrere Tage und wir verlieren hier (so wie ich mir das denke) die Prüfsummen-Checks bei den Dateien, was zu Integritätsproblemen führen kann.
    Wenn die Spieler manuell aktualisieren wäre ich eher dafür für alle Balanching-Mods Ableger der Mod anzulegen.
    Angehängte Grafiken Angehängte Grafiken

  13. #553
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Zitat Zitat von Rob Anybody Beitrag anzeigen
    Wegen dem Spio-Problem würde ich ja eine technische Lösung vorschlagen. Im Base-Mod kann man Gegenspionage verlängern bevor die aktuelle Gegenspionage abgelaufen ist. Dadurch gibt es keine Löcher dazwischen. Das lässt sich doch bestimmt im PB-Mod einbauen?
    Dafür habe ich im Code für die nächste Modversion die Regeln für die Gegenspionage so geändert, dass man sie auch schon genau eine Runde vorher verlägern kann. Die 10 Runden werden an die verbleibende angehängt. Der Kosten-Modifier bleibt, im Unterschied zu BASE, dann bei +100%.

  14. #554
    Stoppt Spahn jetzt! Avatar von CocoRico
    Registriert seit
    02.06.11
    Beiträge
    7.451
    The law is no substitute for morality. E.Snowden, Dez 2016

    Die Welt hat genug für jedermanns Bedürfnisse, aber nicht für jedermanns Gier. Gandhi

    Meine PB-Geschichten:
    Achtung Spoiler:
    PB 88 Coco in Babylon läuft
    PB 86 Coco in Athen läuft
    PB 82 Pyramiden für den Pharao überlebt
    PB 75 Mit Isabella bei den Gringos Sieg!
    PB 73 Ein Königreich für Schokolade! überlebt
    PB 68 Simba Zulus Sieg!
    PB 60 Indien überlebt
    PB 53 Von Wölfen und Göttern überlebt

  15. #555
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    @Zulan: Bei einem (neuen) Log-Nachrichtentyp hatte sich ein Fehler in den Ausgabestring geschlichen. Musste ich noch einen Bugfix im Masterbranch pushen. Update eilt aber nicht.

Seite 37 von 53 ErsteErste ... 2733343536373839404147 ... LetzteLetzte

Berechtigungen

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