if(dialogid == CHANGE_NAME)
{
if (response)
{
if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, CHANGE_NAME, DIALOG_STYLE_INPUT, "{AA3333}New Name", "Input your new name below\nName must be at least 4 lethers long!:", "Change", "Cancel");
if (dini_Exists(inputtext)) return SendClientMessage(playerid,COLOR_RED,"This User Name Is Taken!");
new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME];
format(name1, sizeof(name1), PLAYERS, PlayerName(playerid));
format(name2, sizeof(name2), PLAYERS, inputtext);
SetPlayerName(playerid,inputtext);
frename(name1, name2);
}
}
stock frename(const oldname[], const newname[])
{
if (!fexist(oldname)) return 0;
new
File: oldfile = fopen(oldname, io_read),
File: newfile = fopen(newname, io_write),
line[128];
if (!oldfile || !newfile) return 0;
while (fread(oldfile, line)) fwrite(newfile, line);
fclose(oldfile);
fclose(newfile);
fremove(oldname);
return 1;
}
format(name1, sizeof(name1), PLAYERS, PlayerName(playerid)); format(name2, sizeof(name2), PLAYERS, inputtext);
format(name1, sizeof(name1), "%s", PlayerName(playerid)); format(name2, sizeof(name2), "%s", inputtext);
??
format(name1, sizeof(name1), PLAYERS, PlayerName(playerid));
format(name2, sizeof(name2), PLAYERS, inputtext);
if (!frename(name1, name2)) return SendClientMessage(playerid, -1, "Could not be changed. Please try again later.");
SetPlayerName(playerid,inputtext);
|
In case frename returns 0, it will not create a new file, write from the old file to new and delete the old.
You can return an error if that happens: pawn Код:
|
|
if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, CHANGE_NAME, DIALOG_STYLE_INPUT, "{AA3333}New Name", "Input your new name below\nName must be at least 4 lethers long!:", "Change", "Cancel"); if (dini_Exists(inputtext)) return SendClientMessage(playerid,COLOR_RED,"This User Name Is Taken!"); new name1[MAX_PLAYER_NAME],name2[MAX_PLAYER_NAME]; format(name1, sizeof(name1), PLAYERS, PlayerName(playerid)); format(name2, sizeof(name2), PLAYERS, strval(inputtext)); SetPlayerName(playerid,strval(inputtext)); frename(name1, name2); |