Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Der Timer...Das unbekannte Wesen!
BeitragVerfasst: 11.12.2002, 00:00 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Hallo Leute!

Und wieder machen mir diese blöden Timer Problem.

Was ich weiss:

1. Wenn man den timerindex bekommen will, macht man timerindex=set_timer("XYZ",a,b,Param); Diesen Index braucht man vielleicht zum kill_timer(timerindex), um den Timer zu löschen.
ABER: Immer danach die 'timerindex' Variable = 0 setzen. Sonst kann es passieren, dass wenn nochmal den kill_timer(timerindex) aufruft (wie auch immer), dass ein GANZ ANDERER TIMER AUS EINEM ANDEREN PLUGIN gekillt wird, der zufällig den selben index hat, welcher in timerindex gespeichert wurde. (timerindex ist global definert!)

2. Der Param den man übergibt, kommt als HLParam in der Timer-Funktion an und muss mit convert_string wieder zu einem Small-String umgewandelt werden.

Was ich bemerkt habe:

3. Benutze immer einen ordentlichen Header! Ohne diesen ist die Wahrscheinlichkeit hoch, dass der Timer vergessen wird. Also xxx() Funktionen mit einem Timeraufruf (set_timer) können in die Hose gehen.

Was mir Kopfschmerzen bereitet:

4. Ich habe versucht, das Ausführen der Befehle innerhalb einer Timerfunktion mit einer Variablen X, welche den Wert 0 oder 1 bekommen kann, einzugrenzen. Solange der Wert 0 ist, sollen die Befehle ausgeführt werden. Ist der Wert aber 1, soll nichts ausgeführt werden. Die Variable X ist global definiert und wird von einer anderen Funktion gesteuert.

Meine Noob-Theorie:
Die Timerfunktion und der Inhalt ist schon im Speicher und es wird nur gewartet, bis der Code ausgeführt wird. Parameter-Änderungen werden somit nicht mehr wahrgenommen und der Code wird nach der Wartezeit ausgeführt.

Jetzt habe ich das mal getestet. Ich habe eine Timerfunktion, die sich immer wieder selber aufruft (mit einer Wartezeit von 15 sek.)
Global habe ich eine Variable X, die z.B. auf 150 gesetzt ist. Innerhalb des Codes ziehe ich immer 15 von den 150 ab. Wenn also diese Variable X kleiner als 15 wird, soll sie den Timer nicht sich selber wieder aufrufen lassen, sondern was anderes machen.
Das funktioniert soweit.
Warum geht das und das andere nicht? Oder wo liegt der Fehler, dass das eine klappt und das andere nicht?

5. Muss man was returnen?

6. Nach einem sv_restartround X soll ein timer wieder neu gestartet werden. Der Timer wird normal registriert, die Wartezeit ist korrekt erkannt, er wird aber nie ausgeführt. Was ist das jetzt?


Wer kann mich jetzt mal, zu diesem Thema, erleuchten?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11.12.2002, 09:15 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
Dafür brauche ich den Code. Aber Timer sollte man sowenig wie möglich benutzen, allein schon wegen der genannten Problem, sind aber oft unvermeidlich.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 11.12.2002, 16:31 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ich mach mal ein Timer-Plugin :-)

Das soll mir dann mal eine Statistik basteln, um zu sehen, wann ein Timer ausfällt, wann er dann wirklich ausgeführt wird etc.

Mit einem Log-Vergleich lässt sich dann ermitteln, warum er nicht reagiert hat.

(Hm...vielleicht kann man das Plugin nachher noch für andere Sachen gebrauchen... )

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"