[Ajuda] Erros Sistema de Registro
#1

Alguйm poderia me ajudar como resolver esse problema? Jб criei a pasta Contas na pasta Scriptfiles, baixei a include que tinha lб, que era a DOF2 e coloquei a mesma na pasta pawno/include.


Quando aperto F5.

Код:
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(45) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(62) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(74) : warning 225: unreachable code
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(240) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(283) : error 049: invalid line continuation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(285) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(290) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(290) : error 029: invalid expression, assumed zero
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(302) : warning 209: function "OnDialogResponse" should return a value
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(303) : error 010: invalid function or declaration
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Agora o sistema que eu criei usando um tutorial que eu vi aqui no fуrum.

Код:
#include    a_samp
#include    DOF2

#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2

enum Informacoes
{
    Senha,
    Matou,
    Morreu,
    Dinheiro
}

new Player[MAX_PLAYERS][Informacoes];
new Erro[MAX_PLAYERS];


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

public OnPlayerConnect(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, 32); //Pega o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    { //Caso existir, irб retornar a dialog de Login
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
    }
    else  //Caso o arquivo nгo exista
    { //Irб retornar a dialog de registro
        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.", "Confirma", "Cancelar");
    }

	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, 32); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        DOF2_SaveFile(); //E finalmente salvando o arquivo
    }
    return 1;
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, 32); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        { //Retorna a dialog de registro novamente para ele digitar NЪMEROS
            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) //Verifica se ele clicar em 'Cancelar"
        { //Caso ele clicar em cancelar, irб retornar ao playerid KICK
            Kick(playerid);
            return 1;
        }
        else //Verifica se ele Confirma o Registro
        { //Caso for true, ira criar o arquivo na pasta CONTAS
            Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            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(!strval(inputtext)) //Verifica se o player digitou letras, caso for true
        { //Retorna a dialog de Login novamente para ele digitar NЪMEROS
            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!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
            return 1;
        }
        if(!response) //Verifica se ele clicar em 'Cancelar"
        { //Caso ele clicar em cancelar, irб retornar ao playerid KICK
            Kick(playerid);
            return 1;
        }
        else //Verifica se ele Confirma o Login
        { //Caso for true, ira verificar se o que ele digitar serб a mesma senha que ele se registrou anteriormente
            Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha"); //Pega a senha do jogador no arquivo da conta
            if(strval(inputtext) == Player[playerid][Senha]) //Se o que ele digitar for igual ao valor que carregou aqui em cima /\
            { //Retornarб os dados do player e apуs irб dar Spawn no mesmo
                Player[playerid][Matou] = DOF2_GetInt(arquivo, "Matou"); //Pega quantos ele matou no arquivo
                Player[playerid][Morreu] = DOF2_GetInt(arquivo, "Morreu"); //Pega quantos ele morreu no arquivo
                Player[playerid][Dinheiro] = DOF2_GetInt(arquivo, "Dinheiro"); //Pega o dinheiro e iguala ao Player[playerid][Dinheiro]
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]); //Da o dinheiro carregado acima
                SpawnPlayer(playerid); //Spawna o player
            }
            else //Caso ele digitar a senha errada
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк acaba de digitar uma senha invбlida, por favor digite sua senha novamente.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
                Erro[playerid]++; //O erro vai aumentar cada vez que ele errar
                if(Erro[playerid] == 5) //Quando chegar а 5 vezes, irб retornar a msg e o Ban
                {
                    SendClientMessage(playerid, -1, "Sua conta acaba de ser banida, porque vocк errou sua senha cinco (5) vezes, por favor contacte um administrador em nosso fуrum.");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
	return 1;
}
Reply
#2

Alguйm ai poderia me ajudar?
Reply
#3

PHP код:
#include    a_samp
#include    DOF2
#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
#define ContasSalvas "/Contas/%s.ini"
enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Dinheiro
}
new 
Player[MAX_PLAYERS][Informacoes];
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME); //Pega o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    
//Caso existir, irб retornar a dialog de Login
        
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.""Confirma""Cancelar");
    }
    else  
//Caso o arquivo nгo exista
    
//Irб retornar a dialog de registro
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.""Confirma""Cancelar");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME); //Para pegar o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    
{
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        
DOF2_SetInt(arquivo"Senha"Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        
DOF2_SetInt(arquivo"Matou"Player[playerid][Matou]); //Salva quantos players ele matou
        
DOF2_SetInt(arquivo"Morreu"Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        
DOF2_SetInt(arquivo"Dinheiro"Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        
DOF2_SaveFile(); //E finalmente salvando o arquivo
    
}
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME); //Para pegar o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        
//Retorna a dialog de registro novamente para ele digitar NЪMEROS
            
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//Verifica se ele clicar em 'Cancelar"
        
//Caso ele clicar em cancelar, irб retornar ao playerid KICK
            
Kick(playerid);
            return 
1;
        }
        else 
//Verifica se ele Confirma o Registro
        
//Caso for true, ira criar o arquivo na pasta CONTAS
            
Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            
DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            
DOF2_SetInt(arquivo"Senha"Player[playerid][Senha]); //Vai salvar a senha do playerid
            
DOF2_SetInt(arquivo"Matou"Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            
DOF2_SetInt(arquivo"Morreu"Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            
DOF2_SetInt(arquivo"Dinheiro"Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            
DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            
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 e Por Esse Motivo foi Kickado!");
            
Kick(playerid);
         }
           if(
response)
        {
            if(
DOF2_CheckLogin(PlayerArchive(playerid), inputtext))
            {
                
SendClientMessage(playerid, -1"Logado com Sucesso, Parabйns!");
                
CarregarDados(playerid);
              }
              else
              {
                  
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.""Confirma""Cancelar");
              }
              }
              }
    return 
1;
}
stock CarregarDados(playerid)
{
    new 
arquivo[40];
    
Player[playerid][Matou] = DOF2_GetInt(arquivo"Matou"); //Pega quantos ele matou no arquivo
    
Player[playerid][Morreu] = DOF2_GetInt(arquivo"Morreu"); //Pega quantos ele morreu no arquivo
    
Player[playerid][Dinheiro] = DOF2_GetInt(arquivo"Dinheiro"); //Pega o dinheiro e iguala ao Player[playerid][Dinheiro]
    
GivePlayerMoney(playeridPlayer[playerid][Dinheiro]); //Da o dinheiro carregado acima
}
stock PlayerArchive(playerid)
{
    new 
StringArquivo[128], NomeArquivo[24];
    
GetPlayerName(playeridNomeArquivosizeof(NomeArquivo));
    
format(StringArquivosizeof(StringArquivo), ContasSalvasNomeArquivo);
    return 
StringArquivo;

Код:
Crйditos de algumas partes:  [iPs].FuneraL.
Teste.
Reply
#4

Код:
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : warning 217: loose indentation
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : error 029: invalid expression, assumed zero
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(60) : error 035: argument type mismatch (argument 3)
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(273) : error 017: undefined symbol "PlayerArchive"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(276) : error 017: undefined symbol "CarregarDados"
C:\Users\Leilson\Desktop\Los Angeles Official 2013 RPG\gamemodes\larpg.pwn(291) : warning 203: symbol is never used: "Erro"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
Код:
#include    a_samp
#include    DOF2


#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2

enum Informacoes
{
    Senha,
    Matou,
    Morreu,
    Dinheiro
}

new Player[MAX_PLAYERS][Informacoes];
new Erro[MAX_PLAYERS];

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

main()
{
	print("\n-------------------------------------------");
	print("[PT/BR]Los Angeles Official 2013 RPG[PT/BR]");
	print("-------------------------------------------\n");
}

public OnGameModeInit()
{
	// Don't use these lines if it's a filterscript
	SetGameModeText("Los Angeles Official");
	AddPlayerClass(0, 1642.1667, -2335.4941, 13.5469, 7.6790, 0, 0, 0, 0, 0, 0);
	return 1;
}

public OnPlayerConnect(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Pega o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    { //Caso existir, irб retornar a dialog de Login
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
    }
    else  //Caso o arquivo nгo exista
    { //Irб retornar a dialog de registro
        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.", "Confirma", "Cancelar");
    }

    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, ); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Salva quantos players ele matou
        DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        DOF2_SaveFile(); //E finalmente salvando o arquivo
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return 1;
	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //Para pegar o nome do playerid
    format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        { //Retorna a dialog de registro novamente para ele digitar NЪMEROS
            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) //Verifica se ele clicar em 'Cancelar"
        { //Caso ele clicar em cancelar, irб retornar ao playerid KICK
            Kick(playerid);
            return 1;
        }
        else //Verifica se ele Confirma o Registro
        { //Caso for true, ira criar o arquivo na pasta CONTAS
            Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); //Vai salvar a senha do playerid
            DOF2_SetInt(arquivo, "Matou", Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            DOF2_SetInt(arquivo, "Morreu", Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            DOF2_SetInt(arquivo, "Dinheiro", Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            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)
        {
            if(DOF2_CheckLogin(PlayerArchive(playerid), inputtext))
            {
                SendClientMessage(playerid, -1, "Parбbens vocк acaba de logar em nosso servidor.");
                CarregarDados(playerid);
              }
              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!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
              }
              }
              }
    return 1;
}

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

Removi os erros add as stocks que faltava 1 diretiva e outros erros

Faзa um backup de seu gm antes de Substituir por esse

Teste ai agora sem erros
Dica crie algumas linhas de Cуde e Ja em seguida Compile para ver se ha erros
Tente resolver pequenos problemas Sуzinho caso nгo consiga crie um tуpico

PHP код:
#include    a_samp
#include    DOF2


#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2
#define ContasSalvas "/Contas/%s.ini"

enum Informacoes
{
    
Senha,
    
Matou,
    
Morreu,
    
Dinheiro,
    
PlayerAdmin
}

new 
Player[MAX_PLAYERS][Informacoes];


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

main()
{
    print(
"\n-------------------------------------------");
    print(
"[PT/BR]Los Angeles Official 2013 RPG[PT/BR]");
    print(
"-------------------------------------------\n");
}

public 
OnGameModeInit()
{
    
// Don't use these lines if it's a filterscript
    
SetGameModeText("Los Angeles Official");
    
AddPlayerClass(01642.1667, -2335.494113.54697.6790000000);
    return 
1;
}

public 
OnPlayerConnect(playerid)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME); //Pega o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
    
