04.03.2018, 22:10
(
Последний раз редактировалось GuiKommander; 21.03.2018 в 00:44.
)
Cуdigo Mais Otimizado, Editado Dia: 20/03/2018, аs 21:44
PHP код:
/* Idiomas
- Linguagem 1 - Ingles
- Linguagem 2 - Portugues
- Sexo 1 - Homem
- Sexo 2 - Mulher
Usei SetInt Para Setar Nъmeros para nгo ter dificuldades para vocк no futuro.
*/
#include <a_samp>
#include <DOF2>
#define REGISTRO 0
#define LOGIN 1
#define IDIOMA 2
#define SEXO 3
#define IDADE 4
#define DIA_NASCIMENTO 5
#define MES_NASCIMENTO 6
#define ANO_NASCIMENTO 7
#define MensagemFormatada(%1,%2,%3,%4) do{format(gstring,sizeof(gstring),%3,%4 );SendClientMessage(%1,%2,gstring );}while(IsPlayerConnected(-1))
main()
{
print("Servidor ligado/carregado com sucesso.");
}
enum PlayerInfo
{
Linguagem,
Sexo,
Idade,
Dia_Nascimento,
Mes_Nascimento,
Ano_Nascimento
}
new pInfo[MAX_PLAYERS][PlayerInfo];
new gstring[500];
new tentativas[MAX_PLAYERS];
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(!DOF2_FileExists(Conta(playerid)))
{
format(gstring, sizeof(gstring), "Olб Jogador %s, vocк nгo й registrado, Digite uma senha para vocк se registrar.", PlayerName(playerid));
format(gstring, sizeof(gstring), "%s\n\nDepois de colocar sua senha responda as perguntas bбsicas.\n", gstring);
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Registro", gstring, "Registrar", "Sair");
}
else
{
format(gstring, sizeof(gstring), "Olб Jogador %s, vocк й registrado, digite sua senha para logar", PlayerName(playerid));
format(gstring, sizeof(gstring), "%s\n\nAcompanhe nosso Server pelo Fуrum: DigiteSeuForumAqui.com\n", gstring);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", gstring, "Logar", "Sair");
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
SalvarConta(playerid);
ResetarVariaveis(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new len = strlen(inputtext), val = strval(inputtext);
if(dialogid == REGISTRO)
{
if(!response) return Kick(playerid);
if(4 <= len <= 20)
{
SendClientMessage(playerid, -1, "| ERROR | Please enter a password between 4 and 20 characters!");
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "Register", "| ERROR | Please enter a password between 4 and 20 characters!", "Register", "Exit");
}
else
{
DOF2_CreateFile(Conta(playerid));
DOF2_SetString(Conta(playerid), "Senha", inputtext);
ShowPlayerDialog(playerid, IDIOMA, DIALOG_STYLE_LIST, "What is your language?", "English\nPortuguкs", "Selecionar", "Cancelar");
}
}
if(dialogid == LOGIN)
{
if(strcmp(inputtext, DOF2_GetString(Conta(playerid), "Senha"), true) == 0)
{
if(pInfo[playerid][Linguagem] == 1) return SendClientMessage(playerid, -1, "| INFO | successfully logged in");
else SendClientMessage(playerid, -1, "| INFO | Logado com sucesso.");
CarregarConta(playerid);
}
else
{
if(tentativas[playerid] == 3)
{
if(pInfo[playerid][Linguagem] == 1) return SendClientMessage(playerid, -1, "You've made a mistake 3 times and been kicked.");
else SendClientMessage(playerid, -1, "Vocк errou a senha 3 vezes e foi kikado.");
Kick(playerid);
}
else
{
new stg[100];
tentativas[playerid] ++;
if(pInfo[playerid][Linguagem] == 1)
{
format(stg, sizeof(stg), "Number of attempts to log in to the server: (%d/3)", tentativas[playerid]);
SendClientMessage(playerid, -1, stg);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Enter the password correctly, you have 3 attempts", "Next", "Exit");
}
else
{
format(stg, sizeof(stg), "Nъmero de Tentativas para vocк logar no servidor: (%d/3)", tentativas[playerid]);
SendClientMessage(playerid, -1, stg);
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Digite sua senha correta, vocк tem 3 Tentativas", "Proximo", "Sair");
}
}
}
}
if(dialogid == IDIOMA)
{
if(!response) return ShowPlayerDialog(playerid, IDIOMA, DIALOG_STYLE_LIST, "What is your language?", "English\nPortuguкs", "Selecionar", "Cancelar");
if(listitem == 0)
{
pInfo[playerid][Linguagem] = 1;
ShowPlayerDialog(playerid, SEXO, DIALOG_STYLE_MSGBOX, "Your Sex", "Choose man or woman according to your gender", "Man", "Woman");
}
if(listitem == 1)
{
pInfo[playerid][Linguagem] = 2;
ShowPlayerDialog(playerid, SEXO, DIALOG_STYLE_MSGBOX, "Seu Sexo", "Escolha Homem ou Mulher de acordo com seu Sexo", "Homem", "Mulher");
}
}
if(dialogid == SEXO)
{
if(response)
{
pInfo[playerid][Sexo] = 1;
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Your Age", "Enter what is your age", "Next", "Exit");
else ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Sua Idade", "Digite quantos anos vocк tem", "Proximo", "Sair");
}
else
{
pInfo[playerid][Sexo] = 2;
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Your Age", "Enter what is your age", "Next", "Exit");
else ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Sua Idade", "Digite quantos anos vocк tem", "Proximo", "Sair");
}
}
if(dialogid == IDADE)
{
if(16 <= val <= 70)
{
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Your Age", "Enter how old you are between the ages of 11 and 70", "Next", "Exit");
else ShowPlayerDialog(playerid, IDADE, DIALOG_STYLE_INPUT, "Sua Idade", "Digite quantos anos vocк tem entre 11 e 70 Anos", "Proximo", "Sair");
}
else pInfo[playerid][Idade] = strval(inputtext);
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, DIA_NASCIMENTO, DIALOG_STYLE_INPUT, "Your birth day", "now enter your birth day", "Next", "Exit");
else ShowPlayerDialog(playerid, DIA_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu Dia de Nascimento", "Digite seu Dia de Nascimento", "Proximo", "Sair");
}
if(dialogid == DIA_NASCIMENTO)
{
if(1 <= val <= 31)
{
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, DIA_NASCIMENTO, DIALOG_STYLE_INPUT, "Your birth day", "Enter your date of birth between 1 and 31", "Next", "Exit");
else ShowPlayerDialog(playerid, DIA_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu Dia de Aniversбrio", "Digite entre 1 e 31 a data do seu Aniversбrio", "Proximo", "Sair");
}
else pInfo[playerid][Dia_Nascimento] = strval(inputtext);
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, MES_NASCIMENTO, DIALOG_STYLE_INPUT, "your month of birth", "Enter your month of birth", "Next", "Exit");
else ShowPlayerDialog(playerid, MES_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu Mкs de Nascimento", "Digite seu Mкs de Nascimento", "Proximo", "Sair");
}
if(dialogid == MES_NASCIMENTO)
{
if(1 <= val <= 12)
{
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, MES_NASCIMENTO, DIALOG_STYLE_INPUT, "your month of birth", "Enter your birthday month between 1 and 12", "Next", "Exit");
else ShowPlayerDialog(playerid, MES_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu Mкs de Aniversбrio", "Digite o seu mкs de aniversбrio entre 1 e 12", "Proximo", "Sair");
}
else pInfo[playerid][Mes_Nascimento] = strval(inputtext);
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, ANO_NASCIMENTO, DIALOG_STYLE_INPUT, "your birth year", "type the year you were born", "Next", "Exit");
else ShowPlayerDialog(playerid, ANO_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu Ano de Nascimento", "Digite o ano que vocк nasceu", "Proximo", "Sair");
}
if(dialogid == ANO_NASCIMENTO)
{
if(1970 <= val <= 2013)
{
if(pInfo[playerid][Linguagem] == 1) return ShowPlayerDialog(playerid, ANO_NASCIMENTO, DIALOG_STYLE_INPUT, "Your birth year", "Enter between the years of 1970 and 2013 the year you were born", "Next", "Exit");
else ShowPlayerDialog(playerid, ANO_NASCIMENTO, DIALOG_STYLE_INPUT, "Seu ano de Aniversбrio", "Digite entra 1970 e 2013 o ano que vocк nasceu!", "Proximo", "Sair");
}
else pInfo[playerid][Ano_Nascimento] = strval(inputtext);
SpawnPlayer(playerid);
if(pInfo[playerid][Linguagem] == 1) return SendClientMessage(playerid, -1, "| INFO | We finished our questions, now play at will!");
else SendClientMessage(playerid, -1, "| INFO | Terminamos nossas perguntas, agora jogue avontade!");
}
return 0;
}
static SalvarConta(playerid)
{
DOF2_SetInt(Conta(playerid), "Linguagem", pInfo[playerid][Linguagem]);
DOF2_SetInt(Conta(playerid), "Sexo", pInfo[playerid][Sexo]);
DOF2_SetInt(Conta(playerid), "Idade", pInfo[playerid][Idade]);
DOF2_SetInt(Conta(playerid), "DiaNascimento", pInfo[playerid][Dia_Nascimento]);
DOF2_SetInt(Conta(playerid), "MesNascimento", pInfo[playerid][Mes_Nascimento]);
DOF2_SetInt(Conta(playerid), "AnoNascimento", pInfo[playerid][Ano_Nascimento]);
DOF2_SaveFile();
return 1;
}
static CarregarConta(playerid)
{
DOF2_GetInt(Conta(playerid), "Linguagem", pInfo[playerid][Linguagem]);
DOF2_GetInt(Conta(playerid), "Sexo", pInfo[playerid][Sexo]);
DOF2_GetInt(Conta(playerid), "Idade", pInfo[playerid][Idade]);
DOF2_GetInt(Conta(playerid), "DiaNascimento", pInfo[playerid][Dia_Nascimento]);
DOF2_GetInt(Conta(playerid), "MesNascimento", pInfo[playerid][Mes_Nascimento]);
DOF2_GetInt(Conta(playerid), "AnoNascimento", pInfo[playerid][Ano_Nascimento]);
SpawnPlayer(playerid);
if(pInfo[playerid][Linguagem] == 1)
{
MensagemFormatada(playerid, -1, "Hello player %s, welcome back to the server", PlayerName(playerid));
}
else MensagemFormatada(playerid, -1, "Olб player %s, bem vindo ao servidor novamente", PlayerName(playerid));
return 1;
}
static Conta(playerid)
{
new Arquivo[100];
format(Arquivo, sizeof(Arquivo), "/Contas/%s.ini", PlayerName(playerid));
return Arquivo;
}
static ResetarVariaveis(playerid)
{
pInfo[playerid][Linguagem] = 0,
pInfo[playerid][Sexo] = 0,
pInfo[playerid][Idade] = 0,
pInfo[playerid][Dia_Nascimento] = 0,
pInfo[playerid][Mes_Nascimento] = 0,
pInfo[playerid][Ano_Nascimento] = 0;
}
static PlayerName(playerid)
{
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, 20);
return Nome;
}