Jump to content
  • 0

pomoc Ukládání informací hráče


Neopry

Dotaz

Ahoj,

Když si hráč koupí Nemovitost a odhlásí se tak se mu ta Nemovitost zruší a jeho vydělané peníze taky, prosím vás není nějákej include na ukládání dat pro hráče ?

Třeba přes MySQL ?

Díky předem

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0

No tak se mi to už ukládá ale je tu další problém, když se přihláší odečte jim tu částku kterou měly předtím

Např : Měly 100 000

Přihlásí se a mají : -100 000

 

Login/register:

//Includes
#include <a_samp>
#include <dini>
//Must login to spawn
// 1 = yes, 0 = no
new lspawn = 1;
new Logged[MAX_PLAYERS] = 0;
//Defines
#define COLOUR_GREEN 0x33AA33AA
#define COLOUR_RED 0xAA3333AA
#define COLOUR_YELLOW 0xFFFF00AA
#define COLOUR_LIGHTBLUE 0x33CCFFAA
#define COLOUR_ORANGE 0xFF9900AA
#define SKIN_POS 1958.3783, 1343.1572, 15.3746, 269.1425
//Dcmd, youl love dcmd...
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//Hasher
adler32_hash(buf[]) {
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
 s1 = (s1 + buf[n]) % 65521;
 s2 = (s2 + s1)	 % 65521;
}
return (s2 << 16) + s1;
}
public OnFilterScriptInit()
{
//Credits
print("Simple Register / Login");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new name[MAX_PLAYER_NAME], file[200];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), "\\users\\%s.ini", name);
dini_IntSet(file, "cash", GetPlayerMoney(playerid));
dini_IntSet(file, "score", GetPlayerScore(playerid));
Logged[playerid] = 0;
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
//Can't spawn if your not logged in or registered...
if(lspawn == 1 && Logged[playerid] == 0)
{
SendClientMessage(playerid, COLOUR_RED, "Musis se prihlasit!");
return 0;
}else{
return 1;
}
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(register, 8, cmdtext);
dcmd(login, 5, cmdtext);
return false;
}
//Register
dcmd_register(playerid, params[])
{
//Varibles
new name[MAX_PLAYER_NAME], file[200];
//Get there name
GetPlayerName(playerid, name, sizeof(name));
//Build the file name
format(file, sizeof(file), "\\users\\%s.ini", name);
//No registering if your logged in!
if(Logged[playerid] == 1) return SendClientMessage(playerid, COLOUR_RED, "Uz jsi prihlasen!");
//Make shure there not registered!
if(dini_Exists(file)) return SendClientMessage(playerid, COLOUR_RED, "Tohle jmeno uz je registrovano! Prosim vyber si jiny Nick!");
//Can't forget a password!
else if(strlen(params) == 0) return SendClientMessage(playerid, COLOUR_RED, "Musis napsat sve heslo do registrace /register [Heslo]!");
else
{
 //Make there file
 dini_Create(file);
 //Store a encrypted copy of there password in it
 dini_IntSet(file, "password", adler32_hash(params));
 //Save there money
 dini_IntSet(file, "cash", GetPlayerMoney(playerid));
//Save there score
 dini_IntSet(file, "score", GetPlayerScore(playerid));
 //Make them logged
Logged[playerid] = 1;
//Sucess
 SendClientMessage(playerid, COLOUR_YELLOW, "Byl jsi registrovan, automaticky te prihlasuji!");
}
return 1;
}
//Login
dcmd_login(playerid, params[])
{
//Varibles
new name[MAX_PLAYER_NAME], file[200];
//Get there name
GetPlayerName(playerid, name, sizeof(name));
//Build there file name
format(file, sizeof(file), "\\users\\%s.ini", name);
//No /login abuse
if(Logged[playerid] == 1) return SendClientMessage(playerid, COLOUR_RED, "Uz jsi prihlasen!");
//Make shure there registered!
if(!dini_Exists(file)) return SendClientMessage(playerid, COLOUR_RED, "Tohle jmeno je reigstrovano, prosim vyber si jiny Nick!");
//Can't forget a password!
else if(strlen(params) == 0) return SendClientMessage(playerid, COLOUR_RED, "Musis napsat sve heslo do registrace /register [Heslo]!");
//Hash there password so it can be compaired
else if(adler32_hash(params) != dini_Int(file, "password")) return SendClientMessage(playerid, COLOUR_RED, "Prihlaseni selhalo!");
else
{
 //Get there cash
 GivePlayerMoney(playerid, GetPlayerMoney(playerid) - dini_Int(file, "cash"));
//Get there score
 SetPlayerScore(playerid, dini_Int(file, "score"));
 //Make them logged
 Logged[playerid] = 1;
 //Sucess
 SendClientMessage(playerid, COLOUR_YELLOW, "Byl jsi prihlasen, tve informace byly nacteny!");
}
return 1;
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...