1. Dashboard
  2. News
  3. Forum
  4. Filebase Fs25
    1. Neue Dateien
    2. FBM Team Fs25
  5. Filebase Fs22
    1. Neue Dateien
    2. FBM Team Fs22
  6. Filebase Fs19
    1. FBM Team Fs19
  7. Streaming-Partner 2
  8. Mediathek
    1. Alben
    2. Videokanäle
  9. Support Discords
  10. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Dateien
  • Bilder
  • Videos
  • Erweiterte Suche
  1. Forbidden Mods - einfach verboten gut
  2. Support und Hilfe
  3. User helfen Usern
  4. Hilfe Ls22

Farbänderung abhängig vom Inhalt/Filltype

    • Offen
    • Ls22
  • Iwan1803
  • 26. April 2023 um 09:58
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/
  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 26. April 2023 um 09:58
    • #1

    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.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • 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.
  • Zoneguard
    Reaktionen
    47
    Trophäen
    2
    Beiträge
    92
    • 26. April 2023 um 15:54
    • #2

    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!

  • Zoneguard
    Reaktionen
    47
    Trophäen
    2
    Beiträge
    92
    • 26. April 2023 um 16:02
    • #3

    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!

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 26. April 2023 um 16:57
    • #4

    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.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • da-hoffi
    • V.I.P
    Reaktionen
    28
    Trophäen
    3
    Beiträge
    64
    Bilder
    2
    • 26. April 2023 um 18:01
    • #5

    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

  • Zoneguard
    Reaktionen
    47
    Trophäen
    2
    Beiträge
    92
    • 26. April 2023 um 18:03
    • #6
    Zitat von da-hoffi

    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!

  • da-hoffi
    • V.I.P
    Reaktionen
    28
    Trophäen
    3
    Beiträge
    64
    Bilder
    2
    • 26. April 2023 um 19:25
    • #7

    Mir war nicht klar, dass du das dynamisch willst.

    Dann guck mal bspw hier und guck in der xml nach <fillTypeMaterials>

  • Zoneguard
    Reaktionen
    47
    Trophäen
    2
    Beiträge
    92
    • 26. April 2023 um 21:37
    • #8

    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!

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 02:29
    • #9

    Ich suche nach etwas, was ohne i3d-Manipulation auskommt. Wenn es nicht anders geht, dann auch per LUA-Skript.
    Also einfach das VALUE von shaderParameter der Abdeckung auszutauschen, je nach Art des aktuellen fillType.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • Achimobil
    • V.I.P
    • Streaming Partner
    Reaktionen
    1.409
    Trophäen
    8
    Beiträge
    233
    Dateien
    29
    Bilder
    40
    Videos
    48
    • 27. April 2023 um 07:26
    • #10

    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

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 08:44
    • #11

    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.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • da-hoffi
    • V.I.P
    Reaktionen
    28
    Trophäen
    3
    Beiträge
    64
    Bilder
    2
    • 27. April 2023 um 13:37
    • #12

    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

    Code
    self.deckelNode = I3DUtil.indexToObject(self.components, "deckel_vis", self.i3dMappings);
    
    
    
    if self:getFillUnitLastValidFillType(1) == FillType.LIME then
        setShaderParameter(self.deckelNode, colorMat0, 1, 0, 0, 0) --rot
    elseif self:getFillUnitLastValidFillType(1) == FillType.LIQUIDFERTILIZER then
        setShaderParameter(self.deckelNode, colorMat0, 0, 1, 0, 0) --gruen
    elseif self:getFillUnitLastValidFillType(1) == FillType.HERBICIDE then
        setShaderParameter(self.deckelNode, colorMat0, 0, 0, 1, 0) --blau
    elseif self:getFillUnitLastValidFillType(1) == FillType.FERTILIZER then
        setShaderParameter(self.deckelNode, colorMat0, 0, 0, 0, 0) --weiss
    end
    Alles anzeigen
  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 14:57
    • #13

    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

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 16:39
    • #14

    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?

    Dateien

    K165.txt 2,1 kB – 4 Downloads

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • da-hoffi
    • V.I.P
    Reaktionen
    28
    Trophäen
    3
    Beiträge
    64
    Bilder
    2
    • 27. April 2023 um 21:22
    • #15

    Vielleicht kommst du damit auf die schliche

    Code
    K165Deckel = {};
    
    function K165Deckel.prerequisitesPresent(specializations)
        log("prerequisitesPresent OK")
        return SpecializationUtil.hasSpecialization(FillUnit, specializations);
    end;
    
    function K165Deckel.registerEventListeners(vehicleType)
        for _, spec in pairs({"onLoad", "onUpdate"}) do
            SpecializationUtil.registerEventListener(vehicleType, spec, K165Deckel)
            log("registerEventListeners OK")
        end
    end
    
    function K165Deckel:onLoad(savegame)
        self.K165Deckel = {}
        self.K165Deckel.deckelNode = I3DUtil.indexToObject(self.components, "coverFoil", self.i3dMappings);
        
        log("onLoad OK")
    end;
    
    function K165Deckel:onUpdate(dt)
    
        if self:getFillUnitLastValidFillType(1) == FillType.LIME then
            log("Set color: White")
            setShaderParameter(self.K165Deckel.deckelNode, colorMat27, 0, 0, 0, 0) --weiss
        elseif self:getFillUnitLastValidFillType(1) == FillType.LIQUIDFERTILIZER then
            log("Set color: Green")
            setShaderParameter(self.K165Deckel.deckelNode, colorMat27, 0, 1, 0, 0) --gruen
        elseif self:getFillUnitLastValidFillType(1) == FillType.HERBICIDE then
            log("Set color: Blue")
            setShaderParameter(self.K165Deckel.deckelNode, colorMat27, 0, 0, 1, 0) --blau
        elseif self:getFillUnitLastValidFillType(1) == FillType.FERTILIZER then
            log("Set color: Green")
            setShaderParameter(self.K165Deckel.deckelNode, colorMat27, 0, 1, 0, 0) --gruen
        else
            log("Set color: Red")
            setShaderParameter(self.K165Deckel.deckelNode, colorMat27, 1, 0, 0, 0) --rot
        end
    end;
    Alles anzeigen

    Kommt denn sonst was in der log?

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 22:35
    • #16

    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.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 27. April 2023 um 22:58
    • #17

    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.

    Dateien

    K165.txt 1,75 kB – 1 Download

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

  • da-hoffi
    • V.I.P
    Reaktionen
    28
    Trophäen
    3
    Beiträge
    64
    Bilder
    2
    • 27. April 2023 um 23:18
    • #18

    das shaderParameter muss wohl in ""

    Code
    K165Deckel = {};
    
    function K165Deckel.prerequisitesPresent(specializations)
        log("K165 prerequisitesPresent OK")
        return SpecializationUtil.hasSpecialization(FillUnit, specializations);
    end;
    
    function K165Deckel.registerEventListeners(vehicleType)
        log("K165 registerEventListeners...")
        for _, spec in pairs({"onLoad", "onUpdate"}) do
            SpecializationUtil.registerEventListener(vehicleType, spec, K165Deckel)
            log("K165 registerEventListeners OK: ", spec)
        end
    end
    
    function K165Deckel:onLoad(savegame)
        log("K165 onLoad...")
        self.K165Deckel = {}
        self.K165Deckel.deckelNode = I3DUtil.indexToObject(self.components, "coverFoil", self.i3dMappings);
        log("K165 onLoad OK")
    end;
    
    function K165Deckel:onUpdate(dt)
        log("K165 onUpdate...")
        if self:getFillUnitLastValidFillType(1) == FillType.LIME then
            log("K165 Set color: White")
            setShaderParameter(self.K165Deckel.deckelNode, "colorMat27", 0, 0, 0, 0) --weiss
        elseif self:getFillUnitLastValidFillType(1) == FillType.LIQUIDFERTILIZER then
            log("K165 Set color: Green")
            setShaderParameter(self.K165Deckel.deckelNode, "colorMat27", 0, 1, 0, 0) --gruen
        elseif self:getFillUnitLastValidFillType(1) == FillType.HERBICIDE then
            log("K165 Set color: Blue")
            setShaderParameter(self.K165Deckel.deckelNode, "colorMat27", 0, 0, 1, 0) --blau
        elseif self:getFillUnitLastValidFillType(1) == FillType.FERTILIZER then
            log("K165 Set color: Green")
            setShaderParameter(self.K165Deckel.deckelNode, "colorMat27", 0, 1, 0, 0) --gruen
        else
            log("K165 Set color: Red")
            setShaderParameter(self.K165Deckel.deckelNode, "colorMat27", 1, 0, 0, 0) --rot
        end
    end;
    Alles anzeigen
  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 28. April 2023 um 00:14
    • #19

    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 & Community Manager vom AutoDrive-Team

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

  • Iwan1803
    Reaktionen
    968
    Beiträge
    225
    Dateien
    20
    • 3. Mai 2023 um 11:56
    • #20

    Ich geb auf. Entweder übersehe ich etwas, aber ich hab keine Ahnung was.
    Mein Mod-Anhänger verändert sich nicht, aber steht ein Vanilla da, dann wir da die Farbe geändert und stehen mehrere da, verändern sie alle die Farbe.

    I w a n 1 8 0 3

    Zocker, Streamer & Community Manager vom AutoDrive-Team

Tags

  • ls22
  • modding

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Cookie-Richtlinie
  3. Nutzungsbedingungen
  4. Impressum
  5. Kontakt
Community-Software: WoltLab Suite™
Design by Forbidden-Mods.de