[Ajuda] Sistema registro
#1

Bom, eu criei um sistema de registro e tal, mais como sou iniciante eu tentei adicionar os seguintes comandos:

pawn Код:
GetPlayerMoney(playerid, quantidade);
SetPlayerHealth(playerid, quantidade);
Mais quando eu compilo da erro, e nгo sei como resolver. Alguйm poderia me ajudar? Alguns erros que aparece quando compila.

Код:
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\registro.pwn(62) : warning 202: number of arguments does not match definition
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\registro.pwn(93) : warning 202: number of arguments does not match definition
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\registro.pwn(102) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\registro.pwn(105) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\registro.pwn(117) : error 017: undefined symbol "pNome"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Caso precise vou deixar o sistema aqui. ( E queria saber como eu faзo para, quando um player deslogar do servidor e quando voltar ele aparecer no mesmo lugar em que saiu. )

pawn Код:
//----------------------------------------------------------------------------//
#include < a_samp >
#include < DOF2 >

//----------------------------------------------------------------------------//
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
#define     UsuariosSalvos "/Usuarios/%s.ini"

//----------------------------------------------------------------------------//
enum Informacoes
{
    Senha,
    Matou,
    Morreu,
    Dinheiro,
    Vida,
    PlayerAdmin
}

//----------------------------------------------------------------------------//
new Player[MAX_PLAYERS][Informacoes];

//----------------------------------------------------------------------------//

public OnGameModeInit()
{
    SetGameModeText("Versгo 1.0.1");
    AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(arquivo, 40, "Usuarios/%s.ini", name);
    if(DOF2_FileExists(arquivo))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.", "Entrar", "Sair");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.", "Confirmar", "Cancelar");
    }

    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME );
    format(arquivo, 40, "Usuarios/%s.ini", name);
    if(DOF2_FileExists(arquivo))
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid, 5000);
        Player[playerid][Vida] = SetPlayerHealth(playerid, 50.0);
        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, "Vida", Player[playerid][Vida]);
        DOF2_SaveFile();
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(arquivo, 40, "Usuarios/%s.ini", name);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext))
        {
            ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!", "Confirma", "Cancelar");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid, 5000);
        Player[playerid][Vida] = SetPlayerHealth(playerid, 50);
        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, "Vida", Player[playerid][Vida]);
        DOF2_SaveFile();

            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!", "Confirma", "Cancelar");
        }
    }
if(dialogid == DIALOG_LOGAR)
    {
        if(!response)
        {
            SendClientMessage(playerid, -1, "Vocк nгo quis logar, entгo foi kickado automaticamente");
            Kick(playerid);
        }
        if(response)
        {
            new
                file[   32  ]
            ;
            format(file,sizeof(file),"Usuarios/%s.ini",pNome(playerid));
            if(DOF2_FileExists(file))
            {
               if( DOF2_CheckLogin ( file , inputtext ) )
                {
                    SendClientMessage( playerid , -1 , "Logado com sucesso" );
                    return 1;
                }
                else
                {

                    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!", "Confirmar", "Cancelar");
                }
            }
        }
    }
return 1;
}


public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

stock PlayerArchive(playerid)
{
        new StringArquivo[128], NomeArquivo[24];
        GetPlayerName(playerid, NomeArquivo, sizeof(NomeArquivo));
        format(StringArquivo, sizeof(StringArquivo), UsuariosSalvos, NomeArquivo);
        return StringArquivo;
}
forward CarregarDados(playerid);
public CarregarDados(playerid)
{
    return 1;
}

stock SalvarDados(playerid)
{

        DOF2_SaveFile();
        return 1;
}
Reply
#2

Tenta ae!
PHP код:
//----------------------------------------------------------------------------//
#include < a_samp >
#include < DOF2 >
//----------------------------------------------------------------------------//
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
#define     UsuariosSalvos "/Usuarios/%s.ini"
//----------------------------------------------------------------------------//
enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Dinheiro,
    
Vida,
    
PlayerAdmin
}
//----------------------------------------------------------------------------//
new Player[MAX_PLAYERS][Informacoes];
new 
name[MAX_PLAYER_NAME];
//----------------------------------------------------------------------------//
public OnGameModeInit()
{
    
SetGameModeText("Versгo 1.0.1");
    
AddPlayerClass(01642.1667, -2335.494113.54697.6790000000);
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
arquivo[40];
    
GetPlayerName(playeridnameMAX_PLAYER_NAME);
    
format(arquivo40"Usuarios/%s.ini"name);
    if(
DOF2_FileExists(arquivo))
    {
        
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.""Entrar""Sair");
    }
    else
    {
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.""Confirmar""Cancelar");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
arquivo[40];
    
GetPlayerName(playeridnameMAX_PLAYER_NAME );
    
format(arquivo40"Usuarios/%s.ini"name);
    if(
DOF2_FileExists(arquivo))
    {
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
        
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"Vida"Player[playerid][Vida]);
        
DOF2_SaveFile();
    }
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
arquivo[40];
    
GetPlayerName(playeridnameMAX_PLAYER_NAME);
    
format(arquivo40"Usuarios/%s.ini"name);
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext))
        {
            
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Por favor, digite apenas nъmeros em sua senha!\nPor favor, digite sua senha novamente para concluir seu registro!""Confirma""Cancelar");
            return 
1;
        }
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        else
        {
            
Player[playerid][Dinheiro] = GivePlayerMoney(playerid5000);
            
Player[playerid][Vida] = SetPlayerHealth(playerid50);
            
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"Vida"Player[playerid][Vida]);
            
