Saving & Loading Problems - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Saving & Loading Problems (
/showthread.php?tid=476158)
Saving & Loading Problems -
maximthepain - 16.11.2013
Hi!
I want make system to save speed cameras which made in game with command.
When I tried making the system it didn't save the speed cameras after deploying them & doing saving command.
Look at saving progress:
Код:
enum SCams
{
Float:scX,
Float:scY,
Float:scZ,
scLimit,
scObjectID,
scDeployedBy[MAX_PLAYER_NAME],
scDeployedAt[MAX_ZONE_NAME]
};
new SpeedCams[MAX_CAMS][SCams];
Код:
stock SaveCams()
{
new idx = 1, File:file;
new string[256];
while(idx < MAX_CAMS)
{
format(string, sizeof(string), "%f|%f|%f|%s|%s|%s\r\n",
SpeedCams[idx][scX],
SpeedCams[idx][scY],
SpeedCams[idx][scZ],
SpeedCams[idx][scLimit],
SpeedCams[idx][scDeployedAt],
SpeedCams[idx][scDeployedBy]);
if(idx == 1)
{
file = fopen("speedcams.cfg", io_write);
}
else
{
file = fopen("speedcams.cfg", io_append);
}
fwrite(file, string);
fclose(file);
idx++;
}
print("SpeedCams saved successfully.");
return 1;
}
Код:
stock LoadCams()
{
new dinfo[15][128];
new string[256];
new File:file = fopen("speedcams.cfg", io_read);
if(file)
{
new idx = 1;
new Float: f_TempAngle;
while(idx < MAX_CAMS)
{
fread(file, string);
split(string, dinfo, '|');
SpeedCams[idx][scX] = floatstr(dinfo[0]);
SpeedCams[idx][scY] = floatstr(dinfo[1]);
SpeedCams[idx][scZ] = floatstr(dinfo[2]);
SpeedCams[idx][scDeployedAt] = strval(dinfo[3]);
SpeedCams[idx][scDeployedBy] = strval(dinfo[4]);
SpeedCams[idx][scLimit] = strval(dinfo[5]);
if(SpeedCams[idx][scObjectID]) // If speedcam exists
{
format(string, sizeof(string), "Speedcam ID: %d", idx);
SpeedCams[idx][scObjectID] = CreateDynamicObject(18880, SpeedCams[idx][scX], SpeedCams[idx][scY], SpeedCams[idx][scZ]-2.0, 0.0, 0.0, f_TempAngle);
//GateInfo[idx][gText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], 10);
}
idx++;
}
}
print("SpeedCams loaded successfully.");
return 1;
}
"LoadCams()" under OnGameModeInit.
Deploying Cam:
Код:
CMD:deploycam(playerid, params[])
{
if(IsACop(playerid))
{
if(PlayerInfo[playerid][pFacRank] >= 5)
{
for(new idx; idx < sizeof(SpeedCams); idx++)
{
if(SpeedCams[idx][scX] == 0)
{
new Float: f_TempAngle, string[128];
GetPlayerPos(playerid, SpeedCams[idx][scX], SpeedCams[idx][scY], SpeedCams[idx][scZ]);
GetPlayerFacingAngle(playerid, f_TempAngle);
SpeedCams[idx][scObjectID] = CreateDynamicObject(18880, SpeedCams[idx][scX], SpeedCams[idx][scY], SpeedCams[idx][scZ]-2.0, 0.0, 0.0, f_TempAngle);
GetPlayer3DZone(playerid, SpeedCams[idx][scDeployedAt], MAX_ZONE_NAME);
SpeedCams[idx][scDeployedBy] = RPN(playerid);
SpeedCams[idx][scLimit] = 65;
format(string,sizeof(string),"Speed Cam ID: %d successfully created [Speed Limit = 50].", idx);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "HQ: A speeding camera has been deployed by %s at %s.", RPN(playerid), SpeedCams[idx][scDeployedAt]);
foreach(Player, x)
{
if(IsACop(x))
{
SendClientMessage(x, TRANSPARENT_BLUE, string);
if (PlayerInfo[x][pFacRank] >= 5)
{
SendClientMessage(x, COLOR_YELLOW, "You can remove a speed camera by typing /destroycam.");
}
}
}
return 1;
}
}
SendClientMessage(playerid, COLOR_WHITE, "Unable to spawn more speedcameras, limit is 10." );
}
else
{
SendClientMessage(playerid, COLOR_ORANGE, " You must be rank 3 or higher!");
}
}
else
{
SendClientMessage(playerid, COLOR_ORANGE, " You are not a LEO!");
}
return 1;
}
Why doesn't the saving work? Please help, thanks
Re: Saving & Loading Problems -
maximthepain - 17.11.2013
*Bump
Please help!