Farbänderung abhängig vom Inhalt/Filltype

In so genannten "Bilder/Hilfethreads" dürfen keine Bilder auf den Server von FBM hochgeladen werden.
Durch die hohe Anzahl an Bildern die täglich eingestellt werden ist eine baldige Serverauslastung vorauszusehen.
Da wir dies nicht kompensieren können und auch keine Bilder oder ganze Threads löschen möchten,
bitten wir euch auch in Zukunft die Bilder bei "Fremdhostern" einzustellen.
Wir empfehlen: https://de.imgbb.com/
  • Hallo zusammen,

    gibt es eine Möglichkeit oder kennt vielleicht jemand sogar eine, wie ich die Farbe eines Teils ändere und das in Abhängigkeit vom FillType?

    Beispiel Bredal K165: ist Dünger drin, ist der Deckel gelb (Default) und bei Kalk wird er weiß

    Ich vermute, das es nur per Skript gebt aber konnte diesbzgl. leider nichts finden.

  • Administrator 26. April 2023 um 10:46

    Hat das Label Ls22 hinzugefügt.
  • Administrator 26. April 2023 um 10:46

    Hat das Label Offen hinzugefügt.
  • Da hast die Antwort doch mitgeliefert.

    Wenn das beim Bredal165 mit dem Deckel so läuft, müsste in der moddesc oder FahrzeugXML doch irgendwo ein Verweis oder Aufruf zu einem Script oder sowas zu finden sein...

    Aber ich schaue mir das mal an...

    Ich bin für das verantwortlich, was ich sage oder schreibe.

    Ich bin nicht für das verantwortlich, was Du verstehst!

  • In der k165.xml steht ab Zeile 39:

    <configurationSets title="$l10n_configuration_extension">

    <configurationSet name="$l10n_configuration_valueNone">

    <configuration name="fillVolume" index="1"/>

    <configuration name="fillUnit" index="1"/>

    <configuration name="cover" index="1"/>

    </configurationSet>

    <configurationSet name="$l10n_configuration_extension">

    <configuration name="fillVolume" index="2"/>

    <configuration name="fillUnit" index="2"/>

    <configuration name="cover" index="2"/>

    </configurationSet>

    </configurationSets>

    und weiter unten ab Zeile 629:

    <coverConfigurations>

    <coverConfiguration name="$l10n_configuration_valueNo" price="0"/>

    <coverConfiguration name="$l10n_configuration_valueYes" price="2500">

    <cover openAnimation="toggleCover" fillUnitIndices="1"/>

    <objectChange node="coverMounting" visibilityInactive="false" visibilityActive="true"/>

    <objectChange node="cover_hoses" visibilityInactive="false" visibilityActive="true"/>

    </coverConfiguration>

    </coverConfigurations>

    </cover>

    Das müsste es doch sein, oder ich bin jetzt on the woodway...

    Ich bin für das verantwortlich, was ich sage oder schreibe.

    Ich bin nicht für das verantwortlich, was Du verstehst!

  • Der K165 war nur ein Beispiel, wie ich es gerne hätte ;)
    Er kann Mineraldünger und Kalk. Ist er leer oder Dünger drin, soll der Deckel gelb sein (seine Defaultfarbe).
    Fülle ich allerdings Kalk ein, soll der Deckel sich weiß färben. Mache ich ihn leer, wird er wieder gelb.

  • Das einfachste wäre doch, je gewünschter Farbe ein Objekt im GE zu haben.

    Dann brauchst nur noch je nach fillType das passende ein- und die anderen per objectChange auszublenden

    Genau DAS ist die Voraussetzung für den Code, den ich gepostet habe.

    Aber das sollte eigentlich klar sein!

    Wenn nicht, Pech gehabt und erst mal Hausaufgaben machen...

    Ich bin für das verantwortlich, was ich sage oder schreibe.

    Ich bin nicht für das verantwortlich, was Du verstehst!

  • Meiner Meinung nach macht der obige code genau das...

    Ob das nun ums cover oder sonstwas geht, ist dabei shietegal...

    Ich kann doch jede belibige Node definieren und die Farbänderung oder das Label konfigurieren.

    Ich bin für das verantwortlich, was ich sage oder schreibe.

    Ich bin nicht für das verantwortlich, was Du verstehst!

  • So was würde nur per Skript gehen, aber es gibt da von Giants was

    Code
    <fillTypeMaterials>
    <material fillType="string" node="node" refNode="node"/>
    </fillTypeMaterials>

    Damit kann man das Material abhängig vom Filltype in der XML einstellen.

    Es ist aber notwendig, dass man die anderen Nodes mit einem Filltype auch in der i3d hat.

    Man könnte sich aber per subnodes oder wie das hieß eine eigenen I3D mit unsichtbaren nodes so was in eine vorhandene i3d laden und diese dann benutzen, denke ich

    Vielleicht ist das ein Ansatz ohne Skripte, solange eine fillunit kein objectChange hat

  • Ich denke, es wird auf Skript hinauslaufen und ich werde mir das von LSFM noch mal anschauen, was sie im Universal Tank-Pack verbaut haben.

    Allerdings manipuliert es nur die Sichtbarkeit von Schildern, wenn ich das richtig gesehen habe, aber vielleicht lässt sich das Ändern eines Values für die Farbe umschreiben.

  • Hat es denn einen bestimmten Grund, warum es auf Zwang NICHT mit Anpassungen der i3d passieren soll?

    Denn sowas extra per script zu machen, wirkt zumindest nicht grad passender.

    Egal.....

    müsste dann ansatzweise in die Richtung gehen

  • Ich nutze hauptsächlich Vanilla-Fahrzeuge & -geräte und passe mir lediglich die Farben und andere Werte in den XML an. Die i3d ist also die aus dem Spiel.
    Das macht es mir bei Updates einfacher und ich bin so nicht auf Modder angewiesen.

    Danke schon mal, ich werde es mal testen und mich dann wieder melden

  • Vielleicht nur ein kleiner Fehler, aber ich komme nicht weiter... :/

    Ich habe folgendes in die moddesc.xml eingefügt:

    Code
    <specializations>
         <specialization name="K165Deckel" className="K165Deckel" filename="_scripts/K165.lua" /><!-- Deckelfarbe -->
    </specializations>
    
    <vehicleTypes>
       <type name="spreaderK165" parent="spreader" className="Vehicle" filename="$dataS/scripts/vehicles/Vehicle.lua">
        <specialization name="K165Deckel" />
      </type>
    </vehicleTypes>

    Die K165.lua habe ich mal als Textdatei angehangen. Die Logs "nix1" und "nix2" werden ausgegeben, aber das war es dann auch. Daher vermute ich, das was mit der Registrierung der Specialization nicht stimmt, aber was?

  • Vielleicht kommst du damit auf die schliche

    Kommt denn sonst was in der log?

  • Ich habe mal ein K165 ins Log geschrieben, aber außer diesen 3 Zeilen kommt nichts:

    Code
    2023-04-27 22:03  K165 prerequisitesPresent OK
    2023-04-27 22:03  K165 registerEventListeners OK
    2023-04-27 22:03  K165 registerEventListeners OK

    Ansonsten kommt nix. Er springt weder in onLoad noch in onUpdate rein.

  • Ich bin einen Schritt weiter, nachdem ich in meiner K165.xml in der 2. Zeile folgendes eingetragen habe und auch in der moddes.xml verwende:

    Code
    <vehicle type="K165spreader" ...

    Problem ist nun, das er in onUpdate einen Parameter nicht erhält:

    Code
    2023-04-27 22:52  K165 onUpdate...
    2023-04-27 22:52  K165 Set color: Green
    2023-04-27 22:52 Warning (script): 'setShaderParameter': Argument 1 has wrong type. Expected: String. Actual: Nil 

    Ich hab die LUA wieder als TXT angehangen.

  • das shaderParameter muss wohl in ""

  • Ah, klar, weil er es sonst für eine Variable hält. Nun spammt er zwar das Log voll, auch mit den korrekten Einträgen aber ändert die Cover-Farbe leider nicht.

    Das aber nirgendswo beschrieben ist, was da hinkommt...
    Im GDN steht nur: setShaderParameter(integer shapeId, string parameterName, float x, float y, float z, float w, boolean shared)

    GDN {GIANTS Developer Network}

    Ich habe die Zeile für "leer" mal so angepasst:

    Code
    setShaderParameter(self.K165Deckel.deckelNode, "colorMat0", 0, 1, 0, 27)

    Was nun ganz spannend ist, da er nun die Farbe eines anderen Vanilla-Hängers ändert, während ich in meinem mit dem Mondanhänger den Inhalt ändere :/

    I w a n 1 8 0 3

    Zocker, Streamer & CM vom AutoDrive-Team

    2 Mal editiert, zuletzt von Iwan1803 (28. April 2023 um 00:37)