Wysłany: 2013-02-26, 20:31
HasciQ
Wiek: 32 Na forum: 3476 dni Posty: 44
Nick w MP: HasciQ
Piwa : 1
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
Wysłany: 2013-02-26, 20:38
Quis Wszechwiedzący
Wiek: 27 Na forum: 3754 dni Posty: 465
Nick w MP: Quis
Piwa : 1082
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
Wysłany: 2013-02-26, 20:42
Wafelowski
Wiek: 26 Na forum: 3955 dni Posty: 428
Piwa : 100
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
Wysłany: 2013-02-26, 20:42
HasciQ
Wiek: 32 Na forum: 3476 dni Posty: 44
Nick w MP: HasciQ
Piwa : 1
mogę cie prosić abys mi ty to przerobil? nie rozkminiam troszke tego gdzie mam to *****
Wysłany: 2013-02-27, 20:21
Patro114
Wiek: 30 Na forum: 3485 dni Posty: 116
Piwa : 981
ja bym użył Timera (SetTimerEx . . . . .. . . . .. . .
Wysłany: 2013-02-27, 22:00
KatieM
Wiek: 29 Na forum: 3476 dni Posty: 93
Nick w MP: _DMCy
Piwa : 285
to nie dobry pomysł. Popieram pomysł użytkownika Quis
Tagi: jak :: zrobić :: czasową :: komende.
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: