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

Wysłany: 2013-02-26, 20:31


HasciQ







Wiek: 36
Na forum: 4868 dni
Posty: 44
Nick w MP: HasciQ

Piwa: 1

Respekt: 64

Kod:

CMD:odinfekuj(playerid,params[])
{
if(team[playerid] == TEAM_HUMAN)
{
if(pInfo[playerid][pHumanClass] == MEDIC || pInfo[playerid][pHumanClass] == ADVANCEDMEDIC || pInfo[playerid][pHumanClass] == HEAVYMEDIC || pInfo[playerid][pHumanClass] == VIPMEDIC || pInfo[playerid][pHumanClass] == DOCTOR)
{
new targetid,string[128],str[256];
if(sscanf(params,"u", targetid)) return SendClientMessage(playerid,-1,""chat" /odinfekuj [playerid]");

if(pInfo[targetid][IsPlayerInfected] == 1)
{
CurePlayer(targetid);
format(string,sizeof(string),"~n~~n~~n~~n~~g~~w~ %s Uratowal cie",PlayerName(playerid));
GameTextForPlayer(targetid,string,3500,5);
format(str,sizeof(str),""chat""COL_LGREEN" %s %s Uratowa? cz?owieka %s kt?ry by? zainfekowany.",GetClassName(playerid),PlayerName(playerid),PlayerName(targetid));
SendClientMessageToAll(-1,str);
GivePlayerXP(playerid,20);
}
else return SendClientMessage(playerid,-1,""chat" Ten gracz nie jest zainfekowany");
}
else return SendClientMessage(playerid,-1,""chat""COL_LGREEN" Musisz by? Lekarzem, Zaawansowanym Lekarzem, b?d? VIP Medykiem aby u?y? tej komendy!");
}
else return SendClientMessage(playerid,-1,""chat""COL_LGREEN" Musisz by? cz?owiekiem, do u?ycia tej komendy (Lekarz)");
return 1;
}



wiec jak, takowy kod zmieni? aby ponownie u?y? t? komend? za 10 sek

Podpis



Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-26, 20:38


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5146 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

Gdzie? na g?rze:
Kod:

new OstatnieOdinfekuj[MAX_PLAYERS];


Pod tym kodem:
Kod:

if(pInfo[targetid][IsPlayerInfected] == 1)
{

Dodaj:
Kod:

OstatnieOdinfekuj[playerid] = gettime();


I dodaj taki warunek zaraz na pocz?tku komendy jak nie wiesz gdzie:
Kod:

if(gettime()-OstatnieOdinfekuj[playerid] < 10)
{
SendClientMessage(playerid,-1,""chat""COL_LGREEN" Mo?esz u?ywa? tej komendy raz na 10 sekund.");
return 1;
}


I to by by?o na tyle, jak potrafisz to sobie przer?b do w?asnego u?ytku :)

Pozdrawiam

@DOWN
Je?li serwer chodzi d?u?ej ni? 24h, GetTickCount mo?e zwraca? nieprawid?ow? warto?? (na 32-bitowych systemach). No i po co por?wnywa? wysokie liczby, jak mo?na mniejsze.

@DOWN x2
Masz opisane krok po kroku gdzie wstawia? o.O

Ostatnio zmieniony przez Quis 2013-02-26, 20:46, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-26, 20:42


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Mo?na te? w taki spos?b:

Kod:


CMD:jakaskomenda(playerid, params[])
{
if((GetTickCount() - GetPVarInt(playerid, "blokadacmd") < 10000)
return SendClientMessage(playerid, -1, "Mo?esz u?y? tej komendy dopiero za 10 sek!");

// Dalsza cz??? komendy

SetPVarInt(playerid, "blokadacmd", GetTickCount());
return 1;
}


@UP: Tego akurat nie wiedzia?em.

@Down: Tu masz z u?yciem PVara:

Kod:


CMD:odinfekuj(playerid,params[])
{
if(team[playerid] == TEAM_HUMAN)
return SendClientMessage(playerid,-1,""chat""COL_LGREEN" Musisz by? cz?owiekiem, do u?ycia tej komendy (Lekarz)");

if(pInfo[playerid][pHumanClass] == MEDIC || pInfo[playerid][pHumanClass] == ADVANCEDMEDIC || pInfo[playerid][pHumanClass] == HEAVYMEDIC || pInfo[playerid][pHumanClass] == VIPMEDIC || pInfo[playerid][pHumanClass] == DOCTOR)
return SendClientMessage(playerid,-1,""chat""COL_LGREEN" Musisz by? Lekarzem, Zaawansowanym Lekarzem, b?d? VIP Medykiem aby u?y? tej komendy!");

if((gettime() - GetPVarInt(playerid, "OdinfekujBlokada")) < 10)
return SendClientMessage(playerid,-1,""chat""COL_LGREEN" Mo?esz u?y? tej komendy dopiero za 10 sekund!");

new targetid,string[128],str[256];
if(sscanf(params,"u", targetid))
return SendClientMessage(playerid,-1,""chat" /odinfekuj [playerid]");

if(pInfo[targetid][IsPlayerInfected] == 1)
return SendClientMessage(playerid,-1,""chat" Ten gracz nie jest zainfekowany"

CurePlayer(targetid);
format(string,sizeof(string),"~n~~n~~n~~n~~g~~w~ %s Uratowal cie",PlayerName(playerid));
GameTextForPlayer(targetid,string,3500,5);
format(str,sizeof(str),""chat""COL_LGREEN" %s %s Uratowa? cz?owieka %s kt?ry by? zainfekowany.",GetClassName(playerid),PlayerName(playerid),PlayerName(targetid));
SendClientMessageToAll(-1,str);
GivePlayerXP(playerid,20);

SetPVarInt(playerid, "OdinfekujBlokada", gettime());
return 1;
}


P.S Najlepiej te warunki z wiadomo?ciami, ?e nie ma uprawnie? do tej komendy ustawia? na samym jej pocz?tku. Lepiej si? na to patrzy wtedy ;) . Polecam Ci: http://codegenerators.pl/ do uk?adania kodu.

Ostatnio zmieniony przez Wafelowski 2013-02-26, 20:54, w całości zmieniany 3 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-26, 20:42


HasciQ







Wiek: 36
Na forum: 4868 dni
Posty: 44
Nick w MP: HasciQ

Piwa: 1

Respekt: 64

mog? cie prosi? abys mi ty to przerobil? nie rozkminiam troszke tego gdzie mam to ***** ;)

Podpis



Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-27, 20:21


Patro114







Wiek: 34
Na forum: 4877 dni
Posty: 113

Piwa: 993

Respekt: 75,5

ja bym u?y? Timera (SetTimerEx . . . . .. . . . .. . . :)

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-27, 22:00


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
to nie dobry pomys?. Popieram pomys? u?ytkownika Quis

Postaw piwo autorowi tego posta
 

 
Tagi: jak :: zrobić :: czasową :: komende.
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Jak zrobić czasową komende. 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