SA-MP Forums Archive
Objects are not saving :( - 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: Objects are not saving :( (/showthread.php?tid=585755)



Objects are not saving :( - XaibBaba - 16.08.2015

Hello , there is some bug in my gate system its saving the position like X,Y,Z but not saving the Rotations like rX,rY,rZ
and after restart all rotations gone to there initial position where object created.

Код:
public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
	new string[128], idx = gEditID[playerid];
	                 idx = lEditID[playerid];
	if(response == EDIT_RESPONSE_UPDATE)
	{
	    SetDynamicObjectPos(objectid, x, y, z);
		SetDynamicObjectRot(objectid, rx, ry, rz);
	}
	else if(response == EDIT_RESPONSE_CANCEL)
	{
	    SetDynamicObjectPos(objectid, gPos[playerid][0], gPos[playerid][1], gPos[playerid][2]);
		SetDynamicObjectRot(objectid, gRot[playerid][0], gRot[playerid][1], gRot[playerid][2]);
		gPos[playerid][0] = 0; gPos[playerid][1] = 0; gPos[playerid][2] = 0;
		gRot[playerid][0] = 0; gRot[playerid][1] = 0; gRot[playerid][2] = 0;
		format(string, sizeof(string), " You have canceled editing gate ID %d.", idx);
		SendClientMessage(playerid, COLOR_WHITE, string);
	}
	else if(response == EDIT_RESPONSE_FINAL)
	{
		SetDynamicObjectPos(objectid, x, y, z);
		SetDynamicObjectRot(objectid, rx, ry, rz);
		if(gEdit[playerid] == 1)
		{
		    GateInfo[idx][gCX] = x;
			GateInfo[idx][gCY] = y;
			GateInfo[idx][gCZ] = z;
			GateInfo[idx][gCRX] = rx;
			GateInfo[idx][gCRY] = ry;
			GateInfo[idx][gCRZ] = rz;
//			if(IsValidDynamic3DTextLabel(GateInfo[idx][gText])) DestroyDynamic3DTextLabel(GateInfo[idx][gText]);
			format(string, sizeof(string), "Gate ID: %d", idx);
//			GateInfo[idx][gText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], 10);
		    gEdit[playerid] = 0;
		    gEditID[playerid] = 0;
		    format(string, sizeof(string), " You have finished editing gate ID %d's closing position.", idx);
		    SendClientMessage(playerid, COLOR_WHITE, string);
		    GateInfo[idx][gStatus] = 0;
		}
		else if(gEdit[playerid] == 2)
		{
		    GateInfo[idx][gOX] = x;
			GateInfo[idx][gOY] = y;
			GateInfo[idx][gOZ] = z;
			GateInfo[idx][gORX] = rx;
			GateInfo[idx][gORY] = ry;
			GateInfo[idx][gORZ] = rz;
			gEdit[playerid] = 0;
			gEditID[playerid] = 0;
			format(string, sizeof(string), " You have finished editing gate ID %d's opening position.", idx);
		    SendClientMessage(playerid, COLOR_WHITE, string);
		    GateInfo[idx][gStatus] = 1;
		}
                }
          return 1;
}
stock LoadGates()
{
	new dinfo[17][128];
	new string[256];
	new File:file = fopen("gates.cfg", io_read);
	if(file)
	{
	    new idx = 1;
		while(idx < MAX_GATES)
		{
		    fread(file, string);
		    splits(string, dinfo, '|');
			GateInfo[idx][gModel] = strval(dinfo[0]);
			GateInfo[idx][gCX] = floatstr(dinfo[1]);
			GateInfo[idx][gCY] = floatstr(dinfo[2]);
			GateInfo[idx][gCZ] = floatstr(dinfo[3]);
			GateInfo[idx][gCRX] = floatstr(dinfo[4]);
			GateInfo[idx][gCRY] = floatstr(dinfo[5]);
			GateInfo[idx][gCRZ] = floatstr(dinfo[6]);
			GateInfo[idx][gOX] = floatstr(dinfo[7]);
			GateInfo[idx][gOY] = floatstr(dinfo[8]);
			GateInfo[idx][gOZ] = floatstr(dinfo[9]);
			GateInfo[idx][gORX] = floatstr(dinfo[10]);
			GateInfo[idx][gORY] = floatstr(dinfo[11]);
			GateInfo[idx][gORZ] = floatstr(dinfo[12]);
			format(GateInfo[idx][gPassword], 256, "%s", dinfo[13]);
			GateInfo[idx][gSpeed] = floatstr(dinfo[14]);
			GateInfo[idx][gHID] = strval(dinfo[15]);
			GateInfo[idx][gRange] = strval(dinfo[16]);
			if(GateInfo[idx][gModel]) // If gate exists
			{
			    format(string, sizeof(string), "Gate ID: %d", idx);
				GateInfo[idx][gGate] = CreateDynamicObject(GateInfo[idx][gModel], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
//				GateInfo[idx][gText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], 10);
				GateInfo[idx][gStatus] = 0;
			}
			idx++;
	    }
	}
	return 1;
}

stock SaveGates()
{
	new idx = 1, File:file;
	new string[256];
	while(idx < MAX_GATES)
	{
	    format(string, sizeof(string), "%d|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%s|%f|%d|%d\r\n",
		GateInfo[idx][gModel],
		GateInfo[idx][gCX],
		GateInfo[idx][gCY],
		GateInfo[idx][gCZ],
		GateInfo[idx][gCRX],
		GateInfo[idx][gCRY],
		GateInfo[idx][gCRZ],
		GateInfo[idx][gOX],
		GateInfo[idx][gOY],
		GateInfo[idx][gOZ],
		GateInfo[idx][gORX],
		GateInfo[idx][gORY],
		GateInfo[idx][gORZ],
		GateInfo[idx][gPassword],
		GateInfo[idx][gSpeed],
		GateInfo[idx][gHID],
		GateInfo[idx][gRange]);
		GateInfo[idx][gStatus] = 0;
	    if(idx == 1)
	    {
	        file = fopen("gates.cfg", io_write);
	    }
	    else
	    {
	    	file = fopen("gates.cfg", io_append);
	    }
		fwrite(file, string);
		fclose(file);
		idx++;
	}
	return 1;
}



Re: Objects are not saving :( - XaibBaba - 16.08.2015

any one please help me