Ergebnis 1 bis 11 von 11

Thema: XML-Modding Befehl

  1. #1
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6

    XML-Modding Befehl

    Hallo,

    ist noch jemand im Thema Civ5-Modding drin und mag mir sagen, was mein Fehler ist?

    Ich möchte eine Tastatur-Schnelltastenkombination ändern (Ressourcen-Anzeiger ohne Strg-)
    Wenn ich den Wert manuell in CIV5Controls.xml ändere läuft alles reibungslos, allerdings gelingt es mir nicht über eine Mod (mit den üblichen Anweisungen <update> bzw. <replace>
    Mit <update> gibt es eine Fehlermeldung, dass "row" bzw "delete" erwartet wird, bei <replace> gibt es keine Fehlermeldung aber auch keinen Effekt.
    Code:
    1. Versuch:
            <Controls>
    		<update>
    			<Where Type="CONTROL_RESOURCE_ALL" />		
    			<Set CtrlDown="0" />
    		</update>
    	</Controls>
    
    -> error message: Database::XMLSerializer: 'Row' or 'Delete' expected, got 'update'.
    
    2. Versuch:
            <Controls>
    		<Replace>
    			<Type>CONTROL_RESOURCE_ALL</Type>
    			<Description>TXT_KEY_ACTION_RESOURCE_ALL</Description>
    			<Help>TXT_KEY_GLOBELAYER_RESOURCES</Help>
    			<DisabledHelp/>
    			<HotKey>KB_R</HotKey>
    			<AltDown>0</AltDown>
    			<ShiftDown>0</ShiftDown>
    			<CtrlDown>0</CtrlDown>
    			<HotKeyPriority>0</HotKeyPriority>
    			<HotKeyAlt/>
    			<AltDownAlt>0</AltDownAlt>
    			<ShiftDownAlt>0</ShiftDownAlt>
    			<CtrlDownAlt>0</CtrlDownAlt>
    			<HotKeyPriorityAlt>0</HotKeyPriorityAlt>
    		</Replace>
    	</Controls>
    
    -> keine Fehlermeldung und kein Effekt
    Grüsse

  2. #2
    Registrierter Benutzer Avatar von AndreP
    Registriert seit
    05.06.07
    Ort
    Scholven
    Beiträge
    3.929
    Das Ganze muß so aussehen,

    Code:
                            <Update>
                            <Where Type="CONTROL_RESOURCE_ALL"/>
    			<Set HotKey="KB_R"
    				AltDown="0"
    				ShiftDown="0"
    				CtrlDown="0"/>
                            </Update>

  3. #3
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6
    EDIT: Okay, Fehler gefunden ich habe dank dem beliebten Copy-Paste immer wieder update statt Update geschrieben.
    ...Ich liebe ja diesen genauen Schreibstil. :-D

    Danke für die Antwort.
    Leider bekomme ich auch weiterhin dieselbe Fehlermeldung (XMLSerializer: 'Row' or 'Delete' expected, got 'update'.).
    Ich habe es auch noch verschiedene Varianten ausprobiert, leider ohne Erfolg. Oder übersehe ich irgendetwas Grundlegendes?
    Immerhin geht es grundsätzlich (manuell eingetragen in der Originaldatei).
    Geändert von conclusius (04. Mai 2022 um 20:50 Uhr)

  4. #4
    Registrierter Benutzer Avatar von AndreP
    Registriert seit
    05.06.07
    Ort
    Scholven
    Beiträge
    3.929
    Hänge doch mal deine xml hier an.

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6
    Ja, wie ich schrieb, lag mein Fehler bei Kleinschreibung des <Update>-Befehls.
    Also es funktioniert nun doch wie oben (1. Versuch), (und natürlich auch Deine Variante):
    Code:
    <!--Change Keyboard Shortcut: only "R" for Ressources-->
            <Controls>
    		<Update>
    			<Where Type="CONTROL_RESOURCE_ALL"/>
    			<Set CtrlDown="0"/>
    		</Update>
    	</Controls>
    Aber vielleicht kannst Du mir auch noch bei einem anderen Punkt weiterhelfen:

    Ich erstelle gerade eine komplette Mod, in der ich alle kleinen Restfehler des letzten offiziellen Patchs versuche zu beheben.
    (Wäre ja eigentlich Fireaxis Aufgabe gewesen :-D).
    Vieles haben ich schon behoben (von verdrehter Nahrung-Wachstums-Beschreibung bei Artemis bis zum negativen Diplo-Relationship-Zähler bei Epic/Marathon).

    Ich hänge aber noch beim Punkt "Einnahmen durch Diplomatie" in der Wirtschaftsübersicht:
    Hier wird nur die Gesamtbilanz angezeigt. (Wenn + dann bei Einnahmen, wenn - dann bei Ausgaben).
    Ich glaube aber es war wohl schon gemeint, die Diplomatie-Einnahmen und -Ausgaben getrennt darzustellen.

    In der zur Wirtschaftsübersicht gehörenden Datei EconomicGeneralInfo.lua, wird allerdings nur ein Diplo-Gesamtwert geladen. Ich habe bis jetzt aber noch nicht die Quelle gefunden. Oder muss ich da vielleicht noch in die tieferen DLL-Bereiche hinab?
    Code:
    C:\...\Assets\DLC\Expansion2\UI\InGame\Popups\EconomicGeneralInfo.lua
    
     -- Diplomacy
        local diploGPT = pPlayer:GetGoldPerTurnFromDiplomacy();
        if( diploGPT > 0 ) then
        ...
        local diploGPT = pPlayer:GetGoldPerTurnFromDiplomacy();
        if( diploGPT < 0 ) then
        ...
    -> Es gibt also noch eine Quelldatei, in der die Einnahmen und Ausgaben zusammengeführt werden.
    Weißt Du wo diese zu finden ist?

  6. #6
    Registrierter Benutzer Avatar von AndreP
    Registriert seit
    05.06.07
    Ort
    Scholven
    Beiträge
    3.929
    Mit Lua kenne ich mich nicht wirklich aus. Wenn du gut Englisch kannst, würde ich deswegen mal bei den Civfanatics nachfragen.

  7. #7
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6
    Ja, danke, mache ich das mal.

  8. #8
    Registrierter Benutzer Avatar von AndreP
    Registriert seit
    05.06.07
    Ort
    Scholven
    Beiträge
    3.929
    Alles klar.

  9. #9
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6
    Hallo mal wieder

    Ich arbeite weiter an meiner patch-mod und bin nun beim Punkt "Audio" angelangt:

    Ich möchte, dass man sich unabhängig von seiner Zivilisation den Musikstil wählen kann (Europe, America,...).
    Ich habe hierfür auch bereits in den Audioscript-Dateien neue Zuordnungen vorgenommen.
    Es funktoniert auch soweit alles ingame (bis jetzt halt nur durch manuelles kopieren in die Originalverzeichnisse).

    Meine Frage ist, ob und wie ich dies mit meiner Mod kombinieren kann, schließlich handelt es sich ja nicht um GameDate-Anweisungen sondern um eine Script2DFile-Datei:

    (Beispiel für KoreanAudio2DScripts.xml)
    (Hinweis: Hier im CODE-Feld im Forum, zeigt er an einigen Stellen das "<" Symbol nicht an, stattdessen "{" )

    Code:
    <?xml version="1.0"?>
    
    {Script2DFile>
      {Script2DSounds>
        {Script2DSound>
          {ScriptID>SONG_KOREA_PEACE_1</ScriptID>
          <SoundID>SND_MIDDLEEASTAFRICA_PEACE_1</SoundID>
          <SoundType>GAME_MUSIC</SoundType>
          <iMinVolume>40</iMinVolume>
          <iMaxVolume>40</iMaxVolume>
          <bIsMusic>True</bIsMusic>
          <iPriority>1</iPriority>
        </Script2DSound>
      </Script2DSounds>
    </Script2DFile>
    Kann ich nun mittels "Update"-Befehl zb den Lautstärkewert ändern?
    Also in etwa so:
    Code:
    {Script2DFile>
      {Script2DSounds>
        {Script2DSound>
    	<Update>
    		<Where ScriptID="SONG_KOREA_PEACE_1"/>
    		<Set iMinVolume="30"/>
    		<Set iMaxVolume="30"/>
    	</Update>
        </Script2DSound>
      </Script2DSounds>
    </Script2DFile>
    Beides innerhalb einer XML-Datei (<GameDate>-Daten und {Script2DFile>-Daten) funktioniert nicht, es kommt die Fehlermeldung:

    "XML document cannot contain multiple root level elements."

    Kann ich ansonsten auch die komplette XML-Datei ersetzen lassen, ähnlich wie bei LUA-Replacements
    (mittels VFS=true) ?

  10. #10
    Registrierter Benutzer Avatar von AndreP
    Registriert seit
    05.06.07
    Ort
    Scholven
    Beiträge
    3.929
    Zitat Zitat von conclusius Beitrag anzeigen
    Kann ich ansonsten auch die komplette XML-Datei ersetzen lassen, ähnlich wie bei LUA-Replacements
    (mittels VFS=true) ?
    Ja, und das würde ich auch empfehlen. Damit sparst du dir die ganze Fummelei.

  11. #11
    Registrierter Benutzer
    Registriert seit
    02.04.22
    Beiträge
    6
    Ja, probiere ich mal.

Berechtigungen

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