[Pedido] Queria um sistema de Registro/Login bem basico!
#1

Ola galera queria um sistema de Login/Registro em dialog, Bem bбsico mesmo!
quero um que pode colocar nъmeros e letras nas senhas, obrigado
Reply
#2

OBS: Necessita da include DOF2

PHP код:
#include <a_samp>
#include <DOF2>

#define PASTA_CONTAS                   "Contas/%s.ini"
#define DIALOG_LOGIN      638
#define DIALOG_REGISTRO   639

forward KickPlayer(playerid);
forward KickPlayerTwo(playerid);

new 
tentativas[MAX_PLAYERS];

main()
{
    print(
"\n----------------------------------");
    print(
" FilterScript Login/Registro por IlanZ");
    print(
"----------------------------------\n");
}

public 
OnGameModeInit()
{
    
SetGameModeText("Blank Script");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}

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

public 
OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;
}

public 
OnPlayerConnect(playerid)
{
    new 
string[150];
    
tentativas[playerid] = 0;
    
CarregarConta(playerid);
    if(
DOF2_FileExists(ContaPlayer(playerid)))
    {
        
// DIALOG LOGIN
        
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
    }
    else
    {
        
// DIALOG REGISTRO
        
format(stringsizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor"PlayerName(playerid));
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Logar no Servidor"string"Registrar","Sair");
    }
    return 
1;
}

public 
OnPlayerDisconnect(playeridreason)
{
    
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"GetPlayerMoney(playerid));
    
DOF2_SetInt(ContaPlayer(playerid), "Score"GetPlayerScore(playerid));
    
DOF2_SaveFile();
    return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
string[350];
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
            
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
            
SendClientMessage(playerid, -1"Digite uma senha entre 4 a 20 caracteres.");
            return 
1;
        }
        if(
strcmp(inputtextDOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
        {
            
CarregarConta(playerid);
            
SendClientMessage(playerid, -1"[ SERVER ] Login efetuado com sucesso");
            return 
1;
        }
        else
        {
            if(
tentativas[playerid] == 3)
            {
                
format(stringsizeof(string), "[ SERVER ] %s foi kickado por errar 3 vezes a senha"PlayerName(playerid));
                
SendClientMessageToAll(-1string);
                
KickPlayer(playerid);
                return 
1;
            }
            else
            {
                
tentativas[playerid]++;
                
format(stringsizeof(string), "ERROR: Senha digitada estб incorreta tentativas: (%d/3)"tentativas[playerid]);
                
SendClientMessage(playerid, -1string);
                
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
             }
         }
    }
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor"PlayerName(playerid));
            
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registrar no Servidor"string"Registrar","Sair");
            
SendClientMessage(playerid, -1"Digite uma senha entre 4 a 20 caracteres.");
            return 
1;
        }
        else
        {
            if(!
DOF2_FileExists(ContaPlayer(playerid)))
            {
                
DOF2_CreateFile(ContaPlayer(playerid));
                
DOF2_SetString(ContaPlayer(playerid), "Senha"inputtext);
                
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"7500);
                
DOF2_SetInt(ContaPlayer(playerid), "Score"1);
                
DOF2_SaveFile();
                
SendClientMessage(playerid, -1"[ SERVER ] Registro efetuado com sucesso");
                return 
1;
            }
        }
    }
    return 
1;
}
stock PlayerName(playerid)
{
    new 
aname[24];
    
GetPlayerName(playeridaname24);
    return 
aname;
}

stock ContaPlayer(playerid)
{
    new 
file[50];
    
format(filesizeof(file), PASTA_CONTASPlayerName(playerid));
    return 
file;
}
stock CarregarConta(playerid)
{
    
GivePlayerMoney(playeridDOF2_GetInt(ContaPlayer(playerid)," Dinheiro"));
    
SetPlayerScore(playeridGetPlayerScore(playerid)+DOF2_GetInt(ContaPlayer(playerid), " Score"));
    
SendClientMessage(playerid, -1"[ SERVER ] Suas informaзхes foram carregadas com sucesso");
}
public 
KickPlayer(playerid)
{
    
SetTimerEx("KickPlayerTwo"1000false"i"playerid);
    return 
1;
}

