26.11.2017, 15:34
Код:
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; }