fdeleteline not deleting the line? -
oSAINTo - 17.05.2017
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:
Код:
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;
}
My stock to remove the line from the file:
Код:
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;
}
Where I remove the object:
Код:
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;
}
and here:
Код:
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);
Re: fdeleteline not deleting the line? -
OneDay - 17.05.2017
Use MySQL or a INI file.
Re: fdeleteline not deleting the line? -
oSAINTo - 17.05.2017
Quote:
Originally Posted by OneDay
Use MySQL or a INI file.
|
So, if I changed the .txt file to a .ini file, it should work? Why does that make a difference? ((I would've been using MySQL if I knew it.))
Re: fdeleteline not deleting the line? -
oSAINTo - 18.05.2017
bump.
Re: fdeleteline not deleting the line? -
oSAINTo - 18.05.2017
bump.