Forum

> > CS2D > Scripts > Timer parameter
Forums overviewCS2D overview Scripts overviewLog in to reply

German Timer parameter

8 replies
To the start Previous 1 Next To the start

old Timer parameter

iii
User Off Offline

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

old Re: Timer parameter

DC
Admin Off Offline

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

old Re: Timer parameter

VADemon
User Off Offline

Quote
...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

old Re: Timer parameter

iii
User Off Offline

Quote
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?

old Re: Timer parameter

VADemon
User Off Offline

Quote
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.

old Re: Timer parameter

iii
User Off Offline

Quote
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)

old Re: Timer parameter

VADemon
User Off Offline

Quote
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.

old Re: Timer parameter

iii
User Off Offline

Quote
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?

old Re: Timer parameter

VADemon
User Off Offline

Quote
Mehr als 50 FPS geht es nicht
Je nach Serverauslastung können es auch <50 FPS sein.
To the start Previous 1 Next To the start
Log in to reply Scripts overviewCS2D overviewForums overview