SA-MP Forums Archive
Please help, Small Saving problem. - 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)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Please help, Small Saving problem. (/showthread.php?tid=251675)



Please help, Small Saving problem. - Swiftz - 28.04.2011

I have this saving co-ordinates script here, But even though i have folder called "attached", I get "Error saving" , I edited this to save automatically to a file with the same name of the player. I hope you can solve it. Thanks in advance

Код:
CMD:index(playerid,params[])
{
    if(!IsPlayerInRangeOfPoint(playerid,25.0,207.5627,-103.7291,1005.2578) || IsPlayerInRangeOfPoint(playerid,25.0,203.9068,-41.0728,1001.8047) || IsPlayerInRangeOfPoint(playerid,30.0,214.4470,-7.6471,1001.2109) || IsPlayerInRangeOfPoint(playerid,50.0,161.3765,-83.8416,1001.8047))
    {
	        SendClientMessage(playerid,COLOR,"You are not at any Clothing store");
			return 1;
    }
	if(isnull(params))
	{
	    SendClientMessage(playerid,COLOR,"{FFFFFF}/index [1-5] {AFAFAF}                - switch to exiting the object on that index");
	    SendClientMessage(playerid,COLOR,"{FFFFFF}/index [1-5] 0{AFAFAF}               - clear the object on that index");
	    SendClientMessage(playerid,COLOR,"{FFFFFF}/index [1-5] [model#] [bone]{AFAFAF} - add / change object on that index");
	    return 1;
	}
	new iindex,tmp[12],imodel,ibone;
	new string[128];
	if(sscanf(params,"iS()[12]I(2)",iindex,tmp,ibone))
	{
	    SendClientMessage(playerid,COLOR,"USAGE: /index [index 1-5] [model# / 0-clear ] [bone 1-18]");
	    return 1;
	}
	if(iindex < 1 || iindex > 5)
	{
	    SendClientMessage(playerid,COLOR,"USAGE: /index [index 1-5] [model# / 0-clear ] [bone 1-18]");
	    return 1;
	}
	if(!strlen(tmp))
	{
	    if(stats[playerid][iindex][model] == 0)
	    {
			format(string,sizeof(string),"There is no model attached to index %d",iindex);
			SendClientMessage(playerid,COLOR,string);
			return 1;
		}
		format(string,sizeof(string),"now editing index %d",iindex);
		SendClientMessage(playerid,COLOR,string);
		pindex[playerid] = iindex;
		DisplayIndex(playerid, iindex);
		return 1;
	}
	imodel = strval(tmp);
	if(imodel <= 0)
	{
	    RemovePlayerAttachedObject(playerid,(iindex - 1));
	    stats[playerid][iindex][model] = 0;
	    stats[playerid][iindex][bone] = 0;

	    format(string,sizeof(string),"Attach index %d cleared",iindex);
	    RemovePlayerAttachedObject(playerid,(iindex - 1));
	    ResetArray(playerid,iindex);
		SendClientMessage(playerid,COLOR,string);
		return 1;
	}
	if(ibone < 1 || ibone > 18)
	{
	    SendClientMessage(playerid,COLOR,"Invalid bone selected 1 - 18");
	    return 1;
	}
	pindex[playerid] = (iindex);
	ResetArray(playerid,iindex);
	DisplayIndex(playerid,iindex);
	stats[playerid][iindex][model] = imodel;
	stats[playerid][iindex][bone] = ibone;
	SetPlayerAttachedObject(playerid,(pindex[playerid]-1),
		stats[playerid][pindex[playerid]][model],
		stats[playerid][pindex[playerid]][bone],
		stats[playerid][pindex[playerid]][ox],
		stats[playerid][pindex[playerid]][oy],
		stats[playerid][pindex[playerid]][oz],
		stats[playerid][pindex[playerid]][rx],
		stats[playerid][pindex[playerid]][ry],
		stats[playerid][pindex[playerid]][rz],
		stats[playerid][pindex[playerid]][sx],
		stats[playerid][pindex[playerid]][sy],
		stats[playerid][pindex[playerid]][sz]
	);
	format(string,sizeof(string),"Attached object# %d to bone %d index %d",imodel,ibone,iindex);
	SendClientMessage(playerid,COLOR,string);
	return 1;
}



Re: Please help, Small Saving problem. - Anteino - 28.04.2011

I think you posted the wrong script, or where is the saving-to-file part?


Re: Please help, Small Saving problem. - Swiftz - 28.04.2011

ROFL, i posted the wrong script, Sorry my bad , idk why it happened any this is the right one:-


Код:
CMD:asave(playerid,params[])
{
	new ref[6],string[128];
	new code = 0;
	for(new i = 1; i <= 5;i++)
	{
	    if(stats[playerid][i][model] > 0 && stats[playerid][i][bone] > 0)
	    {
	        code++;
	        ref[i] = 1;
		}
	}
	if(!code)
	{
	    SendClientMessage(playerid,COLOR,"You don't have any attachments added ( /editor )");
	    return 1;
	}
    new name[MAX_PLAYER_NAME];
    name[playerid] = GetPlayerName(playerid, name, sizeof(name));
	format(string,sizeof(string),"%s%s.ini",SAVE_PATH,name);
	new File:oFile = fopen(string, io_write);
	if(oFile)
	{
		for(new i = 1; i <= 5; i++)
		{
		    if(stats[playerid][i][model] > 0 && stats[playerid][i][bone] > 0)
		    {
				format(string,sizeof(string),"%d,%d,%d,%.2f,%.2f,%.2f,%.1f,%.1f,%.1f,%.2f,%.2f,%.2f\n",
					(i -1),
					stats[playerid][i][model],
					stats[playerid][i][bone],
					stats[playerid][i][ox],
					stats[playerid][i][oy],
					stats[playerid][i][oz],
					stats[playerid][i][rx],
					stats[playerid][i][ry],
					stats[playerid][i][rz],
					stats[playerid][i][sx],
					stats[playerid][i][sy],
					stats[playerid][i][sz]
				);
				fwrite(oFile,string);
			}
		}
		fclose(oFile);
		format(string,sizeof(string),"%s%s.ini saved successfully",SAVE_PATH,GetPlayerName(playerid, name, sizeof(name)));
		SendClientMessage(playerid,COLOR,string);
		return 1;
	}
	SendClientMessage(playerid,COLOR,"ERROR: creating file");
	return 1;
}



Re: Please help, Small Saving problem. - Anteino - 28.04.2011

The only thing I can think of is that you might have placed the map "attached" in ../filterscripts/ and not in ../scriptfiles/ did you?

Show me how you defined SAVE_PATH


Re : Please help, Small Saving problem. - Swiftz - 28.04.2011

Nope , I did place it in scriptfiles


Re: Please help, Small Saving problem. - Anteino - 28.04.2011

Well I don't know exactly know what
pawn Код:
if(oFile)
    {
does but I read on the wiki page it can have several values, not just 0 or 1, but the filehandling. I think that is an integer, but I'm not sure so try
pawn Код:
if(oFile > 0)
    {
Another thing,
pawn Код:
fclose(oFile);
is a bit nasty located. It only closes the file if the statement above is true, so if that isn't true the file will be opened but not closed. If you execute the command again the script will want to open a file which is allready opened. This means oFile must allways be true for the server not to crash. So reposition that file closing


Re: Please help, Small Saving problem. - MadeMan - 28.04.2011

pawn Код:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string,sizeof(string),"%s%s.ini",SAVE_PATH,name);