Portal SAMP
[Ajuda] pega ADM por comando - 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: [Ajuda] pega ADM por comando (/showthread.php?tid=3437)



pega ADM por comando - Zoro Samp - 16/03/2023

Como criar comando que pega administrador dentro jogo?


RE: pega ADM por comando - humildadeforever - 17/03/2023

(16/03/2023 23:10)Zoro Samp Escreveu: Como criar comando que pega administrador dentro jogo?

Primeiro você precisa identificar qual a variável que seta o nível administrativo ao player. Dá um CTRL + F no GM e procure pelos comandos administrativos e olhe o IF que detecta se o player é admin ou não.

Daí para criar o comando, depende do que o GM usa... strcmp? zcmd? bcmd?


RE: pega ADM por comando - Zoro Samp - 17/03/2023

(17/03/2023 15:33)humildadeforever Escreveu:
(16/03/2023 23:10)Zoro Samp Escreveu: Como criar comando que pega administrador dentro jogo?

Primeiro você precisa identificar qual a variável que seta o nível administrativo ao player. Dá um CTRL + F no GM e procure pelos comandos administrativos e olhe o IF que detecta se o player é admin ou não.

Daí para criar o comando, depende do que o GM usa... strcmp? zcmd? bcmd?
strcmp


RE: pega ADM por comando - humildadeforever - 17/03/2023

(17/03/2023 15:39)Zoro Samp Escreveu:
(17/03/2023 15:33)humildadeforever Escreveu:
(16/03/2023 23:10)Zoro Samp Escreveu: Como criar comando que pega administrador dentro jogo?

Primeiro você precisa identificar qual a variável que seta o nível administrativo ao player. Dá um CTRL + F no GM e procure pelos comandos administrativos e olhe o IF que detecta se o player é admin ou não.

Daí para criar o comando, depende do que o GM usa... strcmp? zcmd? bcmd?
strcmp


Descobriu a variável de admin?

https://team.sa-mp.com/wiki/Using_strcmp%2528%2529.html

Vai ser algo tipo
Código PHP:
if(strcmp(cmdtext"/cmdultrassecreto"true) == 0) 
{
    admin[playerid] = 6;
    return 1;


Considerando que a variável é "admin" e o maior nível é 6.


RE: pega ADM por comando - Zoro Samp - 17/03/2023

(17/03/2023 15:47)humildadeforever Escreveu:
(17/03/2023 15:39)Zoro Samp Escreveu:
(17/03/2023 15:33)humildadeforever Escreveu:
(16/03/2023 23:10)Zoro Samp Escreveu: Como criar comando que pega administrador dentro jogo?

Primeiro você precisa identificar qual a variável que seta o nível administrativo ao player. Dá um CTRL + F no GM e procure pelos comandos administrativos e olhe o IF que detecta se o player é admin ou não.

Daí para criar o comando, depende do que o GM usa... strcmp? zcmd? bcmd?
strcmp


Descobriu a variável de admin?

https://team.sa-mp.com/wiki/Using_strcmp%2528%2529.html

Vai ser algo tipo
Código PHP:
if(strcmp(cmdtext"/cmdultrassecreto"true) == 0) 
{
    admin[playerid] = 6;
    return 1;


Considerando que a variável é "admin" e o maior nível é 6.

Como eu consigo acha essa variável?


RE: pega ADM por comando - Maycon_Felipe - 17/03/2023

Vai em um comando que o admin usa, e vê qual que é..

Ex: /av, ou /daradmin..


RE: pega ADM por comando - Zoro Samp - 18/03/2023

(17/03/2023 18:53)Maycon_Felipe Escreveu: Vai em um comando que o admin usa, e vê qual que é..

Ex: /av, ou /daradmin..
Obrigado, eu jogo no criminal life tá bem, servidor diferenciado.

(18/03/2023 00:13)Zoro Samp Escreveu:
(17/03/2023 18:53)Maycon_Felipe Escreveu: Vai em um comando que o admin usa, e vê qual que é..

Ex: /av, ou /daradmin..
Achei 3 Variável, mais não sei qual e de ADM.



RE: pega ADM por comando - xbruno1000x - 18/03/2023

Código:
if(strcmp(cmdtext, "/cmdultrassecreto", true) == 0)
{
    pDados[playerid][Admin] = 6;
    return 1;
}



RE: pega ADM por comando - White_Blue - 18/03/2023

Isso é bem simples de fazer. Se for realmente abrir um servidor, vai ter que salvar as variáveis.



Aqui vai um exemplo utilizando variáveis:

Código PHP:
new Admin[MAX_PLAYERS] = 0;

public 
OnPlayerConnect(playerid) {
      Admin[playerid] = 0// Zera a variável ao player se conectar
      return 1;
}

public 
OnPlayerDisconnect(playeridreason) {
      Admin[playerid] = 0// Zera a variável quando o player desconectar
      return 1;
}

CMD:daradmin(playerid, const params[]) {
     new idlevelstr[128];
     if(sscanf(params"ud"idlevel)) return SendClientMessage(playerid, -1"Use: /daradmin [id] [nível]");
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1"O jogador não está conectado.");
     format(strsizeof(str), "O(A) dono %s[%d] lhe pôs na administração!"GetPlayerNameEx(playerid), playerid);
     SetPlayerAdmin(playerididstr0x086A87AAlevel);
     return 1;
}

stock SetPlayerAdmin(playeridtarget, const message[], colorlevel) {
      Admin[target] = level;
      if(level == && Admin[target] >= 1) return SendClientMessage(target, -1"Você foi retirado da administração");
      else if(level 7) return SendClientMessage(playerid, -1"Nível de admin inválido. Use níveis de 1 a 7.");

      SendClientMessage(targetcolormessage);
      return 1;
}

stock GetPlayerNameEx(playerid) {
     static Name[MAX_PLAYER_NAME];
     GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return Name;
}

CMD:ban(playerid, const params[]) {  // Comando de teste
    new idmotivo[128];
    if(Admin[playerid] < 1) return SendClientMessage(playerid, -1"Você não tem permissão.");
    if(sscanf(params"us[128]"idmotivo)) return SendClientMessage(playerid, -1"Use: /ban [id] [motivo]");
    if(strlen(motivo) > 128 || strlen(motivo) <= 0) return SendClientMessage(playerid, -1"A mensagem deve conter entre 1 e 128 caracteres.");
    Ban(id);
    return 1;


Obs: Notei que você está usando strcmp, o que é ultrapassado e extremamente não recomendado para fazer comandos hoje em dia no SA-MP. Use Pawn.CMD, além de ser muito mais rápido é bem mais fácil e prático de usar. https://github.com/katursis/Pawn.CMD/

Gráfico feito pelo autor:
[Imagem: 687474703a2f2f692e696d6775722e636f6d2f73...642e706e67]