Maybe someone have /changename command?
#12

Well i find one bat its work very weird first of all its lets use that name if its have taken second bug its if i have created two account in me library Like Name And Name2 and i login as Name and type command /changename Test this system delete Name2 acc and create Test acc. Its so weird.
Code:
stock StripNewLine(string[])
{
	new len = strlen(string);
	if(string[0] == 0) return;
	if((string[len - 1] == '\n') || (string[len - 1] == '\r'))
	{
		string[len - 1] = 0;
		if(string[0]==0) return ;
		if((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
	}
}

stock frename(oldname[], newname[])
{
	if(!fexist(oldname)) return false;
	new string[128], File:old, File:neww;
	old = fopen(oldname, io_read);
	neww = fopen(newname, io_write);
	while(fread(old, string))
	{
		StripNewLine(string);
		format(string, sizeof(string), "%s\r\n", string);
		fwrite(neww, string);
	}
	fclose(old);
	fclose(neww);
	fremove(oldname);
	return true;
}
Code:
CMD:changename(playerid, params[])
{
    new newname[MAX_PLAYER_NAME], file1[128], file2[128];
    if(sscanf(params, "s[24]", newname)) return SendClientMessage(playerid, GREY, "Usage: /changename [New Username]");
    if(strlen(newname) < 3 || strlen(newname) > MAX_PLAYER_NAME) return SendClientMessage(playerid, GREY, "Invalid username length.");
    format(file2, sizeof(file2), "/Users/%s.ini", newname);
    if(fexist(file2)) return SendClientMessage(playerid, GREY, "The specified username is already taken.");
    format(file1, sizeof(file1), "/ZMA/Users/%s.ini", pName(playerid));
    format(file2, sizeof(file2), "/ZMA/Users/%s.ini", newname);
    frename(file1, file2);
    SetPlayerName(playerid, newname);
    format(file1, sizeof(file1), "You have changed your name to %s.", newname);
    SendClientMessage(playerid, COLOR_WHITE, file1);
    return 1;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)