Einsteigerhilfe c# modding erbeten

  • Hallo zusammen,


    auch wenn ich bislang nur absolutes Basiswissen (wenn man das überhaupt so sagen darf) in c habe versuche ich gerade die Mechanik dahinter zu verstehen um CSL ein wenig modden zu können.


    Zunächst geht es mir um die Erhöhung der ÖPNV-Fahrzeugkapazitäten.


    Seit gestern habe ich einen Mod, die die Buskapazität von 30 auf 60 erhöht, habe die .dll's decompiliert und versuche nun im ersten Schritt testweise die Kapazizät auf 100 zu erhöhen.


    Die von mir verwendete Grundlage benötigt eine zweite Mod, die wiederum in der Kapazitäten-Mod aufgerufen werden muss.


    Nun habe ich es geschafft, die erste Mod zu kompilieren (.dll wird erstellt) aber wenn ich versuche sie in der zweiten Mod aufzurufen (using) bekomme ich den Fehler, dass der Compiler sie nicht finden kann.


    Kann mir an dieser Stelle bitte kurz jemand helfen, wie ich den Aufruf hinbekomme?
    Hier die entsprechenden Dateien als Source: wisim-welt.de/wsc/attachment/5147/


    Am Beispiel: SkylineUtils.dll wird vom Compiler erstellt, aber ich kann "using SkylineUtils;" in SkyTL.cs nicht aufrufen.


    Bitte entschuldigt die fürchterliche Terminologie, ich bin wie gesagt kein Programmierer :)


    Falls jemand helfen kann, bin ich sehr dankbar. Google hilft mir gerade nicht wirklich weiter.


    P.S.: da die ursprüngliche Mod nicht von mir ist habe ich auch nicht vor, Änderungen zu veröffentlichen. Es geht mir nur um's learning by doing - fange wie gesagt bei scratch an.



    Edit: sofern es nicht zuviel arbeit macht hätte ich auch noch eine Frage dazu. An welcher Stelle greift das Script eigentlich auf den "Originalbus" im Spiel zu? Ist das BusAI? (zeile 11+19 in skyTL.cs)?

  • Ohne es jetzt ausprobiert zu haben, ich bin mir nicht sicher ob man Mods untereinander referenzieren kann, eventuell könnte es funktionieren, wenn beide Mods im selben Ordner liegen. Es gibt ja grundsätzlich 2 Methoden die Mods zu bauen. So wie du es machst - über einzelne .cs Dateien - kompiliert das Spiel diese selber. Ob es dabei eine Möglichkeit gibt die dlls untereinander zu referenzieren habe ich in der Modding API jetzt nicht gefunden.
    Die andere Möglichkeit ist, selbst eine dll zu kompilieren, dazu wäre eine Entwicklungsumgebung (IDE) wie das Visual Studio nötig. Dann kannst du den anderen Mod - sofern er in Form einer dll vorliegt - in deinem Projekt referenzieren. Aber auch dann müsste der referenzierte Mod als dll neben deinem liegen.


    Es geht natürlich auch ohne IDE, die MSBuild.exe liegt jedem .NET Framework bei das in Windows dabei ist. DIeser Weg ist aber recht kompliziert, wenn man wenig Entwicklererfahrung hat.


    Probier erst mal aus beide Mods in einen Ordner zu legen.


    Zu deiner Frage, ja die Funktion CreateVehicle wird überschrieben, diese erzeugt das Fahrzeug und an dieser Stelle wird auch die Kapazität mit 100 überschrieben (in deinem Archiv Beispiel).


    Greetings from Hell
    Satan

  • Juhu eine Antwort. Danke Satan!


    Wie ich schrieb habe ich die Mod ja kompiliert heruntergeladen.


    Im Originalzustand gibt es 2 Mod-Verzeichnisse genauso wie in meiner .rar und anstelle des Sourcecodes (wie bei mir) liegt nur je eine .dll im Verzeichnis. Die \source\ Verzeichnisse und die *usermod.cs habe ich selber erstellt. die erste .dll auf die im zweiten, wichtigen, Mod zugegriffen wird kompiliert er mir, nur die zweiter leider nicht aufgrund des nicht funktionierenden Verweises.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!