[GUIDE] Fahrzeuge duplizieren.

  • Hi.
    Das ist ein (hoffentlich) verständlicher und ausführlicher Guide zum duplizieren von vorhanden Fahrzeugen.


    Bevor wir jetzt anfangen, solltet ihr euch erst eure Savegames sichern! CiM speichert in den Savegames sämtliche verfügbaren Fahrzeuge und solltet ihr auch nur ein Fahrzeug entfernen, ist das Savegame nicht mehr zu gebrauchen. Die Savegames findet ihr unter Eigene Dateien / Dokumente -> Cities In Motion -> saves.


    Wir brauchen:
    1. Einen Texteditor. Meine Empfehlung: Notepad++ . Vorteile: Kostenlos, öffnet Dateien in Tabs, hat Zeilennummern und ist über das Kontextmenü (rechtsklick) aufrufbar.
    2. Diese fd.zip Datei. Man kann sich natürlich auch mit dem .gs-file Viewer alle benötigten Dateien entpacken aber darauf gehe ich hier nicht ein. In der fd.zip liegen alle relevanten Dateien.


    Vorbereitungen:
    - Die fd.zip irgendwohin entpacken. Nur nicht ins CiM Hauptverzeichnis!
    - Falls er nicht schon vorhanden ist, erstellt euch im CiM Hauptverzeichnis einen Ordner \addons\.
    - Für die weitere Ordner-Struktur brauchen wir einen Namen. Wir werden hier die Railcad Volatio (tram-05) duplizieren. Also nehmen wir mal rv01. Welchen Namen ihr nehmt, spielt keine Rolle. Kurz und prägnant macht aber die weitere Bearbeitung einfacher.
    - Erstellt im Ordner \addons\ einen neuen Ordner mit dem Namen, den ihr euch ausgesucht habt. Hier nehmen wir also rv01.
    - In dem neuen Ordner \rv01\ erstellt ihr 3 neue Ordner. Diese heissen \rv01\, \scripts\ und \strings\. Eure Ordnerstruktur sollte nun so aussehen:



    - Alles was ab jetzt neu erstellt oder kopiert / eingefügt wird, kommt in einen dieser 3 Ordner!
    - Geht nun in den entpackten \metro\ Ordner und kopiert den kompletten Inhalt von \objects\vehicles\tram-05\ nach \rv01\.
    - Erstellt in \scripts\ eine leere Datei mit dem Namen environment.script
    - Erstellt in \strings\ eine leere Datei mit dem Namen de.strings


    Das waren die Vorbereitungen. ;)
    Machen wir mit dem einfachen Teil weiter.


    - Öffnet in \metro\strings\ (aus der .zip) die de.strings mit dem Editor und kopiert diese 2 Zeilen nach \scripts\de.strings


    PHP
    $vehicle_tram05 = "Railcad Volatio";
    $vehicle_tram05_info = "Die Railcad Volatio ist ziemlich teuer, verfügt aber über hervorragende Fahrgastkapazität und gute Durchschnittsgeschwindigkeit. Die Railcad-Fabriken erhöhen die Widerstandsfähigkeit ihrer Straßenbahnen mit einer Spezialtechnik, während der Einsatz qualitativ hochwertiger Teile den Wartungsbedarf stark reduziert. Die Volatio hat eine fünfteilige Struktur, die bei hoher Manövrierbarkeit und Geschwindigkeit hohe Fahrgastkapazität garantiert.";


    - Ändert nun $vehicle_tram05 in $vehicle_rv01 und $vehicle_tram05_info in $vehicle_rv01_info
    - Ihr könnt auch den Namen der Bahn und die Beschreibung ändern, müsst es aber nicht. Unsere de.strings hat nun folgenden Inhalt:


    PHP
    $vehicle_rv01 = "Railcad Volatio Clone";
    $vehicle_rv01_info = "Ich bin ein Clone der Railcad Volatio.";


    - Die de.strings ist damit fertig und kann gespeichert und geschlossen werden.


    Nun sorgen wir dafür, dass unser Duplikat auch vom Spiel geladen wird.
    - Öffnet in \metro\envsets\ (aus der .zip) die default-vehicles.script und kopiert diese 2 Zeilen nach \scripts\environment.script


    PHP
    $grid = MAIN.$grid;
    $level = MAIN.$level;


    - In der defaut-vehicles.script findet ihr auch diese 4 Zeilen. Kopiert sie unter die 2 Zeilen in die environment.script


    PHP
    $level.loadPlayerVehicle("tram-05", "vehicles/tram-05/tram05", mkdate(1,8,1992), mkdate(31,12,9999));
    $grid.loadGridObject("tram-05b", "metro/objects/vehicles/tram-05/tram05b.object");
    $grid.loadGridObject("tram-05c", "metro/objects/vehicles/tram-05/tram05c.object");
    $grid.loadGridObject("tram-05e", "metro/objects/vehicles/tram-05/tram05e.object");


    Kurze Erklärung dazu:
    $level.loadPlayerVehicle <- lädt das Fahrzeug. Besteht das Fahrzeug aus nur einem Teil (z.B. ein Bus), reicht diese Zeile. Da unsere Bahn aber 3 verschiedene Waggons hat, benötigen wir auch die nächsten 3 Zeilen mit $grid.loadGridObject. Für jeden unterschiedlichen Waggon eine neue Zeile.


    Jetzt müssen wir noch die Bezeichnungen und Pfade ändern:


    $level.loadPlayerVehicle("tram-05", "vehicles/tram-05/tram05", mkdate(1,8,1992), mkdate(31,12,9999)); <- ändern in:
    $level.loadPlayerVehicle("rv01", "/addons/rv01/rv01/tram05", mkdate(1,8,1992), mkdate(31,12,9999));


    $grid.loadGridObject("tram-05b", "metro/objects/vehicles/tram-05/tram05b.object"); <- ändern in:
    $grid.loadGridObject("rv01b", "addons/rv01/rv01/tram05b.object");


    $grid.loadGridObject("tram-05c", "metro/objects/vehicles/tram-05/tram05c.object"); <- ändern in:
    $grid.loadGridObject("rv01c", "addons/rv01/rv01/tram05c.object");


    $grid.loadGridObject("tram-05e", "metro/objects/vehicles/tram-05/tram05e.object"); <- ändern in:
    $grid.loadGridObject("rv01e", "addons/rv01/rv01/tram05e.object");


    Unsere environment.script sieht nun also so aus und ist damit fertig:


    PHP
    $grid = MAIN.$grid;
    $level = MAIN.$level;
    
    
    $level.loadPlayerVehicle("rv01", "/addons/rv01/rv01/tram05", mkdate(1,8,1992), mkdate(31,12,9999));
    $grid.loadGridObject("rv01b", "addons/rv01/rv01/tram05b.object");
    $grid.loadGridObject("rv01c", "addons/rv01/rv01/tram05c.object");
    $grid.loadGridObject("rv01e", "addons/rv01/rv01/tram05e.object");


    Speichern und schließen bitte. ;)
    Und auf zum Endspurt...


    - Öffnet in \rv01\ die tram05.script
    Hier muss folgendes geändert werden:


    this.displayName = MAIN.$strings.$vehicle_tram05; <- ändern in:
    this.displayName = MAIN.$strings.$vehicle_rv01;


    - Die obere Änderung muss auch in den Dateien tram05b.script, tram05c.script und tram05e.script gemacht werden. Diese sind damit dann fertig!
    Weitere Änderungen in der tram05.script:


    PHP
    $trailers = [
      ["tram-05b", false],
      ["tram-05c", false],
      ["tram-05b", false],
      ["tram-05e", false]
    ];


    Ändern in:


    PHP
    $trailers = [
      ["rv01b", false],
      ["rv01c", false],
      ["rv01b", false],
      ["rv01e", false]
    ];


    $icon = MAIN.$window.video.new_texture("/metro/objects/vehicles/tram-05/tram05-icon.dds"); <- ändern in:
    $icon = MAIN.$window.video.new_texture("/addons/rv01/rv01/tram05-icon.dds");


    $rendering = "metro/objects/vehicles/tram-05/tram05-render.dds"; <- ändern in:
    $rendering = "addons/rv01/rv01/tram05-render.dds";


    $infoText = MAIN.$strings.$vehicle_tram05_info; <- ändern in:
    $infoText = MAIN.$strings.$vehicle_rv01_info;


    Fertig! Nun noch speichern und das Spiel starten.
    Wenn ihr nun alles richtig gemacht habt, sollte das so aussehen:



    Falls nicht, kann euch eventuell die log_metro.txt in \Eigene Dateien / Dokumente -> Cities In Motion\ weiter helfen.


    Viel Spaß beim duplizieren... ;)


    Gruß Marcus

  • Achso, ja interessant. Das ist aus diesem Guide jetzt nicht so hervorgegangen. :) Aber wie könnte man jetzt einen Wagon aus diesem Beispiel z.B. an die Railcad drann hängen?


    ["rv01b", false],
    [
    "rv01c", false],
    [
    "rv01b", false],
    ["rv01b", false],
    ["rv01e", false];


    So wäre es glaube zu einfach oder?

  • Moin, irgendwie klappt das nicht so wie ich es will. Wollte aus den GT6S eine Traktion draus machen, also zu einem GT12S. Aber es will nicht so recht... ;(



    nu... was muss ich noch machen???

  • Hm, habe es geändert, aber das Problem besteht nach wie vor. :wacko:


    Mein envroiment.script:


  • PHP-Quelltext
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11


    $grid = MAIN.$grid;
    $level = MAIN.$level;
    $level.loadPlayerVehicle("gt12s", "/addons/GT12S/Model/gt6s", mkdate(17,06,1992), mkdate(31,12,9999));
    $grid.loadGridObject("gt12sc", "addons/GT12S/Model/gt6sc.object");<-----
    $grid.loadGridObject("gt12sa", "addons/GT12S/Model/gt6sa.object");
    $grid.loadGridObject("gt12sd", "addons/GT12S/Model/gt6sd.object");
    $grid.loadGridObject("gt12sb", "addons/GT12S/Model/gt6sb.object");
    $grid.loadGridObject("gt12sc", "addons/GT12S/Model/gt6sc.object");<------
    $grid.loadGridObject("gt12sa", "addons/GT12S/Model/gt6sa.object");
    $grid.loadGridObject("gt12sd", "addons/GT12S/Model/gt6sd.object");
    $grid.loadGridObject("gt12sb", "addons/GT12S/Model/gt6sb.object");





    Ist es nicht so das man immer nur ein objekt läd ... So wie ich es sehe, hast Du da von jedem zweimal die datei


    ich kenn mich nicht aus, aber ich glaube da musste immer nur einmal die datei machen.


    Bin mir aber nicht sicher.

  • Hast du auch in der .object-Datei den Namen geändert. Also nicht nur den im Explorer angezeigten Dateinamen, sondern auch der binäre in der Datei selber?

  • Ich bekomme hier eine Fehlermeldung:



    Error: File "addons/stadtbahn/tram045/tram045/tram045b.object" not found!
    Error: Runtime error in "addons/stadtbahn/scripts/environment.script" at line 4: Internal error!
    Error: Runtime error in "metro/scripts/environment.script" at line 212: Internal error!


    In der environment habe ich folgendes geschrieben:




    $level.loadPlayerVehicle("tram045", "/addons/stadtbahn/tram045/tram045", mkdate(1,1,1980), mkdate(31,12,9999));
    $grid.loadGridObject("tram045b", "addons/stadtbahn/tram045/tram045/tram045b.object");
    $grid.loadGridObject("tram045c", "addons/stadtbahn/tram045/tram045/tram045c.object");
    $grid.loadGridObject("tram045e", "addons/stadtbahn/tram045/tram045/tram045e.object");



    Aber ich finde nicht den Fehler dabei.


    anscheinend bin ich blind:-) wer hilft mir und macht licht.


    Ordnerzusammenstellung:


    addons/stadtbahn/tram045/


    und die object und script dateien auch abgeändert auf tram045, tram045b, tram045c, tram045e.


    Problem wurde gelöst!

  • vielleicht einmal /tram045 zuviel in den letzten drei Einträgen.


    Versuch mal das:


    $level.loadPlayerVehicle("tram045", "/addons/stadtbahn/tram045/tram045", mkdate(1,1,1980), mkdate(31,12,9999));
    $grid.loadGridObject("tram045b", "addons/stadtbahn/tram045/tram045b.object");
    $grid.loadGridObject("tram045c", "addons/stadtbahn/tram045/tram045c.object");
    $grid.loadGridObject("tram045e", "addons/stadtbahn/tram045/tram045e.object");

Jetzt mitmachen!

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