Beiträge von Jaguar95

    Error: Failed to open xml file C:/.../map/textures/foliage/foliage_wheat_diffuse.png'

    Error: Out-dated custom shader. 'C:/.../map/textures/foliage/foliage_wheat_diffuse.png' has version 0. Please convert this file to version 2.

    Das deutet darauf hin, dass Du bei den <Material> Einträgen irgendwo noch falsche CustomShader eingetragen hast.

    Angenommen Du hast den CustomShader 46. Das ist dann auch die FileID 46. Und die ist - nur ein Beispiel - dann bei Dir foliage_wheat_diffuse.png.
    Müsste aber ein Shader sein. ;)

    Kuck in mein Tutorial. ;)

    Doch davor hätte ich gerne von jemandem, der sich wirklich auskennt ein Feedback, ob das so stimmt, was ich da erarbeitet habe.

    Da musst Du einen Mapper fragen.


    Oder ist auch hier wieder nur eine falsche Zuordnung der Ids Grund des Fehlers?

    Ist anzunehmen. ;)

    Nochmals. Du baust neue Früchte in eine Map ein, ist das richtig?

    Falls ja: Fange nochmals von vorne an. Vermutlich hast Du mittlerweile so viel in der i3d korrigiert, dass es nur immer schlimmer wird. Du hast ja sicher vorher eine Kopie der i3d angelegt, oder?

    Die Zahlen werden nach öffnen und speichern mit dem GE umgeschrieben, steht alles in meinem TUT, zweiter Beitrag. ;)

    Was spricht dagegen, dass Du Dein TUT mit den Terrain Texturen selbst im Tutorial Bereich veröffentlichst?

    Und bitte in Zukunft Doppelposts vermeiden. Ich fasse die jetzt nur nicht zusammen,w eil beide BEiträge Anhänge enthalten.

    Wie gesagt, vermutlich hast Du im FoliageSubLayer bei einer anderen Frucht (Hafer Roggen oder was auch immer) bei den dinstanceMapId´s eine falsche Zahl eingetragen. Vermutlich eben die 62 von der Gerste (barley). Das stimmt dann halt nicht und deshalb wirft er Dir den Fehler in die Log.

    Bevor ich mein TUT geschrieben habe, saß ich drei Tage oder so daran Früchte in eine Map einzubauen und hatte ständig den Fehler mit der 8 Bit RGB. Eben weil die Einträge falsch waren. Aber die der neuen Früchte, nicht einer bestehenden.

    Baust Du grade in eine Map neue Früchte ein?

    Den 8 Bit Fehler hatte ich auch. Da war aber nicht die Textur falsch, sondern die Einträge in der i3d.
    Du darfst da aber auf keinen Fall die bestehende Zeile mit der fileID="62" einfach ändern.

    Lies mal mein Tutorial:
    Einbau zusätzlicher Früchte in eine Map

    Wichtig: In einem anderen Beitrag schreibst Du bereits etwas zu dem Thema. Du verwendest wenn ich es grade richtig weiss die fruits.lua zur Registrierung.
    Mein Tutorial arbeitet mit der additionalFruitTypes.lua.
    Also aufpassen. ;)

    Die Glaskugeln sind gerade im Winterschlaf. Vielleicht wachen sie ja auf, wenn hier zufällig eine Log.txt in den Beitrag poltert.



    • Bei Support Anfragen im Zusammenhang mit Fehlermeldungen immer die log.txt als Dateianhang hochladen. Beiträge ohne log.txt werden ansonsten kommentarlos gelöscht, da Support ohne log.txt kaum möglich ist. Bei Bedarf und entsprechenden Fehlermeldungen können auch die fahrzeug.xml und oder moddesc.xml als Dateianhang nützlich sein.

    • Bitte auch dies hier beachten: Mod-Support!

    • Beiträge bei denen die Rechtschreibung total daneben ist, werden gelöscht. Sollte dies öfters vorkommen, wird derjenige Verwarnt!

    • Recht sinnlose und sehr kurze Antworten, wie zum Beispiel "Das gefällt mir sehr" oder "Super gemacht, weiter so!" können als Spam gesehen werden, wir bitten darum solche Beiträge mit etwas mehr Einfallsreichtum auszustatten. Ansonsten werden diese gelöscht und der User kann mit einer Verwarnung rechnen.

    Trenero hat eigentlich alles gesagt. Ohne Grund sind die DLC nicht verschlüsselt. Und da Anleitungen zum knacken nicht erlaubt sind, mache ich hier zu. Ist ja eh alles geklärt.

    Nun möchte ich noch auf einige Details eingehen, als Beispiel dient Roggen.

    Wenn man sich wie ich die Einträge aus einer Map kopiert, schaut das zusammengefasst so aus:

    Zu beachten ist dabei:
    - die FileId von 92 bis 98
    - diese kommt dann auch im Material bei Texture fileID="98" vor.
    - die MaterialId="98", diese kommt im FoliageSubLayer auch vor.
    - die distanceMapIds="38;92;93;94;95;95;95;96;97" -- Diese Zahlen entsprechen den FileID's der entsprechenden Texturen.

    Wobei hier die erste Zahl immer dem ersten Wert des FoliageSubLayer von "wheat" entsprechen muss, typischerweise ist es eben die 38.
    Ist der Wert wie auf der Heimenkirch Map anders, dann muss der auch bei den distanceMapIds geändert werden.

    Wie ihr an meinem obigen Beispiel im ersten Beitrag gesehen habt, sind dort die gleichen Einträge so:


    Wie ihr seht, habe ich alle Zahlen um zwei Nullen erweitert. Das ist wichtig, damit die ganzen IDs beim einfügen in eine andere Map nicht doppelt belegt sind, sonst hagelt es Fehler im GE.
    Nachdem man die Map im GE geladen und gespeichert hat, werden die Zahlen vom GE angepasst.

    Also wichtig nochmals, wenn ihr eine weitere Frucht einbauen wollt müsst ihr für folgende Einträge hohe IDs vergeben.

    - fileID im Abschnitt Files
    - MaterialID im Abschnitt Material
    - distanceMapIds im Abschnitt FoliageSubLayer.
    - blockShapeID kontrollieren


    Bei den Schwaden von Luzerne und Klee - zu erkennen am "windrow" im Namen ist es immer nur eine distanceMapID, normalerweise die 50, kann man sich aber auch beim FoliageSubLayer für "grass_windrow" abschauen.

    Ich hoffe, ihr könnt mit dem kleinen Tutorial etwas anfangen.

    Am Schluss sollte es ingame dann so ausschauen:


    Patrick

    Tutorial: Multifrucht in eine Map einbauen

    Hallo,
    nach drei Tagen try and error und einiger Tüftelei habe ich es endlich geschafft in eine Map (Bjornholm) zusätzliche Früchte einzubauen. Mangels eines vollständigen Tutorials ist das gar nicht so einfach, wenn man kein eingefleischter Mapper ist.
    Deshalb habe ich mich nun hingesetzt und dieses Tutorial geschrieben, dieses ist NUR für den LS15 gültig.


    Voraussetzung sind Kenntnisse im Umgang mit dem Giants Editor und Notepad++.


    Dieses Tutorial darf ohne meine Genehmigung nicht weiter verbreitet werden, weder im Original noch in irgendeiner abgeänderten Form.


    Apropos Tutorial, unter anderem habe ich dies hier von Upsidedown benutzt, Teile davon werden auch benötigt.
    LS 15: Tutorial Skripts Materials MultiFruitForMaps v 1.0 Tutorials Mod für Landwirtschafts Simulator 15
    | modhoster.de

    Desweiteren benötigt man für den Transport der Früchte dann natürlich auch entweder entsprechende Fahrzeuge oder nimmt gleich den MultiFruitMod, ebenfalls von Upsidedown.
    LS 15: MultiFruit v 3.0 Scripte Mod für Landwirtschafts Simulator 15
    | modhoster.de

    Diesem Tutorial werde ich KEINE Texturen beilegen, da ich keine fremden Arbeiten zum DL anbieten will, und die Urheber der Texturen irgendwie sehr schwer aufzufinden sind.
    Ich habe die Texturen für Hafer, Roggen und Sonnenblumen aus der "Willkommen in Mecklenburg" und die Texturen für Klee und Luzerne aus der "Ackendorf 1.3"
    LS 15: Willkommen in Mecklenburg v 4.0 Multifruit Maps Mod für Landwirtschafts Simulator 15
    | modhoster.de
    LS 15: Ackendorf v 1.3 Maps Mod für Landwirtschafts Simulator 15
    | modhoster.de


    Hinweis: Wenn ihr eine Map mit den Früchten ausstattet und diese veröffentlichen wollt, kümmert Euch bitte um Freigaben für die Texturen oder besorgt Euch Texturen die frei genutzt werden können.

    Das Tutorial basiert hinsichtlich der Registrierung der Früchte auf der additionalFruitTypes.lua, welche im oben verlinkten Tutorial von Upsidedown zu finden und auch erklärt ist.

    Ich habe die einzelnen Abschnitte, welche kopiert werden müssen so ausgelegt, dass sich in der map.i3d die FileID´s eigentlich nicht mit bestehenden ID´s überschneiden sollten.
    Eingebaut werden mit diesem Tutorial die Früchte Roggen (rye), Hafer (oat), Sonnenblumen (sunflower), Luzerne und Klee.

    Die zu kopierenden Texte füge ich als Anhang in Form einer .xml Datei für den Eigengebrauch an, dann könnt ihr alles nur per Copy & Paste übernehmen.

    Bevor ihr anfangt: Bitte auch den zweiten Beitrag zuerst lesen.

    Anpassen der SampleModMap.lua
    Dieser Schritt ist im Tutorial von Upsidedown (siehe oben) erklärt. Hier wird die additionalFruittypes.lua aufgerufen. Da das sein Tutorial ist, gehe ich darauf an dieser Stelle nicht näher ein.
    Hinweis: In der Anleitung im Tutorial ist im Eintrag für die SampleModMap.lua ein anderer Pfad zur additionalFruitTypes.lua angegeben, als in meinem Abschnitt, der in der angehängten Datei ist.
    Diesen Pfad bitte prüfen und gegebenenfalls anpassen, bzw. die additionalFruitTypes.lua an den richtigen Ort kopieren.
    Dies ist "meine" Variante aus der "Anleitung.xml" im Anhang, was auch dem Screenshot mit der Ordnerstruktur entspricht:
    local additionalFruitTypesPath = Utils.getFilename('map/scripts/additionalFruitTypes.lua', baseDirectory);

    Die folgenden Einträge gehen von folgender Ordnerstruktur aus:


    Anpassen der Moddesc.xml:
    Einfügen der Texte und Übersetzungen:


    Wenn ihr den Abschnitt <l10n> schon habt, dann nur dort ergänzen.


    Nach dem </l10n> wird dann dieser Abschnitt eingefügt:

    XML
    <AdditionalFruitTypes hudDirectory="map/fruitHuds/">
    <fruitType name="oat" needsSeeding="true" allowsSeeding="true" useSeedingWidth="false" directionSnapAngle="0" minHarvestingGrowthState="4" maxHarvestingGrowthState="6" cutState="8" allowsPartialGrowthState="false" pricePerLiter="0.31" literPerSqm="1.2" massPerLiter="0.00025" seedUsagePerSqm="0.05" partOfEconomy="true" fruitMapColor="242, 255, 158, 1" hasWindrow="true" windrowPricePerLiter="0.04" windrowLiterPerSqm="2.5" windrowMassPerLiter="0.00003" forageWagonConversion="wheat" substituteBales="wheat"/> 
    <fruitType name="rye" needsSeeding="true" allowsSeeding="true" useSeedingWidth="false" directionSnapAngle="0" minHarvestingGrowthState="4" maxHarvestingGrowthState="6" cutState="8" allowsPartialGrowthState="false" pricePerLiter="0.323" literPerSqm="1.1" massPerLiter="0.00034" seedUsagePerSqm="0.05" partOfEconomy="true" fruitMapColor="70, 53, 255, 1" hasWindrow="true" windrowPricePerLiter="0.04" windrowLiterPerSqm="2.5" windrowMassPerLiter="0.00003" forageWagonConversion="wheat" substituteBales="wheat"/>
    <fruitType name="sunflower" needsSeeding="true" allowsSeeding="true" useSeedingWidth="false" directionSnapAngle="0" minHarvestingGrowthState="4" maxHarvestingGrowthState="6" cutState="8" allowsPartialGrowthState="false" pricePerLiter="0.315" literPerSqm="1.2" massPerLiter="0.00021" seedUsagePerSqm="0.08" partOfEconomy="true" fruitMapColor="176, 255, 117, 1" hasWindrow="false"/> 
    <fruitType name="luzerne" needsSeeding="true" allowsSeeding="true" useSeedingWidth="false" directionSnapAngle="0" minHarvestingGrowthState="4" maxHarvestingGrowthState="6" cutState="1" allowsPartialGrowthState="false" pricePerLiter="0.75" literPerSqm="1.3" massPerLiter="0.0003" seedUsagePerSqm="0.05" partOfEconomy="false" fruitMapColor="178, 0, 255, 1" hasWindrow="true" windrowPricePerLiter="0.04" windrowLiterPerSqm="1.25" windrowMassPerLiter="0.00003" forageWagonConversion="grass"/>
    <fruitType name="klee" needsSeeding="true" allowsSeeding="true" useSeedingWidth="false" directionSnapAngle="0" minHarvestingGrowthState="4" maxHarvestingGrowthState="6" cutState="1" allowsPartialGrowthState="false" pricePerLiter="0.75" literPerSqm="1.3" massPerLiter="0.0003" seedUsagePerSqm="0.05" partOfEconomy="false" fruitMapColor="20, 50, 255, 1" hasWindrow="true" windrowPricePerLiter="0.04" windrowLiterPerSqm="1.25" windrowMassPerLiter="0.00003" forageWagonConversion="grass"/>	
    	</AdditionalFruitTypes>


    Luzerne und Klee haben mit diesen Einträgen einen sehr hohen Ertrag beim Häckseln. Ich vermute, das wird über "literPerSqm" gesteuert. Da kenne ich mich allerdings (noch) nicht aus. Ideal wäre wenn man den Wert von Gras oder Mais kennen würde. Wem es zu viel ist kann ja mal damit spielen.


    Das war es schon in der Moddesc.xml. Speichern und fertig.


    Nun kommt die Bearbeitung der map.i3d. Vorher unbedingt eine Sicherheitskopie dieser Datei anfertigen. Wie immer.

    Änderungen in der map.i3d:

    Einfügen im Abschnitt <files>:

    Hier seht ihr auch schon, wo in welchem Ort welche Textur liegen muss. Anbei aber zur Verdeutlichung Screenshots, einfach den Pfad in der Adressleiste beachten.



    Einfügen im Abschnitt <Materials>:


    Bitte überprüfen: Die customShaderId="46" und "48" mit den Einträgen Eurer Map bei wheat vergleichen, die müssen identisch sein. Bei mir war das jetzt bei drei Maps immer identisch.
    Sollten sie nicht identisch sein, dann anpassen an die Werte von folgenden Material Einträgen:
    <Material name="foliageWheat_mat" und <Material name="wheatWindrow_mat"


    Und zuletzt im Abschnitt <FoliageMultiLayer>


    XML
    <FoliageSubLayer name="rye" densityMapTypeIndex="10" densityMapChannelOffset="4" numDensityMapChannels="4" materialId="9800" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="38;9200;9300;9400;9500;9500;9500;9600;9700" distanceMapUnitSizes="128;128;128;128;128;128;128;128;128" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.4" width="1.5" height=";0.25;0.5;0.9;1;1;1;0.9;0.13" texCoords=";0 0 0.25 0.25;0 0.5 0.25 0.5;0.25 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.75 0 0.25 0.75;0.5 0 0.25 0.144" widthVariance="0" heightVariance="0.2" horizontalPositionVariance="0.5" numStates="9" growthNumStates="8" growthStateTime="2.4e+007"/>
    <FoliageSubLayer name="rye_windrow" densityMapTypeIndex="10" densityMapChannelOffset="8" numDensityMapChannels="4" materialId="93300" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="9500" distanceMapUnitSizes="128" repeatLastDistanceMap="true" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.5" width="1.7" height="0.4;0.44;0.48;0.52;0.56;0.6;0.64;0.68;0.72;0.76;0.8;0.84;0.88;0.92;0.96" widthVariance="0" heightVariance="0.01" horizontalPositionVariance="0.1" numStates="15" blockShapeId="7"/>
    <FoliageSubLayer name="oat" densityMapTypeIndex="11" densityMapChannelOffset="4" numDensityMapChannels="4" materialId="5900" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="38;10000;10100;10200;10300;10300;10300;10400;10500" distanceMapUnitSizes="1;128;128;128;128;128;128;128;128" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.4" width="1.5" height=";0.25;0.5;0.9;1;1;1;0.9;0.13" texCoords=";0 0 0.25 0.25;0 0.5 0.25 0.5;0.25 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.75 0 0.25 0.75;0.5 0 0.25 0.144" widthVariance="0" heightVariance="0.2" horizontalPositionVariance="0.5" numStates="9" growthNumStates="8" growthStateTime="2.4e+007"/>
    <FoliageSubLayer name="oat_windrow" densityMapTypeIndex="11" densityMapChannelOffset="8" numDensityMapChannels="4" materialId="99200" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="10300" distanceMapUnitSizes="128" repeatLastDistanceMap="true" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.5" width="1.7" height="0.4;0.44;0.48;0.52;0.56;0.6;0.64;0.68;0.72;0.76;0.8;0.84;0.88;0.92;0.96" widthVariance="0" heightVariance="0.01" horizontalPositionVariance="0.1" numStates="15" blockShapeId="7"/>
    <FoliageSubLayer name="sunflower" densityMapTypeIndex="9" densityMapChannelOffset="4" numDensityMapChannels="4" materialId="56300" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="38;10800;10900;11000;11100;11100;11100;11200;11300" distanceMapUnitSizes="128;128;128;128;128;128;128;128;128" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.4" width=";0.25;0.6;1.4;1.6;1.6;1.6;1.2;1.6" height=";0.25;0.6;1.4;1.6;1.6;1.6;1.2;1.6" texCoords=";0 0 1 1" widthVariance="0" heightVariance="0.2" horizontalPositionVariance="0.5" numStates="9" growthNumStates="8" growthStateTime="2.4e+007" blockShapeId=";12;13;14;15;15;15;16;17;"/>
    <FoliageSubLayer name="klee" densityMapTypeIndex="12" densityMapChannelOffset="5" numDensityMapChannels="4" materialId="144900" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="38;11500;11600;11700;11800;11800;11800;11900;11800" distanceMapUnitSizes="128;128;128;128;128;128;128;128;128" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.2" width="1.5" height=";0.25;0.5;0.9;1;1;1;0.9;0.13" texCoords=";0 0 0.25 0.25;0 0.5 0.25 0.5;0.25 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.75 0 0.25 0.75;0.5 0 0.25 0.144" widthVariance="0" heightVariance="0.2" horizontalPositionVariance="0.5" numStates="9" growthNumStates="7" growthStateTime="1.9e+007"/>
    <FoliageSubLayer name="klee_windrow" densityMapTypeIndex="12" densityMapChannelOffset="8" numDensityMapChannels="4" materialId="79100" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="50" distanceMapUnitSizes="128" repeatLastDistanceMap="true" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.2" width="1.3" height="0.4;0.44;0.48;0.52;0.56;0.6;0.64;0.68;0.72;0.76;0.8;0.84;0.88;0.92;0.96" widthVariance="0" heightVariance="0.01" horizontalPositionVariance="0.1" numStates="15" blockShapeId="7"/>
    <FoliageSubLayer name="luzerne" densityMapTypeIndex="13" densityMapChannelOffset="5" numDensityMapChannels="4" materialId="65700" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="38;12200;12300;12400;12500;12500;12500;12600;12700" distanceMapUnitSizes="128;128;128;128;128;128;128;128;128" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.2" width="1.4" height=";0.25;0.5;0.9;1;1;1;0.9;0.13" texCoords=";0 0 0.25 0.25;0 0.5 0.25 0.5;0.25 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.5 0 0.25 1;0.75 0 0.25 0.75;0.5 0 0.25 0.144" widthVariance="0" heightVariance="0.2" horizontalPositionVariance="0.5" numStates="9" growthNumStates="7" growthStateTime="1.9e+007"/>
    <FoliageSubLayer name="luzerne_windrow" densityMapTypeIndex="13" densityMapChannelOffset="8" numDensityMapChannels="4" materialId="75100" cellSize="8" viewDistance="80" objectMask="65520" distanceMapIds="50" distanceMapUnitSizes="128" repeatLastDistanceMap="true" atlasSize="1" atlasOffsets="1 0" numBlocksPerUnit="1.2" width="1.3" height="0.4;0.44;0.48;0.52;0.56;0.6;0.64;0.68;0.72;0.76;0.8;0.84;0.88;0.92;0.96" widthVariance="0" heightVariance="0.01" horizontalPositionVariance="0.1" numStates="15" blockShapeId="7"/>

    Wichtig im Bereich FoliageSubLayer:
    In den Zeilen mit rye_windrow oat_windrow klee_windrow und luzerne_windrow den Eintrag bei blockShapeId kontrollieren. In meinem obigen Beispiel ist dies die 7. Diese Zahl muss mit der blockShapeID bei wheat_windrow identisch sein. Sonst sieht die Schwad bescheiden aus (um es mal harmlos auszudrücken).


    Das ist der Abschnitt, der mit folgenden Zeilen beginnt:

    XML
    <InfoLayer name="infoLayer" fileId="36" numChannels="4"/>
            <FoliageMultiLayer densityMapId="37" numChannels="12" numTypeIndexChannels="4">
              <FoliageSubLayer name="wheat" densityMapTypeIndex="1" densityMapChannelOffset="4" numDensityMapChannels="4"

    ACHTUNG: Wenn ihr nach dem Einbau mehr als 12 Früchte habt, muss numChannels="12" in numChannels="16" geändert werden.


    Das war es dann schon.

    Nachdem die map.i3d geändert wurde, die Map einmal mit dem GE laden und speichern. Im Scriptfenster sollten dabei keine Fehler erscheinen.

    Zuletzt muss man dann natürlich bei den Silos und Verkaufsstellen die Früchte und Price Multiplier eintragen:

    Man kann dann auch noch so genannte Material Holder einbauen, dies ist im oben genannten Tutorial von UpdsideDown erklärt. Diese dienen dazu, dass auch die richtigen Füllplanen und Partikelanimationen genutzt werden und nicht die von Weizen und Raps. Da ich auch hier wieder nicht die Besitzrechte der i3d Dateien kenne, habe ich auf das hochladen der Dateien verzichtet.
    Diese sind im Ordner "multiFruit" (Screenshot ganz oben) der "Willkommen in Mecklenburg* zu finden. Ein Beispiel für "oat" ist aber auch beim Tutorial von Upsidedown dabei.


    An dieser Stelle nochmals vielen Dank an Upsidedown für das oben genannte Tutorial.