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: 31
Na forum: 3219 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: 26
Na forum: 3496 dni
Posty: 465
Nick w MP: Quis

Piwa: 1073

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: 25
Na forum: 3698 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: 31
Na forum: 3219 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: 29
Na forum: 3228 dni
Posty: 116

Piwa: 981

Respekt: 75,5


ja bym użył Timera (SetTimerEx . . . . .. . . . .. . . :)

Podpis
Postaw piwo autorowi tego posta
 

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


KatieM







Wiek: 28
Na forum: 3218 dni
Posty: 93
Nick w MP: _DMCy

Piwa: 283

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:








Wyświetl posty z ostatnich:   

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

Skocz do: