czas w set_task
mlekovita
01.06.2022
Siema chce zrobic zeby czas sie uruchamial po wpisaniu komendy i go odliczało na hudzie jak dojdzie do 0 to usuwa ten hud i resetuje czas do stanu poczatkowego. Jak moglbym to zrobic?
public wyswietlwszystkim() { set_task(1.0, "showHud"); } public showHud() { if(czas > 0) { ShowSyncHudMsg(0, syncHud, "Koniec za: %d", czas); czas-- } }
Problem w tym ze czasem sie to buguje i szybko mijaja te sekundy jakby task sie odpalal 2 razy albo 3
Użytkownik mlekovita edytował ten post 01.06.2022 17:44
Rivit
01.06.2022
Może coś takiego?
#define TASK_ID 1337 public wyswietlwszystkim() { if(task_exists(TASK_ID)){ //co chcesz zrobic gdy task juz istnieje? }else{ czas = 60; // ustaw na co chcesz przed wywolaniem taska set_task(1.0, "showHud", TASK_ID, _, _, "b"); } } public showHud() { if(czas > 0) { ShowSyncHudMsg(0, syncHud, "Koniec za: %d", czas); czas-- }else{ remove_task(TASK_ID) } }
Generalnie takie coś nie jest przystosowane do używania przez wielu graczy, ale jako że nie zaznaczyłeś tego w pytaniu to założyłem, że nie trzeba.
Druga możliwość to - set_task ma taki parametr jak flagi i tam można podać flagę "a", dzięki której możesz określić ile razy się ma task wykonać, więc jak chcesz np wyswietlac cos co sekundę przez 10sekund to czas taska dajesz na 1.0 i flagą "a" sterujesz, żeby task się wykonał 10 razy.
Wszystko zależy od tego co Ci potrzeba