Problem With Loading/Saving Objects
#1

Today i created a command that saves the objects that admins can create in my server, and there is a problem where the objects will not load if i want to load them at a different time.

Код:
dcmd_loadset(playerid,params[])
{
  new Index, tmp[300];
  tmp = strtok(params,Index);
  if(IsPlayerAdminLevel(playerid,4))
	{
	if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED,"Usage: /loadset <filename>");
	new filename[50];
	format(filename,sizeof(filename),"%s.obj",tmp);
	if(!fexist(filename)) return SendClientMessage(playerid,COLOR_RED,"Object Set does not exist.");
	new File: propfile = fopen(filename, io_read);
	new Argument[7][70];
	new entry[256];
		for(new a; a< OBJD; a++)
			{
			fread(propfile, entry);
			split(entry, Argument, ',');
			ObjData[a][Model] = strval(Argument[0]);
			ObjData[a][ox] = floatstr(Argument[1]);
			ObjData[a][oy] = floatstr(Argument[2]);
			ObjData[a][oz] = floatstr(Argument[3]);
			ObjData[a][orx] = floatstr(Argument[4]);
			ObjData[a][ory] = floatstr(Argument[5]);
			ObjData[a][orz] = floatstr(Argument[6]);
			}
		fclose(propfile);
		new to;
		for(new i; i< OBJD; i++)
			{
			if(ObjData[i][Model] != 0) { CreateStreamObject(ObjData[i][Model],ObjData[i][ox],ObjData[i][oy],ObjData[i][oz],ObjData[i][orx],ObjData[i][ory],ObjData[i][orz],200,0); to++; }
			}
	new Float:x,Float:y,Float:z;
	GetPlayerPos(playerid,x,y,z);
  StreamObjects(playerid,x,y,z);
	new msg[150],name[90];
	GetPlayerName(playerid,name,sizeof(name));
	format(msg,sizeof(msg),"Admin %s has loaded '%s' (%d Objects)",name,params,to);
	SendClientMessageToAll(COLOR_YELLOW,msg);
	to = 0; // clear object entry
	}
	return 1;
}
Код:
dcmd_saveset(playerid,params[])
{
	new tmp[300], Index;
  tmp = strtok(params,Index);
	new entry[256],file[90];
	format(file,sizeof(file),"%s.obj",tmp);
	if(fexist(file)) return SendClientMessage(playerid,COLOR_RED,"Object Set already exists.");
	new File: propfile = fopen(file, io_write);
	new Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz;
	new createdo;
	for(new id; id< MAX_A_OBJECTS; id++)
	{
 		if(AdminObjData[playerid][id][Create] != 0)
 		{
  	GetStreamObjectPos(AdminObjData[playerid][id][Create],x,y,z);//Get the pos of an object
		GetStreamObjectRot(AdminObjData[playerid][id][Create],rx,ry,rz);//Get rotation of an object
  	format(entry, 128, "%d,%d,%d,%d,%d,%d,%d \r\n",AdminObjData[playerid][id][Model],x,y,z,rx,ry,rz);
		fwrite(propfile, entry);
		createdo++;
		}
	}
	fclose(propfile);
 	new str[90];
	format(str,sizeof(str),"Admin Objects saved to '%s' (Total: %d)",createdo);
	SendClientMessage(playerid,COLOR_WHITE,str);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)