[Ajuda] Dialog de login aparecendo varias vezes
#1

Й o seguinte, aparece a login box na tela de seleзгo de skin, aн quando vc loga, e clica na seta pro lado pra mudar a skin, troca a skin e aparece a login box novamente! vou postar o FS inteiro, ja que foi retirado daqui do forum.

pawn Code:
/*MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMM                                                                        MMMM
MMMM                          [FLB]Falcon's Login Box                       MMMM
MMMM                           & salvamento de dados                        MMMM
MMMM========================================================================MMMM
MMMM                                                                        MMMM
MMMM                     ...::: Desenvolvimento :::...                      MMMM
MMMM                                Falcon                                  MMMM
MMMM                                                                        MMMM
MMMM  Baixado em: https://sampforum.blast.hk/showthread.php?tid=192519            MMMM
MMMM                                                                        MMMM
MMMM  Й livre a ediзгo do mesmo desde que adicione os devidos crйditos ao   MMMM
MMMM  local que serб usado !!                                               MMMM
MMMM                                                                        MMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM*/

#include <a_samp>
#include <dini>
#define FILTERSCRIPT
#define DialogRegistro 696
#define DialogLogin    697
#define DialogSaidaA   698
#define DialogSaidaB   699
//MMMMMMMMMMMMM|| [FLB]Config ||MMMMMMMMMMMMMMM//
#define ContasPlayers "/ContasPlayers/%s.ini"//Caso altere lembre-se de contar os caracteres e alterar em ( new arquivo[]; )
#define VALOR_MAXIMO_VIDA 100//Caso o seu servidor contenha algum valor maximo de vida altere aqui para o determinado valor
#define VALOR_MAXIMO_COLETE 100//Caso o seu servidor contenha algum valor maximo de colete altere aqui para o determinado valor
#define ATIVAR_CASE_SENSITIVE false  //false = ATIVADO  ||  true = DESATIVADO
#define MAXIMO_TLOGAR 4//Quantidade de vezes que o player pode tentar logar ao errar a senha

new TentativasDeLogar[MAX_PLAYERS];
new TotalMorreu[MAX_PLAYERS];
new TotalMatou[MAX_PLAYERS];
new nome[MAX_PLAYER_NAME];
new arquivo[44];

stock SalvarDadosPlayer(playerid)
{
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), ContasPlayers, nome);
    if(!dini_Exists(arquivo)) dini_Create(arquivo);
   
    new Float:Vida, Float:Colete;
    GetPlayerHealth(playerid, Vida);
    GetPlayerArmour(playerid, Colete);
    dini_IntSet(arquivo, "TotalMorreu", TotalMorreu[playerid]);
    dini_IntSet(arquivo, "TotalMatou", TotalMatou[playerid]);
    return 0x1;
}

stock CarregarDadosPlayer(playerid)
{
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), ContasPlayers, nome);
    if(!dini_Exists(arquivo)) return 0x1;
    TotalMorreu[playerid] = dini_Int(arquivo, "TotalMorreu");
    TotalMatou[playerid] = dini_Int(arquivo, "TotalMatou");
    return 0x1;
}

public OnFilterScriptInit()
{
    print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
    print("MM");
    print("MM       [FLB]Falcon's Login Box");
    print("MM");
    print("MM       (FilterScript Carregado)");
    print("MM");
    print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
    return 1;
}

