16.03.2014, 00:06
I was creating a dynamic vehicle system but it seems to only save ID 0 no matter how many times you create vehicles ingame(will overwrite it). Also, it never loads the vehicles either.
OnGameModeInit:
LoadVehicles callback:
Also the SaveVehicles Callback
This is the loading of the vehicles:
EDIT: I've fixed the overwriting. However, they still don't load.
OnGameModeInit:
pawn Код:
for(new i = 0; i < MAX_DVEHICLES; i++)
{
if(!fexist(VehPath(i))) continue;
LoadVehicles(i);
VehCount++;
}
pawn Код:
forward LoadVehicles_Vehicle(vehid,name[],value[]);
public LoadVehicles_Vehicle(vehid,name[],value[])
{
INI_Int("vModel", VehInfo[vehid][vModel]);
INI_Float("vX", VehInfo[vehid][vX]);
INI_Float("vY", VehInfo[vehid][vY]);
INI_Float("vZ", VehInfo[vehid][vZ]);
INI_Float("vA", VehInfo[vehid][vA]);
INI_Int("vJob", VehInfo[vehid][vJob]);
INI_Int("vFaction", VehInfo[vehid][vFaction]);
INI_Int("Color1", VehInfo[vehid][vC1]);
INI_Int("Color2", VehInfo[vehid][vC2]);
INI_Int("vWeed", VehInfo[vehid][vWeed]);
INI_Int("vMoney", VehInfo[vehid][vMoney]);
return 1;
}
pawn Код:
SaveVehicles(vehid)
{
new INI:File = INI_Open(VehPath(vehid));
INI_SetTag(File,"Vehicles");
INI_WriteInt(File, "vModel", VehInfo[vehid][vModel]);
INI_WriteFloat(File, "vX", VehInfo[vehid][vX]);
INI_WriteFloat(File, "vY", VehInfo[vehid][vY]);
INI_WriteFloat(File, "vZ", VehInfo[vehid][vZ]);
INI_WriteFloat(File, "vA", VehInfo[vehid][vA]);
INI_WriteInt(File, "vJob", VehInfo[vehid][vJob]);
INI_WriteInt(File, "vFaction", VehInfo[vehid][vFaction]);
INI_WriteInt(File, "Color1", VehInfo[vehid][vC1]);
INI_WriteInt(File, "Color2", VehInfo[vehid][vC2]);
INI_WriteInt(File, "vWeed", VehInfo[vehid][vWeed]);
INI_WriteInt(File, "vMoney", VehInfo[vehid][vMoney]);
INI_Close(File);
return 1;
}
pawn Код:
LoadVehicles(veh)
{
INI_ParseFile(VehPath(veh), "LoadVehicles_%s", .bExtra = true, .extra = veh);
for(new i = 0; i < MAX_VEHICLES; i++)
{
CreateVehicle(VehInfo[i][vModel],VehInfo[i][vX],VehInfo[i][vX],VehInfo[i][vZ],VehInfo[i][vZ],VehInfo[i][vC1],VehInfo[i][vC2], 99999);
}
return 1;
}