#include a_samp
#include DOF2
#include sscanf2
#include zcmd
#define DIALOG_REGISTRO 1
#define DIALOG_LOGAR 2
// ----------------------------------- Cores
#define VERMELHO 0xFF0000AA
#define AMARELO 0xFFFF00FF
// ----
new texto;
new nome[MAX_PLAYER_NAME];
new Str[128];
new id;
// --------------------------- //
enum Informacoes
{
Senha,
Matou,
Morreu,
Celular[MAX_PLAYERS],
Promocao[MAX_PLAYERS],
Dinheiro
}
new Player[MAX_PLAYERS][Informacoes];
new Erro[MAX_PLAYERS];
main()
{
print("Servidor Completo Feito por GuilhermePawn");
}
public OnGameModeInit()
{
SendRconCommand("hostname Zone Roleplay em Portuguкs [GM ЪNICA]");
SetGameModeText("ZR:RP v0.00001 BR");
SendRconCommand("mapname LS:RP");
SendRconCommand("language Portuguкs");
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
public OnPlayerConnect(playerid)
{
if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
return 1;
}
public OnPlayerDisconnect(playerid)
{
SalvarContas(playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
Player[playerid][Senha] = strval(inputtext);
SalvarContas(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
}
}
if(dialogid == DIALOG_LOGAR)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == Player[playerid][Senha])
{
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, -1, "| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
Kick(playerid);
return 1;
}
}
}
}
return 1;
}
stock PlayerToPoint( Float:radius, playerid, Float:X, Float:Y, Float:Z )
{
new Float:oldpos[ 3 ], Float:temppos[ 3 ];
GetPlayerPos( playerid, oldpos[ 0 ], oldpos[ 1 ], oldpos[ 2 ] );
temppos[ 0 ] = ( oldpos[ 0 ] -X );
temppos[ 1 ] = ( oldpos[ 1 ] -Y );
temppos[ 2 ] = ( oldpos[ 2 ] -Z );
if(( ( temppos[ 0 ] < radius ) && ( temppos[ 0 ] > -radius )) && (( temppos[ 1 ] < radius ) && ( temppos[ 1 ] > -radius )) && (( temppos[ 2 ] < radius ) && ( temppos[ 2 ] > -radius )) )
{
return 1;
}
return 0;
}
stock Contas(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, 32);
format(arquivo, 40, "Contas/%s.ini", name);
return arquivo;
}
stock SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(Contas(playerid), "Celular", Player[playerid][Celular]);
DOF2_SetInt(Contas(playerid), "Promocao", Player[playerid][Promocao]);
DOF2_SaveFile();
}
return 1;
}
CMD:sms(playerid, params[])
{
if(Player[playerid][Celular] == 1)
{
SendClientMessage(playerid, VERMELHO, "| ERRO | Vocк nгo tem um Celular, compre um na loja de ъtilitarios");
}
if(sscanf(params, "us",id,texto))
{
SendClientMessage(playerid,VERMELHO,"| ERRO | Digite: /SMS [Id] [Texto]");
}
else
{
if(IsPlayerConnected(id)) return SendClientMessage(playerid, VERMELHO, "| ERRO | Jogador nгo conectado!");
GetPlayerName(playerid,nome,sizeof(nome));
format(Str, sizeof(Str), "| SMS | Mensagem de: %s: %s",nome,texto);
SendClientMessage(id,-1,Str);
}
return 1;
}
CMD:kit(playerid, params[])
{
new gFile[44];
if( DOF2_GetInt( gFile, "Promocao" ) == 1 )
{
SendClientMessage(playerid, VERMELHO, "| ERRO | Vocк jб pegou essa promoзгo!");
return 1;
}
else if( DOF2_GetInt( gFile, "Promocao" ) == 0 )
{
DOF2_SetInt( gFile, "Promocao", 1 );
GivePlayerMoney(playerid, 50000);
SendClientMessage(playerid, AMARELO, "| PROMOЗГO | Vocк pegou essa promoзгo uma vez, boa!");
}
return 1;
}
CMD:testarposicao(playerid, params[])
{
if(!PlayerToPoint( 5.0, playerid, 0.0, 0.0, 0.0))
{
SendClientMessage(playerid, VERMELHO, "| ERRO | Vocк nгo estб nessa posiзгo");
}
return 1;
}
Player[playerid][Senha] = strval(inputtext);
new String[25];
format(String, sizeof(String), "%s", inputtext);
format(Player[playerid][pSenha], sizeof(String), String);
Peguei um sistema de registro e testei ele, sу que quando eu cadastro jб cria o arquivo na pasta Contas, mais quando eu vou acessar a conta a senha ta = 0 Ou seja, nгo tem senha, e quando eu digito 123456 q й a senha q coloquei fala que ta errada? WTF
PHP код:
|
SalvarContas(playerid)
{
/* esta parte do cуdigo estб errada, pois ele verifica se existe a conta e, caso nгo exista, ele somente cria,
mas nгo salva os dados.... sу vai salvar os dados caso jб exista a conta*/
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(Contas(playerid), "Celular", Player[playerid][Celular]);
DOF2_SetInt(Contas(playerid), "Promocao", Player[playerid][Promocao]);
DOF2_SaveFile();
}
return 1;
}
SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid)))
{
DOF2_CreateFile(Contas(playerid));
}
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(Contas(playerid), "Celular", Player[playerid][Celular]);
DOF2_SetInt(Contas(playerid), "Promocao", Player[playerid][Promocao]);
DOF2_SaveFile();
return 1;
}
SalvarContas(playerid)
{
if(DOF2_FileExists(Contas(playerid)))
{
Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
//DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]); (PODE DELETAR ESSA LINHA, CONFORME A DICA!!!)
DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
DOF2_SetInt(Contas(playerid), "Celular", Player[playerid][Celular]);
DOF2_SetInt(Contas(playerid), "Promocao", Player[playerid][Promocao]);
DOF2_SaveFile();
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
// aqui que deveria estar o if(!response) return Kick(playerid); e depois o if(!strval(....
// acredito que usar IsNumeric em vez de strval aqui й uma opзгo melhor
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
// nгo hб necessidade jб que vocк usou 'return' em cima
else
{
Player[playerid][Senha] = strval(inputtext);
// aqui й uma boa hora para se criar a conta
SalvarContas(playerid);
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
}
}
if(dialogid == DIALOG_LOGAR)
{
// primeiro vem o if(!response) e dps o !strval(inputtext)
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == Player[playerid][Senha])
{
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, -1, "| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
Kick(playerid);
return 1;
}
}
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case DIALOG_REGISTRO:
{
if(!response) return Kick(playerid);
if(!strlen(inputtext) || !IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
Player[playerid][Senha] = strval(inputtext);
DOF2_CreateFile(Contas(playerid));
DOF2_SetInt(Contas(playerid), "Senha", strval(inputtext));
DOF2_SaveFile();
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
return 1;
}
case DIALOG_LOGAR:
{
if(!response) return Kick(playerid);
if(!strlen(inputtext) || !IsNumeric(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
new senha = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == senha)
{
Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
Player[playerid][Celular] = DOF2_GetInt(Contas(playerid), "Celular");
Player[playerid][Promocao] = DOF2_GetInt(Contas(playerid), "Promocao");
GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, -1, "| ERRO | Vocк digitou sua senha 5 Vezes (errada) e levou Kick!");
Kick(playerid);
return 1;
}
}
return 1;
}
}
return 1;
}
IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}
Erro[playerid] = 0;
Olha amigo, tirando fora sua dъvida, vejo que vocк estб com problemas em um sistema de registro, e aparentemente seu GameMode й modo roleplay, um modo de jogo que nгo й recomendado para iniciantes.
|