richtungsanzeiger

  • bin jetzt mal den anderen weg gegangen um mein ziel zu erreichen


    local x,y,z = localDirectionToWorld(self.rootNode, 0, 0, 1);
    local length = Utils.vector2Length(x,z);
    local dX = x/length
    local dZ = z/length


    local Richtung = math.deg(math.atan2(dX,dZ))


    if Richtung < 0 then
    Richtung = 360 - (Richtung * -1)
    end
    self.KompassX = dX
    self.KompassZ = dZ
    renderText(0.85,0.8,0.03,string.format("Richtung: %d ",360 - Richtung ));


    am ende der DRAW-sektion in der xerion.lua



    function AITractor:draw()
    if not g_currentMission.disableTractorAI then
    if self.aiLeftMarker ~= nil and self.aiRightMarker ~= nil and self.aiBackMarker ~= nil then
    if self.isAITractorActivated then
    g_currentMission:addHelpButtonText(g_i18n:getText("DismissEmployee"), InputBinding.TOGGLE_AI);
    else
    g_currentMission:addHelpButtonText(g_i18n:getText("HireEmployee"), InputBinding.TOGGLE_AI);
    if self.aiTractorDirectionX and self.aiTractorDirectionZ then
    g_currentMission:addHelpButtonText(g_i18n:getText("AIcourse"), InputBinding.AI_COURSE)
    if InputBinding.hasEvent(InputBinding.AI_COURSE) then
    self.aiTractorDirectionX = nil;self.aiTractorDirectionZ = nil
    end
    end;end
    if self.KompassX and self.KompassZ then
    g_currentMission:addHelpButtonText(g_i18n:getText("Kompass"), InputBinding.KOMPASS)
    if InputBinding.hasEvent(InputBinding.KOMPASS) then
    self.aiTractorDirectionX = self.KompassX;self.aiTractorDirectionZ = self.KompassZ
    end;end
    end;
    end;
    end;


    so sollte die DRAW-sektion in der AIUpdate.lua aussehen


    <modDesc descVersion="1">
    <author>Micha381</author>
    <version>1.0</version>
    <l10n>
    <text name="AIcourse">
    <en>delete AI Course</en>
    <de>AI Kurs löschen </de>
    </text>
    <text name="Kompass">
    <en>Copy Compass</en>
    <de>Kompass kopieren </de>
    </text>
    </l10n>
    <extraSourceFiles>
    <sourceFile filename="AIUpdate.lua" />
    <sourceFile filename="tankSaving.lua" />
    </extraSourceFiles>
    <inputBindings>
    <input name="AI_COURSE" key="KEY_0" button="" />
    <input name="KOMPASS" key="KEY_k" button="" />
    </inputBindings>
    </modDesc>


    und so die modDesc des AIUpdates aussehen


    für verbesserungen bin ich offen

  • uih, das klingt ja recht komliziert, wenn ich das ganze jetzt in meine Lexion600 einbinden möchte :D
    Da die ja eine eigene AILexion600Combine.LUA haben.


    Vielleicht versuch ich mich mal daran das ganze da rein zu basteln, allerdings hab ich verdammt wenig ahnung vom "scripten", mein wissen reicht um die Tasten belegung zu ändern wenn in einem Mod die tasten nicht in der moddesc zu ändern sind, aber mehr ahnung hab ich eigentlich nicht :D


    OK ich hab in die Lexion600 immerhin schon eine Füllstandsanzeige eingebaut, aber das ist auch überhaupt kein problem gewesen :P

  • ich habs jetzt alles in der AIUpdate.lua zusammengefasst:


    function AITractor:draw()
    if not g_currentMission.disableTractorAI then
    if self.aiLeftMarker ~= nil and self.aiRightMarker ~= nil and self.aiBackMarker ~= nil then
    if self.isAITractorActivated then
    g_currentMission:addHelpButtonText(g_i18n:getText("DismissEmployee"), InputBinding.TOGGLE_AI);
    else
    g_currentMission:addHelpButtonText(g_i18n:getText("HireEmployee"), InputBinding.TOGGLE_AI);
    if self.aiTractorDirectionX and self.aiTractorDirectionZ then
    g_currentMission:addHelpButtonText(g_i18n:getText("AIcourse"), InputBinding.AI_COURSE)
    if InputBinding.hasEvent(InputBinding.AI_COURSE) then
    self.aiTractorDirectionX = nil;self.aiTractorDirectionZ = nil
    end
    end;end
    if self.KompassX and self.KompassZ then
    g_currentMission:addHelpButtonText(g_i18n:getText("Kompass"), InputBinding.KOMPASS)
    if InputBinding.hasEvent(InputBinding.KOMPASS) then
    self.aiTractorDirectionX = self.KompassX;self.aiTractorDirectionZ = self.KompassZ
    end;end
    end;
    end;
    local x,y,z = localDirectionToWorld(self.rootNode, 0, 0, 1);
    local length = Utils.vector2Length(x,z);
    local dX = x/length
    local dZ = z/length


    local Entfernung = math.sqrt(dX * dX + dZ * dZ)
    local Richtung = math.deg(math.atan2(dX,dZ))



    if Richtung < 0 then
    Richtung = 360 - (Richtung * -1)
    end



    renderText(0.85,0.77,0.03,string.format("Richtung: %f ",360 - math.floor(Richtung + 0.5) ));


    self.KompassX = Entfernung * math.sin(math.rad( math.floor(Richtung + 0.5)) )
    self.KompassZ = Entfernung * math.cos(math.rad( math.floor(Richtung + 0.5)) )


    end;


    einfach die gesamte function austauschen
    die moddesc nicht vergessen

  • aber das funktioniert grad nur mit Traktoren, dann müsste man das ganze noch auf "combine" umschreiben?
    bzw, das ganze muss man ja irgendwie alles in die AILexion600Combine.lua reinpacken :D
    Aber das scheint ja schon relativ einfach zu werden gerade :P

  • ist zwar funktionstüchtig, wobei ichs jetzt nicht in den draw bereich setzen würde, aber eigentlich ist das ergebnis momentan kein anderes, als wenn du 0 für AI Kurs löschen drücken würdest und dann wieder H. Das kommt genau aufs selbe raus. ABer ich denke du willst darauf hinaus, dass man per taste die Richtung eingibt und dann H drückt und er in die eingestellte RIchtung fährt!?

  • so,hab jetzt alles über den haufen geworfen und ne spec von gebastelt


    wer die nutzen will muss das orginal Ai-update haben und die spec in den gewünschten traktor einbauen

Jetzt mitmachen!

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