[Ajuda] Ola, alguem me faz esse comando?
#1

Precisava de um comando para setar admin para os player, apenas aquele que tem o cargo master ou esta logado na rcon:
Aqui a enum Cargos:

PHP код:
enum Cargos {
    
Ajudante,
    
Moderador,
    
Corregedor,
    
Administrador,
    
Master
}; 
aqui o code todo praticamente se quiserem tirar duvidas!
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    
format(gfilesizeof(gfile), "Contas/%s.txt"Pname(playerid));
    switch(
dialogid) {
        case 
Registro: {
            if(!
strlen(inputtext))
            {
                
SendClientMessage(playerid, -1"[ {FFFFFF}ERRO ]Digite uma senha para se registrar!");
                
format(strsizeof(str), "Ola, seja bem vindo pela primeira vez Sr.%s !"Pname(playerid));
                
ShowPlayerDialog(playeridRegistroDIALOG_STYLE_PASSWORD"{FFFFFF}REGISTRO"str"Registro""Cancelar");
            }
            else
            {
                
DOF2_CreateFile(gfile);
                
DOF2_SetString(gfile"Senha"inputtext);
                
DOF2_SetInt(gfile"Skin"pInfo[playerid][pSkin] = 137);
                
DOF2_SetInt(gfile"Dinheiro"pInfo[playerid][pDinheiro] = 5000);
                
DOF2_SetFloat(gfile"Vida"pInfo[playerid][pVida]);
                
DOF2_SetFloat(gfile"Colete"pInfo[playerid][pColete]);
                
DOF2_SetInt(gfile"Level"pInfo[playerid][pLevel]);
                
DOF2_SetInt(gfile"Ajudante"aInfo[playerid][Ajudante] = 0);
                
DOF2_SetInt(gfile"Moderador"aInfo[playerid][Moderador] = 0);
                
DOF2_SetInt(gfile"Corregedor"aInfo[playerid][Corregedor] = 0);
                
DOF2_SetInt(gfile"Administrador"aInfo[playerid][Administrador] = 0);
                
DOF2_SetInt(gfile"Master"aInfo[playerid][Master] = 0);
                
DOF2_SaveFile();
                
SpawnPlayer(playerid);
                
SetPlayerSkin(playeridpInfo[playerid][pSkin]);
                
GivePlayerMoney(playeridpInfo[playerid][pDinheiro]);
                
SetPlayerHealth(playeridpInfo[playerid][pVida]);
                
SetPlayerArmour(playeridpInfo[playerid][pColete]);
            }
        }
        case 
Login: {
            if(!
strlen(inputtext))
            {
                
SendClientMessage(playerid, -1"[{FFFFFF}ERRO ] Digite Sua senha para logar no servidor!");
                
format(strsizeof(str), "Ola, seja bem vindo ao servidor novamente!");
                
ShowPlayerDialog(playeridLoginDIALOG_STYLE_PASSWORD"{FFFFFF}LOGIN"str"Login""Cancelar");
            }
            if(
strcmp(inputtextDOF2_GetString(gfile"Senha"), true) == 0)
            {
                
SetPlayerHealth(playeridpInfo[playerid][pVida]);
                
SetPlayerArmour(playeridpInfo[playerid][pColete]);
                
SetPlayerSkin(playeridpInfo[playerid][pSkin]);
                
GivePlayerMoney(playeridpInfo[playerid][pDinheiro]);
                
SetPlayerScore(playeridpInfo[playerid][pLevel]);
                
SpawnPlayer(playerid);
                
UsePlayerPedAnims();
                
SendClientMessage(playerid, -1"{FFFFFF}Login efeituado com sucesso!");
            }
            else
            {
                
format(strsizeof(str), "Ola, seja bem vindo ao servidor novamente!");
                
ShowPlayerDialog(playeridLoginDIALOG_STYLE_PASSWORD"{FFFFFF}LOGIN"str"Login""Cancelar");
            }
        }
    }
    return 
1;

Gostaria que o comando fosse em zcmd pfv, nao me dou bem com strcmp!
Reply
#2

Olha outros comandos e faz voce cara, e para de ficar floodando o forum com o mesmo topico
Reply
#3

Sugiro modificar alguns comandos da sua GM para ficar melhor de se trabalhar.

Retire o Enum Cargos.
Vб onde no ENUM onde estб localizado:
pSkin
pDinheiro,
Etc... e Adicione "pAdmin,"(Caso vocк coloque por ъltimo retire a vнrgula.)

Exemplo:

PHP код:
enum InfoPlayer {
    
Senha,
    
Skin,
    
Score,
    
Matou,
    
Morreu,
    
Dinheiro,
    
Admin
}; 
Modifique tambйm:

PHP код:
                DOF2_CreateFile(gfile); 
                
DOF2_SetString(gfile"Senha"inputtext); 
                
