Portal SAMP
[Pedido] Admin - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Admin (/showthread.php?tid=3553)



Admin - ThiagoS. - 26/04/2023

Olá a todos!

Estou com dificuldades em criar um sistema de logar como admin em um 'COMANDO' que quando eu digitar o comando vai pedir pra eu digitar a senha eo nível de admin que desejo me torna.

EX: USE: /radmin  [ Senha ] [ Nivel ]

Aí eu irei tá colocando a senha eo nível de adm

Espero que podem me ajudar nisso obrigado.


RE: Admin - White_Blue - 26/04/2023

Use a função strcmp para comparar as duas strings. Embora eu não recomende e ache bastante inseguro fazer algo assim, pois se a senha for fácil é perigoso sofrer ataques de bruteforce.

Mas de qualquer forma aqui vai um exemplo:

Código PHP:
CMD:radmin(playerid, const params[]) {
    new 
senha[128];
    if(
sscanf(params"s[128]"senha)) return SendClientMessage(playerid, -1"Use: /radmin [senha]");
    if(strcmp("sua_senha"senha) == 0) {
        // Caso a senha for verdadeira, retorna o código aqui
    }
    else {
        
// Caso contrário(Se a senha não for verdadeira), retorna algo aqui.
    
}
    return 1;



Adapte o código acima de acordo com suas preferências.


RE: Admin - ThiagoS. - 26/04/2023

(26/04/2023 14:25)White_Blue Escreveu: Use a função strcmp para comparar as duas strings. Embora eu não recomende e ache bastante inseguro fazer algo assim, pois se a senha for fácil é perigoso sofrer ataques de bruteforce.

Mas de qualquer forma aqui vai um exemplo:

Código PHP:
CMD:radmin(playerid, const params[]) {
    new 
senha[128];
    if(
sscanf(params"s[128]"senha)) return SendClientMessage(playerid, -1"Use: /radmin [senha]");
    if(strcmp("sua_senha"senha) == 0) {
        // Caso a senha for verdadeira, retorna o código aqui
    }
    else {
        
// Caso contrário(Se a senha não for verdadeira), retorna algo aqui.
    
}
    return 1;



Adapte o código acima de acordo com suas preferências.

Falto o bgl do nível que era oq tava mais com dificuldade


RE: Admin - White_Blue - 26/04/2023

(26/04/2023 18:01)ThiagoS. Escreveu:
(26/04/2023 14:25)White_Blue Escreveu: Use a função strcmp para comparar as duas strings. Embora eu não recomende e ache bastante inseguro fazer algo assim, pois se a senha for fácil é perigoso sofrer ataques de bruteforce.

Mas de qualquer forma aqui vai um exemplo:

Código PHP:
CMD:radmin(playerid, const params[]) {
    new 
senha[128];
    if(
sscanf(params"s[128]"senha)) return SendClientMessage(playerid, -1"Use: /radmin [senha]");
    if(strcmp("sua_senha"senha) == 0) {
        // Caso a senha for verdadeira, retorna o código aqui
    }
    else {
        
// Caso contrário(Se a senha não for verdadeira), retorna algo aqui.
    
}
    return 1;



Adapte o código acima de acordo com suas preferências.

Falto o bgl do nível que era oq tava mais com dificuldade

É só usar o sscanf, é a mesma lógica.

Supondo que você já tenha pelo menos o sistema de admin e só falta o comando para dar o nível de admin, aqui vai um exemplo:
Código PHP:
CMD:radmin(playerid, const params[]) {
    new 
senha[128], idnivel;
    if(
sscanf(params"uds[128]"idnivelsenha)) return SendClientMessage(playerid, -1"Use: /radmin [senha]");
        if(nivel 7) return SendClientMessage(playerid, -1"Use níveis de 0 a 7.");
 
       if(nivel == 0) {
        Admin[id] = 0;
        SendClientMessage(id, -1"Você foi retirado da administração!");
        SendClientMessage(playerid, -1"Admin retirado com sucesso!");
      }

        if(strcmp("sua_senha"senha) == 0) {
          Admin[id] = nivel;
          SendClientMessage(id, -1"Você foi posto na administração!");
          SendClientMessage(playerid, -1"Admin setado com sucesso!");
    }
          else {
        
SendClientMessage(playerid, -1"Senha incorreta.");
    }
    return 1;