Mysql saving problem
#1

Ok, I have recently gone back to mysql scripting and I don't know why this peice of code is crashing my server, Is there any plugins to find errors in saving or anything, Here is my code anyway.

pawn Код:
stock savePlayerData(const playerid) {
    if(playerVariables[playerid][pStatus] >= 1 || playerVariables[playerid][pStatus] == -1) {
        new
            saveQuery[3500];

        if(playerVariables[playerid][pStatus] == -1) playerVariables[playerid][pStatus] = 0;
        if(playerVariables[playerid][pCarModel] >= 1 && doesVehicleExist(playerVariables[playerid][pCarID])) {
            GetVehiclePos(playerVariables[playerid][pCarID], playerVariables[playerid][pCarPos][0], playerVariables[playerid][pCarPos][1], playerVariables[playerid][pCarPos][2]);
            GetVehicleZAngle(playerVariables[playerid][pCarID], playerVariables[playerid][pCarPos][3]);
              for(new i = 0; i < 13; i++) {
                playerVariables[playerid][pCarMods][i] = GetVehicleComponentInSlot(playerVariables[playerid][pCarID], i);
            }
        }
        if(playerVariables[playerid][pCar2Model] >= 1 && doesVehicleExist(playerVariables[playerid][pCar2ID])) {
            GetVehiclePos(playerVariables[playerid][pCar2ID], playerVariables[playerid][pCar2Pos][0], playerVariables[playerid][pCar2Pos][1], playerVariables[playerid][pCar2Pos][2]);
            GetVehicleZAngle(playerVariables[playerid][pCar2ID], playerVariables[playerid][pCar2Pos][3]);
            for(new i = 0; i < 13; i++) {
                playerVariables[playerid][pCar2Mods][i] = GetVehicleComponentInSlot(playerVariables[playerid][pCar2ID], i);
            }
        }
       
        if(playerVariables[playerid][pAdminDuty] == 0 && playerVariables[playerid][pEvent] == 0) {
            GetPlayerHealth(playerid, playerVariables[playerid][pHealth]);
            GetPlayerArmour(playerid, playerVariables[playerid][pArmour]);
        }

        // If they're not in an event and not spectating, current pos is saved. Otherwise, they'll be set back to the pos they last used /joinevent or /spec.
        if(playerVariables[playerid][pSpectating] == INVALID_PLAYER_ID && playerVariables[playerid][pEvent] == 0) {
            GetPlayerPos(playerid, playerVariables[playerid][pPos][0], playerVariables[playerid][pPos][1], playerVariables[playerid][pPos][2]);
            playerVariables[playerid][pInterior] = GetPlayerInterior(playerid);
            playerVariables[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid); // If someone disconnects while spectating.
        }

        format(saveQuery, sizeof(saveQuery), "UPDATE playeraccounts SET playerBanned = '%d', playerSeconds = '%d', playerSkin = '%d', playerMoney = '%d', playerBankMoney = '%d'", playerVariables[playerid][pBanned], playerVariables[playerid][pSeconds], playerVariables[playerid][pSkin], playerVariables[playerid][pMoney], playerVariables[playerid][pBankMoney]);

        format(saveQuery, sizeof(saveQuery), "%s, playerInterior = '%d', playerVirtualWorld = '%d', playerHealth = '%f', playerArmour = '%f', playerPosX = '%f', playerPosY = '%f', playerPosZ = '%f'", saveQuery, playerVariables[playerid][pInterior], playerVariables[playerid][pVirtualWorld], playerVariables[playerid][pHealth], playerVariables[playerid][pArmour], playerVariables[playerid][pPos][0], playerVariables[playerid][pPos][1], playerVariables[playerid][pPos][2]);

        format(saveQuery, sizeof(saveQuery), "%s, playerAccent = '%s', playerAdminLevel = '%d', playerJob = '%d', playerWeapon0 = '%d', playerWeapon1 = '%d', playerWeapon2 = '%d', playerWeapon3 = '%d'", saveQuery, playerVariables[playerid][pAccent], playerVariables[playerid][pAdminLevel], playerVariables[playerid][pJob], playerVariables[playerid][pWeapons][0], playerVariables[playerid][pWeapons][1], playerVariables[playerid][pWeapons][2], playerVariables[playerid][pWeapons][3]);

        format(saveQuery, sizeof(saveQuery), "%s, playerWeapon4 = '%d', playerWeapon5 = '%d', playerWeapon6 = '%d', playerWeapon7 = '%d', playerWeapon8 = '%d', playerWeapon9 = '%d', playerWeapon10 = '%d'", saveQuery, playerVariables[playerid][pWeapons][4], playerVariables[playerid][pWeapons][5], playerVariables[playerid][pWeapons][6], playerVariables[playerid][pWeapons][7], playerVariables[playerid][pWeapons][8], playerVariables[playerid][pWeapons][9], playerVariables[playerid][pWeapons][10]);

        format(saveQuery, sizeof(saveQuery), "%s, playerWeapon11 = '%d', playerWeapon12 = '%d', playerJobSkill1 = '%d', playerJobSkill2 = '%d', playerMaterials = '%d', playerHours = '%d', playerLevel = '%d'", saveQuery, playerVariables[playerid][pWeapons][11], playerVariables[playerid][pWeapons][12], playerVariables[playerid][pJobSkill][0], playerVariables[playerid][pJobSkill][1], playerVariables[playerid][pMaterials], playerVariables[playerid][pPlayingHours], playerVariables[playerid][pLevel]);

        format(saveQuery, sizeof(saveQuery), "%s, playerWarning1 = '%s', playerWarning2 = '%s', playerWarning3 = '%s', playerHospitalized = '%d', playerFirstLogin = '%d', playerAdminName = '%s', playerPrisonTime = '%d', playerPrisonID = '%d', playerPhoneNumber = '%d'", saveQuery, playerVariables[playerid][pWarning1], playerVariables[playerid][pWarning2], playerVariables[playerid][pWarning3], playerVariables[playerid][pHospitalized], playerVariables[playerid][pFirstLogin], playerVariables[playerid][pAdminName],
        playerVariables[playerid][pPrisonTime], playerVariables[playerid][pPrisonID], playerVariables[playerid][pPhoneNumber]);

        format(saveQuery, sizeof(saveQuery), "%s, playerCarPaintJob = '%d', playerCarLock = '%d', playerStatus = '%d', playerGender = '%d', playerFightStyle = '%d', playerCarWeapon1 = '%d', playerCarWeapon2 = '%d', playerCarWeapon3 = '%d', playerCarWeapon4 = '%d', playerCarWeapon5 = '%d', playerCarLicensePlate = '%s'", saveQuery, playerVariables[playerid][pCarPaintjob], playerVariables[playerid][pCarLock],
        playerVariables[playerid][pStatus], playerVariables[playerid][pGender], playerVariables[playerid][pFightStyle], playerVariables[playerid][pCarWeapons][0], playerVariables[playerid][pCarWeapons][1], playerVariables[playerid][pCarWeapons][2], playerVariables[playerid][pCarWeapons][3], playerVariables[playerid][pCarWeapons][4], playerVariables[playerid][pCarLicensePlate]);
       
        format(saveQuery, sizeof(saveQuery), "%s, playerCar2PaintJob = '%d', playerCar2Lock = '%d', ", saveQuery, playerVariables[playerid][pCar2Paintjob], playerVariables[playerid][pCar2Lock]);

        format(saveQuery, sizeof(saveQuery), "%s, playerCarModel2 = '%d', playerCar2Colour1 = '%d', playerCar2Colour2 = '%d', playerCar2PosX = '%f', playerCar2PosY = '%f', playerCar2PosZ = '%f', playerCar2PosZAngle = '%f', playerCar2Mod0 = '%d', playerCar2Mod1 = '%d', playerCar2Mod2 = '%d', playerCar2Mod3 = '%d', playerCar2Mod4 = '%d', playerCar2Mod5 = '%d', playerCar2Mod6 = '%d'", saveQuery, playerVariables[playerid][pCar2Model], playerVariables[playerid][pCar2Colour][0],
        playerVariables[playerid][pCar2Colour][1], playerVariables[playerid][pCar2Pos][0], playerVariables[playerid][pCar2Pos][1], playerVariables[playerid][pCar2Pos][2], playerVariables[playerid][pCar2Pos][3], playerVariables[playerid][pCar2Mods][0], playerVariables[playerid][pCar2Mods][1], playerVariables[playerid][pCar2Mods][2], playerVariables[playerid][pCar2Mods][3], playerVariables[playerid][pCar2Mods][4], playerVariables[playerid][pCar2Mods][5], playerVariables[playerid][pCar2Mods][6]);

        format(saveQuery, sizeof(saveQuery), "%s, playerCarModel = '%d', playerCarColour1 = '%d', playerCarColour2 = '%d', playerCarPosX = '%f', playerCarPosY = '%f', playerCarPosZ = '%f', playerCarPosZAngle = '%f', playerCarMod0 = '%d', playerCarMod1 = '%d', playerCarMod2 = '%d', playerCarMod3 = '%d', playerCarMod4 = '%d', playerCarMod5 = '%d', playerCarMod6 = '%d'", saveQuery, playerVariables[playerid][pCarModel], playerVariables[playerid][pCarColour][0], playerVariables[playerid][pCarColour][1],
        playerVariables[playerid][pCarPos][0], playerVariables[playerid][pCarPos][1], playerVariables[playerid][pCarPos][2], playerVariables[playerid][pCarPos][3], playerVariables[playerid][pCarMods][0], playerVariables[playerid][pCarMods][1], playerVariables[playerid][pCarMods][2], playerVariables[playerid][pCarMods][3], playerVariables[playerid][pCarMods][4], playerVariables[playerid][pCarMods][5], playerVariables[playerid][pCarMods][6]);

        format(saveQuery, sizeof(saveQuery), "%s, playerCarTrunk1 = '%d', playerCarTrunk2 = '%d', playerPhoneCredit = '%d', playerWalkieTalkie = '%d'", saveQuery, playerVariables[playerid][pCarTrunk][0], playerVariables[playerid][pCarTrunk][1], playerVariables[playerid][pPhoneCredit], playerVariables[playerid][pWalkieTalkie]);

        format(saveQuery, sizeof(saveQuery), "%s, playerPhoneBook = '%d', playerGroup = '%d', playerGroupRank = '%d', playerIP = '%s', playerDropCarTimeout = '%d', playerRope = '%d', playerAdminDuty = '%d', playerCrimes = '%d', playerArrests = '%d', playerWarrants = '%d', playerAge = '%d', playerCarMod7 = '%d', playerCarMod8 = '%d', playerCarMod9 = '%d', playerCarMod10 = '%d', playerCarMod11 = '%d', playerCarMod12 = '%d'", saveQuery, playerVariables[playerid][pPhoneBook],
        playerVariables[playerid][pGroup], playerVariables[playerid][pGroupRank], playerVariables[playerid][pConnectionIP], playerVariables[playerid][pDropCarTimeout], playerVariables[playerid][pRope], playerVariables[playerid][pAdminDuty], playerVariables[playerid][pCrimes], playerVariables[playerid][pArrests], playerVariables[playerid][pWarrants], playerVariables[playerid][pAge], playerVariables[playerid][pCarMods][7], playerVariables[playerid][pCarMods][8],
        playerVariables[playerid][pCarMods][9], playerVariables[playerid][pCarMods][10], playerVariables[playerid][pCarMods][11], playerVariables[playerid][pCarMods][12]);

        if(playerVariables[playerid][pHelper] > 0)
            format(saveQuery, sizeof(saveQuery), "%s, playerHelperLevel = %d", saveQuery, playerVariables[playerid][pHelper]);
           
        if(playerVariables[playerid][pAdminLevel] > 0)
            format(saveQuery, sizeof(saveQuery), "%s, playerAdminPIN = %d", saveQuery, GetPVarInt(playerid, "pAdminPIN"));
           
        format(saveQuery, sizeof(saveQuery), "%s WHERE playerID = '%d'", saveQuery, playerVariables[playerid][pInternalID]);
        mysql_query(saveQuery);
    }

    return 1;
}
Reply
#2

