Portal SAMP
[Ajuda] Salvar score grana e IP - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Salvar score grana e IP (/showthread.php?tid=4325)



Salvar score grana e IP - LOS_SANTOS - 21/12/2023

Boa dia amigos alguém sabe como eu posso inserir para salvar score , grana e senha de um player dentro desse código ?

Código PHP:
#include <a_samp>
#include <dini>
//Defines de Dialogs
#define REGISTRO    0
#define LOGIN  1
//Outras defines
#define PASTA_CONTAS        "/Contas/%s.ini"        //Diret�rio onde as contas s�o salvas
#define MAX_SENHA      16                      //Tamanho m�ximo da senha
#define MIN_SENHA      4                      //Tamanho m�nimo da senha
//Define Cores
#define tcadm                                                                  0x33AAFFFF
#define Vermelho 0xFF0000AA
//enuns e new
enum pInfo
{
Senha[MAX_SENHA+1],
Logged,
LoginsFalsos
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
new 
file[128];
new 
STRX[256];
new 
file2[128];

public 
OnPlayerRequestClass(playeridclassid)
{
//Coloque isso no OnPlayerRequestClass
    new aname[MAX_PLAYER_NAME];
GetPlayerName(playeridanamesizeof(aname));
format(filesizeof(file), PASTA_CONTASaname);
if(
PlayerInfo[playerid][Logged] == 0)
{
if(!
dini_Exists(file))
{
format(STRXsizeof(STRX), "Voc� n�o tem uma conta registrada, %s!\n\nDigite uma senha e clique em \"Registrar\"."aname);
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"CONTA"STRX"Registrar""Sair");
}
if(
dini_Exists(file))
{
format(STRXsizeof(STRX), "Bem-vindo(a) novamente, %! Logue-se em sua conta.\n\nDigite sua senha e clique em \"Logar\"."aname);
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_INPUT"CONTA"STRX"Logar""Sair");
}
}
else
{
new 
stringz[256];
GetPlayerName(playeridanameMAX_PLAYER_NAME);
format(stringzsizeof(stringz), "(INFO) %s Levou kick automatico por n�o se Registrar/Logar."aname);
SendClientMessageToAll(tcadm,stringz);
Kick(playerid);
}
//
return 1;
}

