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); |