Rundumleuchte ansprechen

  • Hallo alle, ist es möglich nur eine Rundumlampe anzusprechen. obwohl das fahrzeug 3 besitzt?


    quasi:


    [lua]if x==6 then
    self:setBeaconLightsVisibility[3](true);
    else
    self:setBeaconLightsVisibility[3](false);
    end;
    [/lua]


    ist das möglich?


    Mit freundlichen Grüßen


    schlüter55v

  • ok ich hab mal das mit dem self.Rul3, was mx geschrieben hat versucht, er hat es nicht gemacht, muss das Rul3 etwa mit indextoobject gesetzt werden?


    und noch ne frage, wie kann ich ein objekt um seine eigene achse drehen lassen? (quasi rundumleuchte eigenbau)


    muss ich dann ein event machen, wenn ich ne rul selber bastle, oder nur readstream und wrtiestream?


    ich hoffe ihr wisst weiter.


    Mit freundlichen Grüßen


    schlüter55v

  • Mein script sieht bis jetzt so aus:


    [lua]fullstop = {};


    function fullstop.prerequisitesPresent(specializations)
    return true;
    end;
    function fullstop:load(xmlFile)
    self.Rul1 = Utils.indexToObject(self.components, getXMLString(xmlFile, "vehicle.rul#index"));


    end;
    function fullstop:delete()
    end;
    function fullstop:mouseEvent(posX, posY, isDown, isUp, button)
    end;
    function fullstop:keyEvent(unicode, sym, modifier, isDown)
    end;
    function fullstop:update(dt)
    local f,c = self:getAttachedTrailersFillLevelAndCapacity();
    if f and c ~= nil then
    local prozent = f/c*100;
    if f==c then
    self:stopThreshing();
    end;
    if prozent>96 then
    setVisiblity(self.Rul1, true);
    --self:setBeaconLightsVisibility(true);
    end;
    end;
    end;
    function fullstop:draw()
    end;
    function fullstop:detachImplement(implement)
    --self:setBeaconLightsVisibility(false);
    setVisiblity(self.Rul1, false);
    end;[/lua]


    es zeigt aber in der log nen Fehler:


    Lua: Error running function: mouseEvent
    H:/Dokumente und Einstellungen/peter/Eigene Dateien/My Games/FarmingSimulator2011/mods/s_Case_CHX_420/fullstop.lua(33) : attempt to call global 'setVisiblity' (a nil value)


    was mach ich falsch?

  • :patsch: das ist mir nicht aufgefallen. aber jetzt funktioniert es schonmal halb. Es wird jetzt also die visibillity verändert.


    jetzt muss sie sich nur noch drehen.


    wie kann ich das machen, ich will nämlich das sie einzeln angeht und zwar ohne die anderen.

  • sry hab ich ausm Kopf geschrieben =o


    Also, wie auf dem Bild zusehen, die anderen müssen natürtlich immer aus gebledet sein und die die leuchten soll eingeblendet ;)



    Wenn du das aber so machen möchtest das die wenn z.B. der Füllstand beim Drescher höher ist als *blabla* dann würde ich es einfach so wie beim Original Script machen ;) Also


    [lua]


    if x==6 then
    rotate(self.RUL, 0, 1000, 0)
    setVisiblity(self.Rul3, true)
    else
    rotate(self.RUL, 0, 0, 0)
    setVisiblity(self.Rul3, false)
    [/lua]


    Könnte so richtig sein :D

  • aber wenn ich das jetzt so mache, drehen sich dann bei
    [lua]rotate(self.RUL, 0, 1000, 0)
    [/lua]


    alle?


    und für was sind die 3 parameter 0, 1000, 0 zuständig?


    und für was steht self.RUL, oder meinst du damit das selbe wie


    [lua]setVisiblity(self.Rul3, true)
    [/lua]


    das self.Rul3?


    also meinst du, dass self.RUL = self.Rul3 ist?


    oder zwei verschiedene werte?


    ich hoffe ihr helft mir


    Mit freundlichen Grüßen


    schlüter55v

  • die Lösung von mx ist falsch und wird nicht funktionieren.


    if x==6 then
    ^ wann soll das eintreten ?


    rotate(self.RUL, 0, 1000, 0)
    ^ x,y,z werden im Bogenmaß angegeben. 360° = 2*Pi also rund 6.282. Zielwerte sollten hier eher in der Region unter 1 liegen.


    setVisiblity(self.Rul3, true)
    ^ ist nicht wirklich sinnvoll ein Objekt 20x pro Sekunde sichtbar zu schalten.
    auch ist es nicht nötig die rul permanent auf 0 zu rotieren wenn sie nicht rotiert werden soll.


    Ich habe hier absichtlich nichts weiter gepostet weil ich scheinbar ein hellseherisches Talent habe...
    Angenommen hier kommt die richtige Lösung - was wird als nächstes gefragt werden? "Wie mache ich das dann Multiplayertauglich?"


    für LS09 gabs ein überschaubar einfaches Script von mir - die rundumleuchten.lua - war in vielen Mods verbaut. Das was du vor hast ist im Grunde eine 1:1 Kopie dieser spezi - also kopier sie halt 1:1.

  • noch ein Vorschlag am Rande...
    wenn der Drescher mit BeleuchtungV3 ausgestattet ist , hast du noch eine Alternative. Du löst das ganze mit einer Kombination von BeleuchtungV3 und toggleAnimatedParts.


    In der neuen Version von toggleAnimatedParts hab ich eine Funktion eingebaut , die ein Objekt permanent rotieren kann und eine Funktion die die Bewegung startet wenn eine andere Aktion ausgelöst wurde. Du kannst also die Koronen der Rundumleuchten als Arbeitslichter definieren und die Rotationskörper als animParts mit der Option permRotAxis="2" und listenTo="rul1"


    da mein Script keine komplexen Variablen überwachen kann , sondern nur sowas wie self.rul2 , müsste noch ein kleines Script her , welches die Variable setzt. Einfach in den UpdateTick() bereich eines Scripts
    self.rul1 = self.B3.wl[1].a;
    self.rul2 = self.B3.wl[2].a;
    self.rul3 = self.B3.wl[3].a;
    falls die 3 Rundumleuchten die ersten 3 Arbeitslichter sind.

  • ok alle, vielen dank für eure hilfe.


    Sven777b deine helsehertalente sind fabelhaft, dass mit dem Multiplayerfäihg wäre meine nächste frage gewesen :D . nur noch eine Frage.
    was ist bzw. wo bekomme ich das toggleanimatedParts script (her)?


    dann hätte ich noch ne Frage, wie kann ich abfragen, ob die original rundumleuchten an sind?


    Mit freundlichen Grüßen


    schlüter55v

Jetzt mitmachen!

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