error 017: undefined symbol "ID"
#1

I have problem with this error:
Код:
(466)error 017: undefined symbol "ID"
(467) : error 017: undefined symbol "ID"
(468)error 017: undefined symbol "admin"
(474) : error 017: undefined symbol "ID"
(478) : error 017: undefined symbol "ID"
warning 217: loose indentation
Script:
Код:
CMD:makeadmin(playerid,params[]) {
	if(IsPlayerAdmin(playerid)) //Aici pui conditia ca playerul care ofera admin sa fie logat cu RCON
{
  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];new admin; //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.");//In cazul in care conditia IsPlayerAdmin nu se indeplineste, se va afisa acest mesaj.    LINE 480
	return 1;
}
Help please!
Reply
#2

You forgot to define ID, define it simple with:
Quote:

new ID;

in the start of the comand like that:
PHP код:
CMD:makeadmin(playerid,params[]) {
    if(
IsPlayerAdmin(playerid)) //Aici pui conditia ca playerul care ofera admin sa fie logat cu RCON
{
 new 
ID;
  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];new admin//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.");//In cazul in care conditia IsPlayerAdmin nu se indeplineste, se va afisa acest mesaj.    LINE 480
    
return 1;

+1 REP if I helped
Reply
#3

Код:
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];new admin; //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.");//In cazul in care conditia IsPlayerAdmin nu se indeplineste, se va afisa acest mesaj.    LINE 480
	return 1;
}
Reply
#4

Код:
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;
}
Reply
#5

Quote:
Originally Posted by MariusAdv
Посмотреть сообщение
Код:
  new ID;new str[70];new name[MAX_PLAYER_NAME];new aname[MAX_PLAYER_NAME];new reason;
Should look like
PHP код:
new IDstr[70], name[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], reason
Reply
#6

Quote:
Originally Posted by Blackboe
Посмотреть сообщение
Should look like
PHP код:
new IDstr[70], name[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], reason
Nope. I have a problem with this:
Код:
}else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi logat cu RCON.");
and this:
Код:
}else return SendClientMessage(playerid,COLOR_RED,"Trebuie sa fi admin level 1 sa utilizezi aceasta comanda.");
And this errors give me loose indentation.
Reply
#7

Quote:
Originally Posted by MariusAdv
Посмотреть сообщение
Код:
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;
}
Bruv you cant just be coping and pasting everything without even knowing how to fix an loose indentation warning.
PHP код:
CMD:makeadmin(playerid,params[])
{
    if(
IsPlayerAdmin(playerid)) //Aici pui conditia ca playerul care ofera admin sa fie logat cu RCON
    
{
        new 
IDadmin;
        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;

Reply
#8

Thanks, I will try to solve my own mistakes myself.
Reply
#9

A simple
PHP код:
ID[3]; 
should do after
PHP код:
new str[70],aname[MAX_PLAYER_NAME
so it should look like
PHP код:
new str[70],aname[MAX_PLAYER_NAME],id[3]; 
Reply
#10

Why don't you do this
Код:
if(sscanf(params,"ui", params[0], params[1]))
instead of
Код:
if(sscanf(params,"ui",ID,admin))
I find this way easier.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)