Jump to content
  • 0

pomoc /setadmin príkaz


XxM4st3rxX

Dotaz

čaute, už dlhšiu dobu špekulujem nad týmto kódom ktorý nefunguje tak ako má..

problem je v tom že keď zadám ID (nar. 1,2,3) ktoré na serveri nieje tak sa to zachová tak ako keby som zadal svoje ID (0)

 

myslim si že niečo nieje v poriadku s tým if(IsPlayerConnected.... neviem kam to umiestniť...

 

ps. všetko funguje tak ako má len toto nejde :(

 

CMD:setadmin(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >=6)
{
   if(sscanf(params,"ui",PID,levels)) return SendClientMessage(playerid,0xFF9900AA, "pouzitie: /setadmin [iD] [Level 1-6]");
   if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Hrac neni pripojeny!");
   if(levels > 6) return SendClientMessage(playerid,0xFF0000FF,"Levely: 1-6!");
   //if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Hrac neni pripojeny!");
   //if(!IsPlayerConnected(PID)) return SendClientMessage(playerid,RED,"Hrac neni pripojeny!");
   if(PlayerInfo[playerid][pAdmin] == levels) return SendClientMessage(playerid,0xFF0000FF, "ERROR: That person has already this admin level!");//Detect if the guy is already the level you setted
   GetPlayerName(playerid,Nam, MAX_PLAYER_NAME);
   GetPlayerName(PID,pname,MAX_PLAYER_NAME);
   if(levels == 0)
   {
       format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);
       SendClientMessage(PID,0xFF9900AA,sprava);
       format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);
       SendClientMessage(playerid,0xFF9900AA,sprava);
       PlayerInfo[playerid][pAdmin] = levels;
       return 1;
   }
   format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);
   SendClientMessage(PID,0xFF9900AA,sprava);
   format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);
   SendClientMessage(playerid,0xFF9900AA,sprava);
   PlayerInfo[playerid][pAdmin] = levels;
   }
   else
   {
   if(PlayerInfo[playerid][pAdmin] >=1) return SendClientMessage(playerid,0xFF9900AA,"Nemas level 6!");
   else
   {
   SendClientMessage(playerid,0xFF9900AA,"Nemas opravneni");
   }
}
   return 1;
}

 

díki ;)

Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0

CMD - používaš je to blbé daj si normál dcmd a uvidíš možno to budeš mat lepšie..

 

a máš define ? sprava ? format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);

SendClientMessage(PID,0xFF9900AA,sprava);

format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);

SendClientMessage(playerid,0xFF9900AA,sprava);

PlayerInfo[playerid][pAdmin] = levels;

return 1;

Link to comment
Share on other sites

  • 0
CMD - používaš je to blbé daj si normál dcmd a uvidíš možno to budeš mat lepšie..

 

a máš define ? sprava ? format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);

SendClientMessage(PID,0xFF9900AA,sprava);

format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);

SendClientMessage(playerid,0xFF9900AA,sprava);

PlayerInfo[playerid][pAdmin] = levels;

return 1;

v CMD problém neni (používam zcmd)

define mám úplne horee

 

#define COL_GREEN "{00FF22}"

#define COL_LIGHTBLUE "{00CED1}"

new sprava[128],levels,Nam[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME],PID;

..

Link to comment
Share on other sites

  • 0
OMG PlayerInfo[playerid][pAdmin] = levels; TU DAJ TAKTO PlayerInfo[PID][pAdmin] = levels; ... :d :D :d

 

to sice funguje ale ten if(IsPlayerConnected(PID)) return ... nefunguje...

keď zadám napr. /setadmin 55 5 tak mi to dá admin level 5 aj ked nemám id 55 ale 0 :S

Link to comment
Share on other sites

  • 0

Hrozně zmatenej kód v tom se těško vyznám jednoduše.

 

V tom kódu se pomalu nejde ani vyznat.

 

dcmd_setlvl(playerid, params[])
{
new string[128],hrac,level;
if(AdminLevel[playerid] < 5) return SendClientMessage(playerid,C_WHITE,"{FF0000}Nemáš dostatečný admin level!");
if(sscanf(params,"ii",hrac,level)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Použití: /setlvl [iD] [LEVEL]");
if(!IsPlayerConnected(hrac)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Hráč není připojen!");
if(level < 0 || level > 5) return SendClientMessage(playerid,C_WHITE,"{FF0000}Rozmezí Levelu [0 - 5]!");
format(string,sizeof(string),"{FF0000}Administrátor %s nastavil hráči %s Admin-Level: %d",PlayerName(playerid),PlayerName(hrac),level);
SendClientMessageToAll(C_WHITE,string);
AdminLevel[hrac] = level;
return true;
}

 

Příkaz, proměnné atd... si uprav podle sebe to snad zvládneš.

Link to comment
Share on other sites

  • 0
d príkazu si daj new PID = strval(params); ... :d

 

lol, to nepotrebujem ptž používam sscanf....

 

CMD:setadmin(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >=6)
{
   if(sscanf(params,"ri",PID,levels)) return SendClientMessage(playerid,0xFF9900AA, "pouzitie: /setadmin [iD] [Level 1-6]");
   if(levels > 6) return SendClientMessage(playerid,0xFF0000FF,"Levely: 1-6!");
if(!IsPlayerConnected(PID)) return SendClientMessage(playerid, COLOR_GREY, "Hrac neni pripojeny!");
   if(PlayerInfo[PID][pAdmin] == levels) return SendClientMessage(playerid,0xFF0000FF, "ERROR: That person has already this admin level!");//Detect if the guy is already the level you setted
   GetPlayerName(playerid,Nam, MAX_PLAYER_NAME);
   GetPlayerName(PID,pname,MAX_PLAYER_NAME);
   if(levels == 0)
   {
       format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);
       SendClientMessage(PID,0xFF9900AA,sprava);
       format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);
       SendClientMessage(playerid,0xFF9900AA,sprava);
       PlayerInfo[PID][pAdmin] = levels;
       return 1;
   }
   format(sprava, sizeof(sprava),"%s ti dal adminlevel %d",Nam,levels);
   SendClientMessage(PID,0xFF9900AA,sprava);
   format(sprava, sizeof(sprava),"nastavil si %s adminlevel na %d!",pname,levels);
   SendClientMessage(playerid,0xFF9900AA,sprava);
   PlayerInfo[PID][pAdmin] = levels;
   }
   else
   {
   if(PlayerInfo[PID][pAdmin] >=1) return SendClientMessage(playerid,0xFF9900AA,"Nemas level 6!");
   else
   {
   SendClientMessage(playerid,0xFF9900AA,"Nemas opravneni");
   }
}
   return 1;
}

 

