[Ajuda] DOF2
#1

Bom eu mecho com DOF2 a muito pouco tempo intгo queria pedir a ajuda de vocкs para modificar meu sistema de salvamento quando o vai se registrar sу pode colocar nъmeros eu queria que pudesse colocar letras tambйm.

Cуdigo:

pawn Код:
//------------------INCLUDES----------------------------------------------------
#include    a_samp
#include    DOF2


//------------------DEFINES-----------------------------------------------------
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
//------------------NEWS--------------------------------------------------------
enum pInfo
{
    pSenha,
    pMatou,
    pMorreu,
    pDinheiro
}

new PlayerInfo[MAX_PLAYERS][pInfo];
new Erro[MAX_PLAYERS];
//------------------PUBLICS-----------------------------------------------------
public OnGameModeInit()
{
    SetGameModeText("Texto");
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}
public OnPlayerConnect(playerid)
{
    if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    SalvarContas(playerid);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = strval(inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(strval(inputtext) == PlayerInfo[playerid][pSenha])
            {
                PlayerInfo[playerid][pMatou] = DOF2_GetInt(Contas(playerid), "Matou");
                PlayerInfo[playerid][pMorreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                PlayerInfo[playerid][pDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
//------------------STOCKS------------------------------------------------------
stock Contas(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    return arquivo;
}

stock SalvarContas(playerid)
{
    if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
        DOF2_SetInt(Contas(playerid), "Senha", PlayerInfo[playerid][pSenha]);
        DOF2_SetInt(Contas(playerid), "Matou", PlayerInfo[playerid][pMatou]);
        DOF2_SetInt(Contas(playerid), "Morreu", PlayerInfo[playerid][pMorreu]);
        DOF2_SetInt(Contas(playerid), "Dinheiro", PlayerInfo[playerid][pDinheiro]);
        DOF2_SaveFile();
    }
    return 1;
}
Reply
#2

Tente isto:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = strlen(inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(strlen(inputtext) == PlayerInfo[playerid][pSenha])
            {
                PlayerInfo[playerid][pMatou] = DOF2_GetInt(Contas(playerid), "Matou");
                PlayerInfo[playerid][pMorreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                PlayerInfo[playerid][pDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Reply
#3

Quote:
Originally Posted by matheus_alcapone
Посмотреть сообщение
Tente isto:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = strlen(inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            PlayerInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(strlen(inputtext) == PlayerInfo[playerid][pSenha])
            {
                PlayerInfo[playerid][pMatou] = DOF2_GetInt(Contas(playerid), "Matou");
                PlayerInfo[playerid][pMorreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                PlayerInfo[playerid][pDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}
Agora a parada bugou nгo estб salvando.
Reply
#4

e com o codigo acima vocк muda sua public SalvarContas para:
PHP код:
stock SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetString(Contas(playerid), "Senha"PlayerInfo[playerid][pSenha]);
        
DOF2_SetInt(Contas(playerid), "Matou"PlayerInfo[playerid][pMatou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"PlayerInfo[playerid][pMorreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"PlayerInfo[playerid][pDinheiro]);
        
DOF2_SaveFile();
    }
    return 
1;

@edit

e na enum pInfo
PHP код:
pSenha[128
Reply
#5

Substitua
pawn Код:
pSenha,
pawn Код:
pSenha[32],
---------------------------------------------------------------------------------------
pawn Код:
PlayerInfo[playerid][pSenha] = strlen(inputtext);
pawn Код:
format(PlayerInfo[playerid][pSenha],32,inputtext);
---------------------------------------------------------------------------------------
pawn Код:
PlayerInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
pawn Код:
format(PlayerInfo[playerid][pSenha],32,DOF2_GetString(Contas(playerid), "Senha"));
---------------------------------------------------------------------------------------
pawn Код:
if(strlen(inputtext) == PlayerInfo[playerid][pSenha])
pawn Код:
if(!strcmp(inputtext,PlayerInfo[playerid][pSenha]))
---------------------------------------------------------------------------------------
Reply
#6

Quote:
Originally Posted by ForT
Посмотреть сообщение
e com o codigo acima vocк muda sua public SalvarContas para:
PHP код:
stock SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetString(Contas(playerid), "Senha"PlayerInfo[playerid][pSenha]);
        
DOF2_SetInt(Contas(playerid), "Matou"PlayerInfo[playerid][pMatou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"PlayerInfo[playerid][pMorreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"PlayerInfo[playerid][pDinheiro]);
        
DOF2_SaveFile();
    }
    return 
1;

@edit

e na enum pInfo
PHP код:
pSenha[128
Continua bugado aparece que eu nгo posso digitar letras apenas nъmeros.
Reply
#7

tente oq o Viniborn passou.
Reply
#8

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Substitua
pawn Код:
pSenha,
pawn Код:
pSenha[32],
---------------------------------------------------------------------------------------
pawn Код:
PlayerInfo[playerid][pSenha] = strlen(inputtext);
pawn Код:
format(PlayerInfo[playerid][pSenha],32,inputtext);
---------------------------------------------------------------------------------------
pawn Код:
PlayerInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
pawn Код:
format(PlayerInfo[playerid][pSenha],32,DOF2_GetString(Contas(playerid), "Senha"));
---------------------------------------------------------------------------------------
pawn Код:
if(strlen(inputtext) == PlayerInfo[playerid][pSenha])
pawn Код:
if(!strcmp(inputtext,PlayerInfo[playerid][pSenha]))
---------------------------------------------------------------------------------------
Cara nгo entendi nada.
Reply
#9

substitui as linhas pra vocк:
PHP код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include dof2
//------------------INCLUDES----------------------------------------------------
#include    a_samp
#include    DOF2
//------------------DEFINES-----------------------------------------------------
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
//------------------NEWS--------------------------------------------------------
enum pInfo
{
    
pSenha,
    
pMatou,
    
pMorreu,
    
pDinheiro
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
new 
Erro[MAX_PLAYERS];
//------------------PUBLICS-----------------------------------------------------
public OnGameModeInit()
{
    
SetGameModeText("Texto");
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    if(
DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
    else 
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo й Registrado, digite uma senha para se registrar!""Confirma""Cancelar");
    return 
1;
}
public 
OnPlayerDisconnect(playerid)
{
    
SalvarContas(playerid);
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
response) return Kick(playerid);
        else
        {
            
format(PlayerInfo[playerid][pSenha],32,inputtext);
            
SalvarContas(playerid);
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк se cadastrou, agora й sу logar com sua senha registrada!""Confirma""Cancelar");
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        if(!
response) return Kick(playerid);
        else
        {
            
format(PlayerInfo[playerid][pSenha],32,DOF2_GetString(Contas(playerid), "Senha"));
            if(!
strcmp(inputtext,PlayerInfo[playerid][pSenha]))
            {
                
PlayerInfo[playerid][pMatou] = DOF2_GetInt(Contas(playerid), "Matou");
                
PlayerInfo[playerid][pMorreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                
PlayerInfo[playerid][pDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                
GivePlayerMoney(playeridPlayerInfo[playerid][pDinheiro]);
            }
            else
            {
                
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!""Confirma""Cancelar");
                
Erro[playerid]++;
                if(
Erro[playerid] == 5)
                {
                    
SendClientMessage(playerid, -1"Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    
Ban(playerid);
                    return 
1;
                }
            }
        }
    }
    return 
1;
}
//------------------STOCKS------------------------------------------------------
stock Contas(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridname32);
    
format(arquivo40"Contas/%s.ini"name);
    return 
arquivo;
}
stock SalvarContas(playerid)
{
    if(!
DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        
PlayerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid);
        
DOF2_SetString(Contas(playerid), "Senha"PlayerInfo[playerid][pSenha]);
        
DOF2_SetInt(Contas(playerid), "Matou"PlayerInfo[playerid][pMatou]);
        
DOF2_SetInt(Contas(playerid), "Morreu"PlayerInfo[playerid][pMorreu]);
        
DOF2_SetInt(Contas(playerid), "Dinheiro"PlayerInfo[playerid][pDinheiro]);
        
DOF2_SaveFile();
    }
    return 
1;

Reply
#10

Quote:
Originally Posted by lucaskill66
Посмотреть сообщение
Cara nгo entendi nada.
Й sу trocar o cуdigo de cima (que й o seu) pelo cуdigo de baixo (que й o meu)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)