Help with open carslot problem. -
thimo - 02.02.2014
Okay so i am experiencing some problems with loading of house vehicles. I had this:
pawn Код:
new vid, CarSlot, pName[MAX_PLAYER_NAME];//, string2[128];
GetPlayerName(playerid, pName, sizeof(pName));
CarSlot = House_GetFreeCarSlot(HouseID);
printf("House_AddVehicle::CarSlot = %d", CarSlot);
if (CarSlot != 0)
{
vid = Vehicle_Create(cModel, cx, cy, cz, crot, Col2, Col1, 600);
printf("House_AddVehicle::vid= %d", vid);
AHouseData[HouseID][VehicleIDs][CarSlot] = vid;
printf("House_AddVehicle::AHouseData[%d][VehicleIDs][%d]= %d", HouseID, CarSlot, AHouseData[HouseID][VehicleIDs][CarSlot]);
AVehicleData[vid][CarModel] = cModel;
AVehicleData[AHouseData[HouseID][VehicleIDs][CarSlot]][SaveID] = CarID;
// Save the spawn-data of the vehicle
AVehicleData[vid][SpawnX] = cx;
AVehicleData[vid][SpawnY] = cy;
AVehicleData[vid][SpawnZ] = cz;
AVehicleData[vid][SpawnRot] = crot;
AVehicleData[vid][Color1] = Col1;
AVehicleData[vid][Color2] = Col2;
// Apply the given parameters to the vehicle
AVehicleData[vid][FuelData] = MaxFuel;
AVehicleData[vid][Owned] = true;
ChangeVehicleColor(vid, AVehicleData[vid][Color1], AVehicleData[vid][Color2]);
format(AVehicleData[vid][Owner], 24, pName);
AVehicleData[vid][BelongsToHouse] = HouseID;
print("Vehicle loaded");
}
else
{
print ("No free carslot");// No free carslot was found, return 0
return 0;
}
// Exit the function and return the vehicle-id
return vid;
}
But that always says there is no free car slot for some reason. Anyone knows why?
Re: Help with open carslot problem. -
Konstantinos - 02.02.2014
The problem will be in House_GetFreeCarSlot function then since it will return 0.
Re: Help with open carslot problem. -
thimo - 02.02.2014
Okay this is the function:
pawn Код:
House_GetFreeCarSlot(HouseID)
{
new MaxCarSlots = House_GetMaxCarSlots(HouseID);
printf( "House_GetFreeCarSlot::MaxCarSlots = %d", MaxCarSlots );
for (new CarSlot; CarSlot < MaxCarSlots; CarSlot++)
{
printf( "House_GetFreeCarSlot::if(AHouseData[%d][VehicleIDs][%d] == 0 | Result: %d)", HouseID, CarSlot, AHouseData[HouseID][VehicleIDs][CarSlot] );
if (AHouseData[HouseID][VehicleIDs][CarSlot] == 0)
{
print( "House_GetFreeCarSlot::CarSlot is 0" );
return CarSlot;
}
}
return -1;
}
And the console gives out this when loading which i find kind of weird:
Код:
[12:21:25] There are rows - Vehicles
[12:21:25] ccol1: 0, ccol2: 1
[12:21:25] 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
[12:21:25] House_AddVehicle(3,480,-1986.920043,270.180999,35.010898,265.811004,0,1, 3);
[12:21:25] House_GetFreeCarSlot::MaxCarSlots = 10
[12:21:25] House_GetFreeCarSlot::if(AHouseData[3][VehicleIDs][0] == 0 | Result: 0)
[12:21:25] House_GetFreeCarSlot::CarSlot is 0
[12:21:25] House_AddVehicle::CarSlot = 0
[12:21:25] No free carslot
[12:21:25] Car loaded
[12:21:25] OnPlayerHousesVehiclesLoad::houseid_ = 4
[12:21:25] There are rows - Vehicles
[12:21:25] ccol1: 0, ccol2: 1
[12:21:25] 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
[12:21:25] House_AddVehicle(4,480,-1986.920043,270.180999,35.010898,265.811004,0,1, 3);
[12:21:25] House_GetFreeCarSlot::MaxCarSlots = 10
[12:21:25] House_GetFreeCarSlot::if(AHouseData[4][VehicleIDs][0] == 0 | Result: 0)
[12:21:25] House_GetFreeCarSlot::CarSlot is 0
[12:21:25] House_AddVehicle::CarSlot = 0
[12:21:25] No free carslot
[12:21:25] Car loaded
Re: Help with open carslot problem. -
Konstantinos - 02.02.2014
I found the problem. The function is fine and it returns 0 which is a valid free slot. The mistake is in this line:
and it should be:
because if it's not -1, then there aren't free slots.
Re: Help with open carslot problem. -
thimo - 02.02.2014
Thank you!