Forum

> > CS2D > Scripts > Timer parameter
ForenübersichtCS2D-Übersicht Scripts-ÜbersichtEinloggen, um zu antworten

Deutsch Timer parameter

8 Antworten
Zum Anfang Vorherige 1 Nächste Zum Anfang

alt Timer parameter

iii
User Off Offline

Zitieren
Kann man irgendwie mehrere Parameter mit dem timer(time,"func",["p"],[c]) übergeben?
Ich müsste 7 nummern übergeben

alt Re: Timer parameter

DC
Admin Off Offline

Zitieren
Nicht direkt, aber man kann tricksen. Einfach die Werte zu einem String zusammenfügen mit irgendeinem Trennzeichen und danach dann halt wieder auseinanderfriemeln.

alt Re: Timer parameter

VADemon
User Off Offline

Zitieren
...ODER was ein bisschen effizienter und vielleicht einfacher ist:
* im Voraus eine Tabelle erstellen
* vor dem aufstellen des Timers einen Wert zu dieser Tabelle hinzufügen
* Timer-funktion aufrufen, als Stringwert gibst du den Key, unter dem in der Tabelle die Daten gespeichert sind
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--beim Laden des Scripts:
meineDaten = {}


-- später in game:
function irgendwelcheFunktion()
	local tableKey = #meineDaten + 1 --den aktuellen/letzten Key ausrechnen
	meineDaten[tableKey] = "blablabla das ist ein String, kann aber auch eine Tabelle mit Daten sein."
	timer(2500, "myFunc", tostring(tableKey))
end

function myFunc(tableKeyWert)
	local key = tonumber(tableKeyWert)
	print(meineDaten[key])
	meineDaten[key] = nil --werden nicht mehr gebraucht
end
ein bisschen zu viel Text aber man sollte da durchsteigen können

alt Re: Timer parameter

iii
User Off Offline

Zitieren
ich habs implementiert, aber dann ist mir aufgefallen, dass es ungünstig ist.

Ich bastle an einem script zum berechen der aktuellen koordinaten eines bildes. Diese änderen sich wegen einem tween.
jedoch weiß ich dadurch nicht wo jetzt genau das bild ist.
Ich dachte ich könnte es mit einem timer rausfinden, der die anzahl der pixel bis zum zielpunkt geteilt durch die zeit durchgeht.
1
timer(speed/distance,"posnow",tostring(#postable),distance)

hier ist mein script:
Spoiler >


Wenn man es so ließe würde er immer wieder posnow neu erstellen und man müsste natürlich noch übergeben, wieoft er diese funktion erstellt hat.

oder gibt es andere praktische lösungen dieses problems?

alt Re: Timer parameter

VADemon
User Off Offline

Zitieren
Du hast fast alles richtig gemacht, aber:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function posnow(tableKey) --hier ist Variable tableKey definiert
local key = tonumber(tableKey) --also musst du auch hier den gleichen Namen benutzen

--Deine Tabelle (postable) hat 8 Einträge, du hast alles nur auf den allerersten Eintrag verlinkt
local id= postable[key][1]
local xstart= postable[key][2]
local ystart= postable[key][3]
local xend= postable[key][4]
local yend= postable[key][5]
local angle= postable[key][6]
local distance= postable[key][7]
-- local rep = postable[key][8] --falls du /rep/ hier brauchst

postable[key] = nil
end

Sonst sieht dein Code gut aus.

alt Re: Timer parameter

iii
User Off Offline

Zitieren
Ich hab noch ne frage zum timer.
rundet der timer die zeit (also die ms)
ich hab den teil den ich geschrieben habe fertiggestellt und jenachdem klappt es und manchmal läuft er zu langsam.
1
timer(speed/distance,"posnow",tostring(#postable),distance)
klappt manchmal sehr gut und manchmal ist die zeit zu langsam.

wenn es daran liegen sollte, dass gerundet wird, gibt es dann ne einfache lösung oder sollte ich das ganze umbauen und den timer vermeiden?

(distance liegt zwischen 32-ca600, speed frei wählbar aber hohe zahlen, also langsame geschwindigkeiten lösen das problem nicht)

alt Re: Timer parameter

VADemon
User Off Offline

Zitieren
Die Frage ist eigentlich an @user DC gerichtet aber ich vermute, dass der Timer je auf 50ms gerundet wird, damit der in einem in-game Frame aufgerufen werden kann.

alt Re: Timer parameter

iii
User Off Offline

Zitieren
Das könnte sein, dann werde ich es am besten direkt mit einem alwayshook machen. ist ein frame immer 50 ms oder ist das je nach server unterschiedlich?

alt Re: Timer parameter

VADemon
User Off Offline

Zitieren
Mehr als 50 FPS geht es nicht
Je nach Serverauslastung können es auch <50 FPS sein.
Zum Anfang Vorherige 1 Nächste Zum Anfang
Einloggen, um zu antworten Scripts-ÜbersichtCS2D-ÜbersichtForenübersicht