Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-08-26, 20:36


matt18







Wiek: 32
Na forum: 5047 dni
Posty: 8
Nick w MP: [PPP][2K2]MaTT



Respekt: 50

Ostrzeżeń: 100%
Witam ma pewien problem jak zabezpieczyc komende przez wpisaniem jej 2 razy w ciagu 20 sekund chodzi o to ze wpisujemy /cars i chcemy wpisac jeszcze raz i musimy czekac 20 sekund

oto kod:

Kod:

CMD:cars(playerid,cmdtext[])
{
if(WGKandydat[playerid]) return SendClientMessage(playerid,COLOR_RED2,"{FF0000}(i){FFFFFF}Jeste? zapisany na WG i nie mo?esz uruchomi? okna z pojazdami");
if(PlayerToPoint(100,playerid,1939.2324,-2499.2456,43.5088)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}(i){FFFFFF}Tutaj nie wolno spawnowa? pojazd?w!");

ZmieniaAuto[playerid] = false;
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, "{FF0000}(i){FFFFFF}Wybierz typ pojazdu", "Samochody \n Motory/Rowery \n Lodzie \n Samoloty/Helikoptery", "Dalej", "Anuluj");

return 1;
#pragma unused cmdtext
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-26, 20:42


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
G?ra mapy

Kod:

new timer[50], pojazd[50];


Do komendy dodaj

Kod:

if(pojazd[playerid] == 1) return SendClientMessage(playerid, -1, "Blokada");

timer[playerid] = SetTimerEx("UnlockVehicle", 20000, false, "i", playerid);
pojazd[playerid] = 1;


Gdzie? na dole

Kod:

forward UnlockVehicle(playerid);
public UnlockVehicle(playerid)
{
pojazd[playerid] = 0;
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-08-26, 21:01


Michalec

Dokładnie.






Wiek: 30
Na forum: 6405 dni
Posty: 163
Nick w MP: []Damianos[]

Piwa: 99

Respekt: 86,6

Nie r?bcie tego na timerach... Wystarczy czas unixowy. Po wykonaniu komendy zapisujesz do tablicy czas aktualny + 20sec*1000 , a na pocz?tku komendy sprawdzasz czy aktualny czas unixowy jest mniejszy niz ten z tablicy. Jesli tak to return 0;

Pewnie ma?o z tego rozumiesz, wi?c dam gotowca :)
G?ra mapki:
Kod:

new blokada[MAX_PLAYERS];


Komenda:
Kod:

CMD:cars(playerid)
{
if(WGKandydat[playerid]) return SendClientMessage(playerid,COLOR_RED2,"{FF0000}(i){FFFFFF}Jeste? zapisany na WG i nie mo?esz uruchomi? okna z pojazdami");
if(PlayerToPoint(100,playerid,1939.2324,-2499.2456,43.5088)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}(i){FFFFFF}Tutaj nie wolno spawnowa? pojazd?w!");
if(blokada[playerid] > GetTickCount())
{
//wysylasz ze np. pozostalo Ci %d sekund aby uzyc komendy. uzywasz (GetTickCount()-blokada[playerid])/1000 jako pozostaly czas
return 0;
}
ZmieniaAuto[playerid] = false;
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, "{FF0000}(i){FFFFFF}Wybierz typ pojazdu", "Samochody \n Motory/Rowery \n Lodzie \n Samoloty/Helikoptery", "Dalej", "Anuluj");
blokada[playerid] = GetTickCount() + 20000;
return 1;
}


PS Je?li nie u?ywasz params?w (czyli dodatkowych argument?w) to nie musisz dopisywa? ', cmdtext[]' :)

Podpis
Postaw piwo autorowi tego posta
 

 
Tagi: zabezpieczenie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [DM] Zabezpieczenie Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku