public OnPlayerConnect(playerid)
{
serverInfoUpdate(true);
if(isPlayerWhiteListed(playerid))
{
//code
}
return 1;
}
public OnPlayerDisconnect(playerid, reason
{
serverInfoUpdate(false);
savePlayerAccount(playerid);
return 1;
}
MYSQL]: Error ID: 2014 | Error: Commands out of sync; you can't run this command now | Query: SELECT `pName` FROM `whitelist` WHERE `pName` = 'Unknown' [14:00:26] MYSQL]: Commands out of sync for thread ID: -1 [14:00:26] MYSQL]: Error ID: 2014 | Error: Commands out of sync; you can't run this command now | Query: UPDATE `serverinfo` SET `onlinePlayers` = `PlayersOnline` +1 [14:00:26] MYSQL]: Commands out of sync for thread ID: -1
[13:33:32] MYSQL]: Error ID: 2014 | Error: Commands out of sync; you can't run this command now | Query: UPDATE `accs` SET aLevel = '0' ect ect.. WHERE `pName` = 'Unknown' [13:33:32] MYSQL]: Commands out of sync for thread ID: -1 [13:33:32] MYSQL]: Error ID: 2014 | Error: Commands out of sync; you can't run this command now | Query: UPDATE `sinfo` SET `onlinePlayers` = `PlayersOnline` -1 [13:33:32] MYSQL]: Commands out of sync for thread ID: -1
can you show us the query code? (whole saving/loading block)
|
stock savePlayerAccount(playerid)
{
new SaveQuery[500];
format(SaveQuery, sizeof(SaveQuery), "UPDATE `accs` SET `aLevel` = '%d', `Donator` = '%d', `Score` = '%d', `Money` = '%d', `Kills` = '%d', `Deaths` = '%d' WHERE `pName` = '%s'",
pInfo[playerid][aLevel],
pInfo[playerid][pDonator],
GetPlayerScore(playerid),
GetPlayerMoney(playerid),
pInfo[playerid][pKills],
pInfo[playerid][pDeaths],
pName(playerid));
mysql_query(SaveQuery);
return playerid;
}
stock isPlayerWhiteListed(playerid)
{
new string[81];
Format(string, "SELECT `pName` FROM `whitelist` WHERE `pName` = '%s'", pName(playerid));
mysql_query(string);
mysql_store_result();
if(mysql_num_rows() != 0 && mysql_ping(connection) != -1)
{
mysql_free_result();
return 1;
}
mysql_free_result();
return 0;
}
stock serverInfoUpdate(bool:connect)
{
if(connect == true)
{
mysql_query("UPDATE `sinfo` SET `onlineplayers` = `onlineplayers` +1");
}
else
{
mysql_query("UPDATE `sinfo` SET `onlineplayers` = `onlineplayers` -1");
}
}
new PlayersOnline=0;
public OnPlayerConnect(playerid)
{
PlayersOnline++;
new queryconn[30];
format(queryconn, sizeof(queryconn), "UPDATE sinfo SET onlineplayers=%d",PlayersOnline);
mysql_query(queryconn);
if(isPlayerWhiteListed(playerid))
{
//code
}
return 1;
}
public OnPlayerDisconnect(playerid, reason
{
PlayersOnline--;
new queryconn[30];
format(queryconn, sizeof(queryconn), "UPDATE sinfo SET onlineplayers=%d",PlayersOnline);
mysql_query(queryconn);
savePlayerAccount(playerid);
return 1;
}
stock isPlayerWhiteListed(playerid)
{
new string[96];
format(string, "SELECT pName FROM whitelist WHERE pName='%s' LIMIT 1", pName(playerid));
mysql_query(string);
mysql_store_result();
new rows = mysql_num_rows();
if(!rows)
{
//code that shall be executed when the player is not on the whitelist.
}
else if(rows == 1)
{
//code that shall be executed when the player is on the whitelist.
}
mysql_free_result();
}
stock savePlayerAccount(playerid)
{
new SaveQuery[500];
format(SaveQuery, sizeof(SaveQuery), "UPDATE accs SET aLevel=%d, Donator=%d, Score=%d, Money=%d, Kills=%d, Deaths=%d WHERE pName='%s'",pInfo[playerid][aLevel],pInfo[playerid][pDonator],GetPlayerScore(playerid),GetPlayerMoney(playerid),pInfo[playerid][pKills],pInfo[playerid][pDeaths],pName(playerid));
mysql_query(SaveQuery);
return 1;
}
did you even try it?
I use a pretty simillar code and it works like a charm for me. And its not just the style if u take a closer look... |
new WhiteListed[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new string[90];
Format(string, "SELECT `pName` FROM `whitelist` WHERE `pName` = '%s' LIMIT 1", pName(playerid));
mysql_query(string, THREAD_WHITELIST, playerid);
serverInfoUpdate(true);
if(isPlayerWhiteListed(playerid))
{
//code
}
return 1;
}
public OnQueryFinish(query[], resultid, extraid, connectionHandle)
{
switch(resultid)
{
case THREAD_WHITELIST:
{
mysql_store_result();
if(IsPlayerConnected(playerid) && mysql_num_rows() != 0)
{
WhiteListed[playerid] = 1;
}
else
{
WhiteListed[playerid] = 0;
}
mysql_free_result();
}
}
return true;
}
stock isPlayerWhiteListed(playerid)
{
if(WhiteListed[playerid] == 1) return true;
return false;
}