20.08.2013, 21:28
Hello, how you doing? So I got this problem with vehicle health. Right now I'm working on writing server vehicles data. To do that I'm using ****** y_ini include. When a server saves vehicle data, in .ini file at scriptfiles folder it shows that vehicle (for example) has 900 health. But when I restart the server all saved vehicles explode! Why? Here's my code:
This I put under OnGameModeInit
OnVehicleCreated is from MP2 include called Vehicle Functions. Great Include!
Please, I need your help!
Код:
enum vInfo { vModel, Float:vHealth[MAX_VEHICLES], Float:vX[MAX_VEHICLES], Float:vY[MAX_VEHICLES], Float:vZ[MAX_VEHICLES], Float:vAngle[MAX_VEHICLES], }
Код:
public LoadVehicle_data(vehicleid, name[], value[]) { INI_Int("Model", VehicleInfo[vehicleid][vModel]); INI_Float("Health", VehicleInfo[vehicleid][vHealth]); INI_Float("X", VehicleInfo[vehicleid][vX]); INI_Float("Y", VehicleInfo[vehicleid][vY]); INI_Float("Z", VehicleInfo[vehicleid][vZ]); INI_Float("Angle", VehicleInfo[vehicleid][vAngle]); return 1; }
Код:
stock SaveVehicleData(vehicleid) { new vini[32]; format(vini, sizeof(vini), "Vehicles/%d.ini", vehicleid); new INI:File = INI_Open(vini); new model = GetVehicleModel(vehicleid); GetVehiclePos(vehicleid, VehicleInfo[vehicleid][vX], VehicleInfo[vehicleid][vY], VehicleInfo[vehicleid][vZ]); GetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vAngle]); GetVehicleHealth(vehicleid, VehicleInfo[vehicleid][vHealth]); INI_SetTag(File,"data"); INI_WriteInt(File,"Model", model); INI_WriteFloat(File,"Health", VehicleInfo[vehicleid][vHealth]); INI_WriteFloat(File,"X", VehicleInfo[vehicleid][vX]); INI_WriteFloat(File,"Y", VehicleInfo[vehicleid][vY]); INI_WriteFloat(File,"Z", VehicleInfo[vehicleid][vZ]); INI_WriteFloat(File, "Angle", VehicleInfo[vehicleid][vAngle]); INI_Close(File); return 1; }
Код:
stock LoadServerVehicles() { for(new v = 0; v <= MAX_VEHICLES; v++) { new vini[32]; format(vini, sizeof(vini), "Vehicles/%d.ini", v); if(fexist(vini)) { INI_ParseFile(vini, "LoadVehicle_%s", .bExtra = true, .extra = v); CreateVehicle(VehicleInfo[v][vModel], VehicleInfo[v][vX], VehicleInfo[v][vY], VehicleInfo[v][vZ], VehicleInfo[v][vAngle], VehicleInfo[v][Color1], VehicleInfo[v][Color2], -1); return 1; }else{ // Bunch of AddStaticVehiclesEx ... return 1; } } return 1; }
Код:
public OnVehicleCreated(vehicleid) { new vini[32]; format(vini, sizeof(vini), "Vehicles/%d.ini", vehicleid); if(fexist(vini)) { INI_ParseFile(vini, "LoadVehicle_%s", .bExtra = true, .extra = vehicleid); SetVehiclePos(vehicleid, VehicleInfo[vehicleid][vX], VehicleInfo[vehicleid][vY], VehicleInfo[vehicleid][vZ]); SetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vAngle]); SetVehicleHealth(vehicleid, VehicleInfo[vehicleid][vHealth]); }else{ // ... } SaveVehicleData(vehicleid); } return 1; }