DOF2_SetInt(gfile"Skin"pInfo[playerid][pSkin] = 137); 
                
DOF2_SetInt(gfile"Dinheiro"pInfo[playerid][pDinheiro] = 5000); 
                
DOF2_SetFloat(gfile"Vida"pInfo[playerid][pVida]); 
                
DOF2_SetFloat(gfile"Colete"pInfo[playerid][pColete]); 
                
DOF2_SetInt(gfile"Level"pInfo[playerid][pLevel]); 
                
DOF2_SetInt(gfile"Admin"aInfo[playerid][pAdmin] = 0); 
                
DOF2_SaveFile(); 
Vamos ao comando:

PHP код:
CMD:setadmin(playeridparams[])
{
    if(
pInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, -1"Vocк nгo tem permissгo para usar esse comando");
    new 
IDsetadoCargoMensagem[256];
    if(
sscanf(params"ud"IDsetadoCargo)) return SendClientMessage(playerid, -1"Use: /setadmin (ID) (Cargo)");
    if(
IDsetado == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1"Jogador invбlido");
    
format(Mensagemsizeof(Mensagem), "Vocк foi setado como Administrador nнvel %d!"Cargo);
    
SendClientMessage(IDsetado, -1Mensagem);
    
pInfo[IDsetado][pAdmin] = Cargo;
    return 
1;

Lembrando:
Ajudante = 1
Moderador = 2
Corregedor = 3
Administrador = 4
Master = 5

Caso der um erro me avise, pois posso ter esquecido algo, estude o cуdigo tambйm nгo dк apenas CTRL C + CTRL V, abraзos.
Reply
#4

Obrigado, vejo que eu estudando seu comando posso criar um do meu jeito, obrigado mesmo, mas essa de Admin = 1 ajudante tals ficou bom, obrigado! <3
Reply
#5

E so lembrando, para checar se o adm esta setado na rcon й if(!IsPlayerAdmin(playerid)) certo?
Reply
#6

Quote:
Originally Posted by vitinhosamp
Посмотреть сообщение
E so lembrando, para checar se o adm esta setado na rcon й if(!IsPlayerAdmin(playerid)) certo?
@Edit
Desculpe meu erro.

Sim!

PHP код:
 if(!IsPlayerAdmin(playerid)) 
Verifica se o player nгo й administrador RCON

PHP код:
 if(IsPlayerAdmin(playerid)) 
Sem o ! no comeзo, verifica se vocк й administrador RCON.
Reply
#7

PHP код:
if(idsetado == INVALID_PLAYER_ID); return SendClientMessage(playerid, -1"[ERRO]Player nao conectado!");
    if(
idsetado == INVALID_PLAYER_ID); return SendClientMessage(playerid, -1"[ERRO]Player nao conectado!");
    
format(Mensagemsizeof(Mensagem), "Vocк foi setado admin master do servidor! parabens %s "PlayerName(playerid)); 
PHP код:
C:\Users\user\Desktop\server\gamemodes\GM.pwn(348) : error036: empty statement
C
:\Users\user\Desktop\server\gamemodes\GM.pwn(348) : warning225unreachable code 
PHP код:
stock PlayerName(playerid)
{
    new 
nomep[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnomepsizeof(nomep));
    return 
nomep;

Reply
#8

@Edit, jб vн o erro.

No comando
PHP код:
 if(idsetado == INVALID_PLAYER_ID); return SendClientMessage(playerid, -1"[ERRO]Player nao conectado!"); 
    if(
idsetado == INVALID_PLAYER_ID); return SendClientMessage(playerid, -1"[ERRO]Player nao conectado!"); 
    
format(Mensagemsizeof(Mensagem), "Vocк foi setado admin master do servidor! parabens %s "PlayerName(playerid)); 
Vocк colocou ";" depois do
PHP код:
 if(idsetado == INVALID_PLAYER_ID)";" 
Apague esse ";" e deixe sу no final do comando.
Reply
#9

PHP код:
CMD:setarmaster(playeridparams[])
{
    if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"{FFFFFF}[ERRO] Vocк nгo tem permissao a esse comando!");
    new 
idsetadocargoMensagem[256];
    if(
sscanf(params"ud"idsetadocargo)) return SendClientMessage(playerid, -1"[{FFFFFF}ERRO ]Use: /setarmaster [id] [1 = setar, 0 = tirar]");
    if(
idsetado == INVALID_PLAYER_ID); return SendClientMessage(playerid, -1"[ERRO]Player nao conectado!");
    
format(Mensagemsizeof(Mensagem), "Vocк foi setado admin master do servidor! parabens %s "PlayerName(playerid));
    
SendClientMessage(idsetado, -1Mensagem);
    
pInfo[idsetado][Master] = cargo;
    return 
1;

Reply
#10

Funcionou?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)