Try changing "WHERE PlayerID = '%d'" to, PlayerName or something similar, due to the ID of a player changing every time they log on.
Reply
#3

Quote:
Originally Posted by MikeLovesToHelp
Посмотреть сообщение
Try changing "WHERE PlayerID = '%d'" to, PlayerName or something similar, due to the ID of a player changing every time they log on.
I don't think it's that as it was working fine until I started editing it.
Reply
#4

What parts did you edit? And do you have the original code ? If so, perhaps you should resort back to that.
Reply
#5

Quote:
Originally Posted by MikeLovesToHelp
Посмотреть сообщение
What parts did you edit? And do you have the original code ? If so, perhaps you should resort back to that.
I added a second vehicle slot, also I don't want to resort back to the old code as I want to know whats wrong with it so I can fix it in the future.
Reply
#6

Bump.
Reply
#7

When you added the second vehicle slot did you make sure to create the same columns in the MySQL database?
Reply
#8

Quote:
Originally Posted by Chenko
Посмотреть сообщение
When you added the second vehicle slot did you make sure to create the same columns in the MySQL database?
I did.
Reply
#9

Quote:
Originally Posted by MikeLovesToHelp
Посмотреть сообщение
Try changing "WHERE PlayerID = '%d'" to, PlayerName or something similar, due to the ID of a player changing every time they log on.
Obviously you've no idea what you're talking about. The "WHERE PlayerID = %d" saves the info to the player's register id.

Also, I see it's marked as '%d', try just using this , %d

MySQL_Log.txt is in the root of your server folder.
Reply
#10

Quote:
Originally Posted by -Luis
Посмотреть сообщение
Obviously you've no idea what you're talking about. The "WHERE PlayerID = %d" saves the info to the player's register id.

Also, I see it's marked as '%d', try just using this , %d

MySQL_Log.txt is in the root of your server folder.
I didn't have one so I made one and after running the server, logging on, disconnect, letting it crash, it's blank, btw this is a vortex 2 edit.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)