Portal SAMP
[Ajuda] Player não recebe 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: [Ajuda] Player não recebe admin (/showthread.php?tid=2454)



Player não recebe admin - jnXX - 07/06/2022

Estou com um problema que quando dou o comando /daradmin pra dar admin para o player, ele não recebe o admin. Se conseguirem ajudar eu agradeço.
Código:
    CMD:daradmin(playerid, params[])
    {
        if (gPlayerLogged[playerid] == 0)
        {
            SendClientMessage(playerid, COR_GREY, "Você não está logado!");
            return 1;
        }
        if (PlayerInfo[playerid][pAdmin] < 1)
        {
            SendClientMessage(playerid, COR_GRAD1, "Você não tem autorização para usar esse comando.");
            return true;
        }
        else
        {
            if (PlayerInfo[playerid][pAdmin] >= 1342)
            {
                new para1;
                new level;
                if(sscanf(params, "ud", para1, level))
                {
                    SendClientMessage(playerid, COR_GRAD2, "{0099ff}×{ffffff} USE: /daradmin [ id ] [Level 0 á 1342]");
                    return true;
                }
                VagaAdmins();
                if(VagasLivresAdm == 0)
                {
                    SendClientMessage(playerid, COR_GRAD1, "Não há mais vagas na lista use /limparadmin primeiro.");
                    return 1;
                }
                if (level == 0)
                {
                    SendClientMessage(playerid, COR_GRAD2, "{0099ff}×{ffffff} USE: /limparadmin para limpar uma vaga");
                    return 1;
                }
                GetPlayerName(para1, giveplayerZCMD, sizeof(giveplayerZCMD));
                GetPlayerName(playerid, sendername, sizeof(sendername));
                if (IsPlayerConnected(para1))
                {
                    if (para1 != INVALID_PLAYER_ID)
                    {
                        if (PlayerInfo[para1][pAdmin] >= 1342)
                        {
                            SendClientMessage(playerid, COR_GRAD1, "Você não pode promover um admin Dono/Scripter!");
                            format(stringZCMD, sizeof(stringZCMD), "O admin %s tentou te promover a nivel %d", sendername, level);
                            SendClientMessage(para1, COR_SONS, stringZCMD);
                            return 1;
                        }
                        if (PlayerInfo[playerid][pAdmin] == 1341)
                        {
                            if (level < 0 || level > 1339)
                            {
                                SendClientMessage(playerid, COR_GRAD1, "Você só pode promover até cargo 4 por enquanto");
                                return 1;
                            }
                        }
                        format(stringZCMD, sizeof(stringZCMD), " Você foi promovido para level %d de Admin - pelo dono %s.", level, sendername);
                        SendClientMessage(para1, COR_LIGHTBLUE, stringZCMD);
                        format(stringZCMD, sizeof(stringZCMD), "   Você promoveu o(a) %s para o level %d de Admin.", giveplayerZCMD, level);
                        SendClientMessage(playerid, COR_LIGHTBLUE, stringZCMD);
                        getdate(year, month, day);
                        gettime(hour, minute, second);
                        format(stringZCMD, sizeof(stringZCMD), "%s deu admin nivel %d para %s [%d/%d/%d] ás [%d:%d:%d].", sendername, level,    giveplayerZCMD, day, month, year, hour, minute, second);
                        PAdminsLog(stringZCMD);
                        PlayerInfo[para1][pAvaliacoes] += 1;
                        PlayerInfo[para1][pAFinal] += 10;
                        for (new i = 0; i < sizeof(AdmInfo); i++)
                        {
                            if (PlayerInfo[para1][pAdmin] > 0)
                            {
                                PlayerInfo[para1][pAdmin] = level;
                                break;
                            }
                            else if (AdmInfo[i][AdminVaga] == 0)
                            {
                                PlayerInfo[para1][pAdmin] = level;
                                AdmInfo[i][AdminNick] = giveplayerZCMD;
                                AdmInfo[i][AdminVaga] = 1;
                                SalvarAdmins();
                                break;
                            }
                        }
                    }
                }
            }
        }
        return 1;
    }



RE: Player não recebe admin - CoelhaO_LokaO - 07/06/2022

chama discord e mas fácil arrumar testando tem vários if tem que ver qual ele ta bugando ou poste print do que acontece;

Acredito que seja relacionado ao if dentro do loop

if (PlayerInfo[para1][pAdmin] > 0) // so se o padmin foi maior que 0 ali tem que estar >= 0


