BaleToManure Script funktioniert nicht

  • Hallo zusammen,


    ich spiele derzeit die Langburg Map v2. Hier hat der Modder das BaleToManure Script von Rafftnix eingebaut und es funktioniert auch 1a.
    Da ich aber kein freund vom Misthaufen bin, sondern viel Gülle auf die Felder fahre, möchte ich lieber Ballen zu Gülle machen.
    Das Script habe ich mir schon angesehen, bzw. einige Versuche gestartet es dazu zu bewegen, das es mir aus Ballen Gülle macht ... leider ohne Erfolg.
    Kann mir hier jemand evtl. dabei helfen das so zum laufen zu bringen?


    Hier der org. Code:


    [lua]-- BaleToManure Skript by rafftnix
    -- author: rafftnix
    -- date: 29.07.2012
    -- Keine Veränderung ohne meine Erlaubnis!
    -- No modification without my permission!
    -- release history:
    -- v 1.0 (August 2012)


    BaleToManure = {}
    local BaleToManure_mt = Class(BaleToManure, Object);


    print("BaleToManure v1.0 by rafftnix loaded");


    function baleToManureOnCreate(id)
    local trigger = BaleToManure:new(g_server ~= nil, g_client ~= nil);
    local index = g_currentMission:addOnCreateLoadedObject(trigger);
    trigger:load(id);
    trigger:register(true);
    end;


    g_onCreateUtil.addOnCreateFunction("baleToManureOnCreate", baleToManureOnCreate);


    function BaleToManure:new(isServer, isClient)
    local self = Object:new(isServer, isClient, BaleToManure_mt);
    self.className = "BaleToManure";
    return self;
    end;


    function BaleToManure:delete()
    removeTrigger(self.triggerId);
    end;


    function BaleToManure:load(id)
    self.triggerId = id;
    self.massPerBale = getUserAttribute(id, "massPerBale");
    addTrigger(self.triggerId, "triggerCallback", self);
    end;


    function BaleToManure:update(dt)

    end;


    function BaleToManure:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay, otherShapeId)
    if g_server ~= nil then
    local object = g_currentMission:getNodeObject(otherId);
    if object ~= nil and object:isa(Bale) then
    if not (object.isAttached ~= nil and object.isAttached) then
    object:delete();
    g_currentMission:setSiloAmount(Fillable.FILLTYPE_MANURE, g_currentMission:getSiloAmount(Fillable.FILLTYPE_MANURE) + self.massPerBale);
    end;
    end;
    end;
    end;[/lua]


    Und hier meine geänderte Version:


    [lua]-- BaleToManure Skript by rafftnix
    -- author: rafftnix
    -- date: 29.07.2012
    -- Keine Veränderung ohne meine Erlaubnis!
    -- No modification without my permission!
    -- release history:
    -- v 1.0 (August 2012)


    BaleToManure = {}
    local BaleToManure_mt = Class(BaleToManure, Object);


    print("BaleToManure v1.0 by rafftnix loaded");


    function baleToManureOnCreate(id)
    local trigger = BaleToManure:new(g_server ~= nil, g_client ~= nil);
    local index = g_currentMission:addOnCreateLoadedObject(trigger);
    trigger:load(id);
    trigger:register(true);
    end;


    g_onCreateUtil.addOnCreateFunction("baleToManureOnCreate", baleToManureOnCreate);


    function BaleToManure:new(isServer, isClient)
    local self = Object:new(isServer, isClient, BaleToManure_mt);
    self.className = "BaleToManure";
    return self;
    end;


    function BaleToManure:delete()
    removeTrigger(self.triggerId);
    end;


    function BaleToManure:load(id)
    self.triggerId = id;
    self.massPerBale = getUserAttribute(id, "massPerBale");
    addTrigger(self.triggerId, "triggerCallback", self);
    end;


    function BaleToManure:update(dt)

    end;


    function BaleToManure:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay, otherShapeId)
    if g_server ~= nil then
    local object = g_currentMission:getNodeObject(otherId);
    if object ~= nil and object:isa(Bale) then
    if not (object.isAttached ~= nil and object.isAttached) then
    object:delete();
    g_currentMission:setSiloAmount(Fillable.FILLTYPE_LIQUIDMANURE, g_currentMission:getSiloAmount(Fillable.FILLTYPE_LIQUIDMANURE) + self.massPerBale);
    end;
    end;
    end;
    end;[/lua]


    Ich habe lediglich ganz unten "Fillable.FILLTYPE_MANURE" in "Fillable.FILLTYPE_LIQUIDMANURE" geändert. Nur funktionieren tut es leider nicht. Wo liegt mein Fehler?


    Gruß Hobbybauer

  • Danke für die schnelle Antwort.
    Das script ist für ls13 und es funktioniert auch im org. Zustand. Meine log ist sauber. Keine CallStacks oder lua Errors.........
    Irgendwie muss das doch machbar sein.
    Vieleicht liest ja der Autor hier mit und kann mir einen Tipp geben.


    Gruß Hobbybauer

  • Klar kann ich das.....
    Wenn ich das script original einsetze, bekomme ich beim abladen der ballen Mist, wenn ich es jedoch geändert einbaue, also mit dem filltype liquidManure, bekomme ich nichts.
    Nichts heißt, die Ballen werden zwar gelöscht, aber in der Güllegrube kommt nichts an. Die log zeigt mir auch keine Fehler an. Die ballen sind einfach weg.


    Gruß Hobbybauer

  • So ... das Problem ist gefunden!
    Es lag schlicht und einfach daran, das auf der Map kein Objekt existierte, das den "fillType liquidManure" hatte. Nachdem ist jetzt ein leicht modifiziertes Güllebecken eingebaut habe, läuft alles wie gewünscht.
    Das Thema kann somit geschlossen werden!


    Gruß
    Hobbybauer

Jetzt mitmachen!

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