Howto: Mod (PBO) entpacken und wieder korrekt packen?

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Howto: Mod (PBO) entpacken und wieder korrekt packen?

    Ich möchte in einem Mod einen Parameter ändern, der normalerweise nicht konfigurierbar ist. Dazu muss ich den Mod entpacken und wieder packen. Ich denke nicht, dass dies ein Mod-spezifisches Problem ist, sondern ein allgemeines, also werde ich den konkreten Mod '@Suppress' nur beispielhaft nennen.

    Ich hab mir den Suppress Mod also hier heruntergeladen. Anschließend installiert sodass ich u.a. die folgende Datei bei mir auf dem Rechner hatte:

    D:\SteamLibrary\SteamApps\common\Arma 3\@Suppress\Addons\Suppress_sys.pbo

    ArmA3 zusammen mit dem Mod gestartet => Funktioniert wunderbar. Dass die Mod geladen wurde sieht man dann z. B. im Hauptbildschirm > Optionen > Spiel > Modifikationen anpassen > Laxemann Suppress.

    Nun möchte ich eine Modifikation in einer der darin enthaltenen SQF Dateien vornehmen. Wie sich später herausgestellt hat, liegt mein Problem aber nicht an der SQF Modifikation sondern am Entpacken und Packen. Ich werde also in diesem Beispiel KEINE Modifikation vornehmen.

    Ich entpacke also die Mod mit dem PBO-Manager, sodass ich u.a. folgende Datei auf meinem Rechner habe:

    D:\SteamLibrary\SteamApps\common\Arma 3\@Suppress\Addons\LAxemann\L_Suppress\addons\Suppress_sys\functions\fnc_pinnedDown.sqf

    Ich starte das Spiel. Mod wird nicht geladen. RPT zeigt keine Fehler bzgl. 'Suppress'. Optionseintrag 'Laxeman Suppress' fehlt.

    Ich wundere mich nicht allzu sehr, zumal es ja sein könnte, dass ArmA mittleweile nur noch PBOs (und keine entpackten Verzeichnisse) als Mods akzeptiert (Stichwort File Patching). Ich packe also das Verzeichnis wieder in ein PBO mit dem PBO-Manager. Jetzt wird es somit wieder die folgende PBO auf meinem Rechner:

    D:\SteamLibrary\SteamApps\common\Arma 3\@Suppress\Addons\Suppress_sys.pbo

    Ich starte ArmA3. Sofort nach dem Startbildschirm und somit überlagert vor dem Hauptbildschirm erscheint die Fehlermeldung: "Script \LAxemann\L_Suppress\addons\Suppress_sys\functions\fn_SuppressDummy.sqf not found". Selbstredend, dass auch kein Laxemann Menü unter Optionen auftaucht.

    Aus der Vergangenheit (vom Terrain Editing her) kann ich mich an diverse Fehler erinnern, die aufkommen, weil man innerhalb der PBO eine fehlerhafte Verzeichnisstruktur gewählt hat. Um das auszuschließen, entpacke ich die Original PBO und meine selbst erstellte PBO: In beiden PBOs gibt es exakt dieselbe Verzeichnisstruktur, sodass ich beim Entpacken in beiden Fällen innerhalb der PBO z. B. folgende Datei finde:

    LAxemann\L_Suppress\addons\Suppress_sys\functions\fnc_pinnedDown.sqf

    Jemand eine Idee, was man beim Entpacken und wieder Packen einer Mod PBO beachten muss? Die Mod enthält keine binärisierten Dateien. Alles Klartext.


    Bei Interesse am BW Mod/ArmA3/ACE3 empfehle ich die Events des Jägerzug Achilles I
  • normaler weise enpackt man mods nicht die keine dafür passende lizenz haben womit man das machen kann. und vorallem fragt man nicht öffentlich danach in dem forum wo einer der entwickler mit ließst.

    und man könnte ja auch einfach mal die entwickler fragen was sie von der idee halten... und es nicht nur für sich machen im keller

    aber um die generelle frage zu beantworten Suppress ist auf der PDrive gepackt bzw mit der PDrive im hintergrund gebaut d.h. das müsstest du dir dann darauf aufsetzten
    SIGNATUR START
    Wer Rechtschreibfehler findet darf sie behalten
    ACE3 Core Developer
    CBA A3 Developer
    Developer of Dynasound, Enhance SoundScape, Immerse, Suppress and Align
    SIGNATUR ENDE
  • ...ppress\Addons\LAxemann\L_Suppress\addons\Suppr...

    Hätte vielleicht auffallen können. Filepatching funktioniert so:
    • Jede PBO hat ein PBO Prefix, mit dem PBO Manager mit Klick auf das blaue Zahnrad einsehbar
    • Dieses Prefix bestimmt den Pfad unter dem Arma in einer Art virtuellem Dateisystem die Moddateien speichert
    • Ist der -filePatching Parameter mit dabei, so schaut Arma nach ob ein Unterverzeichnis im Arma 3 Ordner gibt, dass dem PBO Prefix entspricht
    • Ist dies der Fall, so werden die Dateien direkt aus dem Ordner geladen statt aus der PBO
    • Dateien die nicht in der PBO enthalten sind können aber nicht geladen werden
    Mal praktisch am Beispiel ACE3 Cargo (da das ein schönes, kurzes Prefix verwendet):
    • Das Hauptprefix aller ACE3 Addons ist z\ace\addons
    • Das Prefix von Cargo ist also z\ace\addons\cargo (siehe $PBOPREFIX$)
    • Beim Ausführen der setup.py werden mehrere Symlinks erstellt (Verknüpfungen die wie Unterordner funktionieren), unter anderem im Arma 3 Verzeichnis, die zum ACE3 Ordner führen (also z.b. C:\Program Files (x86)\Steam\steamapps\common\Arma 3\z\ace\ -> D:\Arma\ACE3\)
    • Beim Ausführen der build.py wird eine PBO fürs Filepatching erstellt (mit unbinarisierten Dateien), die im Überordner des Addonordners liegt (also z.b. D:\Arma\ACE3\addons\ace_cargo.pbo)
    • Beim Ausführen lädt man nun direkt diese PBOs, in dem man als Startparameter -mod=z\ace anhängt
    • Arma schaut sich das Prefix an (z\ace\addons\cargo), sieht dass der Ordner C:\Program Files (x86)\Steam\steamapps\common\Arma 3\z\ace\addons\cargo\ existiert und lädt nun dessen Dateien, statt denen der PBO
  • @jokoho482
    Ich hab die Download-Seite, die Readme und die Changelog auf Lizenzinfos geprüft, aber keine Infos gefunden. Da keine Lizenz beilag, bin ich davon ausgegangen, dass ich zumindest für private Zwecke den Code editieren darf. Wenn du als Autor das verbietest, dann werde ich das aber selbstverständlich respektieren. Ist es nun verboten für diesen Zweck?

    Für dich zur Info: Ich möchte verschiedene Parameter bzgl. Dynamik (wie schnell wird man unterdrückt? wie schnell wird das Bild wieder normal?) und Stärke (wie drastisch ist der Bildeffekt?) untersuchen, um einen Kompromiss zwischen Suppress Mod ja/nein zu finden.

    @BlauBaer
    Die Erklärung sieht ja auf den ersten Blick sehr detailliert aus. Wissen, was ich nun konkret machen muss tu ich nicht. Mit der setup.py und build.py komm ich nicht in Berührung (und wenn doch dann nicht wissentlich). Die Frage, die sich mir stellt, ist in wieweit ich die Verzeichnisstruktur innerhalb der PBO Datei anpassen muss, damit die PBO wieder erfolgreich geladen werden kann? Gemäß jokoho ist das möglich wenn mit dem P-Drive gearbeitet wird. Wobei der PBO am Ende des Tages doch egal sein dürfte wo sie erstellt wurde? Hauptsache der Inhalt der PBO passt (?)


    Bei Interesse am BW Mod/ArmA3/ACE3 empfehle ich die Events des Jägerzug Achilles I
  • Du brauchst kein P-drive.
    Wichtig ist das der Prefix stimmt.Öffne mal die Original PBO und deine neu gepackte im PBO-Manager da solltest du schon den unterschied an der Verzeichnisstruktur bemerken.
    Kann PBO-Manager nicht auch einzelnde Dateien direkt in der PBO ersetzen ohne sie komplett zu entpacken und neu zu packen.
    Das wäre dann bei weitem die einfachere Lösung. Sonst musst du dir vielleicht einen pboPacker suchen der mit einem PBOPREFIX klar kommt.
    Ich bin mir nicht sicher ob PBO-Manager das kann. Ich denke nicht aber ich benutze PBO-Manager selbst nicht.
    Ich nehme dazu meistens Mikero's makePbo. PboProject oder Arma's AddonBuilder sind eher ungeeignet da sie den inhalt des Mods auf Richtigkeit Prüfen und daführ wahrscheinlich ein P-drive nötig wäre.

    1. Die PBO entpacken sodass du "LAxemann\L_Suppress\addons\Suppress_sys\functions\fnc_pinnedDown.sqf" hast.
    2. Dann im Ordner "LAxemann\L_Suppress\addons\Suppress_sys\" eine $PBOPREFIX$ Datei erstellen.
      Das sieht dann so aus "LAxemann\L_Suppress\addons\Suppress_sys\$PBOPREFIX$" ich glaube Mikeros tool kommt auch mit $PBOPREFIX$.txt klar.
    3. Diese $PBOPREFIX$ Datei mit Notepad oder ähnlichem öffnen und dort folgendes (Ohne leerzeile danach!) einfügen:
      LAxemann\L_Suppress\addons\Suppress_sys
    4. Dann den Ordner "Suppress_sys" auf die makePbo.exe ziehen. Das wird dann gepackt.
    5. Und dann hast du deine Suppress_sys.pbo die funktionieren sollte.


    Vonwegen Lizenz brauchst du dir da keine Sorgen machen wenn du das ganze nur für Private zwecke machst und nutzt. Aber sobald du diese modifizierte Version weiter verbreitest könnte der Autor damit ein Problem haben. Aber wenn das nur in deinem Freundeskreis ist, würde ich mir da keine Sorgen machen. Du könntest zwar gegen die Lizenz verstoßen aber.. Mich würde das zumindest nicht Interessieren. Wenn du das aber in einem Großen Modpack nutzt und dann wie viele Life Server das auch machen widerrechtlich modifizierte Mods an dutzende Spieler verteilst.. Dann wirst du mit großer Wahrscheinlichkeit Ärger bekommen.