1. Dashboard
  2. Forum
  3. Filebase
  4. Lexicon
  5. Articles
  6. Rating system
  7. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  8. Zur Transport Fever Community
  • Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • Lexikon
  • Article (Rating System)
  • More Options
  1. WiSim Welt
  2. Forum
  3. Spiele
  4. Cities in Motion
  5. Modding und Erweiterungen
  6. Fahrzeugmods

"addon"-Ordner nutzen

  • Bennhardt
  • March 4, 2011 at 6:51 PM
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 4, 2011 at 6:51 PM
    • #1

    Das Spiel sucht an 3 Positionen nach Addons:

    1. Im Installationsverzeichnis von CiM ("X:\Steam\steamapps\common\cities in motion\")
    2. Im Ordner "metro" im Installationsverzeichnis ("X:\Steam\steamapps\common\cities in motion\metro\")
    3. In den Eigenen Dateien ("C:\Users\DeinNameHier\Documents\Cities In Motion\")

    Sobald CiM einen Ordner namens "addons" an einer dieser Positionen findet, läuft es dort jeden Ordner durch und wertet den aus.
    Auszug aus "addons.script":

    Code
    function init() {
      if (MAIN.$build.$demo || MAIN.$build.$beta) return;
      foreach (list_dirs("addons")) {
    initAddon("addons/"+current);
      }
      foreach (list_dirs("metro/addons")) {
    initAddon("metro/addons/"+current);
      }
      foreach (list_dirs("userdata/addons")) {
    initAddon("userdata/addons/"+current);
      }
    }
    Display More


    Ihr könnt also in "addons" euren eigenen Ordner kreieren - der kann heißen, wie er will (Sonderzeichen am besten nicht benutzen). Dort packt ihr dann all eure Sachen rein. In jedem Ordner schafft ihr die gleiche Struktur wie in "metro" auch, also "scripts", "strings" und so weiter. Jetzt baut ihr in "environment.script" eure Objekte rein, die geladen werden sollen und zeigt auf den Ordner, in dem sich eure Mod befindet.
    Wie das aussieht, kann man in der entpackten vehiclepack01.gs für die Bonusfahrzeuge sehen.

    Code
    $grid = MAIN.$grid;
    $level = MAIN.$level;
    $level.loadPlayerVehicle("x01-bus01", "/addons/vehiclepack01/bus01/bus15", mkdate(1,1,1920), mkdate(31,12,9999));
    $level.loadPlayerVehicle("x01-tram01", "/addons/vehiclepack01/tram01/tram_dlc01", mkdate(1,1,1920), mkdate(31,12,9999));
    $level.loadPlayerVehicle("x01-metro01", "/addons/vehiclepack01/metro01/metro_dlc", mkdate(1,1,1920), mkdate(31,12,9999));
    $grid.loadGridObject("x01-metro01b", "addons/vehiclepack01/metro01/metro_dlc_b.object");
    $level.loadPlayerVehicle("x01-waterbus01", "/addons/vehiclepack01/waterbus01/waterbus04", mkdate(1,1,1920), mkdate(31,12,9999));
    $level.loadPlayerVehicle("x01-heli01", "/addons/vehiclepack01/helicopter01/helicopter04", mkdate(1,1,1957), mkdate(31,12,9999));


    Alle Ordner werden alphabetisch geladen, d.h. z.B. die Realismus-Mod sollte als Ordnernamen sowas wie "ZZ_RealismusMod" haben. Solange jeder seinen eigenen Ordner nutzt, sollte es keine Probleme mit Addons geben. Schwieriger wirds, wenn bestimmte Sachen in bestimmter Reihenfolge geladen werden müssen. Da muss man dann womöglich Ordnernamen umbenennen - was dann auch dazu führt, dass man seine Scripts umbauen muss, da die ja auf den Ordner zeigen.
    Ihr könnt das ja mal ausprobieren. Es gibt eine Log-Datei in den eigenen Dateien ("C:\Users\DeinNameHier\Documents\Cities In Motion\"), die euch gut zeigt, wenn was schief läuft.

    EDIT:
    Hier als Beispiel Ricci's Straßenbahnen als Addon:
    http://ben.s15224373.onlinehome-server.info/krempel/riccis_vehicles.zip
    Einfach das ZIP in den Ordner "addons" entpacken. So werden aus den 12 MB, die das "normale" Addon von Ricci braucht, nur knapp 500kB als ZIP.

    Edited 2 times, last by Bennhardt (March 4, 2011 at 8:55 PM).

    • Quote
  • DasMatze
    Student
    Reactions Received
    3
    Posts
    98
    Filebase Entries
    7
    • March 4, 2011 at 7:19 PM
    • #2

    Genial! Vielen Dank für die Info, das wird das ganze unheimlich erleichtern!

    Aber wenn ich nun beispielsweise im Editor ein neues Objekt haben möchte, muss dafür nicht eine neue, erweiterte default-buildings.script Datei vorhanden sein? Wird die in der Original .gs-Datei nicht überschrieben/ignoriert, so dass ich dann nur das neue Objekt besitze?

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 4, 2011 at 7:24 PM
    • #3

    Muss man mal ausprobieren. Ich baue ja für die Fahrzeuge auch keine neue "default-vehicles.script", sondern baue ein "environment.script", in dem die Objekte geladen werden. Kann also sein, dass man dort auch die Gebäude reinladen kann.
    Das "addon.script" wird am Ende geladen, d.h. es wird erst alles "normale" geladen und dann alle Zusätze. Glaub nicht, dass da was überschrieben wird, es sei denn, du legst es drauf an.

    Hab mal rumgespielt. Hab den Bagger orangefarben gemalt und den als Addon eingebaut.
    http://ben.s15224373.onlinehome-server.info/krempel/zz_test.zip
    ZIP in den Ordner "addons" entpacken und den Bagger im Editor unter den Baustellen-Props suchen :)
    Funktioniert also bestens.

    Edited once, last by Bennhardt (March 4, 2011 at 7:54 PM).

    • Quote
  • eis_os
    Professional
    Posts
    1,025
    Filebase Entries
    2
    • March 4, 2011 at 8:02 PM
    • #4
    Quote from Bennhardt

    Muss man mal ausprobieren. Ich baue ja für die Fahrzeuge auch keine neue "default-vehicles.script", sondern baue ein "environment.script", in dem die Objekte geladen werden. Kann also sein, dass man dort auch die Gebäude reinladen kann.
    Das "addon.script" wird am Ende geladen, d.h. es wird erst alles "normale" geladen und dann alle Zusätze. Glaub nicht, dass da was überschrieben wird, es sei denn, du legst es drauf an.

    Hab mal rumgespielt. Hab den Bagger orangefarben gemalt und den als Addon eingebaut.
    http://ben.s15224373.onlinehome-server.info/krempel/zz_test.zip
    ZIP in den Ordner "addons" entpacken und den Bagger im Editor unter den Baustellen-Props suchen :)
    Funktioniert also bestens.

    Also Stationen gehen natürlich.

    Code
    event this.onDestroy::()

    wird auch unterstützt, sollten Probleme auftauchen und irgendeine Variable Amok läuft.

    Werbung Das steht aber auch im CIMInternals.txt/Werbung
    (Reload sollte euer Browser die Datei Cachen)

    Ein Tip:
    Einfach einen Neustart im Spiel machen, dann werden die Dateien neu geladen. Solange keine Fehler beim kompilieren auftreten gibt es auch keinen Abbruch.

    • Quote
  • hannibal
    Beginner
    Posts
    39
    Filebase Entries
    3
    • March 4, 2011 at 8:35 PM
    • #5

    Ich bin gerade am grübeln wie ich Werte so elegant ersetzen kann wie im Vehiclemod v3 um Kompatibilität zu selbigem Mod zu gewährleisten. Ich hab nämlich eine Mod gebastelt in der Fahrgäste bei Gelenkbussen (und dem modernsten - Bus-15) überall einsteigen statt nur vorne.

    Nur wenn ich das alles genauso wie im Vehikelmod erstelle, dh eine .script Datei die einfach die Original Werte überschreibt wo sie geändert wurden, übernimmt er meine Werte nicht.

    Vehiclemod sieht zb so aus:

    Code
    if($grid.getGridObject("bus15")) { 
    	with ($grid.getGridObject("bus15")) {
    		.displayName = "NABI 42-BRT";
    		.capacity = 44;
    		.$price = 2450 * 100;
    		.$reliability = 0.70;
    		.$fuelConsumption = 17;
    		.$electricityConsumption = 0;
    		.$attractiveness = 0.70;
    		.$speed = 70;
    	}
    }
    Display More

    Analog dazu hab ich ein AddonOrdner erstellt und auf die gleiche Art versucht die Folgende Zeile hinzuzufügen:

    Code
    if($grid.getGridObject("bus15")) { 
    	with ($grid.getGridObject("bus15")) {
    		.addPath("doorR1-enter", GRID_PATH_END, vector(2.0, 0.4, 1.3), QUAT_IDENT, vector(-0.5, 0.4, 1.3), QUAT_IDENT);
    	}
    }

    Wie gesagt im Metro Ordner funktionieren die editierten Bus Dateien tadellos, aber als Addon will er nicht so richtig. Wahrscheinlich liegt es daran das der .addPath Eintrag hinzugefügt werden muss statt geändert?

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 4, 2011 at 9:06 PM
    • #6

    Hannibal:

    Bei mir funktioniert das bestens. Angehängt ist die Mod.

    Und noch mehr Änderungen. Soll ich eine Anleitung schreiben, wie ich das angestellt habe? :D
    Links das originale Hotel, rechts das geänderte.

    Edited once, last by Bennhardt (March 4, 2011 at 9:32 PM).

    • Quote
  • kabe
    Guest
    • March 5, 2011 at 1:14 AM
    • #7

    @ Bennhardt

    Ich hab mir Ricci's Straßenbahnen als Addon mal angesehen. So wie du es hier hineingestellt hast, funktioniert es nicht ganz korrekt. Also die Straßenbahren fahren schon und das Spiel stürzt nicht ab, aber die tram-06kd wird fehlerhaft dargestellt. Da fehlt beim zweiten Wagen der vordere Teil.

    Ich hab versucht diesen ins environment.script hineinzuschreiben und zwar so:

    PHP
    $grid.loadGridObject("tram-06a", "/addons/vehiclepack02/tram-06kd/tram06a.object");

    Dadurch stürzte das Spiel beim Laden ab, mit folgender Fehlermeldung:

    Quote

    Error: File "/addons/vehiclepack02/tram-06kd/tram06a.object" not found!
    Error: Runtime error in "addons/vehiclepack02/scripts/environment.script" at line 6: Internal error!
    Error: Runtime error in "metro/scripts/environment.script" at line 212: Internal error!

    Das komische ist, dass die tram06a.object auf jeden Fall in diesem Ordner ist. ?(

    Kannst du dir das mal ansehen, ob dir was auffällt?

    Ansonsten vielen Dank für deine Ausführungen hier. :thumbup:

    Edited 4 times, last by kabe: Rechtschreibung und Loxos danke für den Hinweis. War nur ein Kopierfehler, als ich es hier eingefügt hab. (March 5, 2011 at 12:49 PM).

    • Quote
  • hannibal
    Beginner
    Posts
    39
    Filebase Entries
    3
    • March 5, 2011 at 1:47 AM
    • #8
    Quote from Bennhardt

    Hannibal:

    Bei mir funktioniert das bestens. Angehängt ist die Mod.

    Ok danke, ich seh jetzt keinen Unterschied ich werds nochmal überprüfen.

    • Quote
  • Loxos
    Guest
    • March 5, 2011 at 1:56 AM
    • #9

    Ist der Doppel-Slash in deinem Code Absicht?
    Oder hat der sogar einen tieferen Sinn?

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 5, 2011 at 9:17 AM
    • #10
    Quote from Loxos

    Ist der Doppel-Slash in deinem Code Absicht?
    Oder hat der sogar einen tieferen Sinn?

    Muss ein Tippfehler sein. Versucht bei solchen Fehlern auch immer mal, den führenden Slash zu entfernen. In der "environment.script" muss das aber drin stehen, weil die Addon-Logik danach sucht, also so:

    $level.loadPlayerVehicle("tram-03two", "/addons/vehiclepack02/tram-03two/tram03", mkdate(1,5,1947), mkdate(15,5,1992));


    In den Modulen der Objekte muss das ab und zu raus (oder vielleicht auch IMMER), also so:

    RICHTIG
    this.colorMap = colormap("addons/zz_test/hotel/colors.bmp");

    statt so:

    FALSCH
    this.colorMap = colormap("/addons/zz_test/hotel/colors.bmp");


    Immer wenn das Log rummault, dass das Spiel was nicht finden kann, dann nehmt das führende Slash weg und versuchts nochmal.

    NACHTRAG:
    In dem Fall von Kabe:
    Auch hier muss das führende Slash weg. Meine "environment.scipt" sieht nun so aus:

    Code
    $grid = MAIN.$grid;
    $level = MAIN.$level;
    $level.loadPlayerVehicle("tram-03two", "/addons/vehiclepack02/tram-03two/tram03", mkdate(1,5,1947), mkdate(15,5,1992));
    $level.loadPlayerVehicle("tram-06k", "/addons/vehiclepack02/tram-06k/tram06a", mkdate(1,3,2005), mkdate(31,12,9999));
    $level.loadPlayerVehicle("tram-06kd", "/addons/vehiclepack02/tram-06kd/tram06a", mkdate(1,3,2005), mkdate(31,12,9999));
    $grid.loadGridObject("tram-06a", "addons/vehiclepack02/tram-06kd/tram06a.object");

    Funktioniert. Scheinbar müssen die PlayerVehicles einen führenden Slash haben, die GridObjects aber nicht. Da muss man rumprobieren.

    Hab die Datei "riccis_vehicles.zip" auf meinem Server erneuert. Sollte nun problemlos funktionieren. Danke für den Fehlerreport Kabe :)
    http://ben.s15224373.onlinehome-server.info/krempel/riccis_vehicles.zip

    Edited 2 times, last by Bennhardt (March 5, 2011 at 9:29 AM).

    • Quote
  • kabe
    Guest
    • March 5, 2011 at 9:53 AM
    • #11

    Ja danke funktioniert nun. Steht ja auch in deinem vehiclepack01 Beispiel im ersten Post so drin. Hatte gestern Abend wohl schon Tomaten auf den Augen. :D

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 5, 2011 at 11:49 AM
    • #12

    Ich hab die Addon-Ordner-Geschichte in die Wiki geschrieben. Ich hoffe, das ist verständlich.

    http://www.citiesinmotion.net/wiki/index.php…26&languageID=2

    • Quote
  • Abbadon
    Beginner
    Posts
    53
    • March 5, 2011 at 12:04 PM
    • #13

    Ist es so auch möglich bestehende Fahrzeuge zu modifizieren? Ich möchte nämlich Busse, bei denen die Passagiere auch hinten einsteigen. Dazu muss ich etwas in den Scripts der Fahrzeuge hinzufügen. Habe schon versucht eine Ordnerstruktur der Art aufzubauen:
    C:\Users\DeinNameHier\Documents\Cities In Motion\addons\objects\vehicles\bus-xx\bus-xx.script

    In den Scripten habe ich geschrieben, was hinzugefügt werden soll. Jedoch wurde es im Spiel nicht übernommen. Habe die Änderungen direkt im jeweiligen Script gemacht, dann gings. Ist halt bezüglich den Updates nicht sinnvoll.

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 5, 2011 at 12:08 PM
    • #14

    Hi Abbadon. Scroll mal bisschen hoch. Hannibal hatte auch sowas versucht. Ich hab ein Beispiel-Addon gebaut, was man dort auch runterladen kann. Guck dir das mal an. Vielleicht kannst du das ja so nutzen.

    • Quote
  • hannibal
    Beginner
    Posts
    39
    Filebase Entries
    3
    • March 5, 2011 at 12:52 PM
    • #15

    Ja, ich hatte eine Klammer vergessen, deswegen hat mein gesamtes .script nicht funktioniert. :whistling: Der Teil den ich herauskopiert dagegen schon. Blos den hab ich alleine nicht getestet und darum nicht gemerkt das es ja doch funktioniert.

    • Quote
  • Abbadon
    Beginner
    Posts
    53
    • March 5, 2011 at 2:15 PM
    • #16

    Bin wohl blind ;) Hab jetzt mal das Ganze angepasst für alle Busse, ohne den DLC. Müsste so passen. Könnt ja nochmal drüberschauen

    • Quote
  • Saphirdragon
    Intermediate
    Posts
    207
    Filebase Entries
    8
    • March 5, 2011 at 5:54 PM
    • #17

    Hallo, ich habe hier ein kleines Problem mit der Anleitung

    Und zwar hier:

    Wenn man also ein geändertes Hotel erstellen will, öffnet man die "default-buildings.script"-Datei und sucht dort nach "hotel".

    Ich würde gerne wissen wie das ist wenn man nur eine textur - im meinem Fall die Roads.dds - verändert hat, einen Link auf diese findet man nicht in dieser Datei, wie da vorgehen?

    Meine Bahnbilder Galerie auf Deviantart
    Meine Urban Rail Galerie auf Deviantart

    Ehrlich währt am längsten.... Aber wer hat schon so viel Zeit?

    • Quote
  • Bennhardt
    Student
    Posts
    94
    Filebase Entries
    1
    • March 5, 2011 at 7:16 PM
    • #18

    In den Buildings sind nur die Gebäude drin. Die andren Dateien sollten entsprechend ihrem Inhalt heißen. Für Straßen eben "default-roads.script" usw. Wenn du also Straßen änderst, such in "default-roads.script" :)

    • Quote
  • Saphirdragon
    Intermediate
    Posts
    207
    Filebase Entries
    8
    • March 5, 2011 at 9:03 PM
    • #19

    Ich habe in dieser Default road.script gesucht, mein Problem ist dass dabei immer nur auf die Objects verwiesen wird, nie aber auf die Textur.

    Meine Bahnbilder Galerie auf Deviantart
    Meine Urban Rail Galerie auf Deviantart

    Ehrlich währt am längsten.... Aber wer hat schon so viel Zeit?

    • Quote

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Twitch

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™