[AJUDA] PlayerInfo[playerid][pBanido] =
#1

Galera aqui tem asim:
Код HTML:
public OnPlayerConnect(playerid)
{
	new PlayerName[24];
	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
        PlayerInfo[playerid][pBanido] = dini_Int(udb_encode(playername), "Banido"); //o pBanido й igual a o que tem dentro da conta do jogador
}
ai se o cara tiver com o pBanido = 1 ele leva kick
PHP код:
public BaN()
{
    for(new 
i=0,GetMaxPlayers(); != li++)
    {
        if(
PlayerInfo[i][pBanido] == 1)
        {
            
Kick(i);
        }
    }
    return 
1;

so que quando o jogador entra com banido = 1 ele nao esta leva kick, acho que o erro ta no OnPlayerConnect
alguйm pode ajudar?
Reply
#2

tentas:
pawn Код:
public OnPlayerConnect(playerid)
{
    static PlayerName[60];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    strcat(".ini", PlayerName);
    PlayerInfo[playerid][pBanido] = dini_Int(PlayerName, "Banido"); //o pBanido й igual a o que tem dentro da conta do jogador
}

public BaN()
{
    for(new i, l = GetMaxPlayers(); i != l; i++)
    {
        if(PlayerInfo[i][pBanido] == 1)
        {
            Kick(i);
        }
    }
    return 1;
}
Reply
#3

da no mesmo, quando vc loga ele seta o PlayerInfo[playerid][pBanido] para o que tem na conta, se for 1 ele kick

PHP код:
    if(strcmp(cmd"/login"true) == 0)
    {
        if(
logged[playerid] == 1)
        {
            
SendClientMessage(playeridCOLOR_RED"Vocк jб estб logado!");
            return 
1;
        }
        
tmp strtok(cmdtextidx);
         
GetPlayerName(playeridplayernamesizeof(playername));
        if(!
strlen(tmp))
        {
            
SendClientMessage(playeridCOLOR_DBLUE"Uso correto: [senha]");
        }
        else
        {
            if(
dini_Exists(udb_encode(playername)))
            {
                if(
logged[playerid] == 0)
                {
                    
tmp2 dini_Get(udb_encode(playername), "password");
                      if(
udb_hash(tmp) != strval(tmp2))
                      {
                        
ShowPlayerDialog(playerid,222,DIALOG_STYLE_MSGBOX,"Server:","Erro!\nVocк Digitou a Senha Errada!","OK","Fechar");
                    }
                    else
                    {
                        
logged[playerid] = 1;
                        
logado[playerid] = 1;
                        
dini_Set(udb_encode(playername),"pass",tmp);
                        
PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playername), "level");
                        
PlayerInfo[playerid][pVIP] = dini_Int(udb_encode(playername), "levelvip");
                        
                        
PlayerInfo[playerid][pBanido] = dini_Int(udb_encode(playername), "Banido");
                        
GameTextForPlayer(playerid"~b~Logado com sucesso!",2000,1);
                        
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                        
                        if(
PlayerInfo[playerid][pBanido] == 1)
                        {
                             new 
pname[MAX_PLAYER_NAME];
                            
GetPlayerName(playeridpnameMAX_PLAYER_NAME);
                            
SendClientMessage(playeridCOR_Cinza" ");
                            
SendClientMessage(playeridCOR_Cinza" ");
                            
SendClientMessage(playeridCOR_Cinza"--------------------------------------");
                            
SendClientMessage(playeridCOR_Cinza" ");
                            
format(stringsizeof(string), "Logado Com: %s "pname);
                              
SendClientMessage(playeridCOLOR_BLUEstring);
                            
SendClientMessage(playeridCOR_Cinza" ");
                            
SendClientMessage(playeridCOLOR_BLUE"Tipo de Conta: [Banida]");
                            
SendClientMessage(playeridCOR_Cinza" ");
                            
SendClientMessage(playeridCOR_Cinza"--------------------------------------");
                            
SendClientMessage(playeridCOR_Cinza" ");
                      
Kick(playerid);
                        }
                        
                        return 
1;
                    }
                }
            }
            else
            {
                
ShowPlayerDialog(playerid,222,DIALOG_STYLE_MSGBOX,"Server:","Essa Conta Nгo Esta Registrada No Nosso Servidor!\nPor Favor Use /Registrar [senha] Para se Registrar.","OK","Fechar");
            }
        }
        return 