public 
OnPlayerDisconnect(playeridreason)
{
//Coloque isso no OnPlayerDisconnect
    PlayerInfo[playerid][Logged] = 0;
return 
1;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
//Coloque isso no OnDialogResponse
    if(dialogid == REGISTRO)
{
new 
aname[MAX_PLAYER_NAME];
GetPlayerName(playeridanamesizeof(aname));
format(filesizeof(file), PASTA_CONTASaname);
if(
response == 1)
{
if(
strlen(inputtext) < MIN_SENHA || strlen(inputtext) > MAX_SENHA)
{
format(STRXsizeof(STRX), "(INFO) A senha deve ter entre %d e %d caracteres!"MIN_SENHAMAX_SENHA);
SendClientMessage(playeridVermelhoSTRX);
format(STRXsizeof(STRX), "Senha muito grande ou pequena, %s!\nColoque sua senha e clique em \"Registrar\"."aname);
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"Registrando uma conta"STRX"Registrar""Sair");
return 
1;
}
dini_Create(file);
dini_Set(file"Senha"encrypt(inputtext));
//Coloque abaixo tudo que voc� queira salvar na conta do Jogador
SendClientMessage(playerid0x82C0FFAA"[CONTA] Registrado com sucesso.");
format(STRXsizeof(STRX), "Logue para poder jogar, %! Logue-se em sua conta.\n\nDigite sua senha e clique em \"Logar\". \n\n :: Brasil Nova Vers�o :: RPG!.",aname);
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_INPUT"CONTA"STRX"Logar""Sair");
GameTextForPlayer(playerid"~r~Registrado com sucesso"80003);
PlayerPlaySound(playerid1057000);
PlayerInfo[playerid][Logged] = 1;
}
else
{
format(STRXsizeof(STRX), "Voc� tem que ter uma conta para jogar %s!\nColoque sua senha e clique em \"Registrar\"."aname);
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"Registrando uma conta"STRX"Registrar""Sair");
}
}
if(
dialogid == LOGIN)
{
new 
aname[MAX_PLAYER_NAME];
GetPlayerName(playeridanamesizeof(aname));
format(filesizeof(file), PASTA_CONTASaname);
if(
response == 1)
{
new 
senhaacc[256];
senhaacc dini_Get(file"Senha");
if(
strcmp(encrypt(inputtext), senhaacctrue) == 0)
{
//Coloque abaixo tudo que vai acontecer quando o jogador logar
SetSpawnInfo(playerid1dini_Int(file"Skin"), dini_Int(file"CasaX"), dini_Int(file"CasaY"), dini_Int(file"CasaZ"), 354.1657000000);
if(
dini_Int(file2,"novato") == 2)
{
new 
string2[256];
new 
ip[128];
GetPlayerIp(playerid,ip,128);
format(string2sizeof(string2), "Seu Nick: %s � Seu ID: %d � Seu IP: %s"aname,playerid,ip);
SendClientMessage(playerid0xFFFF00AAstring2);
SendClientMessage(playerid0xFFFF00AA"Veja sua identidade, digite /identidade");
}
}
PlayerInfo[playerid][Logged] = 1;
SendClientMessage(playerid0x82C0FFAA"[CONTA] Logado com sucesso.");
SpawnPlayer(playerid);
GameTextForPlayer(playerid"~r~Logado com sucesso"80001);
PlayerPlaySound(playerid1057000);
}
else
{
PlayerInfo[playerid][LoginsFalsos]++;
if(
PlayerInfo[playerid][LoginsFalsos] >= 3)
{
format(STRXsizeof(STRX), "(INFO) %s Levou kick automatico. Raz�o: %d tentativas de login"aname3);
SendClientMessageToAll(tcadmSTRX);
Kick(playerid);
}
else
{
SendClientMessage(playeridVermelho,"[CONTA] Senha incorreta!");
format(STRXsizeof(STRX), "Senha incorreta, %! Logue-se em sua conta.\n\nDigite sua senha e clique em \"Logar\"."aname);
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_INPUT"CONTA"STRX"Logar""Sair");
}
}
}
else
{
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,aname,sizeof(aname));
format(STRXsizeof(STRX), "Logue para poder jogar, %! Logue-se em sua conta.\n\nDigite sua senha e clique em \"Logar\". \n\n :: Brasil Nova Vers�o :: RPG!.",aname);
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_INPUT"CONTA"STRX"Logar""Sair");
}
return 
1;
}
encrypt(pass[])
{
static 
charset[] = "qwertyaQWERTYUIOPZXCVBNMLKJHGFDSAsdfghzxcvbnuiopjklm1324657809_";
static 
css 63;
new 
target[MAX_SENHA 1];
new 
strlen(pass);
new 
sum j;
new 
tmpp 0;
new 
i;
new 
modw;
for (
0MAX_SENHA || ji++)
{
modw MAX_SENHA;
tmpp = (>= j) ? charset[(i) % css] : pass[i];
sum = (sum chrfind(tmppcharset) + 1) % css;
target[modw] = charset[(sum target[modw]) % css];
}
target[MAX_SENHA] = '\0';
return 
target;
}
stock chrfind(needlehaystack[], start 0)
{
while(
haystack[start])
{
if(
haystack[start++] == needle)
{
return 
start-1;
}
}
return -
1;
}
#pragma unused strtok 



RE: Salvar score grana e IP - White_Blue - 21/12/2023

A primeira coisa: Nunca use hashs caseiros, use bcrypt ou whirlpool.
A segunda coisa: Indente bem seus códigos, pois você postar o código desse jeito aqui acaba dificultando a leitura, também sempre coloque seu código em um bloco de código php.
A terceira coisa: A área de suporte mobile é reservada apenas para problemas relacionados ao SA-MP mobile.
A quarta coisa: Não recomendo usar dini, pois é bem ultrapassado, use ao menos Y_INI ou DOF2.

Sobre a pergunta:
Basta usar dini_Set para salvar tanto o score quanto o dinheiro do jogador.


RE: Salvar score grana e IP - LOS_SANTOS - 21/12/2023

(21/12/2023 17:49)White_Blue Escreveu: A primeira coisa: Nunca use hashs caseiros, use bcrypt ou whirlpool.
A segunda coisa: Indente bem seus códigos, pois você postar o código desse jeito aqui acaba dificultando a leitura, também sempre coloque seu código em um bloco de código php.
A terceira coisa: A área de suporte mobile é reservada apenas para problemas relacionados ao SA-MP mobile.
A quarta coisa: Não recomendo usar dini, pois é bem ultrapassado, use ao menos Y_INI ou DOF2.

Sobre a pergunta:
Basta usar dini_Set para salvar tanto o score quanto o dinheiro do jogador.

Obg pelas dicas