Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Zadeklarowanie Timer'u po użyciu


Rekomendowane odpowiedzi

Opublikowano

Mam problem.

 

Ten warunek If ma się spełniać jeśli od ostatniego "spełnienia" minęło 30 sekund.

If TimerDif($InjTimer) > 30000 Then
  MsgBox(0,"","TAK")
  $InjTimer = TimerInit()
EndIf

Tylko że jeśli na początek kodu dam;

$InjTimer = TimerInit()

To muszę czekać 30 sekund od rozpoczęcia skryptu, ale jeśli nie wstawię to, wiadomo, $InjTimer isn't initiated, itd...

Opublikowano

$InjTimer = TimerInit() + 30001

Nie możesz używać zmiennej bez wcześniejszej deklaracji. Nigdy.

 

Chciałbym jednak zwrócić uwagę, że wątek jest źle napisany...

- praktycznie nie zadajesz pytania

- nie przedstawiasz całego kodu ( który MUSISZ przedstawić, gdyż twoja terminologia kuleje [ pogódź się z tym ] i z opisu trzeba zgadywać co próbujesz zrobić )

 

Również radzę następne problemy przedstawiać w jednym wątku, to już trzeci, a spodziewamy się, że będzie ich więcej (problemów, nie wątków) :)

Ta sygnatura jest pusta.

Opublikowano

Próbowałem tego;

$InjTimer = TimerInit() + 30001

Ale wtedy TimerDiff($InjTimer) jest równe -300.85145348385

 

Praktycznie to przedstawiłem cały kod (zamiast MsgBox'a, było tam Send("{4}"), a wszystko było w pentli while)

Myślałem że zakładanie tematu na każdy problem będzie bardziej przejrzyste dla ludzi którzy będą mieli podobny problem co ja że nie będą musieli szukać w kilku(nastu) stronach tylko wszystko ładnie pięknie na pierwszej stronie ^^ (chociaż przyznaję że to trochę zaśmiecanie forum), ale obiecuję że następne problemy napiszę w jednym wątku ;).

 

 

P.S. 'Nie zadałem pytania, lecz odpowiedź dostałem' :)

Opublikowano

A więc -30001

 

@Edit

Choć to i niepoprawne rozwiązanie. TimerInit nie gwarantuje, że jest wyrażany w milisekundach.... Dopiero TimerDiff.

 

Należy więć:

 

$InjTimer = 0

 

If $InjTimer AND TimerDiff($InjTimer) > 30000 THEN

......

$InjTimer = TimerInit()

EndIf

Ta sygnatura jest pusta.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...