problém robí furt ten isplayerconnected

 

 

Hrozně zmatenej kód v tom se těško vyznám jednoduše.

 

V tom kódu se pomalu nejde ani vyznat.

 

dcmd_setlvl(playerid, params[])
{
new string[128],hrac,level;
if(AdminLevel[playerid] < 5) return SendClientMessage(playerid,C_WHITE,"{FF0000}Nemáš dostatečný admin level!");
if(sscanf(params,"ii",hrac,level)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Použití: /setlvl [iD] [LEVEL]");
if(!IsPlayerConnected(hrac)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Hráč není připojen!");
if(level < 0 || level > 5) return SendClientMessage(playerid,C_WHITE,"{FF0000}Rozmezí Levelu [0 - 5]!");
format(string,sizeof(string),"{FF0000}Administrátor %s nastavil hráči %s Admin-Level: %d",PlayerName(playerid),PlayerName(hrac),level);
SendClientMessageToAll(C_WHITE,string);
AdminLevel[hrac] = level;
return true;
}

 

Příkaz, proměnné atd... si uprav podle sebe to snad zvládneš.

okej skúsim

Link to comment
Share on other sites

  • 0

ach jaj

 

errory

(346) : error 035: argument type mismatch (argument 2)
(347) : error 035: argument type mismatch (argument 2)
(348) : error 035: argument type mismatch (argument 2)
(349) : error 035: argument type mismatch (argument 2)
(351) : error 035: argument type mismatch (argument 1)

ps.v tom kóde nieje žiadna chyba a aj tak hlási chybu :wtf:

 

kód

CMD:setadmin(playerid, params[])
{
new string[128],hrac,level;
if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid,C_WHITE,"{FF0000}Nemáš dostatečný admin level!"); //346
if(sscanf(params,"ii",hrac,level)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Použití: /setadmin [iD] [LEVEL]"); //347
if(!IsPlayerConnected(hrac)) return SendClientMessage(playerid,C_WHITE,"{FF0000}Hráč není připojen!"); //348
if(level < 0 || level > 6) return SendClientMessage(playerid,C_WHITE,"{FF0000}Rozmezí Levelu [0 - 6]!"); //349
format(string,sizeof(string),"{FF0000}Administrátor %s nastavil hráči %s Admin-Level: %d",PlayerName(playerid),PlayerName(hrac),level);
SendClientMessageToAll(C_WHITE,string); //351
PlayerInfo[hrac][pAdmin] = level;
return 1;
}

Link to comment
Share on other sites

  • 0

Já to mám takto..

 

dcmd_setlvl(playerid,params[])
{
    new id = strval(params[0]);
    new lvl = strval(params[1]);
    new str[128];
    if(AdminLevel[playerid] < 4) return SCM(playerid,Bila,"{FF0000}[ ADMINISTRATION ]{FFFFFF}Nejste přihlášen za RCON !");
    if(!params[0] || !params[1]) return SCM(playerid,Bila,"{FF0000}[ ADMINISTRATION ]{FFFFFF}Použití /setlvl [ ID ] [ A-LEVEL ]!");
    if(!IsPlayerConnected(id)) return SCM(playerid,Bila, "{FF0000}[ ADMINISTRATION ]{FFFFFF}Tento Hráč není Připojený");
    if(IsPlayerNPC(id)) return SCM(playerid,Bila,"{FF0000}[ ADMINISTRATION ]{FFFFFF}Tento hráč je NPC BOT ! Nelze nastavit Admin Level !");
    if(lvl < 0 || lvl > 4)  return SCM(playerid,Bila,"{FF0000}[ ADMINISTRATION ]{FFFFFF}Rozmezí A- Levelu [ 0 - 4 ] !");
    format(str,sizeof(str),"{FF0000}[ ADMINISTRATION ]Hlavní Administrátor %s(%d) nastavil Hráči %s(%d) Admin - Level %d!",PlayerName(playerid),playerid,PlayerName(id),id,lvl);
    SCMTA(Bila,str);
    AdminLevel[id] = lvl;
    printf(str);
    return 1;
}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...