Tastenfunktion in Lua-Script

  • Hallo, in folgenden Script-Schnipsel sollen dieTasten Kombinationen um Shift (z,B. KP_9 + Shift links) ergänzt werden. Hab es schon versucht aber nicht hinbekommen.
    :hmm: Bitte um Hilfe :wacko:

    Spoiler anzeigen

    --

    function ICrane:keyEvent(unicode, sym, modifier, isDown)

    if sym == Input.KEY_KP_6 then
    self.translationMin = isDown;
    self.translationHookMin = isDown;
    end;
    if sym == Input.KEY_KP_9 then
    self.translationMax = isDown;
    self.translationHookMax = isDown;
    end;
    if sym == Input.KEY_KP_4 then
    self.rotation1Min = isDown;
    self.translationHydMin = isDown;
    end;
    if sym == Input.KEY_KP_7 then
    self.rotation1Max = isDown;
    self.translationHydMax = isDown;
    end;
    if sym == Input.KEY_KP_8 then
    self.rotation2Min = isDown;
    end;
    if sym == Input.KEY_KP_5 then
    self.rotation2Max = isDown;
    end;
    if sym == Input.KEY_KP_0 then
    self.rotation5Max = isDown;
    end;
    if sym == Input.KEY_KP_2 then
    self.rotation5Min = isDown;
    end;
    if sym == Input.KEY_j then
    self.rotation6Max = isDown;
    end;
    if sym == Input.KEY_k then
    self.rotation6Min = isDown;
    end;
    if sym == Input.KEY_n then
    self.rotation4Max = isDown;
    end;
    if sym == Input.KEY_m then
    self.rotation4Min = isDown;
    end;
    end;

    function ICrane:update(dt)

  • Probiers mal mit dem hier:

    Code
    if sym == Input.KEY_KP_6 and bitAND(modifier, Input.MOD_ALT) > 0 then
    self.translationMin = isDown;
    self.translationHookMin = isDown;
    end;

    ...also Alt+KP6


    Versprechen kann ich nichts, da ich keine Scripting Kenntnisse besitze, jedoch erscheint mir das irgendwie Logisch
    Chris


    Edit:
    Am besten auch einfach den Update String einfügen, da du dann alles über die ModDesc Steueren kannst und somit das hier in den IB reinschreiben könntest:

    Code
    key1="KEY_lshift KEY_j"

    Frage mich aber nicht wie das ganze Funktioniert :)

  • Hat das ganze denn keine xml ?

    Normal wird das doch in der xml geregelt.

    Es wäre auch gut zu wissen worum genau es geht.

    <inputBindings>
    <input name="" category="" key1="KEY_lshift KP_9" key2="" button="" device="0" mouse="" />
    </inputBindings>

    so dann musst du nur noch input name und category ergänzen.

    Hoffe das klappt.

  • Versuch das hier mal aber vor dem Ingametest die Inputbinding und Log löschen. Es empfiehlt sich auch einen neuen Spielstand anzufangen nur mit diesem Mod drinne, am besten auf der Standartmap ;)

    Spoiler anzeigen

    function ICrane:keyEvent(unicode, sym, modifier, isDown)

    if sym == Input.KEY_lshift_KP_6 then
    self.translationMin = isDown;
    self.translationHookMin = isDown;
    end;
    if sym == Input.KEY_lshift_KP_9 then
    self.translationMax = isDown;
    self.translationHookMax = isDown;
    end;
    if sym == Input.KEY_lshift_KP_4 then
    self.rotation1Min = isDown;
    self.translationHydMin = isDown;
    end;
    if sym == Input.KEY_lshift_KP_7 then
    self.rotation1Max = isDown;
    self.translationHydMax = isDown;
    end;
    if sym == Input.KEY_lshift_KP_8 then
    self.rotation2Min = isDown;
    end;
    if sym == Input.KEY_lshift_KP_5 then
    self.rotation2Max = isDown;
    end;
    if sym == Input.KEY_lshift_KP_0 then
    self.rotation5Max = isDown;
    end;
    if sym == Input.KEY_lshift_KP_2 then
    self.rotation5Min = isDown;
    end;
    if sym == Input.KEY_lshift_j then
    self.rotation6Max = isDown;
    end;
    if sym == Input.KEY_lshift_k then
    self.rotation6Min = isDown;
    end;
    if sym == Input.KEY_lshift_n then
    self.rotation4Max = isDown;
    end;
    if sym == Input.KEY_lshift_m then
    self.rotation4Min = isDown;
    end;
    end;

    wenn das nicht funktionieren sollte ändere das lshift in leftShift um und probiere es dann nochmal. Ich habe gerade keinen Mod im Hinterkopf wo ich die shift Taste benutzen muß :hmm:
    Kann es sein das diese Lua aus dem Iveco EuroStar (Atlas Crane) v von LS2011 ist?

    3 Mal editiert, zuletzt von Trabby76 (11. Mai 2014 um 11:51)

  • Ok alles klar hab da die Lua für den LS 13 ist aber abgeändert. Läuft eigendlich alles über die Numpad Tastatur. Ich bin aber dran diese evt. mit der Shifttaste zu kombinieren, mal sehen ob ich es hinbekomme.

    So da ich jetzt schon etwas länger an dem Problem sitze aber es nicht so hinbekomme wie ich es gerne hätte (hatte zwar schon die Shiftfunktion aber ohne das die KP4 dazu benutzt wurde) habe ich mir mal erlaubt einen Scripter anzuschreiben welcher mir / uns evtl. helfen kann. Wenn das nichts nützt wäre es ratsam die Funktionen vom Actros Palfinger PK 34002 SH v 1.0 zu übernehmen, diese werden dann auch über die XML angegeben. Oder halt die von dem Iveco 6 4 v 1.0 welcher die ICran.lua in veränderter Form (dem LS2013 angepasst) verbaut hat.

    Einmal editiert, zuletzt von Trabby76 (11. Mai 2014 um 15:57)

  • Richtig habe ja wie gesagt einiges probiert aber leider ohne Erfolg. Ich warte mal auf die Antwort vom Scripter mal sehen, vielleicht ist es nur ne kleinigkeit.

    So habe eine Antwort bekommen und die ist eigendlich die einfachste Lösung, welche mir auch schon durch den Kopf gegangen ist.

    Zitat

    Das ist aber ganz übles altes Key-Event Zeugs... Leg ordentliche InputBindings an und frag die in der update mit InputBinding.hasEvent() ab

    Ein großes Danke an den netten Scripter an dieser Stelle.

    Einmal editiert, zuletzt von Trabby76 (11. Mai 2014 um 17:36)

  • Crouwler 26. April 2020 um 02:41

    Hat das Thema geschlossen.