Objects are not saving :(
#1

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;
}
Reply
#2

any one please help me
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)