script OnAccountSave(playerid)
{
if(PlayerInfo[playerid][pLogged] == 0) return 1;
new query[456], final[1028];
format(query, sizeof(query), "UPDATE `Accounts` SET ");
strcat(final,query);
format(query, sizeof(query), "`Level` = '%d',",PlayerInfo[playerid][pLevel]);
strcat(final,query);
format(query, sizeof(query), "`Sex` = '%d',",PlayerInfo[playerid][pSex]);
strcat(final,query);
format(query, sizeof(query), "`Skin` = '%d',",PlayerInfo[playerid][pSkin]);
strcat(final,query);
format(query, sizeof(query), "`Hours` = '%d',",PlayerInfo[playerid][pHours]);
strcat(final,query);
format(query, sizeof(query), "`Minutes` = '%d',",PlayerInfo[playerid][pMinutes]);
strcat(final,query);
format(query, sizeof(query), "`Language` = '%d',",PlayerInfo[playerid][pLanguage]);
strcat(final,query);
format(query, sizeof(query), "`Admin` = '%d',",PlayerInfo[playerid][pAdmin]);
strcat(final,query);
format(query, sizeof(query), "`Helper` = '%d',",PlayerInfo[playerid][pHelper]);
strcat(final,query);
format(query, sizeof(query), "`Respect` = '%d',",PlayerInfo[playerid][pRespect]);
strcat(final,query);
format(query, sizeof(query), "`Money` = '%d',",PlayerInfo[playerid][pMoney]);
strcat(final,query);
format(query, sizeof(query), "`Bank` = '%d',",PlayerInfo[playerid][pBank]);
strcat(final,query);
format(query, sizeof(query), "`Age` = '%d',",PlayerInfo[playerid][pAge]);
strcat(final,query);
format(query, sizeof(query), "`Reports` = '%d',",PlayerInfo[playerid][pReports]);
strcat(final,query);
format(query, sizeof(query), "`Newbies` = '%d',",PlayerInfo[playerid][pNewbies]);
strcat(final,query);
format(query, sizeof(query), "`Warn` = '%d',",PlayerInfo[playerid][pWarn]);
strcat(final,query);
format(query, sizeof(query), "`MuteTime` = '%d',",PlayerInfo[playerid][pMuteTime]);
strcat(final,query);
format(query, sizeof(query), "`Mute` = '%d',",PlayerInfo[playerid][pMute]);
strcat(final,query);
format(query, sizeof(query), "`Banned` = '%d',",PlayerInfo[playerid][pBanned]);
strcat(final,query);
format(query, sizeof(query), "`BanDays` = '%d',",PlayerInfo[playerid][pBanDays]);
strcat(final,query);
format(query, sizeof(query), "`BannedBy` = '%s',",PlayerInfo[playerid][pBannedBy]);
strcat(final,query);
format(query, sizeof(query), "`MarkX` = '%f',",PlayerInfo[playerid][pMarkX]);
strcat(final,query);
format(query, sizeof(query), "`MarkY` = '%f',",PlayerInfo[playerid][pMarkY]);
strcat(final,query);
format(query, sizeof(query), "`MarkZ` = '%f',",PlayerInfo[playerid][pMarkZ]);
strcat(final,query);
format(query, sizeof(query), "`BannedReason` = '%s',",PlayerInfo[playerid][pBannedReason]);
strcat(final,query);
format(query, sizeof(query), "`Crashed` = '%d',",PlayerInfo[playerid][pCrashed]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseA` = '%d',",PlayerInfo[playerid][pDrivingLicenseA]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseB` = '%d',",PlayerInfo[playerid][pDrivingLicenseB]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseC` = '%d',",PlayerInfo[playerid][pDrivingLicenseC]);
strcat(final,query);
format(query, sizeof(query), "`WeaponLicense` = '%d',",PlayerInfo[playerid][pWeaponLicense]);
strcat(final,query);
format(query, sizeof(query), "`FlyingLicense` = '%d',",PlayerInfo[playerid][pFlyingLicense]);
strcat(final,query);
format(query, sizeof(query), "`NavigationLicense` = '%d',",PlayerInfo[playerid][pNavigationLicense]);
strcat(final,query);
format(query, sizeof(query), "`Work` = '%d',",PlayerInfo[playerid][pWork]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailed` = '%d',",PlayerInfo[playerid][pAdminJailed]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedReason` = '%s',",PlayerInfo[playerid][pAdminJailedReason]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedMinutes` = '%d',",PlayerInfo[playerid][pAdminJailedMinutes]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedAdmin` = '%s',",PlayerInfo[playerid][pAdminJailedAdmin]);
strcat(final,query);
format(query, sizeof(query), "`AlreadyVoted` = '%s',",PlayerInfo[playerid][pAlreadyVoted]);
strcat(final,query);
format(query, sizeof(query), "`Tester` = '%d',",PlayerInfo[playerid][pTester]);
strcat(final,query);
format(query, sizeof(query), "`Recover` = '%s'",PlayerInfo[playerid][pRecover]);
strcat(final,query);
format(query, sizeof(query), " WHERE ID = %d", PlayerInfo[playerid][pID]);
strcat(final,query);
mysql_format(mysql, final, sizeof(final), "%s", final);
mysql_query(mysql, final, false);
return 1;
}
|
If you don't save when player disconnect so it's not by saved. So you have when closing gamemode each time kick player, let save stats. Or save all stats for player in some timer
|
public OnPlayerDisconnect(playerid, reason)
{
if(TakingLicenses[playerid] == 1)
{
if(TakingLicensesType[playerid] == 1)
{
PlayerInfo[playerid][pDrivingLicenseB] = 0;
DisablePlayerCheckpointEx(playerid, 2);
TakingLicenses[playerid] = 1;
TakingLicensesType[playerid] = 0;
TakingLicenses[playerid] = 0;
DestroyVehicle(TakingLicensesVehicle[playerid]);
TakingLicensesStage[playerid] = 0;
DisableRemoteVehicleCollisions(playerid, 0);
}
}
foreach(new x : Player)
{
if(SpectatingID[x] == playerid && SpectatingState[x] != 0)
{
TogglePlayerSpectating(x, 0);
SpectatingState[x] = 0;
SpectatingID[x] = INVALID_PLAYER_ID;
SpectatingPlace[x] = -1;
SetPlayerPos(x, SpectatePos[x][0], SpectatePos[x][1], SpectatePos[x][2]);
SetPlayerInterior(x, SpecIntID[x]);
SCM(x, COLOR_GRAD2, "* The spectating has been stopped. (Quit)");
}
}
if(ServerRestarting == 1)
{
if(PlayerInfo[playerid][pLogged] == 1)
{
if(GetPlayerInterior(playerid) == 0)
{
PlayerInfo[playerid][pCrashed] = 1;
GetPlayerPos(playerid, PlayerInfo[playerid][pMarkX], PlayerInfo[playerid][pMarkY], PlayerInfo[playerid][pMarkZ]);
}
}
}
else
{
new szDisconnectReason[3][] =
{
"Timeout/Crash",
"Quit",
"Kick/Ban"
};
if(PlayerInfo[playerid][pLogged] == 1)
{
new strglobal[856];
if(reason == 0 && GetPlayerInterior(playerid) == 0)
{
PlayerInfo[playerid][pCrashed] = 1;
GetPlayerPos(playerid, PlayerInfo[playerid][pMarkX], PlayerInfo[playerid][pMarkY], PlayerInfo[playerid][pMarkZ]);
}
format(strglobal, sizeof(strglobal), "* %s disconnected from server. (%s) ", GetName(playerid), szDisconnectReason[reason]);
SendNearMessage(5.0, playerid, strglobal, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
}
if(ActiveReport[playerid] == 1)
{
new strglobal[856];
new toplayerid;
if(ReportDuty[playerid] == 1) { toplayerid = ReportAdminID[playerid]; }
if(ReportDuty[playerid] == 2) { toplayerid = ReportPlayerID[playerid]; }
ActiveReport[toplayerid] = 0, ActiveReport[playerid] = 0;
ReportDuty[playerid] = 0, ReportDuty[toplayerid] = 0;
format(strglobal, sizeof(strglobal),"* %s stopped this report session (Quit).", GetName(playerid));
SCM(playerid, COLOR_YELLOW2, strglobal);
SCM(toplayerid, COLOR_YELLOW2, strglobal);
ReportPlayerID[playerid] = INVALID_PLAYER_ID;
ReportPlayerID[toplayerid] = INVALID_PLAYER_ID;
ReportAdminID[playerid] = INVALID_PLAYER_ID;
ReportAdminID[toplayerid] = INVALID_PLAYER_ID;
}
if(Registering[playerid] == 1)
{
new query[256];
format(query, sizeof(query), "DELETE from Accounts where ID = %d", PlayerInfo[playerid][pID]);
mysql_query(mysql, query, false);
}
if(PlayerInfo[playerid][pLogged] == 1)
{
OnAccountSave(playerid);
}
return 1;
}
|
Have you tried printing the result to see if it actually does save and there's no errors in that query? That's what I usually do.
|
printf("%s", final);
|
Simply adding this
pawn Код:
|

[19:22:44] [ERROR] CMySQLQuery::Execute - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' `gender` = , `skin` = , `country` = , `email` = '', `admin` = , `helper` = , `m' at line 1
script OnAccountSave(playerid)
{
if(PlayerInfo[playerid][pLogged] == 0) return 1;
new query[456], final[1028];
format(query, sizeof(query), "UPDATE `Accounts` SET ");
strcat(final,query);
format(query, sizeof(query), "`Level` = %d,",PlayerInfo[playerid][pLevel]);
strcat(final,query);
format(query, sizeof(query), "`Sex` = %d,",PlayerInfo[playerid][pSex]);
strcat(final,query);
format(query, sizeof(query), "`Skin` = %d,",PlayerInfo[playerid][pSkin]);
strcat(final,query);
format(query, sizeof(query), "`Hours` = %d,",PlayerInfo[playerid][pHours]);
strcat(final,query);
format(query, sizeof(query), "`Minutes` = %d,",PlayerInfo[playerid][pMinutes]);
strcat(final,query);
format(query, sizeof(query), "`Language` = %d,",PlayerInfo[playerid][pLanguage]);
strcat(final,query);
format(query, sizeof(query), "`Admin` = %d,",PlayerInfo[playerid][pAdmin]);
strcat(final,query);
format(query, sizeof(query), "`Helper` = %d,",PlayerInfo[playerid][pHelper]);
strcat(final,query);
format(query, sizeof(query), "`Respect` = %d,",PlayerInfo[playerid][pRespect]);
strcat(final,query);
format(query, sizeof(query), "`Money` = %d,",PlayerInfo[playerid][pMoney]);
strcat(final,query);
format(query, sizeof(query), "`Bank` = %d,",PlayerInfo[playerid][pBank]);
strcat(final,query);
format(query, sizeof(query), "`Age` = %d,",PlayerInfo[playerid][pAge]);
strcat(final,query);
format(query, sizeof(query), "`Reports` = %d,",PlayerInfo[playerid][pReports]);
strcat(final,query);
format(query, sizeof(query), "`Newbies` = %d,",PlayerInfo[playerid][pNewbies]);
strcat(final,query);
format(query, sizeof(query), "`Warn` = %d,",PlayerInfo[playerid][pWarn]);
strcat(final,query);
format(query, sizeof(query), "`MuteTime` = %d,",PlayerInfo[playerid][pMuteTime]);
strcat(final,query);
format(query, sizeof(query), "`Mute` = %d,",PlayerInfo[playerid][pMute]);
strcat(final,query);
format(query, sizeof(query), "`Banned` = %d,",PlayerInfo[playerid][pBanned]);
strcat(final,query);
format(query, sizeof(query), "`BanDays` = %d,",PlayerInfo[playerid][pBanDays]);
strcat(final,query);
format(query, sizeof(query), "`BannedBy` = '%s',",PlayerInfo[playerid][pBannedBy]);
strcat(final,query);
format(query, sizeof(query), "`MarkX` = %f,",PlayerInfo[playerid][pMarkX]);
strcat(final,query);
format(query, sizeof(query), "`MarkY` = %f,",PlayerInfo[playerid][pMarkY]);
strcat(final,query);
format(query, sizeof(query), "`MarkZ` = %f,",PlayerInfo[playerid][pMarkZ]);
strcat(final,query);
format(query, sizeof(query), "`BannedReason` = '%s',",PlayerInfo[playerid][pBannedReason]);
strcat(final,query);
format(query, sizeof(query), "`Crashed` = %d,",PlayerInfo[playerid][pCrashed]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseA` = %d,",PlayerInfo[playerid][pDrivingLicenseA]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseB` = %d,",PlayerInfo[playerid][pDrivingLicenseB]);
strcat(final,query);
format(query, sizeof(query), "`DrivingLicenseC` = %d,",PlayerInfo[playerid][pDrivingLicenseC]);
strcat(final,query);
format(query, sizeof(query), "`WeaponLicense` = %d,",PlayerInfo[playerid][pWeaponLicense]);
strcat(final,query);
format(query, sizeof(query), "`FlyingLicense` = %d,",PlayerInfo[playerid][pFlyingLicense]);
strcat(final,query);
format(query, sizeof(query), "`NavigationLicense` = %d,",PlayerInfo[playerid][pNavigationLicense]);
strcat(final,query);
format(query, sizeof(query), "`Work` = %d,",PlayerInfo[playerid][pWork]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailed` = %d,",PlayerInfo[playerid][pAdminJailed]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedReason` = '%s',",PlayerInfo[playerid][pAdminJailedReason]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedMinutes` = %d,",PlayerInfo[playerid][pAdminJailedMinutes]);
strcat(final,query);
format(query, sizeof(query), "`AdminJailedAdmin` = '%s',",PlayerInfo[playerid][pAdminJailedAdmin]);
strcat(final,query);
format(query, sizeof(query), "`AlreadyVoted` = '%s',",PlayerInfo[playerid][pAlreadyVoted]);
strcat(final,query);
format(query, sizeof(query), "`Tester` = %d,",PlayerInfo[playerid][pTester]);
strcat(final,query);
format(query, sizeof(query), "`Recover` = '%s'",PlayerInfo[playerid][pRecover]);
strcat(final,query);
format(query, sizeof(query), " WHERE ID = %d", PlayerInfo[playerid][pID]);
strcat(final,query);
mysql_format(mysql, final, sizeof(final), "%s", final);
mysql_query(mysql, final, false);
return 1;
}