Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: [TOOL] Mod-Patcher

  1. #1
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220

    [TOOL] Mod-Patcher

    MOD - Patcher V1.00

    Um bei Civ4 etwas zu manipulieren, muss man sich durch eine Unmenge an
    XML-Dateien quälen. Wenn man sich eine MOD herunterlädt, kann es sein,
    dass nicht alle gewünschten Dinge eingebaut wurden.

    Hier setzt mein (noch) kleines Tool an.

    Es verändert in entsprechenden XML-Dateien die Werte, wie sie eingestellt werden.
    Im Moment hab ich "nur" den "BildungsPatch" eingebaut, aber es geht mir auch nur
    darum, ob soetwas überhaupt gebraucht wird.

    Für die nächste Version hab ich mir vorgenommen, die Sache mit der Rundenzahl vor-
    zunehmen...

    Getestet unter WindowsXP SP3.

    History:
    • V1.00
      • Erstes Release
      • Veränderung der EDUCATION_TRESHOLD_INCREASE zu dem gewünschten Wert.
      • Anlegen einer "Backup_GlobalDefines.xml" im gleichen Ordner.
    Angehängte Dateien Angehängte Dateien

  2. #2
    Registrierter Benutzer Avatar von Mordino
    Registriert seit
    05.10.08
    Beiträge
    38
    Finde das ne feine Sache, aber dann bitte noch eine Load+Save Option, so dass man sich eigene Konfigurationen zusammenstellen kann und saven, und natürlich ein Standard Button noch dazu.

    gut wäre natürlich wenn du das nicht alles in eine exe packst, sondern die Optionen mit GUI Optionen in eine extra Datei, so das man sich evtl selber noch eine Settings dazu machen kann.

    z.b.

    dateiname,wertname,min,max,sliderstep,default,own
    dateiname,wertname,min,max,sliderstep,default,own

    als save oder load , dann eben immer die ganze konfig saven

    bei klick auf standard button , die default werte setzen, bei load, die own.
    beim patchen , die aktuellen

    die fertigen Dateien werden dann in einem neuen Ordner mit dem obigen namen gesaved, somit kann sich jeder sein eigenes mod basteln

    Oh dann wär es kein Patcher mehr sondern ein Creator
    Geändert von Mordino (06. Oktober 2008 um 15:20 Uhr)

  3. #3
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Zitat Zitat von Mordino Beitrag anzeigen
    Find das ne feine sache, aber dann bitte noch eine Load+Save Option, so dass man sich eigene konfigurationen zusammenstellen kann und saven, und natürlich ein standard Button noch dazu.
    Klingt Logisch

    Ähm jetzt gerade liest es vorher den Wert aus und stellt ihn dar, wenn man einen MOD Ordner gewählt hat. Nur so zur Info

    Also Load und Save zum Speichern eigener Einstellungen und die originalen und die im Mod enthaltenen Werte als Default-Werte sozusagen... Bastel ich gleich mal ein

  4. #4
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Ah ich schätze, da du dein Post geändert hast haben wir die gleichen Gedanken...

    Im Moment bastel ich an einer "Modularen Patcharie". will sagen ein Tool, und dieses liest "Plugins" ein, die die Aenderungen enthalten...

    Es wäre ja sinnig wenn auch andere Änderungen machen können, ohne am Hauptprogramm rumschrauben zu müssen...

    Ausserdem bräuchte man dann nur die "Plugins" runterladen, die man haben bzw ändern möchte...

  5. #5
    Registrierter Benutzer
    Registriert seit
    29.01.03
    Beiträge
    4.909
    Sieh recht interessant aus.

    Was hältst du davon, wenn dein Programm ein oder mehrere konfigurations XML-Dateien einlesen würde. Dort ist angegeben welche Werte in welcher XML Datei vom Original geändert werden soll, eine Erklärung zur Änderung und ein Standardwert.

    Drückt man dann auf "patch" so nimmt er aus dem Colonization-Verzeichnis die original XML Datei ließt diese ein, fügt die Änderungen hinzu und speichert sie im MOD-Verzeichnis ab.

  6. #6
    Registrierter Benutzer
    Registriert seit
    07.10.08
    Beiträge
    13
    Wäre tatsächlich mal ne feine Sache, wenn man genau die Änderungen installieren könnte, die man auch haben möchte. Schließlich will nicht jeder 3Felder auf Straßen laufen, ein Zollhaus, einen langsameren König oder was auch immer...

    Wenn es tatäschlich mal so einen Super-Patcher geben sollte, der nur ausgewählte Modi aktiviert, wäre das vermutlich die Lösung für alle, wie mich, die mit den aktuell verfügbaren Mods nicht viel anfangen können, weil sie für meinen Geschmack dann doch zu viel oder die falschen Sachen ändern.

    Also, hau rein! *anfeuer*

    Sebastian

  7. #7
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Zitat Zitat von Netbandit Beitrag anzeigen
    Sieh recht interessant aus.

    Was hältst du davon, wenn dein Programm ein oder mehrere konfigurations XML-Dateien einlesen würde. Dort ist angegeben welche Werte in welcher XML Datei vom Original geändert werden soll, eine Erklärung zur Änderung und ein Standardwert.

    Drückt man dann auf "patch" so nimmt er aus dem Colonization-Verzeichnis die original XML Datei ließt diese ein, fügt die Änderungen hinzu und speichert sie im MOD-Verzeichnis ab.
    Genau das bau ich grad

    Tests haben ergeben das eine vorläufige "ini" die den Patch enthält so aussehen müsste:

    Code:
    ##### Strassenmodifizierung
    # Change
    XMLFile 		= 	'Misc\CIV4RouteInfos.xml'
    RootNode	 	=	'Civ4RouteInfos/RouteInfos/RouteInfo'
    NodeToIdentify 	=	'Type'
    Identify 		=	'ROUTE_ROAD'
    NodeToChange	=	'iMovement'
    Suggestion		=	'20'
    # Change
    XMLFile 		= 	'Misc\CIV4RouteInfos.xml'
    RootNode	 	=	'Civ4RouteInfos/RouteInfos/RouteInfo'
    NodeToIdentify 	=	'Type'
    Identify 		=	'ROUTE_ROAD'
    NodeToChange	=	'iFlatMovement'
    Suggestion		=	'20'
    Wäre jetzt die Strassenmodifizierung...
    Und es funktioniert soweit schon ganz gut... also im Kern...

    Also es läuft wie folgt:

    Plugin.ini einlesen
    Test ob die XML im angegebenen ModOrdner Vorhanden ist, ansonsten das Original XML File aus dem Programmordner holen (den installpfad hol ich aus der Registry)
    und dann schon nacheinander ändern.
    gespeichert wird dann die neue xml, sollte ein Backup Häkchen gesetzt sein, wird vorher noch eine Backup_blabla.xml angelegt...

    Naja zur ini... ist eigentlich selbsterklärend oder ?
    wobei Suggestion, der Wert wäre, den der Pluginschreiber "empfiehlt.
    Vorher werden natürlich das Original und das ModXML ausgelesen um die Originalwerte zu erhalten, die man dann auswählt oder einen eigenen einstellt.
    Ein # Change leitet immer die nächste Aenderung ein und muss immer mit Suggestion aufhören. Was dann wohl aber nicht das Problem ist

    Muss mir nur noch ne interessante GUI zusammenschustern und ein wenig krimskrams drumrum basteln. Und testen wie es ist, wenn die XML-Nodes noch tiefer gehen.... so unternodes von nodes usw ...
    Aber das prinzip ist schon fertig und funktionsfähig... immerhin ein anfang.

    Allerdings Weiss ich nicht ob es auch auf Vista laufen wird, da ich das nicht habe...
    Geändert von bisonte (07. Oktober 2008 um 20:07 Uhr)

  8. #8
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Da hat mich doch dieser vermaledeite XML-Krams um Stunden zurückgeworfen....

    Nunja Copyfiles also Wie z.B. den EuropaHintergrund von Suebian klappt... aber das Node in node in node funzt noch nicht so wie es soll...

    mittlerweile bin ich bei etwas mehr in den inifiles....

    Also ein Civ4RouteInfos/RouteInfos/RouteInfo/Type und deren unterknoten krieg ich hin, aber mehr ist grad nicht drin, auch das Node hinzufügen, wie z.
    B. beim GamespeedMod, (3600 Runden als Extra Modus) klappt noch nicht wirklich...

    XML sieht einfach aus... isses aber nicht... Zitat "Die Fantastischen Vier"

  9. #9
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Fortschrittsanzeiger :

    - externe Dateien (Plugins) zum einfügen in andere MODS oder zum erstellen neuer MODS.
    - Plugins können bis zu 100 Operationen beinhalten... (Klingt viel, aber das ist schnell voll... )
    - Kopieren von Dateien funktioniert (wie z.B. Europahafen Hintergrund)
    - XMLDateien können bis zu 2 Abfragen enthalten (ist grad kompliziert zu erklären)
    - Neue XML Codes können zu bestehenden hinzugefügt werden (z.B. GameSpeedExtra)
    - Es können HTML Hilfetexte angezeigt werden (Interessant für Europahafen Mod wegen Vorschau von Bildern etc.)
    - Es können "Profile" erstellt werden, aus denen dann in das MOD gepatcht wird.
    - damit die Pluginerstellung einfacher wird, hab ich da noch einen kleinen PluginMaker drin...

    Also diese Funktionen funktionieren und sind schon einsatzbereit, aber GUI und Profilverwaltung sind noch nicht wirklich soweit...

    Nur damit ihr seht das ich noch dran sitze...

    Aber im GUI basteln bin ich ein totaler Laie... ich hab da mal ein Screenshot gemacht vom ersten Entwurf....
    Achja das grosse weisse Ding in der Mitte ist die HTML Anzeige

    Bild
    Angehängte Grafiken Angehängte Grafiken

  10. #10
    Klingone Avatar von Worf der Große
    Registriert seit
    18.01.03
    Ort
    Hamburg
    Beiträge
    31.300
    Schaut ja vielversprechend, aber auch nach Arbeit aus.
    Sig sauer

  11. #11
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    An die Modder ....

    Ein typisches Plugin könnte so aussehen...

    Code:
    <ModPatcherPlugin>
    	<PlugName>Demoplugin</PlugName>
    	<Autor>Bisonte</Autor>
    	<Html>Help.html</Html>
    	<ModChanges>
    		<Change>
    			<Type>CHANGE_1</Type>
    			<Name>Pelzjäger</Name>
    			<Help>Wert reguliert Preis in Europa</Help>
    			<Modus>XMLCHANGE</Modus>
    			<XMLorCopyFile>XML\Units\CIV4UnitInfos.xml</XMLorCopyFile>
    			<ParentNode></ParentNode>
    			<Suche1>Type</Suche1>
    			<SucheNach1>UNIT_TRAPPER</SucheNach1>
    			<Suche2></Suche2>
    			<SucheNach2></SucheNach2>
    			<Aendere>iEuropeCost</Aendere>
    			<VorgeschlagenerWert>880</VorgeschlagenerWert>
    			<UserData>1;880</UserData>
    		</Change>
    		<Change>
    			<Type>CHANGE_2</Type>
    			<Name>Europahintergrund</Name>
    			<Help>Gibt einen neuen Hintergrund im EuropaScreen</Help>
    			<Modus>Copy</Modus>
    			<XMLorCopyFile>Art\Interface\Screens\Europe\background.dds</XMLorCopyFile>
    			<ParentNode></ParentNode>
    			<Suche1></Suche1>
    			<SucheNach1></SucheNach1>
    			<Suche2></Suche2>
    			<SucheNach2></SucheNach2>
    			<Aendere></Aendere>
    			<VorgeschlagenerWert></VorgeschlagenerWert>
    			<UserData>1;0</UserData>
    		</Change>	
    		<Change>
    			<Type>CHANGE_3</Type>
    			<Name>GameSpeedExtra</Name>
    			<Help>Baut einen neuen GameSpeed dazu</Help>
    			<Modus>NewNode</Modus>
    			<XMLorCopyFile>XML\GameInfo\CIV4GameSpeedInfo.xml</XMLorCopyFile>
    			<ParentNode>GameSpeedInfos</ParentNode>
    			<Suche1></Suche1>
    			<SucheNach1></SucheNach1>
    			<Suche2></Suche2>
    			<SucheNach2></SucheNach2>
    			<Aendere></Aendere>
    			<VorgeschlagenerWert></VorgeschlagenerWert>
    			<UserData>1;0</UserData>
    		</Change>	
    	</ModChanges>
    </ModPatcherPlugin>
    Erklärung:

    Am Anfang der Kopf dürfte klar sein

    Interessant wird es bei <Change>

    <Type>CHANGE_1</Type>
    Hier muss der Schreiber leider selbst durchnummerieren.... Aber immer CHANGE_Nr der Änderung sozusagen.

    <Name> ist einfach nur eine Bezeichnung des "Teilabschnitts" wird in gui so gezeigt
    <Help> ist ein kurzer Beschreibungstext wird in gui so gezeigt

    und nu kommts
    <Modus>

    Es gibt derer 3 im Moment.
    alle nicht gebrauchten Tags werden dann einfach leer gelassen.

    Bei jedem Modus braucht man <XMLorCopyFile>
    in diesem Tag muss der Filename und der Pfad Relativ zu dem Assets Ordner Stehen.
    Also nicht "C:\DDD\Assets\XML\UNITS\Civ4UnitInfos.xml" sondern nur "XML\UNITS\Civ4UnitInfos.xml"
    Ist wichtig, weil nicht jeder das Spiel Standardmässig installiert

    - Copy
    Dieser Modus Kopiert die angegebene Datei.
    Die Datei muss einfach nur im Plugin Ordner liegen (Jedes Plugin hat einen eigenen) und wird dann an den Ort kopiert der in dem <XMLorCopyFile> steht.
    Der Dateiname ist am ende ja dran siehe Beispiel.

    - NewNode
    Das ist meine Auffassung von "Modularem XML-Loading" wie es FireAxis eigentlich wohl wollte.
    Man schreibt ein xmlfile, das einfach nur den neuen Abschnitt enthält und fügt ihn dann ein.

    - XMLChange
    Hier können bis zu 2 Nodes zum suchen und erkennen angegeben werden
    wo dann der 3. geändert werden kann.
    bei <VorgeschlagenerWert> kommt einfach der vom Modder gedachte Wert hin.

    Und zu guter letzt... <UserData> ist für den Endanwender interessant (obwohl der das nicht merkt )
    Dort speichere ich einfach ob dieser Change ausgeführt werden soll (1) oder nicht (0) und den Wert, der geändert wurde (0) bei Copyfile und Newnode sonst der Wert... siehe beim Pelzjäger.... getrennt werden die beiden halt durch das ;

    Mal sehen ob ich das dieses wochenende noch gebacken kriege

  12. #12
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Ei, da fällt mir grad noch ein... oder man benutzt den Maker den ich noch verkasematuckeln muss .... aber nun ab ins bett... in 6 Stunden wieder arbeiten ....

  13. #13
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Fortschrittsanzeiger :

    Wenn nichts mehr passiert (Plattenabsturz oder ähnliches) dann klappts in den nächsten Tagen mit dem ersten
    Betarelease von "Ghandi"... So hab ich das Ding mal getauft

    Hab sogar "versucht" es zweisprachig zu machen... Deutsch/Englisch....

  14. #14
    Talking Bull Avatar von Writing Bull
    Registriert seit
    01.10.08
    Beiträge
    21.376
    Zitat Zitat von bisonte Beitrag anzeigen
    Wenn nichts mehr passiert (Plattenabsturz oder ähnliches) dann klappts in den nächsten Tagen mit dem ersten
    Betarelease von "Ghandi"... So hab ich das Ding mal getauft
    @bisonte: falls du diese Software nach dem indischen Namen taufen willst - der heißt etwas anders, nämlich Gandhi.

  15. #15
    Registrierter Benutzer Avatar von bisonte
    Registriert seit
    01.06.05
    Beiträge
    220
    Zitat Zitat von Writing Bull Beitrag anzeigen
    @bisonte: falls du diese Software nach dem indischen Namen taufen willst - der heißt etwas anders, nämlich Gandhi.
    Ja nee... den kennt ja jeder Obwohl da ein paar ähnlichkeiten sind ...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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