[Ajuda] Salvamento
#1

Tipo, se um Player criar uma conta com a mesma senha de outro player, ele loga na conta dele. Alguem pode me ajudar?

@EDIT

Na verdade qualquer conta que й criada, o player loga na primeira conta da pasta Contas
Codigo:

PHP код:
enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Dinheiro,
    
pOrg,
    
pAdmin,
    
pCargo,
    
pProc,
    
pOrgCVD,
    
pSexo,
    
pPlogin,
    
pSkin,
    
pScore,
}
new 
Player[MAX_PLAYERS][Informacoes]; 
PHP код:
 public OnPlayerConnect(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, name, 32);
    
format(arquivo, 40, "Contas/%s.ini", name);
    if(
DOF2_FileExists(arquivo))
    {
        
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;
} 
PHP код:
public OnPlayerDisconnect(playerid, reason)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, name, 32);
    
format(arquivo, 40, "Contas/%s.ini", name);
    if(
DOF2_FileExists(arquivo))
    {
        
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
        
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
        
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
        
DOF2_SetInt(arquivo, "Dinheiro", GetPlayerMoney(playerid));
        
DOF2_SetInt(arquivo, "pOrg", Player[playerid][pOrg]);
        
DOF2_SetInt(arquivo, "pAdmin", Player[playerid][pAdmin]);
        
DOF2_SetInt(arquivo, "pCargo", Player[playerid][pCargo]);
        
DOF2_SetInt(arquivo, "pProc", Player[playerid][pProc]);
        
DOF2_SetInt(arquivo, "pOrgCVD", Player[playerid][pOrgCVD]);
        
DOF2_SetInt(arquivo, "pSexo", Player[playerid][pSexo]);
        
DOF2_SetInt(arquivo, "pPlogin", Player[playerid][pPlogin]);
        
DOF2_SetInt(arquivo, "pSkin", GetPlayerSkin(playerid));
        
DOF2_SetInt(arquivo, "pScore", GetPlayerScore(playerid));
        
DOF2_SaveFile();
    }
    
Player[playerid][pOrgCVD] = 0;
    return 
1;
} 
PHP код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new 
arquivo[40], name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid, name, 32);
    
format(arquivo, 40, "Contas/%s.ini", name);
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext))
        {
            
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
            return 
1;
        }
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = strval(inputtext);
            
DOF2_CreateFile(arquivo);
            
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
            
DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]);
            
DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]);
            
DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]);
            
DOF2_SetInt(arquivo, "pOrg", Player[playerid][pOrg]);
            
DOF2_SetInt(arquivo, "pAdmin", Player[playerid][pAdmin]);
            
DOF2_SetInt(arquivo, "pCargo", Player[playerid][pCargo]);
            
DOF2_SetInt(arquivo, "pProc", Player[playerid][pProc]);
            
DOF2_SetInt(arquivo, "pOrgCVD", Player[playerid][pOrgCVD]);
            
DOF2_SetInt(arquivo, "pSexo", Player[playerid][pSexo]);
            
DOF2_SetInt(arquivo, "pPlogin", Player[playerid][pPlogin]);
            
DOF2_SetInt(arquivo, "pSkin", Player[playerid][pSkin]);
            
DOF2_SetInt(arquivo, "pScore", Player[playerid][pScore]);
            
DOF2_SaveFile();
            
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))
        {
            
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");
            return 
1;
        }
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(
strval(inputtext) == Player[playerid][Senha])
            {
                
Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou");
                
Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu");
                
Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro");
                
Player[playerid][pOrg] = DOF2_GetInt(arquivo, "pOrg");
                
Player[playerid][pAdmin] = DOF2_GetInt(arquivo, "pAdmin");
                
Player[playerid][pCargo] = DOF2_GetInt(arquivo, "pCargo");
                
Player[playerid][pProc] = DOF2_GetInt(arquivo, "pProc");
                
Player[playerid][pOrgCVD] = DOF2_GetInt(arquivo, "pOrgCVD");
                
Player[playerid][pSexo] = DOF2_GetInt(arquivo, "pSexo");
                
Player[playerid][pPlogin] = DOF2_GetInt(arquivo, "pPlogin");
                
Player[playerid][pSkin] = DOF2_GetInt(arquivo, "pSkin");
                
Player[playerid][pScore] = DOF2_GetInt(arquivo, "pScore");
                
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
                
SpawnPlayer(playerid);
            }
            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
#2

Utilizar dof2 em 2019,
Senha somente numeros,
Banimento apуs 5 tentativas,
Spawn sem coordenadas,
sem proteзгo contra dados falsos (skin, score, dinheiro).

melhor voltar a pesquisar antes de desenvolver um servidor pйssimo, a comunidade jб й saturada deles.

@TOPIC: nгo posso ajudar quem nгo consegue, ao menos explicar o problema direito.
Reply
#3

Quote:
Originally Posted by IsaacAsimov
Посмотреть сообщение
Utilizar dof2 em 2019,
Senha somente numeros,
Banimento apуs 5 tentativas,
Spawn sem coordenadas,
sem proteзгo contra dados falsos (skin, score, dinheiro).

melhor voltar a pesquisar antes de desenvolver um servidor pйssimo, a comunidade jб й saturada deles.

@TOPIC: nгo posso ajudar quem nгo consegue, ao menos explicar o problema direito.
Parabйns, senhor scripter, eu pedi uma ajuda, se nгo for contribuir em nada, fica quieto, nгo fala merda!
Reply
#4

- O tutorial do EditPawn jб estб obsoleto, utilize esse: https://sampforum.blast.hk/showthread.php?tid=346534
Reply
#5

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
- O tutorial do EditPawn jб estб obsoleto, utilize esse: https://sampforum.blast.hk/showthread.php?tid=346534
Obrigado Luan!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)