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. |