FoxHunter Skeeter
Hallo Besucher. Wir suchen immer nette Mitspieler. Wenn Ihr Lust auf Clanleben habt, dann füllt das Join us bei uns aus.
keine Umfrage eingetragen
waits
3.03.06 20:16 Uhr FoxHunter

Waits


Der Befehl "wait" ist einer der Standardbefehle die für das Scripten unerlässlich sind. Seine Funktion ist eigentlich selbsterklärend: ein wait bewirkt eine kurze Pause im Ausführen eines Scriptes. Alle nachfolgenden Befehle werden also erst etwas verzögert ausgeführt. Besonders wichtig ist das bei +/- Befehlen, dazu ein Beispiel:


alias EinSchuss "+attack;-attack"

Dieser Alias soll eigentlich die Funktion haben, das ein einzelner Schuss (etwa bei Pistolen) abgegeben werden soll. Doch so wie er jetzt aussieht, wird er nicht funktionieren. Das +attack bewirkt zwar das das Feuern gestartet wird, doch es wird praktisch noch im selben Augenblick beendet. Als Resultat wird überhaupt kein Schuss abgegeben.


alias EinSchuss "+attack;wait;-attack"

Dieser Alias funktioniert! Die Attack-sequenz wird gestartet, dann kommt das wait. Es verzögert das -attack und gibt so dem +attack Gelegenheit zu wirken.

Nachteile von Waits:


Der größte Nachteil von waits liegt darin, dass HL in der Zeit in der ein Wait ausgeführt wird praktisch nicht mehr reagiert. Angenommen wir laufen also vorwärts (+forward) und würden dann 1000 waits starten. Dann könnten wir die Vorwärtstaste loslassen (-forward wird ausgeführt), doch da alles in HL nacheinander abgearbeitet wird, wird unser -forward ganz hinten angereiht - hinter die 1000 waits. Als Konsequenz hören wir also erst auf zu laufen, wenn alle waits durch sind. Andersrum, wenn wir 1000 waits starten würden und dann versuchen vorwärts zu laufen, würden wir uns auch erst bewegen wenn die waits abgearbeitet sind. Daher sollte man möglichst versuchen möglichst wenig waits zu verwenden.

Dauer eines Waits:


Die Dauer eines waits beträgt ein Frame, also so lange, wie ein einzelnes Bild angezeigt wird. Bei 40 Frames pro Sekunde ist eine wait also 1/40 Sekunde lang, oder anders, man bräuchte 40 waits um eine Sekunde zu überbrücken. Also je schneller ein Rechner und je mehr FPS er schafft, desto kürzer werden die waits. Da die FPS aber schwanken, je nach Map, Standort, Sichtlinie,... sind waits meistens nicht gleich lang, schon gar nicht auf verschiedenen PCs. Das kann man aber umgehen, indem man die FPS einfach auf ein Minimum senkt. Dies geschieht mit dem Befehl fps_max, der niedrigste Wert ist allerdings 20 (der höchstmögliche 99). Wenn man also konstante Waitlängen haben will um festgelegte Zeiten zu überbrücken, sollte der eigene Rechner in der Lage sein 20FPS möglichst ohne Einbrüche zu halten. Dieses Wissen können wir jetzt anwenden, zum Beispiel wenn wir im Spiel etwas sagen wollen, und 2 Sekunden später noch etwas. Zuerst basteln wir uns dafür eine kleine wait-Tabelle, damit wir nicht endloslange Anreihungen von waits schreiben müssen:

//Waits
alias wa1 "wait"
alias wa2 "wa1; wa1"
alias wa3 "wa2; wa1"
alias wa4 "wa2; wa2"
alias wa5 "wa3; wa2"
alias wa6 "wa3; wa3"
alias wa7 "wa4; wa3"
alias wa8 "wa4; wa4"
alias wa9 "wa5; wa4"
alias wa10 "wa5; wa5"
alias wa12 "wa6; wa6"
alias wa14 "wa8; wa6"
alias wa16 "wa8; wa8"
alias wa18 "wa10; wa8"
alias wa20 "wa10; wa10"
alias wa30 "wa20; wa10"
alias wa32 "wa16; wa16"
alias wa40 "wa20; wa20"
alias wa50 "wa30; wa20"
alias wa60 "wa30; wa30"
alias wa64 "wa32; wa32"
alias wa70 "wa40; wa30"
alias wa80 "wa40; wa40"
alias wa90 "wa50; wa40"
alias wa100 "wa80; wa20"
alias wa128 "wa64; wa64"
alias wa256 "wa128; wa128"

 
Kommentare Seite: « 1 »
Du musst registriert sein um einen Kommentar schreiben zu können!