DOF2_SaveFile();
            
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк acaba de se registrar em nosso banco de dados, por favor digite sua senha para logar!""Confirma""Cancelar");
        }
    }
    if(
dialogid == DIALOG_LOGAR)
    {
        if(!
response)
        {
            
SendClientMessage(playerid, -1"Vocк nгo quis logar, entгo foi kickado automaticamente");
            
Kick(playerid);
        }
        if(
response)
        {
            new 
file[32];
            
GetPlayerName(playeridnameMAX_PLAYER_NAME);
            
format(file,sizeof(file),"Usuarios/%s.ini"name);
            if(
DOF2_FileExists(file))
            {
               if( 
DOF2_CheckLogin file inputtext ) )
                {
                    
SendClientMessageplayerid , -"Logado com sucesso" );
                    return 
1;
                }
                else
                {
                    
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!""Confirmar""Cancelar");
                }
            }
        }
    }
    return 
1;
}
public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    return 
1;

Reply
#3

Para vocк fazer o sistema de salvar ao o player sair:
pawn Код:
#include a_samp
#include dof2

new Float:E_Pos[3]; //TOPO
new bool:Spawnou[MAX_PLAYERS]; //TOPO

public OnPlayerConnect(playerid)
{
    Spawnou[playerid] = false;
    return true;
}

public OnPlayerSpawn(playerid)
{
    if(Spawnou[playerid] == false)
    {
        Spawnou[playerid] = true;
        SetPlayerPos(playerid, DOF2::GetFloat(SalvarCoord(playerid), "Coordenada X"), DOF2::GetFloat(SalvarCoord(playerid), "Coordenada Y"), DOF2::GetFloat(SalvarCoord(playerid), "Coordenada Z"));
    }
    return true;
}

public OnPlayerDisconnect(playerid)
{
    GetPlayerPos(playerid, E_Pos[0], E_Pos[1], E_Pos[2]);
    if(!DOF2::FileExists(SalvarCoord(playerid))) DOF2::CreateFile(SalvarCoord(playerid));
    DOF2::SetFloat(SalvarCoord(playerid), "Coordenada X", E_Pos[0]);
    DOF2::SetFloat(SalvarCoord(playerid), "Coordenada Y", E_Pos[1]);
    DOF2::SetFloat(SalvarCoord(playerid), "Coordenada Z", E_Pos[2]);
    DOF2::SaveFile();
    return true;
}

stock SalvarCoord(playerid)
{
    new E_arquivo[40], E_name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, E_name, sizeof(E_name));
    format(E_arquivo, sizeof(E_arquivo), "Coordenada/%s.sav", E_name);
    return E_arquivo;
}
Reply
#4

Muito obrigado, funcionou direitinho. Mais as contas nгo ficam salvas, o que pode ser?

Editpawn coloquei o cуdigo igual vocк mandou e deu trкs erros.

Код:
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(89) : warning 225: unreachable code
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(114) : warning 225: unreachable code
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(410) : warning 219: local variable "name" shadows a variable at a preceding level
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Warnings.
Reply
#5

Quote:
Originally Posted by sh0wtime
Посмотреть сообщение
Muito obrigado, funcionou direitinho. Mais as contas nгo ficam salvas, o que pode ser?

Editpawn coloquei o cуdigo igual vocк mandou e deu trкs erros.

Код:
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(89) : warning 225: unreachable code
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(114) : warning 225: unreachable code
C:\Users\Leilson\Desktop\Showtime DM Brazil\gamemodes\teste.pwn(410) : warning 219: local variable "name" shadows a variable at a preceding level
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Warnings.
Dei EDIT
Se der algum WARNING poste a linha, pois eu consegui compilar normalmente aqui
Reply
#6

Bom, agora compilou direito. Mais vocк pode olhar o sistema de registro pra mim por favor e olhar o que estб faltando lб? As contas nгo ficam salvas.
Reply
#7

falta vocк botar para criar o arquivo na resposta do dialog de registro

PHP код:
DOF2_CreateFile(arquivo); 
Reply
#8

Incrнvel, quando arruma um erro aparece outro. Agora o da vez й a senha incorreta.. Continuar desse jeito vou tentar fazer outro sistema de registro.
Reply
#9

Estou a terminar um e publicar.
Reply
#10

Quote:
Originally Posted by Jonathan_Feitosa
Посмотреть сообщение
Estou a terminar um e publicar.
Mais vai ser completo? Ou serб apenas uma base? Quando vocк terminar e postar o mesmo, posso pega-lo e coloca-lo em meu gamemode? Claro deixando os crйditos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)