[TUT] Standart Fahrzeug als Mod Ingame bringen, am Beispiel Krampe Big Body 500

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

  • [TUT] Standart Fahrzeug als Mod Ingame bringen, am Beispiel Krampe Big Body 500

    Also, was machen wir jetzt, einen schritt nach dem anderen, immer schön der Reihe nach und dann siehst du wie das ganze geht.

    1: Wir legen uns auf den Desktop einen Ordner an, den wir wie folgt nennen: "ModTest"
    2.In den Ordner kommt jetzt ein neues Ordner den du "Krampe" nennst
    3. in den Krampe Ordner wiederrum einen den du "KrampeBigBody500" nennst.... kommt dir jetzt komisch vor, aber ist gleich erklärt warum soviele leere ordner!

    4.Dann gehst du ins Installationsverzeichnis des LS13,wir wollen den BBE500, also...Landwirtschafts Simulator 2013\data\vehicles\trailers\krampe dort öffnest du die krampeBBE500.i3d
    5. Wir klicken nun auf "File--->Export All with Files", und nun kommt ein neues Fenster wo du den Pfad auswählen musst, dort wählst du folgenden Pfad: Desktop/ModTest/Krampe/KrampeBigBody500 , die i3d speicherst du unter dem Namen krampeBBE500 (klein und großschreibung beachten). Dann den GE wieder schließen.

    Jetzt kommt die Erklärung der Ordner, wenn du jetzt den Ordner ModTest öffnest, dann sind da auf einmal neue Dateien und ein neuer Ordner. Das kommt von folgendem, manche Texturen werden von unterschiedlichen Fahrzeugen verwendet, wie z.b die FillPlanes, oder auch die corona Texturen des Lichtes. Wenn du nun eine i3d öffnest und eine Texture von einem anderen Ordner öffnest, dann wird der Pfad in der i3d gespeichert. In unserem Fall jetzt mal das Beispiel der coronas, wenn man die i3d mit Notepad++ oder StandartEditor öffnet, dann steht da bei der corona Texture folgendes:

    PHP-Quellcode

    1. <File fileId="22" filename="../../cars/car_corona_red_diffuse.png" relativePath="true"/>

    das heißt, von da wo die i3d des BigBodys ist, geht das Game 2 ordner zurück, also erst in "trailers" und dann in "vehicles" dort wird der Ordner "cars" geöffnet und dort die "car_corona_red_diffuse.png".! Wenn wir unseren BBE500 nun mit allen Texturen exportieren, dann geht der GE vom neuen Speicherort auch 2 Ordner zurück um dort den "cars" Ordner zu erstellen. Kling alles kompliziert aber ist ganz einfach zu verstehen, wenn ich das so gut erkläre, oder?
    Hätten wir jetzt also einen Ordner weniger erstellt, dann wäre der "cars" Ordner und einige Texturen direkt auf dem Desktop zu finden. Daher empfieklt es sich vor dem Export mal kurz die i3d mit Editor zu öffnen. Aber gut, machen wir weiter.

    Wir haben grad unseren Ordner "ModTest" offen, also kopieren wir gleich mal alle Texturen die jetzt drin sind, es sind 9 stück, da wir auch die emissiveBillboardShader.xml mitkopieren. Die kopierst du jetzt gleich mal in den richtigen Ordner, also in "ModTest/Krampe/KrampeBigBody500", also darein wo auch unsere i3d gespeichert ist. Dann wieder zurück in den ModTest Ordner, da den cars Ordner öffnen und die 3 Texturen auch in den KrampeBigBody500 ornder kopieren. Somit haben wir schonmal alle Texturen zusammen.
    Dann löschen wir gleich mal die überflüssigen, also in ModTest und da die ebend kopierten löschen, ebenso den cars ordner.

    6. unsere i3d des BigBodys mit Notepad oder Standarteditor öffnen. Dann stehen gleich oben die "<Files>" also alles was der LS beim Spielstart laden soll. Dort stehen nun auch unsere Pfad noch falsch da, da wir ja dateien kopiert haben. Also passen wir da erstmal die Pfade an, nämlich wie folgt. Der Pfad ist relativ gesehen zur i3d. Wenn nix steht, dann befindet sich die textur auf der gleichen Ebene wie die i3d. als Beispiel:

    PHP-Quellcode

    1. <File fileId="8" filename="krampeBBE500_diffuse.png" relativePath="true"/>

    Wenn du jetzt einen Textur Ordner hättest wo sie drin sind, dann müsste das ganez dann so aussehen:

    PHP-Quellcode

    1. <File fileId="8" filename="Textur/krampeBBE500_diffuse.png" relativePath="true"/>

    Also, auf der Ebene der i3d, den Textur Ordner öffnen und dort ist unsere Textur.
    Haben wir ja nicht, nur wollte ich das kurz erklären. Denn das brauchen wir ja jetzt, du musst jetzt alle Pfade anpassen an unseren BigBody, also alle wo ein ../../ vor steht müssen geändert werden.

    PHP-Quellcode

    1. <File fileId="22" filename="../../cars/car_corona_red_diffuse.png" relativePath="true"/>
    2. <File fileId="24" filename="../../cars/car_corona_white_diffuse.png" relativePath="true"/>
    3. <File fileId="25" filename="../../cars/corona_orange.png" relativePath="true"/>
    4. <File fileId="17" filename="../../chaff_diffuse.png" relativePath="true"/>
    5. <File fileId="23" filename="../../emissiveBillboardShader.xml" relativePath="true"/>
    6. <File fileId="15" filename="../../maize_diffuse.png" relativePath="true"/>
    7. <File fileId="18" filename="../../potatoes_diffuse.png" relativePath="true"/>
    8. <File fileId="19" filename="../../potatoes_normal.png" relativePath="true"/>
    9. <File fileId="16" filename="../../rape_diffuse.png" relativePath="true"/>
    10. <File fileId="20" filename="../../sugarBeets_diffuse.png" relativePath="true"/>
    11. <File fileId="21" filename="../../sugarBeets_normal.png" relativePath="true"/>
    12. <File fileId="14" filename="../../wheat01.png" relativePath="true"/>
    Alles anzeigen

    Ganz wichtig, bei den ersten 3, dort muss auch der Pfad zum "cars" Ordner weg, das überall nur der Textur Name stehen bleibt, sieht dann so aus.

    PHP-Quellcode

    1. <File fileId="22" filename="car_corona_red_diffuse.png" relativePath="true"/>
    2. <File fileId="24" filename="car_corona_white_diffuse.png" relativePath="true"/>
    3. <File fileId="25" filename="corona_orange.png" relativePath="true"/>
    4. <File fileId="17" filename="chaff_diffuse.png" relativePath="true"/>
    5. <File fileId="23" filename="emissiveBillboardShader.xml" relativePath="true"/>
    6. <File fileId="15" filename="maize_diffuse.png" relativePath="true"/>
    7. <File fileId="18" filename="potatoes_diffuse.png" relativePath="true"/>
    8. <File fileId="19" filename="potatoes_normal.png" relativePath="true"/>
    9. <File fileId="16" filename="rape_diffuse.png" relativePath="true"/>
    10. <File fileId="20" filename="sugarBeets_diffuse.png" relativePath="true"/>
    11. <File fileId="21" filename="sugarBeets_normal.png" relativePath="true"/>
    12. <File fileId="14" filename="wheat01.png" relativePath="true"/>
    Alles anzeigen


    Dann speichern. Nun ist schonmal die i3d komplett und kann von Ls13 in Game geladen werden, wenn wir eine moddesc und xml dazu hätten...;)!
    Die XML kopieren wir uns erstmal nur, da auch die orginale nehmen, also diese hier:
    "Landwirtschafts Simulator 2013\data\vehicles\trailers\krampe\krampeBBE500.XML"
  • So, als erstes mal, das mit der Moddesc kommt gleich. Vorher, wegen den Ordnern, die braucht man nicht unbedingt, also soviele Ordner, das diente nur dazu um es dir richtig zu erklären. Im Grunde kannst du auch einfach nur einen Ordner anlegen, dann kopierst du dir da einfach die orginale i3d rein und öffnest sie mit Standart Editor, um die Texturen und Files zu sehen, dann musst du die nur alle einzeln rüberkopieren. Da kann man leicht mal eine vergessen, was dann einen Error in der LOG zur folge hat. Daher wollte ich dir den "langen" aber auch ausführlichen Weg zeigen, damit du es leichter verstehst.

    So, nun zur Moddesc.

    Da nehmen wir einfach mal die vom Sample Mod Deutz, da diese für den Ls13 ist und wir weniger anpassen müssen. Den SampleMod findest du im Installationsverzeichnis im sdk ordner, den sample Mod aber nur kopieren und entpacken und die moddesc in unseren Krampe kopieren. Wenn du wegen DL Version den sdk Ordner nicht hast, dann findest du den sampleMod auch hier:
    mod-portal.com/forum/index.php…ad&postID=89342#post89342

    So, die sehen wir uns nun mal an:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" standalone="no" ?>
    2. <modDesc descVersion="9">
    3. <author>My Name</author>
    4. <version>1.0</version>
    5. <title>
    6. <en>Sample Mod</en>
    7. <de>Beispiel Mod</de>
    8. </title>
    9. <description>
    10. <en>Sample mod description</en>
    11. <de>Beispiel Mod Beschreibung</de>
    12. </description>
    13. <iconFilename>store_deutzAgrotronX720.png</iconFilename>
    14. <multiplayer supported="true"/>
    15. <storeItems>
    16. <storeItem>
    17. <en>
    18. <name>Deutz Agrotron X720 Sample Mod</name>
    19. <description>
    20. <![CDATA[This is the sample mod]]>
    21. </description>
    22. <specs><![CDATA[Max. power: 99 kW / 134 hp
    23. Maintenance: %s / day]]></specs>
    24. </en>
    25. <de>
    26. <name>Deutz Agrotron X720 Sample Mod</name>
    27. <description>
    28. <![CDATA[Dies ist der Beispielmod.]]>
    29. </description>
    30. <specs><![CDATA[Max. Leistung: 99 kW / 134 PS
    31. Unterhaltskosten: %s / Tag]]></specs>
    32. </de>
    33. <rotation>0</rotation>
    34. <image active="store_deutzAgrotronX720.png" brand="brand_deutz.png"/>
    35. <price>9995</price>
    36. <dailyUpkeep>95</dailyUpkeep>
    37. <xmlFilename>deutzAgrotronX720.xml</xmlFilename>
    38. <brand>$l10n_shopItemBrand_deutz</brand>
    39. <machineType>tractors</machineType>
    40. </storeItem>
    41. </storeItems>
    42. </modDesc>
    Alles anzeigen

    Erklärungen dazu:
    Zeilen Nummer + Erklärung:

    2: muss für Ls13 descVersion="9" sein, im ls11 war es die 4.
    3 und 4: ist klar, hier kommt dein Name rein sowie die Version des Mods, nun haben wir die V1.0, wenn du ihn dann erweiterst, kannst du die V2.0 von machen.
    5 - 12: Dient zur Beschreibung des Mods im Menü, also unter Optionen/Mods im Hauptmenü des LS13, der title steht dabei für die Überschrift, die description für die Beschreibung. en ist englisch, de = deutsch
    13: Gibt den Pfad zu einem Bild an, kann man das store Bild angeben.
    14: logisch, ist der Mod MP Fähig dann ein "true" ist er es nicht, dann ein "false"
    ab 15: das ist alles was du im Shop siehst.
    17-32: ist dabei auch erstmal die Beschreibung bzw der Name des Mods, dabei gilt folgendes: Der Name ist der Name der in der Überschrift steht, die Beschreibung (description) ist das was du unter dem Mod findest, also ein Text wo du hinschreibst was er laden kann, oder ob du einen besonders großen schlepper brauchst. Dazu gibt es dann noch die Zeilen 22 + 30 dort steht das:

    Quellcode

    1. <specs><![CDATA[Max. Leistung: 99 kW / 134 PSUnterhaltskosten: %s / Tag]]></specs>

    das ist die Angabe die du im Shop neben dem ModBild findest, also das wo bei den Orginalen die Unterhaltskosten stehen oder die Leistung sowie bei manchen auch der Fruchttyp.

    33 wie rum der Mod beim Händler steht,
    34: Das Bild was im Shop angezeigt wird, kann ein anderes sein, wie ganz am anfang der Moddesc, sollte aber den Mod zeigen. Dazu der Eintrag "brand", das ist das Herstellerzeichen was unter dem Mod eingefügt wird.
    35 Klar, der Preis des Mods
    36 Unterhaltskosten des Mods pro Tag, wenn du Zeile 30 angibst, wird hier der Preis genommen und im shop eingefügt, lässt du zeile 30 weg, weiß niemand wieviel der Mod jeden Tag kostet.
    37: Der Pfad zu unseren XML des Mods, also zur krampeBBE500.XML
    38: Ist der Eintrag unter was der Mod gelistet wird, hier also unter Deutz
    39: ist der Maschinen Typ, also die Gerätesortierung. Kann man auch keinen Neuen Typen anlegen.


    So, nun aber zu unserem Krampe, die sieht dann so aus:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" standalone="no" ?>
    2. <modDesc descVersion="9">
    3. <author>Bluebaby210</author>
    4. <version>1.0</version>
    5. <title>
    6. <en>Mod Krampe BBE500</en>
    7. <de>Mod Krampe BBE500</de>
    8. </title>
    9. <description>
    10. <en>Beispiel Mod um einen Standart Anhänger als Mod in Game zu bringen.</en>
    11. <de>Beispiel Mod um einen Standart Anhänger als Mod in Game zu bringen.</de>
    12. </description>
    13. <iconFilename>store_krampeBBE500.png</iconFilename>
    14. <multiplayer supported="true"/>
    15. <l10n>
    16. <text name="shopItemBrand_ernie">
    17. <de>Ernies Mod</de>
    18. <en>Ernies Mod</en>
    19. </text>
    20. </l10n>
    21. <storeItems>
    22. <storeItem>
    23. <en>
    24. <name>Krampe BBE500 als Mod</name>
    25. <description>
    26. <![CDATA[This is the Krampe BBE500 mod]]>
    27. </description>
    28. <specs><![CDATA[
    29. Maintenance: %s / day]]></specs>
    30. </en>
    31. <de>
    32. <name>Krampe BBE500 als Mod</name>
    33. <description>
    34. <![CDATA[Dies ist der Krampe BBE500 als Mod]]>
    35. </description>
    36. <specs><![CDATA[
    37. Unterhaltskosten: %s / Tag]]></specs>
    38. </de>
    39. <rotation>0</rotation>
    40. <image active="store_krampeBBE500.png" brand="brand_krampe.png"/>
    41. <price>4992</price>
    42. <dailyUpkeep>10</dailyUpkeep>
    43. <xmlFilename>krampeBBE500.xml</xmlFilename>
    44. <brand>$l10n_shopItemBrand_ernie</brand>
    45. <machineType>tippers</machineType>
    46. </storeItem>
    47. </storeItems>
    48. </modDesc>
    Alles anzeigen


    So, was ist hier alles neu dazu gekommen?
    Richtig, es stehen aus einmal am Anfang (Zeile16) noch "l10n" Texte, dazu gleich mehr.

    Als erstes kopierst du jetzt nochmal etwas aus dem Installationsverzeichnis, nämlich das store Bild und auch das Hersteller Bild, also:
    Landwirtschafts Simulator 2013\data\vehicles\store_krampeBBE500.dds und
    Landwirtschafts Simulator 2013\data\vehicles\brand_krampe.dds

    Nun siehst du in Zeile 45, das dort steht: "$l10n_shopItemBrand_ernie", was heißt das? Der Mod wird ja auch sortiert, einmal nach Hersteller und einmal kannst du nach geräteTypen sortieren lassen, also nach brand (Hersteller) und Type (machineType), den Hersteller können wir ändern, den Typen leider nicht. So, das Game kennt aber den Hersteller "ernie" nicht, also bringen wir dem LS13 jetzt den Hersteller ernie bei, das machen wir indem wir die oben angegebenen Texte einfügen:

    <l10n>
    <text name="shopItemBrand_ernie">
    <de>Ernies Mod</de>
    <en>Ernies Mod</en>
    </text>
    </l10n>


    der Name muss hierbei der gleiche sein wie in Zeile 45, damit das Game den Text identifizieren kann "shopItemBrand_ernie", dann kannst du den Hersteller frei verwenden, ich habe jetzt mal Ernies-Mod genommen, wenn du die Mods jetzt unter Herstellker sortieren lässt, dann steht dort irgendwann beim durchklicken "Ernies Mod".
    Dazu sein noch gesagt, es gibt Mods die Bereits über irgendwelche Texte verfügen, z.b die Mods mit BeleuchtungsMod, Texte für Blinker, Warnblinker usw. das heißt der Mod verfügt über l10n Texte, da kannst du dann das neue "l10n" weglassen, dann brauchst du nur den text, also so:

    <text name="shopItemBrand_ernie">
    <de>Ernies Mod</de>
    <en>Ernies Mod</en>
    </text>
    ´

    Nun noch die Zeile 46, der machineType, da kann man nur austesten, was was ist, bei uns ist es tipper, die Liste der Types findest du hier:
    forum.landwirtschafts-simulato…ewtopic.php?f=769&t=44807 post von MadMax
  • Wenn du jetzt den Mod in den Mods Ordner packst, dann kannst du ihn nicht kaufen bzw wir bekommen CallStack fehlen, weil wir die XML noch etwas bearbeiten müssen.
    Wir haben ja die Orginale nur kopiert, also öffnen wir die XML in unserem Mod mal:

    Dann tippst du in die Suche mal folgendes ein:

    "data"

    da bekommst du als erstes folgenden eintrag:

    Quellcode

    1. <hydraulicSound file="data/vehicles/steerable/deutz/hydraulicUp.wav" pitchOffset="0.9" volume="1.0" />

    Der LS will nun also den Sound laden, aus dem Ordner data/vehicles/steerable/deutz/hydraulicUp.wav , das geht aber nicht, weil wir in unserem Mod die Ordner gar nicht haben. Also haben wir 2 Möglichkeiten, zum einen wir kopieren nun alle sound dateien die wir brauchen, dadurch würde unsere zip natürlich gleich großer, und da wir ja die orginalen sounds nehmen wollen, ist das ganze überflüssig. Zudem haben wir dann ein weiteres Problem, nämlich wenn wie weitersuchen nach data, da kommen wir zu diesem eintrag:

    Quellcode

    1. <dischargeParticleSystem type="wheat" node="5|6" position="0 0 0" rotation="0 0 0" file="data/vehicles/particleSystems/trailerDPSBig.i3d" />

    Das entlade Particle system, also müssten wir die auch noch alle kopieren... das ist uns aber echt zuviel rumgeklicke und kopieren, also müssen wir dem LS jetzt beibringen das er selber auf die orginal daten zugreifen soll... das geht ganz einfach und ist nur ein Zeichen, nämlich dieses "$", das Dollarzeichen... nein, dafür gibt es kein Geld, sondern einen Mod in Game.

    Also müssen wir jetzt in der XML nochmal ganz nach oben gehen und wieder in die Suche eintippen data und bei jedem ergebnis was er uns anzeigt, machen wir vor das data ein $, dann sieht unserer Sound eintrag z.b so aus:

    Quellcode

    1. <hydraulicSound file="$data/vehicles/steerable/deutz/hydraulicUp.wav" pitchOffset="0.9" volume="1.0" />

    Insgesamt sind es 18 Einträge die du machen musst.
    Alternative kannst du auch nach "data" suchen lassen bzw wählst aus ersetzen, dann "suchen nach: data" "Ersetzen durch: $data".

    Und dann ist unser Mod in Game, erstmal nur Standart, aber er ist in Game.


    Und das machst du jetzt mak schön, wenn du das hast, dann erkläre ich dir auch, wie wir einen Neuen "vehiclesType" anlegen können, um später in den Mod auch andere Spezis einzubauen, wie z.b Beleuchtungsskript, oder Reifenstaub, oder washable.
  • So, aber wir wollten ihn ja noch ändern das der Krampe ein neues vehicles ist, so das du auch andere Spezis einbauen kannst, das geht wir folgt:

    1: Die XML öffnen, dort steht gleich in der 2.Zeile bei "vehiclesType="trailer"" somit können wir keinen neuen Spezis einbauen, weil trailer ein StandartVehicles ist. Das änderst du jetzt um in z.b

    Quellcode

    1. <vehicle type="KrampeBBE500">

    Speichern.

    Dann die moddesc öffnen. Dort müssen wir dem Game jetzt auch den vehiclesType beibringen, damit der LS13 weiss, was unser Mod kann, also befüllen, anhängen, kippen, was auch immer.

    Dazu fügen wir einfach in der Moddesc unter den Texten folgendes ein:

    Quellcode

    1. <vehicleTypes>
    2. <type name="KrampeBBE500" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
    3. <specialization name="attachable" />
    4. <specialization name="animatedVehicle" />
    5. <specialization name="cylindered" />
    6. <specialization name="fillable" />
    7. <specialization name="trailer" />
    8. </type>
    9. </vehicleTypes>


    Dabei ist es ganz wichtig, als erstes muss der "type name" genau der gleiche sein wie in der XML, also KrampeBBE500.

    Dann sind die spezis halt entscheidend dafür was der Mod kann, also "anhängbar", "animiertes Vehicles", "Zylinder (also beim abkippen z.b Zylinder die mitgehen)" "beladbar (frucht)", und halt "anhänger"!

    Woher weiß ich das alles, welche spezis da stehen müssen? Das kannst du hier einsehen:
    forum.landwirtschafts-simulato…ewtopic.php?f=761&t=45783

    Wenn du jetzt also z.b einen Diesel Anhänger modden willst, der aber zusätzlich noch das Beleuchtungsskript verwendet, dann kannst du den vehiclesName also nicht fuelTrailer nennen, sondern musst einen eigenen schaffen. Das sehe dann z.b so aus:

    Quellcode

    1. <type name="fuelTrailer" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
    2. <specialization name="attachable" />
    3. <specialization name="animatedVehicle" />
    4. <specialization name="cylindered" />
    5. <specialization name="fillable" />
    6. <specialization name="fuelTrailer" />
    7. </type>

    Quelle: Link

    Hier dann anstatt fuelTrailer, halt z.b Dieseltransporter.

    Das ist erstmal alles, was es dazu zu sagen gibt. Eventuell kann man jetzt noch sagen, wir bauen das Beleuchtungsskript in den Krampe, dann musst du das Skript auch in den Mod kopieren und noch zusätzlich folgende Zeilen angeben, vor dem vehiclesType:

    Quellcode

    1. <specializations>
    2. <specialization name="beleuchtung31" className="BEL3" filename="beleuchtungV31.lua"/>
    3. </specializations>

    specialization name: ist der Name der spezi, also das was du einfügen musst, so wie jetzt da steht "attachable" muss dann stehen beleuchtung31.
    className: ist der Klasse, die steht in der LUA, siehst du dann ja wenn du so eine Spezi hast, steht meist in der einbauanleitung
    filename: klar, wo ist die LUA und wie ist der Name... die könnte man jetzt auch in einen Skript ordner packen, dann muss der Pfad so aussehen: "Skripte/beleuchtungV31.lua"

    Eingebaut sieht das ganze dann so aus beim vehicles Type:

    Quellcode

    1. <specializations>
    2. <specialization name="beleuchtung31" className="BEL3" filename="beleuchtungV31.lua"/>
    3. </specializations>
    4. <vehicleTypes>
    5. <type name="KrampeBBE500" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
    6. <specialization name="attachable" />
    7. <specialization name="animatedVehicle" />
    8. <specialization name="cylindered" />
    9. <specialization name="fillable" />
    10. <specialization name="trailer" />
    11. <specialization name="beleuchtung31" />
    12. </type>
    13. </vehicleTypes>
    Alles anzeigen


    Das sollte dann aber erstmal reichen um einen Orginalen als Mod in Game zu bringen.

    Die Beleuchtung dient jetzt nur als beispiel und würde so noch nicht gehen, dazu müssen ja dinge im GE eingefügt werden und in der XML, zudem muss man noch texte angeben in der Moddesc für Blinker und eventuell licht, zudem auch die Tasten definieren.