[Python How-To] Eine Funktion so und so oft die Minute aufrufen.

06/08/2012 07:02 xCPx#1
Hey. Da mir diese ganzen Anfragen in Skype und epvp langsam tierisch auf die nerven gehen zeig ich euch einfach mal wie man soetwas einbaut.

Vorneweg:

Die exe führt jede OnUpdate Funktion eines Py script´s genau 22mal pro Sekunde aus.
Darauf bauen wir natürlich auf.


daraus ergibt sich folgende herangehensweise:
Als 1. importiert ihr das time-Modul:

Quote:
import time
Als zweites definiert ihr eine globale Variable am anfang der datei unter halb der Imports.

einfach:
Code:
global time_old
time_old = int(time.strftime("%H%M%S"))
global time_verz
time_verz = 10

danach erstellt ihr eure funktion, die ihr aufrufen wollt zb "hallo"
Code:
def Hallo(self):
	#eure func
dann noch folgende funktion in die OnUpdate:

Code:
if time_old <= int(time.strftime("%H%M%S")):
	#eure funktion
	self.Hallo()
	time_old = int(time.strftime("%H%M%S"))+time_verz
Wenn eure py datei noch keine Onupdate funktion hat fügt sie einfach ein.

wobei
time_verz


für die abstände in sekunden steht.

Ich weiß ist warscheinlich nicht die beste möglichkeit und verhüpft sich ca alle 60sek 1 mal aber für meine Zwecke hats bisher immer gereicht.
06/08/2012 07:47 Luzifer aka Bashor#2
Was bringt das ? ... :/
06/08/2012 08:15 xCPx#3
Man kann eine funktion alle x sekunden ausführen.

Habs nur released da mir damit leute schon teilweise seit nem halben jahr auf die nerven gehen -.-


Und das mir iwann einer kam mit:

app.Sleep(delay)

hat mir echt zu denken gegeben.
Jeder normale mensch weiß doch, dass damit der Client freezt or?
06/08/2012 08:18 IgorGlock#4
Ist ganz gut die Variante.
Wie du gesagt, hast, nicht die Beste jedoch auch eine Möglichkeit.
06/08/2012 08:18 .Aza'#5
kk sehr hilfreich.
Danke, ich nerv dich jetzt nichtmehr.

~Aza
06/08/2012 09:55 .Iscariot#6
Jod Salz !
Danke für diese unglaublich schwer zu entdeckende Funktion :O

Ne Spaß, danke und hilft weiter :)
06/08/2012 12:18 .Awesoome'#7
Das ist aufjedenfall mal kein Thread wert.


Quote:
[13:10:09] パッシー305: [Only registered and activated users can see links. Click Here To Register...]
[13:10:18] パッシー305: OMG xCPx hat die m2 Section revolutioniert!
06/08/2012 12:25 .Nguyen#8
Aber hilfreich, Danke.
06/08/2012 12:28 PeterWaschLabaschsdu#9
Quote:
Originally Posted by .Awesoome' View Post
Das ist aufjedenfall mal kein Thread wert.
wasch labschst du
06/08/2012 14:23 CranK™#10
Code:
thread.start_new_thread(self.Function, ())

def Function(self):
     for i in xrange(0, 6):
          action
          time.sleep(delay in ms)
06/08/2012 14:28 .Awesoome'#11
Wieso war mir klar, das der Post von Reali gelöscht wird ?

Hat ihn jmd reporten weil.. er keine Kritik kann ? ;)
06/08/2012 14:37 XxxGaGaxxX#12
Zwar habe ich es mir nicht richtig durchgelesen , aber von dir kommt nur geiles Zeugs :D

#Thanks given
06/08/2012 14:38 LxR'EsoZiaL#13
Quote:
Originally Posted by .Awesoome' View Post
Wieso war mir klar, das der Post von Reali gelöscht wird ?

Hat ihn jmd reporten weil.. er keine Kritik kann ? ;)
Frag mich nicht wieso, aber dass passiert zur Zeit ständigt, dass seine Posts gelöscht wurden :o
06/08/2012 16:59 Prσfizσcker94#14
Quote:
Originally Posted by CranK™ View Post
Code:
thread.start_new_thread(self.Function, ())

def Function(self):
     for i in xrange(0, 6):
          action
          time.sleep(delay in ms)
besser :bandit:
06/09/2012 10:32 Megaload#15
Quote:
Originally Posted by .Awesoome' View Post
Das ist aufjedenfall mal kein Thread wert.

sowas tippen wir blind mit unserem 11ten finger :O simmts ;)?