public OnFilterScriptExit()
{
    print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
    print("MM");
    print("MM       [FLB]Falcon's Login Box");
    print("MM");
    print("MM      (FilterScript Descarregado)");
    print("MM");
    print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    new string[124];
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), ContasPlayers, nome);
    if(!dini_Exists(arquivo))
    {
        format(string, sizeof(string), "Vocк ainda nгo possui registro em nosso servidor\n\nNome: %s\n\nInsira uma senha para registrar-se:", nome);
        ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "- Registro", string, "Registrar", "Sair");
        return 0x1;
    }
    if(dini_Exists(arquivo))
    {
        TentativasDeLogar[playerid] = 0;
        format(string, sizeof(string), "Vocк jб possui registro em nosso servidor\n\nNome: %s\n\nInsira sua senha para logar-se:", nome);
        ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "- Login", string, "Logar", "Sair");
        return 0x1;
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarDadosPlayer(playerid);
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    TotalMorreu[playerid] ++;
    TotalMatou[killerid] ++;
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/salvardados", true))
    {
        SalvarDadosPlayer(playerid);
        SendClientMessage(playerid, 0xFFFFFFAA, "Dados Salvos com sucesso !!");
        return 0x1;
    }
    return 0;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[124];
    if(dialogid == DialogRegistro)
    {
        if(!response) ShowPlayerDialog(playerid, DialogSaidaA, DIALOG_STYLE_MSGBOX, "Confirmar Saida", "Vocк ainda nгo estб registrado. Tem certeza que deseja sair ?", "Sair", "Voltar");
        if(response)
        {
            if(strlen(inputtext) == 0)
            {
                SendClientMessage(playerid, 0xFF0000AA, "Senha invбlida...Insira uma senha para que possa registrar !!");
                format(string, sizeof(string), "Vocк ainda nгo possui registro em nosso servidor\n\nNome: %s\n\nInsira uma senha para registrar-se:", nome);
                return ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "- Registro", string, "Registrar", "Sair");
            }
            GetPlayerName(playerid, nome, sizeof(nome));
            format(arquivo, sizeof(arquivo), ContasPlayers, nome);
            dini_Create(arquivo);
            dini_Set(arquivo, "Senha", inputtext);
            dini_IntSet(arquivo, "TotalMorreu", 0);
            dini_IntSet(arquivo, "TotalMatou", 0);
            SendClientMessage(playerid, 0xFFFFFFAA, "Registro concluido com sucesso !!");
        }
    }
    if(dialogid == DialogLogin)
    {
        if(!response) ShowPlayerDialog(playerid, DialogSaidaB, DIALOG_STYLE_MSGBOX, "Confirmar Saida", "Vocк ainda nгo estб logado. Tem certeza que deseja sair ?", "Sair", "Voltar");
        if(response)
        {
            if(strlen(inputtext) == 0)
            {
                SendClientMessage(playerid, 0xFF0000AA, "Senha invбlida...Insira uma senha para que possa logar !!");
                format(string, sizeof(string), "Vocк jб possui registro em nosso servidor\n\nNome: %s\n\nInsira sua senha para logar-se:", nome);
                return ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "- Login", string, "Logar", "Sair");
            }
            GetPlayerName(playerid, nome, sizeof(nome));
            format(arquivo, sizeof(arquivo), ContasPlayers, nome);
            if(!strcmp(inputtext, dini_Get(arquivo, "Senha"), ATIVAR_CASE_SENSITIVE))
            {
                SendClientMessage(playerid, 0xFFFFFFAA, "Login efetuado com sucesso!!");
                CarregarDadosPlayer(playerid);
            }
            else
            {
                TentativasDeLogar[playerid] ++;
                if(TentativasDeLogar[playerid] < MAXIMO_TLOGAR)
                {
                    SendClientMessage(playerid, 0xFF0000AA, "Senha INCORRETA !! Caso nгo acerte a senha vocк serб kickado por motivos de seguranзa !!");
                    format(string, sizeof(string), "Vocк jб possui registro em nosso servidor\n\nNome: %s\n\nInsira sua senha para logar-se:", nome);
                    ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "- Login", string, "Logar", "Sair");
                    return 0x1;
                }
                if(TentativasDeLogar[playerid] >= MAXIMO_TLOGAR)
                {
                    SendClientMessage(playerid, 0xFF0000AA, "Vocк nгo acertou a senha em um numero maximo de tentativas. Por isto foi kickado");
                    Kick(playerid);
                    return 0x1;
                }
            }
        }
    }
    if(dialogid == DialogSaidaA)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000AA, "Vocк decidiu sair do servidor sem se registrar !! Volte Sempre...");
            Kick(playerid);
        }
        else
        {
            format(string, sizeof(string), "Vocк ainda nгo possui registro em nosso servidor\n\nNome: %s\n\nInsira uma senha para registrar-se:", nome);
            ShowPlayerDialog(playerid, DialogRegistro, DIALOG_STYLE_INPUT, "- Registro", string, "Registrar", "Sair");
        }
    }
    if(dialogid == DialogSaidaB)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000AA, "Vocк decidiu sair do servidor sem se logar !! Volte Sempre...");
            Kick(playerid);
        }
        else
        {
            format(string, sizeof(string), "Vocк jб possui registro em nosso servidor\n\nNome: %s\n\nInsira sua senha para logar-se:", nome);
            ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, "- Login", string, "Logar", "Sair");
        }
    }
    return 1;
}
Falcon, seu nome ja esta no /creditos! SendClientMessage(playerid,COLOR_GREEN,"Login/Registro: Falcon");
Reply
#2

Troca o public OnPlayerRequestClass(playerid, classid)
por este aqui:
PHP Code:
public OnPlayerConnect(playerid)
{
    new 
string[124];
    
GetPlayerName(playeridnomesizeof(nome));
    
format(arquivosizeof(arquivo), ContasPlayersnome);
    if(!
dini_Exists(arquivo))
    {
        
format(stringsizeof(string), "Vocк ainda nгo possui registro em nosso servidor\n\nNome: %s\n\nInsira uma senha para registrar-se:"nome);
        
ShowPlayerDialog(playeridDialogRegistroDIALOG_STYLE_INPUT"- Registro"string"Registrar""Sair");
        return 
0x1;
    }
    if(
dini_Exists(arquivo))
    {
        
TentativasDeLogar[playerid] = 0;
        
format(stringsizeof(string), "Vocк jб possui registro em nosso servidor\n\nNome: %s\n\nInsira sua senha para logar-se:"nome);
        
ShowPlayerDialog(playeridDialogLoginDIALOG_STYLE_INPUT"- Login"string"Logar""Sair");
        return 
0x1;
    }
    return 
1;

Reply
#3

http://pastebin.com/AW70A1XM
Arrumei pra vocк
Reply
#4

O seu da erros Feliperch, porйm obrigado.
O do Dark.Angel foi tiro e queda! Obrigado!
Reply
#5

O meu problema mesmo nesta questгo й o level de procurado e algumas coisinhas nгo estгo salvando como dinheiro e tals, estou com muitos problemas em questгo disso, e nгo sei nem como arrumar..
Reply
#6

Quote:
Originally Posted by Sr.Pekeno
View Post
O meu problema mesmo nesta questгo й o level de procurado e algumas coisinhas nгo estгo salvando como dinheiro e tals, estou com muitos problemas em questгo disso, e nгo sei nem como arrumar..
posta o codigo
Reply
#7

Olб a todos,

Eu desenvolvi este FS jб faz um tempinho, e acredito que atualizei somente uma vez(Culpa da falta de tempo).
Hoje estarei fazendo uma grande atualizaзгo nele e corrigindo alguns erros.

Obrigado pela utilizaзгo...


Atenciosamente,
Falcon.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)