RE: Player não recebe admin - jnXX - 07/06/2022

(07/06/2022 14:03)CoelhaO_LokaO Escreveu: chama discord e mas fácil arrumar testando tem vários if tem que ver qual ele ta bugando ou poste print do que acontece;

Acredito que seja relacionado ao if dentro do loop

if (PlayerInfo[para1][pAdmin] > 0) // so se o padmin foi maior que 0 ali tem que estar >= 0
mandei pedido lá


RE: Player não recebe admin - k2bi_YT - 07/06/2022

Faz o teste para ver se está tudo OK

OBS: recomendo que coloque primeiro as funções, definições e depois as mensagens que for aparecer para o jogador, isso pode ajudar no debug, no caso se não aparecer alguma mensagem, quer dizer que alguma função deu problema.
Código PHP:
CMD:daradmin(playeridparams[])
{
    if (
gPlayerLogged[playerid] == 0) return SendClientMessage(playeridCOR_GREY"Você não está logado!");
    if (
PlayerInfo[playerid][pAdmin] < 1342) return SendClientMessage(playeridCOR_GRAD1"Você não tem autorização para usar esse comando.");
    new 
para1;
    new 
level;
    if(
sscanf(params"ud"para1level)) return SendClientMessage(playeridCOR_GRAD2"{0099ff}×{ffffff} USE: /daradmin [ id ] [Level 0 á 1342]");
    if(!
IsPlayerConnected(para1) || para1 == INVALID_PLAYER_ID) return SendClientMessage(playeridCOLOR_GRAD1"Jogador não conectado.");
    
VagaAdmins();
    if(
VagasLivresAdm == 0) return SendClientMessage(playeridCOR_GRAD1"Não há mais vagas na lista use /limparadmin primeiro.");
    if(
level == 0) return SendClientMessage(playeridCOR_GRAD2"{0099ff}×{ffffff} USE: /limparadmin para limpar uma vaga");
    if(
PlayerInfo[playerid][pAdmin] == 1341 && (level || level 1339)) return SendClientMessage(playeridCOR_GRAD1"Você só pode promover até cargo 4 por enquanto");
    
GetPlayerName(para1giveplayerZCMDsizeof(giveplayerZCMD));
    
GetPlayerName(playeridsendernamesizeof(sendername));
    if(
PlayerInfo[para1][pAdmin] >= 1342)
    {
        
SendClientMessage(playeridCOR_GRAD1"Você não pode promover um admin Dono/Scripter!");
        
format(stringZCMDsizeof(stringZCMD), "O admin %s tentou te promover a nivel %d"sendernamelevel);
        
SendClientMessage(para1COR_SONSstringZCMD);
        return 
1;
    }       
    
PlayerInfo[para1][pAvaliacoes] += 1;
    
PlayerInfo[para1][pAFinal] += 10;
    if(
PlayerInfo[para1][pAdmin] > 0)
    {
        
PlayerInfo[para1][pAdmin] = level;
    }
    else
    {
        for(new 
0!= sizeof(AdmInfo); ++i)
        {
            if(
AdmInfo[i][AdminVaga] == 0)
            {
                
PlayerInfo[para1][pAdmin] = level;
                
AdmInfo[i][AdminNick] = giveplayerZCMD;
                
AdmInfo[i][AdminVaga] = 1;
                
SalvarAdmins();
                break;
            }
        }
    }
    
format(stringZCMDsizeof(stringZCMD), "    Você foi promovido para level %d de Admin - pelo dono %s."levelsendername);
    
SendClientMessage(para1COR_LIGHTBLUEstringZCMD);
    
format(stringZCMDsizeof(stringZCMD), "    Você promoveu o(a) %s para o level %d de Admin."giveplayerZCMDlevel);
    
SendClientMessage(playeridCOR_LIGHTBLUEstringZCMD);
    
getdate(yearmonthday);
    
gettime(hourminutesecond);
    
format(stringZCMDsizeof(stringZCMD), "%s deu admin nivel %d para %s [%d/%d/%d] ás [%d:%d:%d]."sendernamelevel,    giveplayerZCMDdaymonthyearhourminutesecond);
    
PAdminsLog(stringZCMD);
    return 
1;


Recomendo publicar essa função para ver se o uso está sendo correto VagaAdmins();
Código PHP:
VagaAdmins();
    if(
VagasLivresAdm == 0) return SendClientMessage(playeridCOR_GRAD1"Não há mais vagas na lista use /limparadmin primeiro.");