//Caso existir, irб retornar a dialog de Login
        
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Vocк jб estб registrado em nosso banco de dados, digite sua senha para logar.\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.""Confirma""Cancelar");
    }
    else  
//Caso o arquivo nгo exista
    
//Irб retornar a dialog de registro
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registro""Vocк ainda nгo estб registrado em nosso banco de dados, digite uma senha para poder registrar.""Confirma""Cancelar");
    }

    return 
1;
}

public 
OnPlayerDisconnect(playeridreason)
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME ); //Para pegar o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(DOF2_FileExists(arquivo)) //Verifica se o arquivo da conta do playerid existe
    
{
        
Player[playerid][Dinheiro] = GetPlayerMoney(playerid); //Pega o dinheiro que o player tem no momento e iguala a Var de informaзхes dele
        
DOF2_SetInt(arquivo"Senha"Player[playerid][Senha]); //Salva a senha, caso ele tenha modificado
        
DOF2_SetInt(arquivo"Matou"Player[playerid][Matou]); //Salva quantos players ele matou
        
DOF2_SetInt(arquivo"Morreu"Player[playerid][Morreu]); //Salva quantas vezes ele morreu
        
DOF2_SetInt(arquivo"Dinheiro"Player[playerid][Dinheiro]); //Salva o dinheiro que foi igualado ao GetPlayerMoney logo acima no comeзo da funзгo
        
DOF2_SaveFile(); //E finalmente salvando o arquivo
    
}
    return 
1;
}

public 
OnPlayerSpawn(playerid)
{
    return 
1;
}

public 
OnPlayerDeath(playeridkilleridreason)
{
    return 
1;
}

public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}

public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}

public 
OnPlayerText(playeridtext[])
{
    return 
1;
}

public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/mycommand"cmdtexttrue10) == 0)
    {
        
// Do something here
        
return 1;
    }
    return 
0;
}

public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    return 
1;
}

public 
OnPlayerExitVehicle(playeridvehicleid)
{
    return 
1;
}

public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    return 
1;
}

public 
OnPlayerEnterCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerLeaveCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    return 
1;
}

public 
OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 
1;
}

public 
OnRconCommand(cmd[])
{
    return 
1;
}

public 
OnPlayerRequestSpawn(playerid)
{
    return 
1;
}

public 
OnObjectMoved(objectid)
{
    return 
1;
}

public 
OnPlayerObjectMoved(playeridobjectid)
{
    return 
1;
}

public 
OnPlayerPickUpPickup(playeridpickupid)
{
    return 
1;
}

public 
OnVehicleMod(playeridvehicleidcomponentid)
{
    return 
1;
}

public 
OnVehiclePaintjob(playeridvehicleidpaintjobid)
{
    return 
1;
}

public 
OnVehicleRespray(playeridvehicleidcolor1color2)
{
    return 
1;
}

