enum E_PLAYERS
{
ID,
Name[MAX_PLAYER_NAME],
Password[129],
Money,
Score,
eHumans,
eZombies,
bool:IsLoggedIn,
bool:IsRegistered,
LoginAttempts,
LoginTimer
};
public OnPlayerSpawn(playerid)
{
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
return 1;
}
AssignPlayerData(playerid)
{
PlayerInfo[playerid][ID] = cache_get_field_content_int(0, "id");
cache_get_field_content(0, "password", PlayerInfo[playerid][Password], g_SQL, 129);
PlayerInfo[playerid][Money] = cache_get_field_content_int(0, "money");
PlayerInfo[playerid][Score] = cache_get_field_content_int(0, "score");
return 1;
}
UpdatePlayerData(playerid)
{
if(PlayerInfo[playerid][IsLoggedIn] == false)
return 0;
new query[128];
mysql_format(g_SQL, query, sizeof(query), "UPDATE `players` SET `money` = '%d' SET `score` = '%d' WHERE `id` = '%d' LIMIT 1", PlayerInfo[playerid][Money],PlayerInfo[playerid][Score], PlayerInfo[playerid][ID]);
mysql_tquery(g_SQL, query);
return 1;
}
SetupPlayerTable()
{
mysql_query(g_SQL, "CREATE TABLE IF NOT EXISTS `players` (`id` int(11) NOT NULL auto_increment PRIMARY KEY,`username` varchar(30) NOT NULL,`password` varchar(130) NOT NULL,`money` int(10) NOT NULL default '0',`score` int(10) NOT NULL default '0')", false);
return 1;
}
stock Player_GiveScore(playerid,amount)
{
PlayerInfo[playerid][Score] += amount;
return 1;
}
function MainTimer()
{
foreach(Player, playerid)
{
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][Money]);
SetPlayerScore(playerid, PlayerInfo[playerid][Score]);
}
}
SetTimer("MainTimer", 500, 1);
CMD:ok(playerid,params[])
{
Player_GiveScore(playerid,500);
return 1;
}
public OnPlayerDisconnect
public OnPlayerDisconnect(playerid,reason)
{
g_MysqlRaceCheck[playerid]++;
UpdatePlayerData(playerid);
return 1;
}
UpdatePlayerData(playerid)
{
if(PlayerInfo[playerid][IsLoggedIn] == false)
return 0;
new query[128];
mysql_format(g_SQL, query, sizeof(query), "UPDATE `players` SET `money` = '%d' SET `score` = '%d' WHERE `id` = '%d' LIMIT 1", PlayerInfo[playerid][Money],PlayerInfo[playerid][Score], PlayerInfo[playerid][ID]);
mysql_tquery(g_SQL, query);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(Logged[playerid] == 1)
{
new score = GetPlayerScore(playerid);
new money = GetPlayerMoney(playerid);
new query[300], pname[24]; new nquery[300];
GetPlayerName(playerid, pname, 24);
format(query, sizeof(query), "UPDATE `playerdata` SET score='%d', money='%d' WHERE user='%s'",
mysql_query(query);
}
return 1;
}
|
pawn Code:
Thats what i used, worked without any bugs. |