Need Help with Mysql vehicle saving.
#1

Well I made a system that saves the vehicle, that works, but I also made a function that it checks IF the vehicle is already in the database it will give a message: "Vehicle already exist" But instead of sending that it saves it a second time...

Codes:
pawn Код:
command(savecar, playerid, params[])
{
    new carid = GetPlayerVehicleID(playerid);
    if(AdminLoggedIn[playerid] == 1 && Player[playerid][Adminlevel] >= 6)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            new VehPlate[255];
            format(VehPlate, 255, "%s", GetFreeVehiclePlate());
            Vehicles[carid][ModelID] = GetVehicleModel(carid);
            Vehicles[carid][Color1] = 0;
            Vehicles[carid][Color2] = 0;
            GetVehiclePos(carid, Vehicles[carid][VPosX], Vehicles[carid][VPosY], Vehicles[carid][VPosZ]);
            GetVehicleZAngle(carid, Vehicles[carid][VPosAngle]);
            Vehicles[carid][FactionCar] = 0;
            format(Vehicles[carid][VOwner], 255, "None");
            format(Vehicles[carid][VPlate], 255, "%s", VehPlate);
            Vehicles[carid][VehicleWorld] = GetVehicleVirtualWorld(carid);
            Vehicles[carid][VehicleInteriorID] = GetPlayerInterior(playerid);
       
            //SavingVehiclePlayerID = playerid;
            new query[300];

            format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE `VehicleID` = %d", carid);
            mysql_function_query(connectionHandle, query, false, "SaveVehicleCallback", "dd", carid, playerid);
        }
    }
    else
    {
        TextDrawShowForPlayer(playerid, Text:CantCommand);
        SetTimerEx("RemoveCantCommand", 3500, false, "d", playerid);
    }
    return 1;
}

public SaveVehicleCallback(vehicleid, playerid)
{
    new
        rows,
        fields;

    cache_get_data(rows, fields);
    if(rows == 1)
    {
        //SendClientMessage(SavingVehiclePlayerID, WARNRED, "This Vehicle already exists");
        SendClientMessage(playerid, WARNRED, "This Vehicle already exists");
    }
    else if(rows == 0)
    {
        new query[300];

        format(query, sizeof(query), "INSERT INTO `Vehicles` (`ModelID`, `VehicleID`, `Color1`, `Color2`, `VPosX`, `VPosY`, `VPosZ`, `VPosAngle`, `FactionCar`, `VOwner`, `VPlate`, `VehicleWorld`, `VehicleInteriorID`) VALUES ");
        format(query, sizeof(query), "%s(%d, %d, %d, %d, '%f', '%f', '%f', '%f', %d, '%s', '%s', %d, %d)", query, Vehicles[vehicleid][ModelID], vehicleid, Vehicles[vehicleid][Color1], Vehicles[vehicleid][Color2], Vehicles[vehicleid][VPosX], Vehicles[vehicleid][VPosY], Vehicles[vehicleid][VPosZ], Vehicles[vehicleid][VPosAngle], Vehicles[vehicleid][FactionCar], Vehicles[vehicleid][VOwner], Vehicles[vehicleid][VPlate], Vehicles[vehicleid][VehicleWorld], Vehicles[vehicleid][VehicleInteriorID]);
        mysql_function_query(connectionHandle, query, false, "DefaultCallback", "");
       
        DestroyVehicle(vehicleid);

        new query2[400];
        format(query2, sizeof(query2), "SELECT * FROM `Vehicles` WHERE `VehicleID` = %d", vehicleid); // Selects all the information from the table
        mysql_function_query(connectionHandle, query2, true, "LoadVehiclesCallback", "d", vehicleid);
       
        SendClientMessage(playerid, GREEN, "Vehicle Saved!");
        //SendClientMessage(SavingVehiclePlayerID, GREEN, "Vehicle Saved!");
        //SavingVehiclePlayerID = -1;
    }
    else
    {
        //SendClientMessage(SavingVehiclePlayerID, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
        SendClientMessage(playerid, COLOR_WHITE, "There was a "#COL_EMB_RED"fatal error "#COL_EMB_WHITE"during registration! Please contact a developer.");
    }
    return 1;
}
Did i miss Something?
Reply
#2

Updated: Code changes, still errors
Reply
#3

mysql_function_query( connectionHandle, query[], bool:cache, callback[], format[], {Float,_}:... ) *

pawn Код:
mysql_function_query(connectionHandle, query, false, "SaveVehicleCallback", "dd", carid, playerid);
You're setting caching to false yet you use cache_get_data.
Reply
#4

Quote:
Originally Posted by zombieking
Посмотреть сообщение
mysql_function_query( connectionHandle, query[], bool:cache, callback[], format[], {Float,_}:... ) *

pawn Код:
mysql_function_query(connectionHandle, query, false, "SaveVehicleCallback", "dd", carid, playerid);
You're setting caching to false yet you use cache_get_data.
So i need to set it as true in order to make it work properly?
Reply
#5

Yes? That's obvious.
Reply
#6

Fixed thanks, REP+
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)