sscanf warning: Strings without a length are deprecated, please add a destination size. sscanf warning: String buffer overflow.
The length of S is [24] cells. I changed your ["#MAX_PLAYER_NAME"] as it made lots of errors for me.
|
playerCarOwner[MAX_PLAYER_NAME]
s[24]
pawn Code:
|
stock LoadPlayerVehicles(playerid)
{
new query[600];
format(query, sizeof(query), "SELECT * FROM `playervehicles` WHERE `OwnerName` = '%s'", PlayerName(playerid));
mysql_query(query);
mysql_store_result();
new i;
while(i < MAX_PLAYER_OWNED_CARS && mysql_retrieve_row())
{
mysql_fetch_row_format(query);
sscanf(query, "p<|>s[24]dffffdddddddddddddddddddddddddddddddddddd",
PlayerOwnedVehicles[playerid][i][playerCarOwner],
PlayerOwnedVehicles[playerid][i][playerCarModel],
PlayerOwnedVehicles[playerid][i][playerCarX],
PlayerOwnedVehicles[playerid][i][playerCarY],
PlayerOwnedVehicles[playerid][i][playerCarZ],
PlayerOwnedVehicles[playerid][i][playerCarRot],
PlayerOwnedVehicles[playerid][i][playerCarColor1],
PlayerOwnedVehicles[playerid][i][playerCarColor2],
PlayerOwnedVehicles[playerid][i][playerCarPaintjob],
PlayerOwnedVehicles[playerid][i][playerCarMod1],
PlayerOwnedVehicles[playerid][i][playerCarMod2],
PlayerOwnedVehicles[playerid][i][playerCarMod3],
PlayerOwnedVehicles[playerid][i][playerCarMod4],
PlayerOwnedVehicles[playerid][i][playerCarMod5],
PlayerOwnedVehicles[playerid][i][playerCarMod6],
PlayerOwnedVehicles[playerid][i][playerCarMod7],
PlayerOwnedVehicles[playerid][i][playerCarMod8],
PlayerOwnedVehicles[playerid][i][playerCarMod9],
PlayerOwnedVehicles[playerid][i][playerCarMod10],
PlayerOwnedVehicles[playerid][i][playerCarMod11],
PlayerOwnedVehicles[playerid][i][playerCarMod12],
PlayerOwnedVehicles[playerid][i][playerCarMod13],
PlayerOwnedVehicles[playerid][i][playerCarMod14],
PlayerOwnedVehicles[playerid][i][playerCarMod15],
PlayerOwnedVehicles[playerid][i][playerCarMod16],
PlayerOwnedVehicles[playerid][i][playerCarMod17],
PlayerOwnedVehicles[playerid][i][playerCarHasLock],
PlayerOwnedVehicles[playerid][i][playerCarLocked],
PlayerOwnedVehicles[playerid][i][playerCarTrunkCash],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun4],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo4],
PlayerOwnedVehicles[playerid][i][playerCarSpawned],
PlayerOwnedVehicles[playerid][i][playerCarOwned],
PlayerOwnedVehicles[playerid][i][playerCarOwnerID],
PlayerOwnedVehicles[playerid][i][playerCarFuel],
PlayerOwnedVehicles[playerid][i][playerCarSlotID]
);
PlayerOwnedVehicles[playerid][i][playerCarID] = CreateVehicle(PlayerOwnedVehicles[playerid][i][playerCarModel], PlayerOwnedVehicles[playerid][i][playerCarX], PlayerOwnedVehicles[playerid][i][playerCarY], PlayerOwnedVehicles[playerid][i][playerCarZ], PlayerOwnedVehicles[playerid][i][playerCarRot], PlayerOwnedVehicles[playerid][i][playerCarColor1], PlayerOwnedVehicles[playerid][i][playerCarColor2], -1);
AddVehicleMods(playerid, i);
i++;
}
mysql_free_result();
return true;
}
sscanf(query, "p<|>s[24]dffffdddddddddddddddddddddddddddddddddddd",
sscanf(query, "p<|>sdffffdddddddddddddddddddddddddddddddddddd",
stock LoadPlayerVehicles(playerid)
{
new
query[600],
i = 0;
format(query, sizeof(query), "SELECT * FROM `playervehicles` WHERE `Name` = '%s' LIMIT %d", PlayerName(playerid), MAX_PLAYER_OWNED_CARS);
mysql_query(query);
mysql_store_result();
printf("%s", query);
while(mysql_retrieve_row())
{
mysql_fetch_row_format(query);
printf("%s", query);
sscanf(query, "p<|>s[24]dffffdddddddddddddddddddddddddddddddddddd",
PlayerOwnedVehicles[playerid][i][playerCarOwner],
PlayerOwnedVehicles[playerid][i][playerCarModel],
PlayerOwnedVehicles[playerid][i][playerCarX],
PlayerOwnedVehicles[playerid][i][playerCarY],
PlayerOwnedVehicles[playerid][i][playerCarZ],
PlayerOwnedVehicles[playerid][i][playerCarRot],
PlayerOwnedVehicles[playerid][i][playerCarColor1],
PlayerOwnedVehicles[playerid][i][playerCarColor2],
PlayerOwnedVehicles[playerid][i][playerCarPaintjob],
PlayerOwnedVehicles[playerid][i][playerCarMod1],
PlayerOwnedVehicles[playerid][i][playerCarMod2],
PlayerOwnedVehicles[playerid][i][playerCarMod3],
PlayerOwnedVehicles[playerid][i][playerCarMod4],
PlayerOwnedVehicles[playerid][i][playerCarMod5],
PlayerOwnedVehicles[playerid][i][playerCarMod6],
PlayerOwnedVehicles[playerid][i][playerCarMod7],
PlayerOwnedVehicles[playerid][i][playerCarMod8],
PlayerOwnedVehicles[playerid][i][playerCarMod9],
PlayerOwnedVehicles[playerid][i][playerCarMod10],
PlayerOwnedVehicles[playerid][i][playerCarMod11],
PlayerOwnedVehicles[playerid][i][playerCarMod12],
PlayerOwnedVehicles[playerid][i][playerCarMod13],
PlayerOwnedVehicles[playerid][i][playerCarMod14],
PlayerOwnedVehicles[playerid][i][playerCarMod15],
PlayerOwnedVehicles[playerid][i][playerCarMod16],
PlayerOwnedVehicles[playerid][i][playerCarMod17],
PlayerOwnedVehicles[playerid][i][playerCarHasLock],
PlayerOwnedVehicles[playerid][i][playerCarLocked],
PlayerOwnedVehicles[playerid][i][playerCarTrunkCash],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun4],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo4],
PlayerOwnedVehicles[playerid][i][playerCarSpawned],
PlayerOwnedVehicles[playerid][i][playerCarOwned],
PlayerOwnedVehicles[playerid][i][playerCarOwnerID],
PlayerOwnedVehicles[playerid][i][playerCarFuel],
PlayerOwnedVehicles[playerid][i][playerCarSlotID]
);
printf("%s", query);
PlayerOwnedVehicles[playerid][i][playerCarID] = CreateVehicle(PlayerOwnedVehicles[playerid][i][playerCarModel], PlayerOwnedVehicles[playerid][i][playerCarX], PlayerOwnedVehicles[playerid][i][playerCarY], PlayerOwnedVehicles[playerid][i][playerCarZ], PlayerOwnedVehicles[playerid][i][playerCarRot], PlayerOwnedVehicles[playerid][i][playerCarColor1], PlayerOwnedVehicles[playerid][i][playerCarColor2], -1);
AddVehicleMods(playerid, i);
i++;
}
mysql_free_result();
return 1;
}
stock LoadPlayerVehicles(playerid)
{
new query[600];
format(query, sizeof(query), "SELECT * FROM `playervehicles` WHERE `Name` = '%s'", PlayerName(playerid));
mysql_query(query);
mysql_store_result();
new i;
if(mysql_num_rows() != 0)
{
while(i < MAX_PLAYER_OWNED_CARS && mysql_num_rows())
{
mysql_fetch_row_format(query);
sscanf(query, "p<|>s[24]dffffdddddddddddddddddddddddddddddddddddd",
PlayerOwnedVehicles[playerid][i][playerCarOwner],
PlayerOwnedVehicles[playerid][i][playerCarModel],
PlayerOwnedVehicles[playerid][i][playerCarX],
PlayerOwnedVehicles[playerid][i][playerCarY],
PlayerOwnedVehicles[playerid][i][playerCarZ],
PlayerOwnedVehicles[playerid][i][playerCarRot],
PlayerOwnedVehicles[playerid][i][playerCarColor1],
PlayerOwnedVehicles[playerid][i][playerCarColor2],
PlayerOwnedVehicles[playerid][i][playerCarPaintjob],
PlayerOwnedVehicles[playerid][i][playerCarMod1],
PlayerOwnedVehicles[playerid][i][playerCarMod2],
PlayerOwnedVehicles[playerid][i][playerCarMod3],
PlayerOwnedVehicles[playerid][i][playerCarMod4],
PlayerOwnedVehicles[playerid][i][playerCarMod5],
PlayerOwnedVehicles[playerid][i][playerCarMod6],
PlayerOwnedVehicles[playerid][i][playerCarMod7],
PlayerOwnedVehicles[playerid][i][playerCarMod8],
PlayerOwnedVehicles[playerid][i][playerCarMod9],
PlayerOwnedVehicles[playerid][i][playerCarMod10],
PlayerOwnedVehicles[playerid][i][playerCarMod11],
PlayerOwnedVehicles[playerid][i][playerCarMod12],
PlayerOwnedVehicles[playerid][i][playerCarMod13],
PlayerOwnedVehicles[playerid][i][playerCarMod14],
PlayerOwnedVehicles[playerid][i][playerCarMod15],
PlayerOwnedVehicles[playerid][i][playerCarMod16],
PlayerOwnedVehicles[playerid][i][playerCarMod17],
PlayerOwnedVehicles[playerid][i][playerCarHasLock],
PlayerOwnedVehicles[playerid][i][playerCarLocked],
PlayerOwnedVehicles[playerid][i][playerCarTrunkCash],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkGun4],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo1],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo2],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo3],
PlayerOwnedVehicles[playerid][i][playerCarTrunkAmmo4],
PlayerOwnedVehicles[playerid][i][playerCarSpawned],
PlayerOwnedVehicles[playerid][i][playerCarOwned],
PlayerOwnedVehicles[playerid][i][playerCarOwnerID],
PlayerOwnedVehicles[playerid][i][playerCarFuel],
PlayerOwnedVehicles[playerid][i][playerCarSlotID]
);
PlayerOwnedVehicles[playerid][i][playerCarID] = CreateVehicle(PlayerOwnedVehicles[playerid][i][playerCarModel], PlayerOwnedVehicles[playerid][i][playerCarX], PlayerOwnedVehicles[playerid][i][playerCarY], PlayerOwnedVehicles[playerid][i][playerCarZ], PlayerOwnedVehicles[playerid][i][playerCarRot], PlayerOwnedVehicles[playerid][i][playerCarColor1], PlayerOwnedVehicles[playerid][i][playerCarColor2], -1);
AddVehicleMods(playerid, i);
i++;
}
}
mysql_free_result();
return true;
}
The problems seems to be the loop, does anyone have any other suggestions on how to fix this?
I know how to fix the buffer overflow as I have spoken to Y_LESS. |