LUA Error bei Siliermittel Einspritzung

  • Hallo, ich hab mir bei meinem Ladewagen die Funktion von Maurus eingebaut, mit dem zuschaltbaren Siliermittel . Wie beim Mengele.
    Soweit funktioniert alles perfekt.Kann alles kaufen und auch befüllen. Doch sobald ich den Pickup senke und einschalte , kommt beim berühren mit dem gemähten Gras folgender Error:


    Error: Running LUA method 'update'.
    C:/Users/Harry/Documents/My Games/FarmingSimulator2015/mods//strautmann/specializations/SilageAdditives.lua:135: attempt to compare number with nil



    Kann mir evtl jemand sagen was den Fehler verursacht???


    mfg. Basti02

  • In Zeile 135 im Script wird eine Variable verwendet, die eigentlich einen Wert haben sollte, ihn aber nicht besitzt. In lua steht "nil" sozusagen für "nichts". Und irgendwas z.B. durch 0 teilen ist mit einfacher Mathematik nicht möglich.
    Welche Variable das ist und woher der Wert kommen soll, kann ich so nicht sagne, da mir das Script nicht vorliegt. Am besten guckst du dir die besagte Zeile im Script mal an.
    Ich vermute, dass irgendwo ein Index falsch vergeben wurde oder in der Fahrzeug xml ein Eintrag fehlt.

  • Hab mir mal die entsprechenden Zeilen angeguckt und ich würde mal darauf tippen, dass du in der XML des Ladewagen entweder den kompletten folgenden Block oder zumindest das "usedForFillType="grass_windrow"" vergessen hast. ;)



    [lua]<silageAdditives capacity="50" litersPerSecond="0.05" increase="12.5" usedForFillType="grass_windrow"> <particleSystem node="0>13|6" position="0 0 0" rotation="0 0 0" file="particleSystems/silageAdditives.i3d"/></silageAdditives>[/lua]

  • Lua Quellcode1
    <silageAdditives capacity="50" litersPerSecond="0.05" increase="12.5" usedForFillType="grass_windrow"> <particleSystem node="0>13|6" position="0 0 0" rotation="0 0 0" file="particleSystems/silageAdditives.i3d"/></silageAdditives>


    <silageAdditives capacity="50" litersPerSecond="0.05" increase="12.5" usedForFillType="grass_windrow">
    <particleSystem node="0>29|0" position="0 0 0" rotation="0 0 0" file="particleSytems/silageAdditives.i3d"/>
    </silageAdditives>


    genau dass hab ich drin stehen Silas.Lediglich der Index ist ein anderer. In meinem Falle 0>29|0

  • Ich denke, ich hab den Fehler gefunden. In der Zeile 135 findet folgender Vergleich statt:


    [lua]self.showActLoad > 0.1
    [/lua]


    Diese Variable wird allerdings weder vom Standardspiel, noch in der SilageAdditives.lua mit einem Wert "belegt". Dies findet nämlich in der Pickup.lua statt. Da du diese aber ja denke ich nicht eingebunden hast bei deinem Ladewagen, wird die Variable folglich nie belegt und er versucht eine Variable, die den Wert 'nil' trägt, mit einer Zahl zu vergleichen, wodurch der Fehler ausgeschmissen wird.


    D.h. um das ganze zum Laufen zu bringen müsstest du die Pickup.lua mit einbinden oder halt die SilageAdditives.lua entsprechend für den Eigengebrauch anpassen. ;)

  • Ich vermute, dass die Variable self.showActLoad keinen Wert (also nil) hat, da sie in der Pickup.lua von Maurus gesetzt wird.
    Entweder Du nimmst folgendes
    [lua]and self.showActLoad > 0.1[/lua]
    aus der besagten Zeile (135) raus oder änderst es wie folgt
    [lua]and (self.showActLoad == nil or self.showActLoad > 0.1)[/lua]
    ab.
    Bei Variante 1 wird der Teil der Abfrage komplett ignoriert (ausgebaut). Bei Variante 2 wird die Abfrage genutzt, sofern die Variable nicht "nil" ist (nütztlich bei eventuell späterem Einbau der Funktion, dass die Pickup verstopfen kann) und wird im Falle von "nil" einfach übergangen.

  • So JoPi98 evtl kannste mir bei den Messern auch noch kurz unter die Arme greifen:


    Error: Running LUA method 'update'.
    C:/Users/Harry/Documents/My Games/FarmingSimulator2015/mods//strautmann/specializations/ChangeableBlades.lua:108: attempt to compare number with nil


    Hab natürlich wieder alles 1:1 vom Mengele übernommen.

  • Da ist das Problem so ziemlich das gleiche.
    Entweder Du klammerst die Zeilen 108 und 114 mit "--" aus, sodass sie wie folgt
    [lua]--if self.showActLoad > 0.1 then
    --end;[/lua]
    aussehen (alternativ könnte man sie auch löschen, aber so ist es bei späteren Problemen leichter Dir zu helfen) oder Du änderst Zeile 108 so ab:
    [lua]if self.showActLoad == nil or self.showActLoad > 0.1 then[/lua]

  • Hmm egal welche Methode ich anwende ,er bringt mir dann folgendes:
    Error: Running LUA method 'update'.
    C:/Users/Harry/Documents/My Games/FarmingSimulator2015/mods//strautmann_Messer/specializations/ChangeableBlades.lua:111: attempt to perform arithmetic on field 'showActLoad' (a nil value)


    Hab ich evtl irgendwas anderes vergessen?? In der xml hab ja nur den einen Eintrag:


    <changeableBlades blades="35" demolitionFactor="0.00007" strength="1" updateInterval="1000"/>


    und in der Moddesc nur die beiden Blades luas.Indexe im GE gibt es ja in diesem Fall nicht

  • [lua]
    if self.blades.currentUse > 0 then
    if self.isTurnedOn then
    self.blades.timer = self.blades.timer+dt;
    if self.blades.timer >= self.blades.updateInterval then
    self:setCurrentUse(math.max(self.blades.currentUse-(self.blades.demolitionFactor*0.75), 0));
    self.blades.timer = 0;
    end;
    end;
    end;
    [/lua]


    Versuchs mit diesem Code in Zeile 107 bis 115.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!