Чёрт... Думал о том, что подобное может случится на многопоточной версии, но к моменту, когда завершил статью, вылетело из головы...
Пока что сделайте так
PHP код:
stock SaveAccount(playerid)
{
if(!player_logged{playerid}) return 1;
new query_string[(21)+(20+MAX_PLAYER_NAME)+(19+MAX_PLAYER_NAME)+(16+30)+(20)] = "UPDATE `accounts` SET";
format(query_string, sizeof(query_string), "%s `Name` = '%s',", query_string, PlayerInfo[playerid][pName]);
format(query_string, sizeof(query_string), "%s `Key` = '%s',", query_string, PlayerInfo[playerid][pKey]);
format(query_string, sizeof(query_string), "%s `Admin` = '%d'", query_string, PlayerInfo[playerid][pAdmin]);
format(query_string, sizeof(query_string), "%s WHERE `Name` = '%s'", query_string, PlayerInfo[playerid][pName]);
mysql_function_query(mysql_connect_ID, query_string, false, "", "");
player_logged{playerid} = 0;
printf("\n\n%s\n\n", query_string);
return 1;
}
И добавьте в начало OnPlayerConnect
PHP код:
ResetPlayerInfo(playerid);
+ к stock
PHP код:
stock ResetPlayerInfo(playerid)
{
PlayerInfo[playerid][pName][0] = 0;
PlayerInfo[playerid][pKey][0] = 0;
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pID] = 0;
player_logged{playerid} = 0;
return 1;
}
Для обнуления данных. Как вернусь домой, перепишу статью