17.05.2017, 01:29
So, I finally figured out how to delete furniture for my furniture system, but when I use fdeleteline it doesn't delete the line when it removes the object?
fdeleteline:
My stock to remove the line from the file:
Where I remove the object:
and here:
fdeleteline:
Код:
fdeleteline(filename[], line[]){ if(fexist(filename)){ new temp[256]; new File:fhandle = fopen(filename,io_read); fread(fhandle,temp,sizeof(temp),false); if(strfind(temp,line,true)==-1){return 0;} else{ fclose(fhandle); fremove(filename); for(new i=0;i<strlen(temp);i++){ new templine[256]; strmid(templine,temp,i,i+strlen(line)); if(equal(templine,line,true)){ strdel(temp,i,i+strlen(line)); fcreate(filename); fhandle = fopen(filename,io_write); fwrite(fhandle,temp); fclose(fhandle); return 1; } } } } return 0; }
Код:
stock RemoveObjectFromFile(DFileName[], Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT) { new File:ObjectFile, Line[128]; format(Line, sizeof(Line), "%f %f %f %f %f %f %i %i %i\r\n", OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT, oModel); ObjectFile = fopen(DFileName, io_append); fdeleteline("DObjects.txt", Line); fclose(ObjectFile); return 1; }
Код:
if(response == EDIT_RESPONSE_FINAL) { new string[254]; OVW = GetPlayerVirtualWorld(playerid); OINT = GetPlayerInterior(playerid); GetDynamicObjectPos(objectid, OX, OY, OZ); GetDynamicObjectRot(objectid, ORX, ORY, ORZ); RemoveObjectFromFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT); CreateDynamicObject(oModel, Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT); AddObjectToFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT); SendClientMessage(playerid, COLOR_LIGHTRED, "Object placed."); format(string, sizeof(string), "Object model %i spawned at %f, %f, %f, with rotation %f, %f, %f,", oModel, OX, OY, OZ, ORX, ORY, ORZ); SendClientMessage(playerid, 0xD8D8D8FF, string); format(string, sizeof(string), "Object world %i interior id %i", OVW, OINT); SendClientMessage(playerid, 0xD8D8D8FF, string); DestroyDynamicObject(Object); Streamer_Update(playerid, 0); EditingFurn[playerid] = 0; }
Код:
new string[254]; OVW = GetPlayerVirtualWorld(playerid); OINT = GetPlayerInterior(playerid); GetDynamicObjectPos(objectid, OX, OY, OZ); GetDynamicObjectRot(objectid, ORX, ORY, ORZ); DestroyDynamicObject(objectid); DestroyObject(objectid); RemoveObjectFromFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT); DeletingFurn[playerid] = 0; CancelEdit(playerid); Streamer_Update(playerid, 0);