Multimod freundliche Slots

  • Hiho,


    mir ist in der letzten Zeit des öftern aufgefallen, dass diverse Mods die gleichen Items unter eigenen Namen verwenden, z.B. das Gun Rack, dabei aber bestehende "inventorySlot" überschreiben. Habe beim testen gemerkt, dass der letzte Mod, welcher geladen wird, die Oberhand hat. Generell sollten Mods so aufgebaut sein, dass sie die Funktion anderer Mods nicht beeinflussen. Der Weg, die gleichen Bezeichnungen für Slots zu verwenden, ist nur ein Workaround, keine Lösung.


    Statt die Slots in der config.cpp zuzuweisen, muss es auch irgendwie Codeseitig funktionieren, allerdings habe ich dazu noch nix gefunden. Generell möchte ich den Steinofen erweitern, dabei stoße ich auf selbiges Problem, bzw werden die Erweiterungen nicht angezeigt.


    Hat hier jemand Erfahrungen?


    LG

  • Du erstellst deine eigene ClientMod, in der du dies alles bereinigst und dies nach den entsprechenden Mods lädst.

    Das würde aber voraussetzen, dass ich Abhänigkeiten schaffen, was ich aber nicht vor habe. Zumindest klingt es so, als sollte ich die fremden Mods auflisten.


    Da draußen können ja diverse Mods existieren, welche die selben Klassen in der config.cpp überschreiben. Deswegen dachte ich, dass man diese Problem generell umgehen kann, wenn man die Klassen nicht in der config.cpp anpasst, sondern in ihrer eigenen überläd, denn da wäre es durch die Vererbung egal.

  • Alternativ kannst du natürlich die Mod Ersteller anschreiben das diese doch bitte einzigartige Namen für ihr Slots benutzen sollen um kompatiblitätsprobleme mit Mod XY beheben.


    Oder alles repacken und die Probleme fixen.


    Oder eben eine ClientMod erstellen die die Items aufruft und deine neue erstellten Slots benutzen.

  • Das Problem sind ja nicht sie Slots an sich und wie die benannt sind, es geht eher darum, dass in den jeweiligen config.cpp immer wieder die selben Klassen überschrieben werden können.


    Was meinst du mit der ClientMod genau? Auf überlagerungen in der config.cpp möchte ich verzichten aber eine optimierte Variante via Class kenne ich noch nicht. Wenn Dir da etwas bekannt ist, wäre das natürlich sehr hilfreich.


    Btw. habe ich mir schon diverse andere Mods angeschaut, leider wurde mein genanntes Problem nirgends gelöst.


    Hoffentlich reden wir nicht aneinander vorbei, ansonsten muss ich etwas mehr ins Detail gehen.

  • Ok, dann versuche ich dies mal etwas zu spezifizieren.


    Als erstes ein Auszug aus der config.cpp, wo die inventorySlot vom Standard-Items überschrieben werden.

    Als weiteres die Verwendung der Attachments in einem der eigenen Items (verkürzt) aus dem Bereich cfgVehicles.

    Und zuguterletzt die Definitionen der Slots im Bereich CfgSlots.

    Das Problem, welches mir hier aufgefallen ist, jeder Mod kann hier die Rifle_Base mit seinen eigenen Werten überschreiben und nur die Werte des letzten Mods zählen schlussendlich. Ich schätze, desswegen verwenden einige Mod-Ersteller die selten Bezeichnungen für ihre Slots, damit andere Mods weiterhin funktionsfähig bleiben.


    Dieses Vorgehen ist aber zum einen aufwendig, außerdem bleibt man dann fest bei den Werten, zum anderen kann jeder Mod, welcher es anders definiert, diese Mods unfunktional machen.


    Mein Idee dahinter war, dass man in den jeweiligen Klassen die Slots manuell zuweist. Es muss irgendwo eine Auswertung der Arrays geben, dort könnte man ansetzen. Allerdings habe ich noch nix in der Richtung finden können. Das muss entweder in der Inventory_Base liegen oder darüber, an so viel anderen Stellen wäre das logisch unsinnig. Leider habe ich nix finden können.

  • Haha, der Modder hat echt nur Shoulder als Bezeichnung genommen, klar das dies mit anderen Mods zu Überschneidung kommen wird. So ein Crap würde ich nicht benutzen.


    In deinen Fall, als externe Modder:

    Schreibe deine eigene PBO und ersetze im all den geposteten Code die "Shoulder" mit "GunRackShoulder" und lade diese pbo nach der Gunrack.

    Weiterhin wie oben schon geschrieben.

  • Ok, wenn ich die Slots für meinen Mod umbenenne, wäre es für meinen Mod als Standalone ok. Allerdings, darum dreht sich diese ganze Problematik, kann jeder andere Mod, wenn man mehrere Mods verwendet, die Rifle_Base mit seinem eigenen überschreiben und ich kann Plötzlich keine Waffen mehr an die Attachments packen.


    Ich glaube du möchtest mir sagen, ich sollte das Ganze aus der config.cpp nehmen. Dies war ja meine Grundfrage, wie ich die Slots sicher laden kann, ohne das andere Mods diese überschreiben können. Es muss ja Methoden dafür geben, anders geht das ja nicht, man kann nicht einfach nen Array nutzen.