[Pedido]Bug ao setar
#1

Olha sу quando eu entro no server e talz crio conta e logo, se algum adm me setar por ex: de Exercito lv 4 quando eu boto na lista dos exercitos online aparece eu de lv 0 na lista no caso se eu criar a conta e logar e dps sair e abrir o pawno e editar lб o exercito aparece lv 4 e funfa os comandos..

Код:
                if(strcmp(cmd, "/setexc", true) == 0)
        {
                tmp = strtok(cmdtext, idx);
                giveplayerid = strval(tmp);
                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                GetPlayerName(playerid, sendername, sizeof(sendername));
                PlayerInfo[playerid][pEXC] = dini_Int(udb_encode(sendername), "levelexc");
                PlayerInfo[giveplayerid][pEXC] = dini_Int(udb_encode(giveplayer), "levelexc");
                giveplayerid = strval(tmp);
                if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 10)
                {
                        SendClientMessage(playerid, COLOR_GREEN, "Uso correto: /setexc [id do player] [cargo]");
                        return 1;
                }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 10)
                {
                        SendClientMessage(playerid, COLOR_GREEN, "Uso correto: /setexc [id do player] [cargo]");
                        return 1;
                }
                PlayerInfo[playerid][pEXC] = dini_Int(udb_encode(sendername), "levelexc");
                levelexc[playerid] = strval(tmp);
                if(levelexc[playerid] < 0)
                {
                        SendClientMessage(playerid, COLOR_CYAN, "Level de EXC invбlido!");
            return 1;
                }
                if(levelexc[playerid] > 4)
                {
                        SendClientMessage(playerid, COLOR_CYAN, "Level de EXC invбlido!");
            return 1;
                }
                if(levelexc[playerid] == PlayerInfo[giveplayerid][pEXC])
                {
            format(string, sizeof(string), "Este player jб й um EXC!", levelexc[playerid]);
            SendClientMessage(playerid, COLOR_CYAN, string);
            return 1;
                }
                if(logged[playerid] == 1)
                {
                        if(PlayerInfo[playerid][pAdmin] >= 10 || PlayerInfo[playerid][pEXC] >= 3)
                        {
                            if(IsPlayerConnected(giveplayerid))
                            {
                                if(logged[giveplayerid] == 0)
                                        {
                                                SendClientMessage(playerid, COLOR_CYAN, "O player tem que estar logado para poder receber o level de EXC!");
                                                return 1;
                                        }
                                        else
                                        {
                                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                                dini_IntSet(udb_encode(giveplayer), "levelexc", levelexc[playerid]);
                                                format(string, sizeof(string), "ADMIN: Vocк deu para %s um cargo no EXERCITO!", giveplayer);
                                                SendClientMessage(playerid, COLOR_CYAN, string);
                                                format(string, sizeof(string), "ADMIN: Vocк ganhou um emprego no EXERCITO! Empregado por: %s.", sendername);
                                                SendClientMessage(giveplayerid, COLOR_CYAN, string);
                                                PlayerInfo[giveplayerid][pEXC] = dini_Int(udb_encode(giveplayer), "levelexc");
                                                new PlayerName[30];
                                                GetPlayerName(playerid, PlayerName, 30);
                                                printf("[Command] %s usou /setexc para dar par %s level %d de EXERCITO.", PlayerName, giveplayer, level[playerid]);
                                        }
                                }
                                else
                                {
                                    format(string, sizeof(string), "%d nгo й o nъmero de ID de um player ativo!", giveplayerid);
                        SendClientMessage(playerid, COLOR_CYAN, string);
                                }
                        }
                        else
                        {
                                SendClientMessage(playerid, COLOR_CYAN, "Vocк nгo tem permissгo para usar este comando!");
                        }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_CYAN, "Vocк tem que estar logado para usar este comando!");
                }
                return 1;
                }
Reply
#2

Pelo que parece, basta fazer isto .


Embaixo dessa linha:


pawn Код:
printf("[Command] %s usou /setexc para dar par %s level %d de EXERCITO.", PlayerName, giveplayer, level[playerid]);

Coloque:

pawn Код:
PlayerInfo[giveplayerid][pEXC] = levelexc[playerid];
Sу isso .


Espero ter ajudado .
Reply
#3

nгo resolveu mano ta aparecendo lv 0 ainda
Reply
#4

Poste seu comando de ver os membros do Exйrcito online, entгo .


O problema com certeza й que a variбvel que define se um jogador й parte do exйrcito nгo estб sendo "setada", durante o comando .


Se vocк souber, tambйm seria bom explicar esta linha:

pawn Код:
PlayerInfo[giveplayerid][pEXC] = dini_Int(udb_encode(giveplayer), "levelexc");

Espero ter ajudado .
Reply
#5

Код:
                        if(!strcmp(cmdtext, "/excs", true))
        {
            SendClientMessage(playerid, COLOR_RED, "|_____MEMBROS DO EXERCITO______|");
                new count=0;
                for(new i=0; i<MAX_PLAYERS; i++)
                {
                if(IsPlayerConnected(i))
                {
                    if(logged[i] == 1)
                    {
                                        if(PlayerInfo[i][pEXC] >= 1)
                                        {
                                                new str[256];
                                                new pname[24];
                                                GetPlayerName(i, pname, 24);
                                                format(str, 256, "Membro: %s | [Level %d] ", pname, PlayerInfo[i][pBOPE]);
                                                SendClientMessage(playerid, COLOR_CYAN, str);
                                                count++;
                                        }
                                }
                        }
                }
                if(count == 0)
                {
                SendClientMessage(playerid, COLOR_CYAN, "Nгo tem nenhum membro do EXERCITO on-line agora!");
                }
                return 1;
        }
Reply
#6

Код:
if(PlayerInfo[i][pEXC] >= 1)
{
    new str[256];
    new pname[24];
    GetPlayerName(i, pname, 24);
    format(str, 256, "Membro: %s | [Level %d] ", pname, PlayerInfo[i][pBOPE]);
    SendClientMessage(playerid, COLOR_CYAN, str);
    count++;
}
Troque por:
pawn Код:
PlayerInfo[i][pEXC]
Reply
#7

nem deu jeito '-' mesma coisa !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)