Wie kann ich die Einstellungen umschalten?

Ich möchte in der Lage sein, durch Namen, Skripte oder Quellbefehle zu fahren.

Durch das Radfahren Ich meine Umstellung auf einen anderen Namen, Skript oder Befehl, nachdem ich eine Taste drücken. Wenn Sie diese Taste wiederholt drücken, werden alle Eingaben bis zum Ende durchlaufen, wo der erste Eintrag wieder erreicht wird.

Zum Beispiel, wenn ich 3 Spitznamen A, B und C habe und durch diese fahren wollen.

Wenn Sie eine Taste drücken, muss ein Befehl ausgeführt werden, der meinen Namen in B ändert und nach dem Drücken der gleichen Taste wird mein Name wieder auf C geändert. Durch erneutes Drücken wird mein Name wieder auf A geändert und der Zyklus abgeschlossen.

Wie würde eine Vorlage dafür aussehen?

Um durch verschiedene Namen / Einstellungen / Skripte usw. zu wechseln, musst du folgendes Muster folgen (am Ende gibt es den vollständigen Code, wenn du die Details überspringen möchtest):

Radfahren durch selbst erstellte Skripte mit Alias

Schritt 1: Stellen Sie einen Startpunkt ein

alias cycler "useName1" 

Nun, wenn wir Cycler auslösen -> useName1 wird ausgeführt.

Cycler und useName1 sind Namen, die ich gemacht habe. Sie können die zu jedem ändern, was Ihren Bedürfnissen entspricht.

Schritt 2: Definiere useName1 und setze Cycler ein

 alias useName1 "setinfo name "First_name"; alias cycler useName2" 

Dies führt die Namensänderung (oder Ihr Skript oder Ihre Einstellung) aus und setzt den Cycler auf use22 . Das nächste Mal, wenn wir Cycler auslösen -> useName2 wird ausgeführt.

UseName2 ist ein Name, den ich auch gemacht habe.

Schritt 3: UseName2 definieren und Cycler setzen

 alias useName2 "setinfo name "Second_name"; alias cycler useName1" 

Dies führt die zweite Namensänderung (oder Ihr Skript oder Ihre Einstellung) aus und setzt den Cycler wieder auf useName1 . Das nächste Mal, wenn wir Cycler auslösen -> useName1 wird wieder ausgeführt. Der Zyklus ist abgeschlossen.

Schritt 4: Binde deinen Cycler an einen Schlüssel

 bind "key" cycler 

Wir sind fertig. Sie können Teil 2 und 3 für andere Definitionen wiederholen (wenn Sie durch 15 Namen wechseln, gehen Sie dafür). Lass den letzten den Cyber ​​auf den ersten stellen!

Vollständige Code-Lösung 1

 alias cycler "useName1" alias useName1 "setinfo name "First_name"; alias cycler useName2" alias useName2 "setinfo name "Second_name"; alias cycler useName1" bind "key" cycler 

Durchlaufen von Einstellungen, die von der Quellmaschine bereitgestellt werden

Wenn Sie durch Einstellungen, die von der Quellmaschine vordefiniert sind, iterieren und eine Zahl als Wert benötigen, zB:

 net_graph x (value 0 to 3 are possible) sensitivity x (any value is possible) 

Dann brauchst du den Cycler nicht zu benutzen.

Stattdessen gibt uns die Quelle zwei nächtliche Befehle:

Umschalten

toggle command value1 value2 value3

Dieser Befehl lasst uns durch die Einstellung mit bestimmten Werten durchlaufen.

Beispielsweise:

toggle net_graph 1 2 3

Beginnt mit dem Ausführen von net_graph 1 . Mit diesem Befehl wird wieder net_graph 2 und so weiter ausgeführt.

Um diesen Befehl schnell zu benutzen, geh einfach weiter und bindet ihn an einen Schlüssel

Vollständiger Code umschalten

bind "x" "toggle net_graph 1 2 3"

Incrementvar

incrementvar command min max steps

Dies lasst uns durch die Einstellung in definierten Schritten durchlaufen.

Beispielsweise:

incrementvar net_graph 1 3 1

Startet mit net_graph 1 und erhöht jeden Schritt +1. Dies bedeutet, dass der Befehl erneut ausgeführt wird, führt zu net_graph 2 . Der nächste wäre net_graph 3 . Danach springt es zurück zu net_graph 1, weil wir ihm gesagt haben, dass der Maximalwert 3 wäre.

Das andere Beispiel wäre:

incrementvar sensitivity 200 800 200

Was die Empfindlichkeit um 200 erhöht, jedes Mal, wenn wir dies ausführen, bis es 800 erreicht, an welchem ​​Punkt es wieder auf 200 fallen wird.

Die Schritte können negativ sein (Zyklus rückwärts) wie:

incrementvar sensitivity 200 800 -200

Um diesen Befehl zu benutzen, müssen wir ihn noch binden:

Vollständiger Code incrementvar

bind "key" "incrementvar sensitivity 200 800 200"

Eine andere Lösung

Eine andere Lösung zum Durchlaufen von Variablen (Einstellungen, Befehle usw.) wäre, die Schaltfläche direkt zu rebinden.

Dies ist jedoch entmutigt, da es mehr Ressourcen aus dem System braucht, während das Ändern eines Alias ​​zu einem anderen nicht mit dem Keymapping stört, was also ziemlich statisch ist.

Immer noch werde ich es für Vollständigkeit zeigen

Full Code Solution 2

 alias useName1 "setinfo name "First_name"; bind "key" useName2" alias useName2 "setinfo name "Second_name"; bind "key" useName1" bind "key" useName1 

Full Code Solution 2 – gut funktionieren OHNE setinfo

 alias useName1 "dota_spectator_mode "1"; bind "c" useName2" alias useName2 "dota_spectator_mode "3"; bind "c" useName1" bind "c" useName1