Multi-/Combobinds

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Multi-/Combobinds

      Hey, ich habe mal eine kurze Frage. Da ich viel FNG spiele, wollte ich mir auf eine Taste das Schießen binden. Allerdings soll vorher noch zum Laser gewechselt werden, falls ich gerade den Hammer hab. Der bind dafür wäre ja nach meinem Verständnis:
      bind mouse1 "+weapon5;+fire"
      So, jetzt hab ich aber das Problem, dass der +fire-Befehl schneller am Server ankommt als der +weapon5-Befehl. Somit Hammer ich dann statt zu schießen. Was kann man da tun?
      MfG,
      Ikaron
    • würd mal sagen dass du irgendne zeitverzögerung einbaust, weiss jetzt grad nicht wie das bei teeworlds geht, vielleicht musste das sogar in der source ändern und neu compilieren damit das läuft.
      jedenfalls glaube ich dass ich 2 befehle kenne zum warten, kannst ja mal rumprobieren ob das auch in der konsole läuft :
      sleep()
      tick()

      Kenn mich leider nicht mit der Programmiersprache von tw aus, musste halt auf leute warten die was damit anfangen können. :P
    • Ich weiß ja nicht, wie das bei euch ist, aber bei mir entspricht die "Schuss"-Taste der "Hämmer"-Taste. (Bei mir die linke Maustaste.)
      Wenn nun also bei jedem "Schuss" (also jedem Klicken) auf den Laser gewechselt werden würde, dann würde ja nicht mehr gehämmert werden und somit könnte ich den Hammer nicht mehr verwenden, woraus dann folgt, dass ich dann eh nur noch den Laser benutzen könnte und ich einen solchen bind nicht benötigen würde.

      ------------------------------------------------------------------

      Das Ganze würde nur Sinn machen, wenn du eine Maus mit mehr als zwei Tasten (z.B. seitliche) besitzt.

      Wenn dies der Fall seien sollte, dann kann ich dir aus eigener Erfahrung sagen, dass es nichts bringt den Bind durch unnötige Befehle zu erweitern, weil der "+fire"-Befehl immer zu erst abgearbeitet wird (für jeden tick). [Methoden von Yuzu & Tim funktionieren also nicht]
      Wenn du jedoch deinen allerersten Bind verwendest und deine Taste jedes Mal etwas länger gedrückt hälst, dann wird erst einmal gehämmert, dann zum Laser gewechselt und anschließend direkt geschossen. Diese Variante ist zwar eine ziemliche Gewöhnungssache und vorallem auch sehr lästig für den Spielfluss, aber sie würde deinem Wunsch gerecht werden.

      Denkanstoß
      Die Befehle "+prevweapon" und "+nextweapon" werden noch vor dem Befehl "+fire" verarbeitet. (Eigentlich müsste dies auch für die "+weapon"-Befehle gelten, aber dies wurde scheinbar vergessen - Issue bei Github einreichen?)

      Quellcode

      1. bind mouse1 "+prevweapon; +fire"

      Bei diesem Befehl wird erst zur vorherigen Waffe gewechselt und dann folgt erst der Schuss. ::P:
      Solange du also keine Abfrage machen kannst, dass er nur die Waffe wechseln soll, wenn du den Hammer ausgewählt hast, bringt dich dies allerdings auch nicht weiter. Sorry.

      Du könntest das Problem höchstens mit einem LUA-Script
      für den N-Client lösen.
      Ansonsten könnte man das Ganze ja noch schnell den Devs melden/reporten, damit sie es in die 0.6.2 Version einbauen, die jetzt sehr bald erscheinen wird.

      ------------------------------------------------------------------
      //Edit - Lösung:
      Ich habe jetzt gerade mit Warkid zusammen nochmal mehrere Stunden versucht das Problem irgendwie auch ohne LUA-Script zu lösen. Teeworlds bietet uns ja den schönen Befehel "exec", der es uns ermöglicht Befehle aus einer .txt-Datei auszulesen und auszuführen. (Warkid hat mich auf den Befehl gestoßen, danke dafür!)
      Naja nach langem hin und her haben wir es dann geschafft das Problem mit dem getrennten Schuss- und Hämmerknopf relativ simpel zu lösen.
      Ich bedanke mich schon einmal bei Warkid, der jetzt die Ehre hat euch das Ganze einmal zu erklären:


      MfG
      Calvino
    • Calvino schrieb:

      [...] der jetzt die Ehre hat [...]

      Haha :D Na dann

      Uns (Calvin & Ich) hat es irgendwie angespornt, eine Lösung für dein Problem zu finden.
      Wir mussten zwar ein bisschen tricksen, aber schlussendlich haben wir es doch hinbekommen :D

      Wir haben zwei Tricks benutzt, um das Ziel zu erreichen.
      1. Wir haben den Befehl exec benutzt
      (welcher es einem erlaubt, ein Textdokument im TW-Ordner zu öffnen(wie zB die config),
      indem dann jede Zeile als Befehl ausgeführt wird. z.B +fire)
      2. Wir haben Binds umgeschrieben, wenn man einen bestimmt Knopf drückt.

      Lösung

      In die Console eintippen:

      Quellcode

      1. bind mouse1 "exec ChangerH.txt" (ChangerH.txt (aus dem TW-Ordner) soll ausgeführt werden, wenn mouse1 gedrückt wird)
      2. bind mouse3 "exec ChangerL.txt" (ChangerL.txt (aus dem TW-Ordner) soll ausgeführt werden, wenn mouse3 gedrückt wird)

      Für mouse1/mouse3 könnt ihr jeden beliebigen Button verwenden :D
      (mouse3 ist btw. ein Klick aufs Mausrad :D)
      Mit einem dieser Buttons hämmert ihr, mit dem anderen lasert ihr.
      Es kommt immer darauf an, welche Waffe ihr vor dem Drücken ausgesucht habt.

      Nun müsst ihr noch zwei Textdateien (.txt) im Teeworlds-Ordner erstellen mit den
      folgenden Namen und Quelltext drin.
      (Wenn ihr die Buttons ändert, müsst ihr diese natürlich auch im Quellcode editieren)

      ChangerH.txt

      Quellcode

      1. +nextweapon
      2. +fire
      3. bind mouse3 "exec ChangerL.txt"
      4. bind mouse1 "+fire"

      ChangerL.txt

      Quellcode

      1. +nextweapon
      2. +fire
      3. bind mouse1 "exec ChangerH.txt"
      4. bind mouse3 "+fire"


      Eigentlich ist das einzige was dieser Quellcode bewirkt, das Stoppen vom
      Wechseln der Waffe, wenn es nicht gewünscht ist.
      Die Waffe wird also nur gewechselt, wenn der jeweils andere Button gedrückt wird.
      Jedoch Geschossen wird immer :)

      Na dann noch viel Spaß mit dem kleinen Trick hier, wir hoffen wir konnten dir helfen.
      Uns hat es aufjedenfall Spaß gemacht ^^