18.06.2017, 16:20
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
quero um que pode colocar nъmeros e letras nas senhas, obrigado

#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(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
new string[150];
tentativas[playerid] = 0;
CarregarConta(playerid);
if(DOF2_FileExists(ContaPlayer(playerid)))
{
// DIALOG LOGIN
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
}
else
{
// DIALOG REGISTRO
format(string, sizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Logar no Servidor", string, "Registrar","Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(ContaPlayer(playerid), "Score", GetPlayerScore(playerid));
DOF2_SaveFile();
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[350];
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
SendClientMessage(playerid, -1, "Digite uma senha entre 4 a 20 caracteres.");
return 1;
}
if(strcmp(inputtext, DOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
{
CarregarConta(playerid);
SendClientMessage(playerid, -1, "[ SERVER ] Login efetuado com sucesso");
return 1;
}
else
{
if(tentativas[playerid] == 3)
{
format(string, sizeof(string), "[ SERVER ] %s foi kickado por errar 3 vezes a senha", PlayerName(playerid));
SendClientMessageToAll(-1, string);
KickPlayer(playerid);
return 1;
}
else
{
tentativas[playerid]++;
format(string, sizeof(string), "ERROR: Senha digitada estб incorreta tentativas: (%d/3)", tentativas[playerid]);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
}
}
}
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_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(playerid, aname, 24);
return aname;
}
stock ContaPlayer(playerid)
{
new file[50];
format(file, sizeof(file), PASTA_CONTAS, PlayerName(playerid));
return file;
}
stock CarregarConta(playerid)
{
GivePlayerMoney(playerid, DOF2_GetInt(ContaPlayer(playerid)," Dinheiro"));
SetPlayerScore(playerid, GetPlayerScore(playerid)+DOF2_GetInt(ContaPlayer(playerid), " Score"));
SendClientMessage(playerid, -1, "[ SERVER ] Suas informaзхes foram carregadas com sucesso");
}
public KickPlayer(playerid)
{
SetTimerEx("KickPlayerTwo", 1000, false, "i", playerid);
return 1;
}
public KickPlayerTwo(playerid)
{
Kick(playerid);
return 1;
}
Mano poderia colocar um SpawnPlayer quando logar? tipo ele acertou a senha e o nick e quando apertar em Logar ele Loga!
|
#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(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
new string[150];
tentativas[playerid] = 0;
CarregarConta(playerid);
if(DOF2_FileExists(ContaPlayer(playerid)))
{
// DIALOG LOGIN
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
}
else
{
// DIALOG REGISTRO
format(string, sizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Logar no Servidor", string, "Registrar","Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DOF2_SetInt(ContaPlayer(playerid), "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(ContaPlayer(playerid), "Score", GetPlayerScore(playerid));
DOF2_SaveFile();
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[350];
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
SendClientMessage(playerid, -1, "Digite uma senha entre 4 a 20 caracteres.");
return 1;
}
if(strcmp(inputtext, DOF2_GetString(ContaPlayer(playerid), "Senha"), true) == 0)
{
CarregarConta(playerid);
SendClientMessage(playerid, -1, "[ SERVER ] Login efetuado com sucesso");
return 1;
}
else
{
if(tentativas[playerid] == 3)
{
format(string, sizeof(string), "[ SERVER ] %s foi kickado por errar 3 vezes a senha", PlayerName(playerid));
SendClientMessageToAll(-1, string);
KickPlayer(playerid);
return 1;
}
else
{
tentativas[playerid]++;
format(string, sizeof(string), "ERROR: Senha digitada estб incorreta tentativas: (%d/3)", tentativas[playerid]);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "Olб, %s sua conta й {33FF00}Registrada\nInsira sua senha abaixo para se logar\nno servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logar no Servidor", string, "Logar","Sair");
}
}
}
if(dialogid == DIALOG_REGISTRO)
{
if(!response)
{
Kick(playerid);
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(string, sizeof(string), "Olб, %s sua conta й {FF0000}Nгo Registrada\nInsira sua senha abaixo para se registrar no servidor", PlayerName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_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(playerid, aname, 24);
return aname;
}
stock ContaPlayer(playerid)
{
new file[50];
format(file, sizeof(file), PASTA_CONTAS, PlayerName(playerid));
return file;
}
stock CarregarConta(playerid)
{
GivePlayerMoney(playerid, DOF2_GetInt(ContaPlayer(playerid)," Dinheiro"));
SetPlayerScore(playerid, GetPlayerScore(playerid)+DOF2_GetInt(ContaPlayer(playerid), " Score"));
/*
PARA MUDAR AS COORDENADAS SУ ALTERAR O SetSpawnInfo
*/
SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
SpawnPlayer(playerid);
SendClientMessage(playerid, -1, "[ SERVER ] Suas informaзхes foram carregadas com sucesso");
}
public KickPlayer(playerid)
{
SetTimerEx("KickPlayerTwo", 1000, false, "i", playerid);
return 1;
}
public KickPlayerTwo(playerid)
{
Kick(playerid);
return 1;
}