/changename command
#1

pawn Код:
dcmd_changename(playerid, params[])
{
    new name[MAX_PLAYER_NAME], newname[16];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"s", newname)) return SendClientMessage(playerid, 0xF60000AA, "USAGE: /changename [new name]");
    if(dini_Exists(newname)) return SendClientMessage(playerid, COLOUR_RED, "That name has already been taken!");
    if(strlen(params) >= 3)
    {
        format(file, sizeof(file), "users/%s.txt", name);
        dini_Set(file, "%s.txt", newname);
        SendClientMessage(playerid, COLOUR_GREEN, "Your name has been successfully been changed");
    }
    else
    {
        SendClientMessage(playerid, COLOUR_YELLOW, "That name is too short, pick something else!");
    }
    return 1;
}
The problem is that the name won't save. The name gets changed when I use it(obviously), but when I log on, the name is still what it used to be before.

Any suggestions?
Reply
#2

Don't mean to bump, but I "updated" it a little and tried to do my best, but it still won't work!

pawn Код:
dcmd_changename(playerid, params[])
{
    new name[MAX_PLAYER_NAME], newname[16];
    GetPlayerName(playerid, name, sizeof(name));
    if(sscanf(params,"s", newname)) return SendClientMessage(playerid, 0xF60000AA, "USAGE: /changename [new name]");
    if(dini_Exists(newname)) return SendClientMessage(playerid, COLOUR_RED, "That name has already been taken!");
    if(strlen(params) >= 3)
    {
        format(file, sizeof(file), "users/%s.txt", name);
        dini_Set(file, "users/%s.txt", newname);
        SendClientMessage(playerid, COLOUR_GREEN, "Your name has been successfully been changed");
        SetPlayerName(playerid, newname);
    }
    else
    {
        SendClientMessage(playerid, COLOUR_YELLOW, "That name is too short, pick something else!");
    }
    return 1;
}
Reply
#3

Can I see what you have under "OnPlayerDisconnect", and depending on how large your script is this might be a sign that you need to ditch the outdated saving method(dini)
Reply
#4

Try use this:
Код:
if(strcmp(cmd, "/changename", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		new tmpp[256];
		tmpp = strtok(cmdtext, idx);
		if(!strlen(tmpp))
		{
			SendClientMessage(playerid, COLOR_DBLUE, "Correct SYNTAX: /changename [playerid] [new nick]");
			return 1;
		}
		giveplayerid = strval(tmpp);
		tmp = strtok(cmdtext, idx);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(IsPlayerConnected(playerid))
		{
		    if(PlayerInfo[playerid][pAdmin] >= 1337)
		    {
		        if(IsPlayerConnected(giveplayerid))
		        {
					SetPlayerName(giveplayerid, tmp);
					format(string, sizeof(string), "AdmCMD: %s(%i) vam je promjenio ime u %s", sendername, playerid, tmp);
					SendClientMessage(giveplayerid, COLOR_WHITE, string);
					format(string, sizeof(string), "("COL_RED"C.Life{FFFFFF}!) You have changed ID %i's name to %s", giveplayerid, tmp);
					SendClientMessage(playerid, COLOR_WHITE, string);
					format(string, 256, "("COL_RED"C.Life{FFFFFF}!) "COL_RED"%s {FFFFFF}je promjenuo ime "COL_RED"%s{FFFFFF}-a u "COL_RED"%s.", sendername,giveplayer, tmp);
					ABroadCast(WHITE,string,1);
				}
				else
				{
				    format(string, sizeof(string), "%d nije aktivan igrac.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "Nemate dozovolu za koristenje te komande!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "Morate se prijaviti da biste koristili tu komandu!");
		}
	  	return 1;
	}
Reply
#5

pawn Код:
dini_IntSet(file,"money", GetPlayerMoney(playerid));
    dini_IntSet(file,"adminlevel", pi[playerid][admin]);
    dini_IntSet(file,"score", GetPlayerScore(playerid));
    dini_IntSet(file,"AdminTeam", AdminTeam[playerid]);

Rest of the stuff isn't related to dini.

EDIT:


Quote:
Originally Posted by rpx
Посмотреть сообщение
Try use this:
Код:
if(strcmp(cmd, "/changename", true) == 0)
	{
	    GetPlayerName(playerid, sendername, sizeof(sendername));
		new tmpp[256];
		tmpp = strtok(cmdtext, idx);
		if(!strlen(tmpp))
		{
			SendClientMessage(playerid, COLOR_DBLUE, "Correct SYNTAX: /changename [playerid] [new nick]");
			return 1;
		}
		giveplayerid = strval(tmpp);
		tmp = strtok(cmdtext, idx);
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		if(IsPlayerConnected(playerid))
		{
		    if(PlayerInfo[playerid][pAdmin] >= 1337)
		    {
		        if(IsPlayerConnected(giveplayerid))
		        {
					SetPlayerName(giveplayerid, tmp);
					format(string, sizeof(string), "AdmCMD: %s(%i) vam je promjenio ime u %s", sendername, playerid, tmp);
					SendClientMessage(giveplayerid, COLOR_WHITE, string);
					format(string, sizeof(string), "("COL_RED"C.Life{FFFFFF}!) You have changed ID %i's name to %s", giveplayerid, tmp);
					SendClientMessage(playerid, COLOR_WHITE, string);
					format(string, 256, "("COL_RED"C.Life{FFFFFF}!) "COL_RED"%s {FFFFFF}je promjenuo ime "COL_RED"%s{FFFFFF}-a u "COL_RED"%s.", sendername,giveplayer, tmp);
					ABroadCast(WHITE,string,1);
				}
				else
				{
				    format(string, sizeof(string), "%d nije aktivan igrac.", giveplayerid);
					SendClientMessage(playerid, COLOR_RED, string);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "Nemate dozovolu za koristenje te komande!");
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "Morate se prijaviti da biste koristili tu komandu!");
		}
	  	return 1;
	}
Thank you really much for trying, but giving me a big script in a incredibly weird language won't help me. I want to LEARN this, not have it given to me.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)