26.11.2017, 16:44
Quote:
Код:
CMD:makeadmin(playerid,params[]) { if(IsPlayerAdmin(playerid)) //Aici pui conditia ca playerul care ofera admin sa fie logat cu RCON { new ID, admin; if(sscanf(params,"ui",ID,admin)) return SendClientMessage(playerid,COLOR_RED,"Foloseste /makeadmin [ID] [level]."); //aici declari parametrii, iar daca comanda este incompleta sa iti dea mesaj cu ce sa scrii in parametri. Parametrul ID este folosit pentru jucatori, iar i pentru numere intregi. LINE 466 else if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,COLOR_RED,"Playerul nu este conectat."); //Verificam daca playerul nu este conectat sa ne dea un mesaj. LINE 467 else if(admin > 7) return SendClientMessage(playerid,COLOR_RED,"Levelul maxim este 7."); //Aici compara variabila locala admin cu 7, daca admin este mai mare ca 7 sa iti dea mesajul respectiv(daca de exemplu vreti pana la admin 10, comparati cu 10). LINE 468 else //daca conditiile de mai sus sunt false ambele, se indeplineste ce e mai jos { new str[70],aname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME]; //declaram variabila locala tip string str, iar in parantezele drepte este limita de caractere din acel string. aname[MAX_PLAYER_NAME] si name[MAX_PLAYER_NAME] sunt variabile locale care se folosesc pentru nume, MAX_PLAYER_NAME este numele maxim care il poate avea jucatorul. PlayerInfo[playerid][pAdmin] = admin; // Aici, variabila pAdmin se egaleaza cu variabila locala admin care este folosita ca parametru pentru a preciza levelul adminului. Adica, pAdmin este egalata cu level-ul de admin care l-ai introdus. GetPlayerName(playerid,aname,sizeof(aname)); //Aici ia numele jucatorului care executa comanda. GetPlayerName(ID,name,sizeof(name)); //Aici ia numele jucatorului pe care se executa comanda. LINE 474 format(str,sizeof str,"I-ai lui %s admin level %i.",name,admin); //format se foloseste cand ai de precizat variabile/stringuri in mesaj. In cazul nostru, %s este folosit pentru name deoarece name este un string, %s este folosit pentru string. %i este folosit pentru a arata level-ul de admin, %i sau %d se folosesc pentru numere intregi. SendClientMessage(playerid,COLOR_RED,str); //Trimite mesaj celui care executa comanda. format(str,sizeof str,"%s ti-a dat admin level %i.",aname,admin); SendClientMessage(ID,COLOR_RED,str); //Trimite mesaj celui pe care este executata comanda. LINE 478 } }else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi logat cu RCON."); loose indentation return 1; } CMD:kick(playerid,params[]) { new ID;new str[70];new name[MAX_PLAYER_NAME];new aname[MAX_PLAYER_NAME];new reason; if(PlayerInfo[playerid][pAdmin] >= 1) //Aici pune conditia ca adminul jucatorului sa fie minim 1 { if(sscanf(params,"us",ID,reason)) return SendClientMessage(playerid,COLOR_RED,"Foloseste /kick id motiv."); //declara parametrii else if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,COLOR_RED,"Playerul nu este conectat."); //Verifica daca playerul este conectat else //in caz ca cele 2 conditii de mai sus sunt false, se executa urmatoarea { Kick(ID); //da kick jucatorului pe care este executata comanda GetPlayerName(playerid,aname,sizeof(aname)); //Ia numele playerului care executa comanda si este stocat in variabila aname GetPlayerName(ID,name,sizeof(name)); //Ia numele playerului pe care este executata comanda si este stocat in variabila name format(str,sizeof str,"%s a primit kick de la adminul %s, motiv: %s.",name,aname,reason); //Primul %s corespunde cu prima variabila de dupa mesaj. Exemplu: primul %s corespunde cu name, al doilea cu aname, si al 3lea cu reason. Toate 3 sunt tip de string. SendClientMessageToAll(COLOR_RED,str);//Da mesaj tuturor } } else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi admin level 1 sa utilizezi aceasta comanda."); //Daca pAdmin este 0, iti da acest mesaj------- ---> loose indentation return 1; } |
PHP код:
CMD:makeadmin(playerid,params[])
{
if(IsPlayerAdmin(playerid)) //Aici pui conditia ca playerul care ofera admin sa fie logat cu RCON
{
new ID, admin;
if(sscanf(params,"ui",ID,admin)) return SendClientMessage(playerid,COLOR_RED,"Foloseste /makeadmin [ID] [level]."); //aici declari parametrii, iar daca comanda este incompleta sa iti dea mesaj cu ce sa scrii in parametri. Parametrul ID este folosit pentru jucatori, iar i pentru numere intregi. LINE 466
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,COLOR_RED,"Playerul nu este conectat."); //Verificam daca playerul nu este conectat sa ne dea un mesaj. LINE 467
if(admin > 7) return SendClientMessage(playerid,COLOR_RED,"Levelul maxim este 7."); //Aici compara variabila locala admin cu 7, daca admin este mai mare ca 7 sa iti dea mesajul respectiv(daca de exemplu vreti pana la admin 10, comparati cu 10). LINE 468
{
new str[70],aname[MAX_PLAYER_NAME],name[MAX_PLAYER_NAME]; //declaram variabila locala tip string str, iar in parantezele drepte este limita de caractere din acel string. aname[MAX_PLAYER_NAME] si name[MAX_PLAYER_NAME] sunt variabile locale care se folosesc pentru nume, MAX_PLAYER_NAME este numele maxim care il poate avea jucatorul.
PlayerInfo[playerid][pAdmin] = admin; // Aici, variabila pAdmin se egaleaza cu variabila locala admin care este folosita ca parametru pentru a preciza levelul adminului. Adica, pAdmin este egalata cu level-ul de admin care l-ai introdus.
GetPlayerName(playerid,aname,sizeof(aname)); //Aici ia numele jucatorului care executa comanda.
GetPlayerName(ID,name,sizeof(name)); //Aici ia numele jucatorului pe care se executa comanda. LINE 474
format(str,sizeof str,"I-ai lui %s admin level %i.",name,admin); //format se foloseste cand ai de precizat variabile/stringuri in mesaj. In cazul nostru, %s este folosit pentru name deoarece name este un string, %s este folosit pentru string. %i este folosit pentru a arata level-ul de admin, %i sau %d se folosesc pentru numere intregi.
SendClientMessage(playerid,COLOR_RED,str); //Trimite mesaj celui care executa comanda.
format(str,sizeof str,"%s ti-a dat admin level %i.",aname,admin);
SendClientMessage(ID,COLOR_RED,str); //Trimite mesaj celui pe care este executata comanda. LINE 478
}
}
else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi logat cu RCON.");
return 1;
}
CMD:kick(playerid,params[])
{
new ID;new str[70];new name[MAX_PLAYER_NAME];new aname[MAX_PLAYER_NAME];new reason;
if(PlayerInfo[playerid][pAdmin] >= 1) //Aici pune conditia ca adminul jucatorului sa fie minim 1
{
if(sscanf(params,"us",ID,reason)) return SendClientMessage(playerid,COLOR_RED,"Foloseste /kick id motiv."); //declara parametrii
if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,COLOR_RED,"Playerul nu este conectat."); //Verifica daca playerul este conectat
{
Kick(ID); //da kick jucatorului pe care este executata comanda
GetPlayerName(playerid,aname,sizeof(aname)); //Ia numele playerului care executa comanda si este stocat in variabila aname
GetPlayerName(ID,name,sizeof(name)); //Ia numele playerului pe care este executata comanda si este stocat in variabila name
format(str,sizeof str,"%s a primit kick de la adminul %s, motiv: %s.",name,aname,reason); //Primul %s corespunde cu prima variabila de dupa mesaj. Exemplu: primul %s corespunde cu name, al doilea cu aname, si al 3lea cu reason. Toate 3 sunt tip de string.
SendClientMessageToAll(COLOR_RED,str);//Da mesaj tuturor
}
}
else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi admin level 1 sa utilizezi aceasta comanda."); //Daca pAdmin este 0, iti da acest mesaj-------
return 1;
}