public 
KickPlayerTwo(playerid)
{
     
Kick(playerid);
     return 
1;

Reply
#3

Muito Obrigado!
Reply
#4

IlanZ pode colocar // comentarios onde adicionar mais coisas como GOLD e marca todos os lugares com comentario e me manda pfv
Reply
#5

Mano poderia colocar um SpawnPlayer quando logar? tipo ele acertou a senha e o nick e quando apertar em Logar ele Loga!
Reply
#6

Quote:
Originally Posted by JoaoBorges
Посмотреть сообщение
Mano poderia colocar um SpawnPlayer quando logar? tipo ele acertou a senha e o nick e quando apertar em Logar ele Loga!
PHP код:
#include <a_samp>
#include <DOF2>
#define PASTA_CONTAS                   "Contas/%s.ini"
#define DIALOG_LOGIN      638
#define DIALOG_REGISTRO   639
forward KickPlayer(playerid);
forward KickPlayerTwo(playerid);
new 
tentativas[MAX_PLAYERS];
main()
{
    print(
"\n----------------------------------");
    print(
" FilterScript Login/Registro por IlanZ");
    print(
"----------------------------------\n");
}
public 
OnGameModeInit()
{
    
SetGameModeText("Blank Script");
    
AddPlayerClass(01958.37831343.157215.3746269.1425000000);
    return 
1;
}
public 
OnGameModeExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    
SetPlayerPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraPos(playerid1958.37831343.157215.3746);
    
SetPlayerCameraLookAt(playerid1958.37831343.157215.3746);
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    new 
string[150];
    
tentativas[playerid] = 0;
    
CarregarConta(playerid);
    if(
DOF2_FileExists(ContaPlayer(playerid)))
    {
        
// DIALOG LOGIN
        
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
        
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
    }
    else
    {
        
// DIALOG REGISTRO
        
format(stringsizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor"PlayerName(playerid));
        
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Logar no Servidor"string"Registrar","Sair");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"GetPlayerMoney(playerid));
    
DOF2_SetInt(ContaPlayer(playerid), "Score"GetPlayerScore(playerid));
    
DOF2_SaveFile();
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
string[350];
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
            
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
            
SendClientMessage(playerid, -1"Digite uma senha entre 4 a 20 caracteres.");
            return 
1;
        }
        if(
strcmp(inputtextDOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
        {
            
CarregarConta(playerid);
            
SendClientMessage(playerid, -1"[ SERVER ] Login efetuado com sucesso");
            return 
1;
        }
        else
        {
            if(
tentativas[playerid] == 3)
            {
                
format(stringsizeof(string), "[ SERVER ] %s foi kickado por errar 3 vezes a senha"PlayerName(playerid));
                
SendClientMessageToAll(-1string);
                
KickPlayer(playerid);
                return 
1;
            }
            else
            {
                
tentativas[playerid]++;
                
format(stringsizeof(string), "ERROR: Senha digitada estб incorreta tentativas: (%d/3)"tentativas[playerid]);
                
SendClientMessage(playerid, -1string);
                
format(stringsizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor"PlayerName(playerid));
                
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Logar no Servidor"string"Logar","Sair");
             }
         }
    }
    if(
dialogid == DIALOG_REGISTRO)
    {
        if(!
response)
        {
            
Kick(playerid);
            return 
1;
        }
        if(
strlen(inputtext) < || strlen(inputtext) > 20)
        {
            
format(stringsizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor"PlayerName(playerid));
            
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_INPUT"Registrar no Servidor"string"Registrar","Sair");
            
SendClientMessage(playerid, -1"Digite uma senha entre 4 a 20 caracteres.");
            return 
1;
        }
        else
        {
            if(!
DOF2_FileExists(ContaPlayer(playerid)))
            {
                
DOF2_CreateFile(ContaPlayer(playerid));
                
DOF2_SetString(ContaPlayer(playerid), "Senha"inputtext);
                
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro"7500);
                
DOF2_SetInt(ContaPlayer(playerid), "Score"1);
                
DOF2_SaveFile();
                
SendClientMessage(playerid, -1"[ SERVER ] Registro efetuado com sucesso");
                return 
1;
            }
        }
    }
    return 
1;
}
stock PlayerName(playerid)
{
    new 
aname[24];
    
GetPlayerName(playeridaname24);
    return 
aname;
}
stock ContaPlayer(playerid)
{
    new 
file[50];
    
format(filesizeof(file), PASTA_CONTASPlayerName(playerid));
    return 
file;
}
stock CarregarConta(playerid)
{
    
GivePlayerMoney(playeridDOF2_GetInt(ContaPlayer(playerid)," Dinheiro"));
    
SetPlayerScore(playeridGetPlayerScore(playerid)+DOF2_GetInt(ContaPlayer(playerid), " Score"));
    
/*
                                 PARA MUDAR AS COORDENADAS SУ ALTERAR O SetSpawnInfo
    */
    
SetSpawnInfoplayerid001958.331343.1215.36269.152636281500);
    
SpawnPlayer(playerid);
    
SendClientMessage(playerid, -1"[ SERVER ] Suas informaзхes foram carregadas com sucesso");
}
public 
KickPlayer(playerid)
{
    
SetTimerEx("KickPlayerTwo"1000false"i"playerid);
    return 
1;
}
public 
KickPlayerTwo(playerid)
{
     
Kick(playerid);
     return 
1;

Reply
#7

esse й o melhor, e ainda tem explicaзгo!


AQUI
Reply
#8

Obrigado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)