←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Ustawianie timera na ruletke

  • +
  • -
Robiin - zdjęcie Robiin 11.04.2016

Cześć, napisałem sobie na szybko ruletkę, ale zapomniałem najistotniejszej rzeczy mając na celu inną rzecz. Ale jakby tego mało, zapomniał timera, i zapomniałem najważniejszego co chciałem zrobić  :facepalm:

 

 

Nie wiem też jak zrobić timer. Tak na około 180 sekund, ustawianych definem CZAS

 

 

Ktoś podpowiedziałby jak zrobić timer/zrobiłby go, żebym mógł zobaczyć jak to działa? ^^

 

Spoiler

 

 

 

Załączone pliki


Użytkownik asik edytował ten post 11.04.2016 09:30
Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 11.04.2016

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Plugin"
#define VERSION "0.1"
#define AUTHOR "Sn!ff3r"


new lastUsed[33]
new useDelay = 180

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
}

public client_putinserver(id)
{
	lastUsed[id] = 0;
}

public funkcjaLosujaca(id) 
{
	new timestamp = get_systime();
	
	if(!lastUsed[id] || timestamp - lastUsed[id] > useDelay)
	{
		// tutaj funkcja losujaca itd
		
		lastUsed[id] = timestamp;	
	}
	else
	{
		client_print(id, print_chat, "Ruletki mozesz uzyc ponownie za %d sekund", useDelay - (timestamp - lastUsed[id]))
	}
}
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 11.04.2016

~ Cls

 

Puchate thx wielkie +1 ;>

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 05.05.2016

~ Do zamknięcia. Głupie pytanie ;P


Użytkownik asik edytował ten post 05.05.2016 13:37
Odpowiedz

  • +
  • -
Master Yoga - zdjęcie Master Yoga 05.05.2016


(jeśli np. 10.000$ kosztuje los, i tych 10.000$ nie masz, ale spróbujesz zalosować, to jak nie włączać useDelay? )
Skoro los kosztuje to nie ma sensu dawania możliwości losowania innym graczom nie mającej wymaganej kwoty. No bo co to by była za sprawiedliwość gdyby to jedni musieli płacić za los i czekać na kolejną taką możliwość podczas gdy drudzy losowali by bez wymaganej kwoty i jak to ująłeś "Delay".

 

A co do samego sposobu wykonania.

W pierwszym warunku musisz dodać sprawdzanie czy gracz posiada wymaganą kwotę.

Pisząc pierwszy warunek mam na myśli to:

if(!lastUsed[id] || timestamp - lastUsed[id] > useDelay)

Jeśli warunek zostanie spełniony to : ( cytuję ) "włączy się Delay", w przeciwnym razie otrzymasz tylko informację o tym, że ruletkę możesz użyć raz na X sekund.

W skrócie powyższe zdanie to odpowiedź na to pytanie:


to jak nie włączać useDelay? )

 

Wesprę cię jeszcze przykładem byś nie musiał się męczyć.

public funkcjaLosujaca(id) 
{
	new timestamp = get_systime();
	
        new kasa = cs_get_user_money(id);  <-- ilosc posiadanej kasy

	if((!lastUsed[id] || timestamp - lastUsed[id] > useDelay) && kasa >= 10000)
	{
		// tutaj funkcja losujaca itd
                cs_set_user_money(id,kasa-10000) <-- zabieramy graczowi 10000 $
		
		lastUsed[id] = timestamp;	<--- Delay
	}
	else <-- jesli gracz nie ma kasy badz uzyl juz ruletki wczesniej dostanie tylko info bez "Dealy"
	{
		client_print(id, print_chat, "Ruletki mozesz uzyc ponownie za %d sekund", useDelay - (timestamp - lastUsed[id]))
	}
}
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 05.05.2016

 


(jeśli np. 10.000$ kosztuje los, i tych 10.000$ nie masz, ale spróbujesz zalosować, to jak nie włączać useDelay? )
Skoro los kosztuje to nie ma sensu dawania możliwości losowania innym graczom nie mającej wymaganej kwoty. No bo co to by była za sprawiedliwość gdyby to jedni musieli płacić za los i czekać na kolejną taką możliwość podczas gdy drudzy losowali by bez wymaganej kwoty i jak to ująłeś "Delay".

 

A co do samego sposobu wykonania.

W pierwszym warunku musisz dodać sprawdzanie czy gracz posiada wymaganą kwotę.

Pisząc pierwszy warunek mam na myśli to:

if(!lastUsed[id] || timestamp - lastUsed[id] > useDelay)

Jeśli warunek zostanie spełniony to : ( cytuję ) "włączy się Delay", w przeciwnym razie otrzymasz tylko informację o tym, że ruletkę możesz użyć raz na X sekund.

W skrócie powyższe zdanie to odpowiedź na to pytanie:

 

 


to jak nie włączać useDelay? )

 

Wesprę cię jeszcze przykładem byś nie musiał się męczyć.

public funkcjaLosujaca(id) 
{
	new timestamp = get_systime();
	
        new kasa = cs_get_user_money(id);  <-- ilosc posiadanej kasy

	if((!lastUsed[id] || timestamp - lastUsed[id] > useDelay) && kasa >= 10000)
	{
		// tutaj funkcja losujaca itd
                cs_set_user_money(id,kasa-10000) <-- zabieramy graczowi 10000 $
		
		lastUsed[id] = timestamp;	<--- Delay
	}
	else <-- jesli gracz nie ma kasy badz uzyl juz ruletki wczesniej dostanie tylko info bez "Dealy"
	{
		client_print(id, print_chat, "Ruletki mozesz uzyc ponownie za %d sekund", useDelay - (timestamp - lastUsed[id]))
	}
}

 

Dzięki, ale \/ :P

 

 

~ Do zamknięcia. Głupie pytanie ;P

Odpowiedz