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;
}