CMD:carpark(playerid, params[]) { new v = GetPlayerVehicleID(playerid), Float: X, Float: Y, Float: Z, Float: A; GetPlayerPos(playerid, X, Y, Z), GetPlayerFacingAngle(playerid, A); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You need to be in a car in order to do this command!"); if(pInfo[playerid][VehicleOwner] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own a vehicle!"); if(GetPlayerVehicleID(playerid) == v) { if(pInfo[playerid][VehicleOwner] == v) { vInfo[v][posX] = X; vInfo[v][posY] = Y; vInfo[v][posZ] = Z; vInfo[v][posA] = A; SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You've parked your vehicle!"); SaveVehicles(); } else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own this car!"); } else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} This isn't your vehicle!"); return 1; }
stock SaveVehicles() { new file[64]; for(new v = 0; v < MAX_CARS; v ++) { format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { new INI:File = INI_Open(file); INI_SetTag(File, "Vehicle Data"); INI_WriteInt(File, "ModelID", vInfo[v][ModelID]); INI_WriteString(File, "Owner", vInfo[v][Owner]); INI_WriteString(File, "NrPlate", vInfo[v][NrPlate]); INI_WriteFloat(File, "posX", vInfo[v][posX]); INI_WriteFloat(File, "posY", vInfo[v][posY]); INI_WriteFloat(File, "posZ", vInfo[v][posZ]); INI_WriteFloat(File, "posA", vInfo[v][posA]); INI_WriteInt(File, "ColorA", vInfo[v][ColorA]); INI_WriteInt(File, "ColorB", vInfo[v][ColorB]); INI_WriteInt(File, "Locked", vInfo[v][Locked]); INI_WriteInt(File, "Faction", vInfo[v][Faction]); INI_Close(File); } } return 1; }
stock LoadVehicles() { new file[64], s[64], count; print("\n Loading vehicles: \n"); for(new v = 0; v < MAX_CARS; v ++) { format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { INI_ParseFile(VehiclePath(v), "LoadVehicleData", false, true, v, true, false ); CreateVehicle(vInfo[v][ModelID], vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ], vInfo[v][posA], vInfo[v][ColorA], vInfo[v][ColorB], -1); SetVehicleNumberPlate(v, vInfo[v][NrPlate]); SetVehicleParamsForPlayer(v, v, 0, 1); SetVehicleToRespawn(v); // numberplate format(s, 64, "[VEHICLE] Loaded Vehicle ID: %d at %f %f %f", v, vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]); printf(s); count++; } } printf("\n %d vehicles loaded!", count); return 1; } forward LoadVehicleData(v, name[], value[]); public LoadVehicleData(v, name[], value[]) { INI_String("Owner", vInfo[v][Owner], 31); INI_Int("ModelID", vInfo[v][ModelID]); INI_String("NrPlate", vInfo[v][NrPlate], 8); INI_Float("posX", vInfo[v][posX]); INI_Float("posY", vInfo[v][posY]); INI_Float("posZ", vInfo[v][posZ]); INI_Float("posA", vInfo[v][posA]); INI_Int("ColorA", vInfo[v][ColorA]); INI_Int("ColorB", vInfo[v][ColorB]); INI_Int("Locked", vInfo[v][Locked]); INI_Int("Faction", vInfo[v][Faction]); return 1; }
stock CreatePlayerVehicle(playerid, model) { new pname[30], file[64], playercar, v; GetPlayerName(playerid, pname, sizeof(pname)); playercar = CreateVehicle(model, 170.8668, -16.1531, 1.5781, 220.7102, random(5), random(5), -1); PutPlayerInVehicle(playerid, playercar, 0); new INI:File = INI_Open(VehiclePath(v)); vInfo[v][ModelID] = model; vInfo[v][NrPlate] = "DT-0000-RP"; vInfo[v][Owner] = pname; vInfo[v][posX] = 170.8668; vInfo[v][posY] = -16.1531; vInfo[v][posZ] = 1.5781; vInfo[v][posA] = 220.7102; vInfo[v][ColorA] = random(50); vInfo[v][ColorB] = random(50); vInfo[v][Locked] = 1; INI_Close(File); format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { INI_ParseFile(VehiclePath(v), "LoadVehicleData", false, true, v, true, false ); } SaveVehicles(); pInfo[playerid][VehicleOwner] = playercar; vEngine[playercar] = 1; return 1; }
Basically my car wont save its location when /carpark
car park code: Код:
CMD:carpark(playerid, params[]) { new v = GetPlayerVehicleID(playerid), Float: X, Float: Y, Float: Z, Float: A; GetPlayerPos(playerid, X, Y, Z), GetPlayerFacingAngle(playerid, A); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You need to be in a car in order to do this command!"); if(pInfo[playerid][VehicleOwner] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own a vehicle!"); if(GetPlayerVehicleID(playerid) == v) { if(pInfo[playerid][VehicleOwner] == v) { vInfo[v][posX] = X; vInfo[v][posY] = Y; vInfo[v][posZ] = Z; vInfo[v][posA] = A; SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You've parked your vehicle!"); SaveVehicles(); } else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own this car!"); } else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} This isn't your vehicle!"); return 1; } Код:
stock SaveVehicles() { new file[64]; for(new v = 0; v < MAX_CARS; v ++) { format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { new INI:File = INI_Open(file); INI_SetTag(File, "Vehicle Data"); INI_WriteInt(File, "ModelID", vInfo[v][ModelID]); INI_WriteString(File, "Owner", vInfo[v][Owner]); INI_WriteString(File, "NrPlate", vInfo[v][NrPlate]); INI_WriteFloat(File, "posX", vInfo[v][posX]); INI_WriteFloat(File, "posY", vInfo[v][posY]); INI_WriteFloat(File, "posZ", vInfo[v][posZ]); INI_WriteFloat(File, "posA", vInfo[v][posA]); INI_WriteInt(File, "ColorA", vInfo[v][ColorA]); INI_WriteInt(File, "ColorB", vInfo[v][ColorB]); INI_WriteInt(File, "Locked", vInfo[v][Locked]); INI_WriteInt(File, "Faction", vInfo[v][Faction]); INI_Close(File); } } return 1; } Код:
stock LoadVehicles() { new file[64], s[64], count; print("\n Loading vehicles: \n"); for(new v = 0; v < MAX_CARS; v ++) { format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { INI_ParseFile(VehiclePath(v), "LoadVehicleData", false, true, v, true, false ); CreateVehicle(vInfo[v][ModelID], vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ], vInfo[v][posA], vInfo[v][ColorA], vInfo[v][ColorB], -1); SetVehicleNumberPlate(v, vInfo[v][NrPlate]); SetVehicleParamsForPlayer(v, v, 0, 1); SetVehicleToRespawn(v); // numberplate format(s, 64, "[VEHICLE] Loaded Vehicle ID: %d at %f %f %f", v, vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]); printf(s); count++; } } printf("\n %d vehicles loaded!", count); return 1; } forward LoadVehicleData(v, name[], value[]); public LoadVehicleData(v, name[], value[]) { INI_String("Owner", vInfo[v][Owner], 31); INI_Int("ModelID", vInfo[v][ModelID]); INI_String("NrPlate", vInfo[v][NrPlate], 8); INI_Float("posX", vInfo[v][posX]); INI_Float("posY", vInfo[v][posY]); INI_Float("posZ", vInfo[v][posZ]); INI_Float("posA", vInfo[v][posA]); INI_Int("ColorA", vInfo[v][ColorA]); INI_Int("ColorB", vInfo[v][ColorB]); INI_Int("Locked", vInfo[v][Locked]); INI_Int("Faction", vInfo[v][Faction]); return 1; } Код:
stock CreatePlayerVehicle(playerid, model) { new pname[30], file[64], playercar, v; GetPlayerName(playerid, pname, sizeof(pname)); playercar = CreateVehicle(model, 170.8668, -16.1531, 1.5781, 220.7102, random(5), random(5), -1); PutPlayerInVehicle(playerid, playercar, 0); new INI:File = INI_Open(VehiclePath(v)); vInfo[v][ModelID] = model; vInfo[v][NrPlate] = "DT-0000-RP"; vInfo[v][Owner] = pname; vInfo[v][posX] = 170.8668; vInfo[v][posY] = -16.1531; vInfo[v][posZ] = 1.5781; vInfo[v][posA] = 220.7102; vInfo[v][ColorA] = random(50); vInfo[v][ColorB] = random(50); vInfo[v][Locked] = 1; INI_Close(File); format(file, 64, "Vehicles/%d.ini", v); if(fexist(file)) { INI_ParseFile(VehiclePath(v), "LoadVehicleData", false, true, v, true, false ); } SaveVehicles(); pInfo[playerid][VehicleOwner] = playercar; vEngine[playercar] = 1; return 1; } |
When you save it... Does the Vehicles folder include any files ?
If yes, Show the content of the file to ensure the data is saved properly.. |
stock SaveVehicles()
{
new file[64];
for(new v = 0; v < MAX_CARS; v ++)
{
format(file, 64, "Vehicles/%d.ini", v);
if(fexist(file))
{
new INI:File = INI_Open(file);
INI_SetTag(File, "Vehicle Data");
INI_WriteInt(File, "ModelID", vInfo[v][ModelID]);
INI_WriteString(File, "Owner", vInfo[v][Owner]);
INI_WriteString(File, "NrPlate", vInfo[v][NrPlate]);
printf("%f | %f | %f", vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]);
INI_WriteFloat(File, "posX", vInfo[v][posX]);
INI_WriteFloat(File, "posY", vInfo[v][posY]);
INI_WriteFloat(File, "posZ", vInfo[v][posZ]);
INI_WriteFloat(File, "posA", vInfo[v][posA]);
INI_WriteInt(File, "ColorA", vInfo[v][ColorA]);
INI_WriteInt(File, "ColorB", vInfo[v][ColorB]);
INI_WriteInt(File, "Locked", vInfo[v][Locked]);
INI_WriteInt(File, "Faction", vInfo[v][Faction]);
INI_Close(File);
}
}
return 1;
}
Change the save code to:
pawn Код:
|
CMD:carpark(playerid, params[])
{
new v = GetPlayerVehicleID(playerid), Float: X, Float: Y, Float: Z, Float: A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
printf("%f | %f | %f | %f", X, Y, Z, A);
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You need to be in a car in order to do this command!");
if(pInfo[playerid][VehicleOwner] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own a vehicle!");
if(GetPlayerVehicleID(playerid) == v)
{
if(pInfo[playerid][VehicleOwner] == v)
{
vInfo[v][posX] = X;
vInfo[v][posY] = Y;
vInfo[v][posZ] = Z;
vInfo[v][posA] = A;
print("**** %f | %f | %f ****", vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]);
SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You've parked your vehicle!");
SaveVehicles();
}
else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} You don't own this car!");
}
else SendClientMessage(playerid, COLOR_LIGHTRED, "SERVER:{FFFFFF} This isn't your vehicle!");
return 1;
}
Change the command code to:
pawn Код:
|
C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 3 Warnings.
Код:
C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition C:\Users\Nathan\Desktop\Downtown Roleplay\gamemodes\core.pwn(2868) : warning 202: number of arguments does not match definition Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 3 Warnings. |
print("**** %f | %f | %f ****", vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]); |
printf("**** %f | %f | %f ****", vInfo[v][posX], vInfo[v][posY], vInfo[v][posZ]); |