Skocz do zawartości
DaxLer

[ROZWIĄZANY]Spam Tekstem

Rekomendowane odpowiedzi

Witam. Robię sobie jedną rzecz i mam taki problem. Nie wiem jak zrobić aby po wejściu w pickup pojawiła się tylko ona raz a nie cały czas nią spamiło. I aby kolejny raz pojawiła się po minucie lub po ponownym wejściu w pickup. Oto kod:

forward papiery(playerid);
public papiery(playerid)
{
for(new a; a < sizeof(OddaniePapierow); a++)
{
if((IsPlayerInRangeOfPoint(playerid, 20.0, OddaniePapierow[a][0],OddaniePapierow[a][1],OddaniePapierow[a][2])) == 1)
{
SendClientMessage(playerid, Szary, "Dokumenty!");
}
}
return 1;
}



			
		

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 minuty temu, ravesti. napisał:

Musisz stworzyć timer i potem odpowiednio go użyć.

Chyba lepiej zmienną per-player, w której będzie zapisany czas albo znacznik czasowy ostatniego użycia pickup'a i przy każdym wywołaniu callback-a dać warunek sprawdzający ile czasu minęło od ostatniego użycia pickup'a i jeżeli więcej lub dokładnie te 20 sekund to się wyświetli, a jeśli nie to "return 1".

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

@DaxLer Ja już nie umiem dokładniej, no chyba, że ucieknę się do najgłupszej metody - patrz poniżej (kod):

public OnPlayerConnect(playerid)
{
  SetPVarInt(playerid, "lastpickup", gettime()); // zmienna nie będzie wynosiła 0, tego byśmy nie chcieli :)
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
  if (gettime() - GetPVarInt(playerid, "lastpickup") <= 20) return 1; // po instrukcji return nic nie zostanie dalej wykonane, natomiast sama instrukcja zostanie wywołana jeżeli warunek zostanie spełniony

  SetPVarInt(playerid, "lastpickup", gettime()); // jak można było nie zauważyć braku tej linijki? :D

  // (jakiś) dalszy kod, który będzie wykonywany najczęściej raz na 20 sekund
}
Edytowane przez PrzMas
poprawka, poprawka nr 2

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
22 minut temu, DaxLer napisał:

@PrzMas

Nadal spami

Bo się rąbnąłem czego nie zauważyłeś - błąd logiczny z mojej strony. Poprawiłem kod, edytowałem post wyżej.

Edytowane przez PrzMas
dopisek

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×