1;
    } 
esse funciona, mas tem que seta o PlayerInfo[playerid][pBanido] logo quando entrar no server
Reply
#4

pawn Код:
public OnPlayerConnect(playerid)
{
    new PlayerName[24];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    if(dini_Exists(udb_encode(PlayerName)))
    {
        PlayerInfo[playerid][pBanido] = dini_Int(udb_encode(playername), "Banido");
    }
}

// OU



public OnPlayerConnect(playerid)
{
    static
        Str[64],
        pN[24];

    GetPlayerName(playerid, pN, 24);
    new File:Arquivo = fopen("Banidos.cfg", io_read);
    while(fread(Arquivo, Str))
    {
        if(!strcmp(Str, pN, true))
        {
            Ban(playerid);
        }
    }
    fclose(Arquivo);
    return 1;
}
nгo esqueзa de colocar
pawn Код:
if(!fexist("Banidos.cfg")) dini_Create("Banidos.cfg");
no final da public BaN().
Reply
#5

eu tava pensando aqui e nem presisa desse BaN porque quando ele entra no server checa se a conta dele tem ban = 1
se tive ele recebe kick asim:
PHP код:
public OnPlayerConnect(playerid)
{
    static 
PlayerName[60];
    
GetPlayerName(playeridPlayerNamesizeof(PlayerName));
    
PlayerInfo[playerid][pBanido] = dini_Int(udb_encode(PlayerName), "Banido"); //checa o banido e seta o PlayerInfo[pBanido] com o valor do banido que tem dentro ca conta do jogador
    
if(PlayerInfo[playerid][pBanido] == 1
    { 
          
Kick(playerid); 
    } 

so que parese que nao ta checando ou nao ta setando o PlayerInfo[pBanido] com o valor do Banido do jogador
Reply
#6

Faзa um debug!


pawn Код:
public OnPlayerConnect(playerid)
{
    static PlayerName[24];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    PlayerInfo[playerid][pBanido] = dini_Int(udb_encode(PlayerName), "Banido"); //checa o banido e seta o PlayerInfo[pBanido] com o valor do banido que tem dentro ca conta do jogador
    printf("USER: %d | Banido: %d | pName: %s | udbName: %s", playerid, PlayerInfo[playerid][pBanido], PlayerName, udb_encode(PlayerName));
    if(PlayerInfo[playerid][pBanido] == 1)  
    {  
         
          Kick(playerid);  
    }  
}
e me manda oque apareceu no console.
Reply
#7

pego nao *--* isso ta min matando! esse xiter dos inferno! parese que nao esta lendo sei nao mas quando eu logo ele ler
Reply
#8

pawn Код:
#define s_Static:%0<%1>; static %0[%1] = EOS; // By Carol

public OnPlayerConnect(playerid)
{
    s_Static:Nome<28>;
    GetPlayerName(playerid, Nome, 24); strcat(Nome,".ban");
    if(fexist(Nome))
    {
        Ban(playerid);
    }
    return true;
}

static stock permBan(playerid, motivo[] = "Sem Motivo aparente")
{
    if(IsPlayerConnected(playerid) && !IsPlayerAdmin(playerid))
    {
        s_Static Nome<28>;
        static File: Carol;
        GetPlayerName(playerid, Nome, 24); strcat(Nome,".ips");
        Carol = fopen(Nome, io_write);
        fwrite(Carol, motivo);
        fclose(Carol);
        BanEx(playerid, motivo);
    }
    return false;
}
melhor mйtodo, ele bane o nome do player.
para usar basta:
pawn Код:
permBan(playerid);
Crйditos: Me.
Reply
#9

aeee pego!! Vlww mesmo sei nem como agradecer!
Reply
#10

Quote:
Originally Posted by L.S.T
Посмотреть сообщение
aeee pego!! Vlww mesmo sei nem como agradecer!
de nada
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)