public 
OnPlayerSelectedMenuRow(playeridrow)
{
    return 
1;
}

public 
OnPlayerExitedMenu(playerid)
{
    return 
1;
}

public 
OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
{
    return 
1;
}

public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    return 
1;
}

public 
OnRconLoginAttempt(ip[], password[], success)
{
    return 
1;
}

public 
OnPlayerUpdate(playerid)
{
    return 
1;
}

public 
OnPlayerStreamIn(playeridforplayerid)
{
    return 
1;
}

public 
OnPlayerStreamOut(playeridforplayerid)
{
    return 
1;
}

public 
OnVehicleStreamIn(vehicleidforplayerid)
{
    return 
1;
}

public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
    
GetPlayerName(playeridnameMAX_PLAYER_NAME); //Para pegar o nome do playerid
    
format(arquivo40"Contas/%s.ini"name); //Formata o arquivo com o nome do playerid
    
if(dialogid == DIALOG_REGISTRO)
    {
        if(!
strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
        
//Retorna a dialog de registro novamente para ele digitar NЪMEROS
            
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//Verifica se ele clicar em 'Cancelar"
        
//Caso ele clicar em cancelar, irб retornar ao playerid KICK
            
Kick(playerid);
            return 
1;
        }
        else 
//Verifica se ele Confirma o Registro
        
//Caso for true, ira criar o arquivo na pasta CONTAS
            
Player[playerid][Senha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
            
DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
            
DOF2_SetInt(arquivo"Senha"Player[playerid][Senha]); //Vai salvar a senha do playerid
            
DOF2_SetInt(arquivo"Matou"Player[playerid][Matou]); //Vai salvar quantas vezes ele matou
            
DOF2_SetInt(arquivo"Morreu"Player[playerid][Morreu]); //Vai salvar quantas vezes ele morreu
            
DOF2_SetInt(arquivo"Dinheiro"Player[playerid][Dinheiro]); //Vai salvar o dinheiro dele
            
DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa funзгo o arquivo nгo serб salvo!
            //Retornando a dialog de Login ao player no final para ele logar no server
            
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)
        {
            if(
DOF2_CheckLogin(PlayerArchive(playerid), inputtext))
            {
                
SendClientMessage(playerid, -1"Parбbens vocк acaba de logar em nosso servidor.");
                
CarregarDados(playerid);
              }
              else
              {
                  
ShowPlayerDialog(playeridDIALOG_LOGARDIALOG_STYLE_PASSWORD"Logar""Por favor, digite apenas nъmeros em sua senha.\nPor favor, digite sua senha para poder logar!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.""Confirma""Cancelar");
              }
              }
              }
    return 
1;
}

public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    return 
1;
}



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

stock SalvarDados(playerid)
{

        
DOF2_SaveFile();
        return 
1;

Reply
#6

@edit Double Post sem querer!
Reply
#7

Nossa cara, muito obrigado.
Tipo se eu quiser mudar a interface do sistema de registro й possнvel? Ultima dъvida mesmo, ai caso for possнvel, jб irei trabalhar nisso.
Reply
#8

Quote:
Originally Posted by sofina
Посмотреть сообщение
Nossa cara, muito obrigado.
Tipo se eu quiser mudar a interface do sistema de registro й possнvel? Ultima dъvida mesmo, ai caso for possнvel, jб irei trabalhar nisso.
No sa-mp й quase tudo posivel

Para mudar algo do menu login Procure as linhas do Dialog login e altere o Cуdigo que deseja
Reply
#9

Й o sistema funcionou legal, mais a parte de vocк digitar sua senha para logar estб bugada, eu digito a senha correta mais fala que estб errada.
Reply
#10

Coloque este login eu arrumei o bug

pawn Код:
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),"Contas/%s.ini",pNome(playerid));
            if(DOF2_FileExists(file))
            {
                if(strcmp(inputtext,DOF2_GetString(file,inputtext,"Senha"),true) == 0)
                {
                    SendClientMessage(playerid, -1, "Logado com Sucesso");
                    //SpawnPlayer(playerid);
                    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!\nCaso vocк erre sua senha cinco (5) vezes terб sua conta banida.", "Confirma", "Cancelar");
                }
            }
        }
    }
e йsta stock no fim do gm
pawn Код:
stock PlayerName(playerid)
{
    new Name[MAX_PLAYER_NAME];
    GetPlayerName( playerid, Name, MAX_PLAYER_NAME);
    return Name;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)