Timer ruletki, możliwość jednorazowego uży...
Robiin
01.05.2016
Cześć,
tak na początku, żeby nie było że nie umiem, albo coś, to jest chwila po północy, i zazwyczaj kiedy chociaż troche jestem zmęczony i siedzę w domu, to wyłącza mi się myślenie, dlatego może być w kodzie parę błedów.
Problem wygląda tak;
napisałem sobie ruletkę, (jeszcze nie skończyłem) i nie za bardzo wiem jak ustawić na nią delay, ale tym razem, z cooldownem. Dokładniej mi chodzi o to, że jeżeli gracz który nie ma 10.000$ (cena losowania w ruletce), spróbuje zalosować, otrzyma w ColorChat'cie info o tym, że nie ma 10.000$, i jeżeli (nawet po sekundzie) będzie miał już 10.000, będzie mógł użyć ponownie ruletki;
Jeżeli nie mam 10.000, i spróbuję zalosować, to nie nakłada się na mnie delay ruletki.
Tak w dużym uproszczeniu; jak zrobić cooldown ruletki, i nie nakładać delay'a osobie która próbowała zalosować, nie spełniając wymagań do losowania.
Kodzik;
(tak próbowałem już coś wykombinować z OstatnieUzycie, ale mi raczej nie wyszło, albo jestem głupi i tego nie widzę ._.)
Będę dokańczał sobie ruletkę, a jakby ktoś chciał (chociaż nie wiem po co :v) już dokończoną wersję, to chętnie się podzielę
Ogen Dogen
01.05.2016
Z tego co zrozumiałem, to chcesz zrobić coś takiego, że jeżeli gracz nie spełnia wymagań to za minutę ma ponownie sprawdzić czy nie zarobił tej kasy ?
Stwórz wtedy dla niego taska o ID = jakaś duża stała liczba + id gracza, w funkcji odejmij tą dużą liczbę i wykonaj w niej co potrzebujesz
btw.
if(!is_user_bot(id) || !is_user_hltv(id))
Boty czy HLTV raczej nie otworzą menu
Robiin
02.05.2016
Z tego co zrozumiałem, to chcesz zrobić coś takiego, że jeżeli gracz nie spełnia wymagań to za minutę ma ponownie sprawdzić czy nie zarobił tej kasy ?
Stwórz wtedy dla niego taska o ID = jakaś duża stała liczba + id gracza, w funkcji odejmij tą dużą liczbę i wykonaj w niej co potrzebujesz
btw.
if(!is_user_bot(id) || !is_user_hltv(id))Boty czy HLTV raczej nie otworzą menu
O tym właśnie mówię nie myślę w wieczornych godzinach :V
Ale nie, nie o to mi chodzi. Chodzi mi o to, że jeżeli mam załóżmy 16.000$, to mogę sobie zalosować na ruletce. Ruletka wtedy zabiera mi jej koszt, czyli 10.000$, zostaje mi 6.000$, czyli mi nie starczy na kolejne losowanie. Jeżeli spróbuję zalosować mając 6.000$, to wywali mi na ColorChat'cie, że nie mam wymaganej sumy. A jeżeli już będę miał to 10k, to dopiero wtedy będę mógł zalosować normalnie.
We wcześniejszej ruletce, kiedy ktoś;
ma 1 los, czyli ma załóżmy te 10.000$, i zalosuje, to przy kolejnym losowaniu, czyli kiedy ma 6.000$, jakby nie zresetuje mu cooldowna ruletki.
Nie wiem jak to wytłumaczyć, jeżeli nie zrozumiałeś, to rano postaram się wyjaśnić "na trzeźwo"
Ogen Dogen
02.05.2016
Chodzi o prostego if'a ?
new kasa = cs_get_user_money(id); if (kasa - 10000 < 0) { ColorChat(id,RED,"Nie masz wystarczajaco pieniedzy !"); return; } else { cs_set_user_money(id, kasa - 10000); // losowanie }
Master Yoga
02.05.2016
Więc:
New czas[32];
Public funkcja(id)
{
New money = cs_get_user_money(id)
If(money >= 10000 && czas[id] == 0)
{
Gracz ma wymagana kwotę oraz odczekał wymagny czas do ponownego użyciaruletki. Tutaj możesz wywołać ruletkę. Oraz ustawiasz task w którym np. Za 2 minuty wyzerujesz mu czas oczekiwania.
Jeśli chcesz wyświetlać ilość pozostałych sekund to:
czas[id] = 120
I task dajesz na 1 sec i z flaga b.
Sprawdzasz w funkcji wywoływanej przez task czy czas nie jest równy juz 0 jeśli tak to usuwasz task.
Jeśli nie chcesz by gracz widział ile mu zostalo możesz do zmiennej czas przypisać cokolwiek i ustawić task i ustawić go na te 120 sekund i tam od razu zerować.
}
Else ColorChat(id, kolor, " Ruletkę możesz użyć tylko raz na 2 minuty oraz musisz mieć 10000$ ")
}
Robiin
02.05.2016
Z twojej wypowiedzi wywnioskowałem, że możliwość ruletki może być dostępna tylko dla osób z dana suma pieniędzy i co jakiś czas.
Więc:
New czas[32];
Public funkcja(id)
{
New money = cs_get_user_money(id)
If(money >= 10000 && czas[id] == 0)
{
Gracz ma wymagana kwotę oraz odczekał wymagny czas do ponownego użyciaruletki. Tutaj możesz wywołać ruletkę. Oraz ustawiasz task w którym np. Za 2 minuty wyzerujesz mu czas oczekiwania.
Jeśli chcesz wyświetlać ilość pozostałych sekund to:
czas[id] = 120
I task dajesz na 1 sec i z flaga b.
Sprawdzasz w funkcji wywoływanej przez task czy czas nie jest równy juz 0 jeśli tak to usuwasz task.
Jeśli nie chcesz by gracz widział ile mu zostalo możesz do zmiennej czas przypisać cokolwiek i ustawić task i ustawić go na te 120 sekund i tam od razu zerować.
}
Else ColorChat(id, kolor, " Ruletkę możesz użyć tylko raz na 2 minuty oraz musisz mieć 10000$ ")
}
Jestem głupi, albo głupi
Przykładzik może?