moddesc in lua laden

  • Hallo Script-Experten! :D



    Ich wollte gerade ein Script machen, welches ein paar Einträge aus der moddesc ausliest (z.B. den Shop-Namen). Ich habs schon versucht, aber wenn ich das Script drin hatte, kam beim laden des Fahrzeugs immer "Giants Engine 6.0 funktioniert nicht mehr" oder ähnlich.


    PS: Das Script wird direkt in den Trecker eingebaut. Ist also nicht global.


    Kann mir da jemand helfen und einen Code schreiben?


    MfG

  • Der Lernerfolg ist bei solchen Sachen eher gering wenn jemand anders ein Fertiges Script für eine Funktion schreibt, dies ist auch nicht der Sinn dieses Bereiches.


    Besser du stellst / lädst die lua hier rein und andere können die Fehler aufzeigen und dir Tipps bei der Lösung des Problems geben.

  • also, ich hätte es schon im Startpost machen wollen... doch dann bemerkte ich, dass ich die lua schon wieder bearbeitet hab und jetzt wieder anders ist und so .. :D naja, ich schreibs trotzdem mal:
    [expander][lua]fendt310LSA = {};
    fendt310LSA.modDir = g_currentModDirectory;


    function fendt310LSA.prerequisitesPresent(specializations)
    print("......LOADING FENDT FARMER 310 LSA BY RIVALBOMB......");
    return SpecializationUtil.hasSpecialization(Motorized, specializations);
    end;


    function fendt310LSA:load(xmlFile)

    -- INTERNAL SOUND --
    [...]



    local path = fendt310LSA.modDir;

    local Xml;
    if path ~= nil then
    local file = path.."modDesc.xml";
    end;

    if fileExists(file) then
    Xml = loadXMLFile("modDesc", file);
    end;

    self.Fendt310author = Utils.getNoNil(getXMLString(Xml, "moddesc.author"), "Rival");
    self.Fendt310modNameDE = Utils.getNoNil(getXMLString(Xml, "moddesc.title.de"), "Trecker");
    self.Fendt310modNameEN = Utils.getNoNil(getXMLString(Xml, "moddesc.title.en"), "Trecker");
    self.Fendt310vehicleType = Utils.getNoNil(getXMLString(Xml, "moddesc.vehicleTypes.type#name"), "Trecker");
    self.Fendt310storeNameDE = Utils.getNoNil(getXMLString(Xml, "moddesc.storeItems.storeItem.name.de"), "Trecker");
    self.Fendt310storeNameEN = Utils.getNoNil(getXMLString(Xml, "moddesc.storeItems.storeItem.name.en"), "Trecker");
    end;[/lua][/expander]


    im update-teil steht auch schon bisschen was davon (also von den Variablen), aber das war eigentlich nicht das problem
    ich hab das laden auch schon in einer extra-function gemacht, aber selbes problem.

  • Das ist nicht die komplette LUA oder? Sonst wäre das das Problem...


    Ansonsten, hast du schon probiert ob die XML überhaupt geladen wird?
    Sprich..


    [lua]
    local Xml;
    if path ~= nil then
    local file = path.."modDesc.xml";
    print("Path ~= nil");
    end;

    if fileExists(file) then
    Xml = loadXMLFile("modDesc", file);
    print("file exists");
    end;
    [/lua]


    Abgesehen davon solltest du die Abfragen der XML auch nur aufrufen wenn die XML wirklich existiert..
    Sprich


    [lua]
    if fileExists(file) then
    Xml = loadXMLFile("modDesc", file);
    print("file exists");
    self.Fendt310author = Utils.getNoNil(getXMLString(Xml, "moddesc.author"), "Rival");
    self.Fendt310modNameDE = Utils.getNoNil(getXMLString(Xml, "moddesc.title.de"), "Trecker");
    self.Fendt310modNameEN = Utils.getNoNil(getXMLString(Xml, "moddesc.title.en"), "Trecker");
    self.Fendt310vehicleType = Utils.getNoNil(getXMLString(Xml, "moddesc.vehicleTypes.type#name"), "Trecker");
    self.Fendt310storeNameDE = Utils.getNoNil(getXMLString(Xml, "moddesc.storeItems.storeItem.name.de"), "Trecker");
    self.Fendt310storeNameEN = Utils.getNoNil(getXMLString(Xml, "moddesc.storeItems.storeItem.name.en"), "Trecker");
    end;
    [/lua]


    Edit: Was mir gerade noch aufgefallen ist..
    local file wird ja nur im if path ~= nil Block definiert, sprich außerhalb existiert die gar nicht. Somit dürfte auch fileExists nichts auswerfen..
    Was am Ende vermutlich dazu führt dass er die getXMLString Aufrufe mit einer nicht vorhandenen XML ausführen will was dann zu Giants Engine bla bla führt..
    Soweit meine Theorie :D


    LG

  • also den Pfad hab ich ausgeben lassen, mit print(file);


    mehr hab ich allerdings noch nicht ausgeben lassen... werde aber das von dir gleich mal versuchen..



    PS: Nö, ist nicht die ganze lua



    EDIT: Habe jetzt mal testweise den inhalt des update-teils auskommentiert, jetzt funktionierts! lol... :D
    Lag wohl doch am indoorsound :patsch:


    Edit 2: als ich jetzt den ganzen update-teil wieder eingefügt hab, funktionierte es immernoch :D fail. Vielleicht hab ich da auch noch irgendwas geändert zwischendurch wo ich mich aber nicht mehr dran erinnern kann xD




    Edit 3: Ein anderer Script-Fehler, welcher mich schon die ganze Zeit verfolgt (bei mehreren Scripten):

    Zitat

    Warning (LUA): Argument to method 'setSampleVolume' is not a string, and not nil
    -- from =C:/Users/User/Documents/My Games/FarmingSimulator2015/mods//FendtFarmer310LSA/scripts/fendt310LSA.lua:122

    in dieser Zeile steht:
    [lua]setSampleVolume(self.sampleMotorRun, rpmVolume);[/lua]


    Edit 4 (schon viele Edits ..): Durch hinzufügen von ".sample" habe ich den Fehler behoben :D

Jetzt mitmachen!

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