SA-MP Forums Archive
DCMD Changename problem - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: DCMD Changename problem (/showthread.php?tid=244010)



DCMD Changename problem - Ihsan-Cingisiz - 25.03.2011

Hello,

I made this changename command for administrators
to use to change the name of the players. But i've got
a problem now. When I do /changename [playerid] [name],
nothing happens. Here is the script, I don't get error though:

Код:
dcmd_changename(playerid, params[])
{
	if(PlayerInfo[playerid][pAdminLevel] >= 1)
	{
	    if(params[0] == 0 || params[1] == 0)
	    {
	        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /changename [playerid] [name] | Ex. John_Saint");
	        return 1;
		}
		
		if(params[0] != INVALID_PLAYER_ID)
		{
			new oldname[MAX_PLAYER_NAME], newname[MAX_PLAYER_NAME], aname[MAX_PLAYER_NAME], arank[128], string[256];
			GetPlayerName(playerid, aname, sizeof(aname));
			GetPlayerName(params[0], oldname, sizeof(oldname));
			SetPlayerName(params[0], params[1]);
			GetPlayerName(params[0], newname, sizeof(newname));
			
			if(PlayerInfo[playerid][pAdminLevel] == 1)
			{
			    arank = "Moderator";
			}
			if(PlayerInfo[playerid][pAdminLevel] == 2)
			{
			    arank = "Admin";
			}
			if(PlayerInfo[playerid][pAdminLevel] == 3)
			{
			    arank = "Lead Admin";
			}
			if(PlayerInfo[playerid][pAdminLevel] == 4)
			{
			    arank = "Server Owner";
			}
			
			format(string, sizeof(string), "* %s %s has changed your name '%s' to '%s'.", arank, aname, oldname, newname);
		    SendClientMessage(params[0], COLOR_NICEBLUE, "%s %s has changed your name %s to %s.");
		}
	}
	else
	{
	    SendClientMessage(playerid, COLOR_GREY, "  You are not authorized to use this command.");
	}
	return 1;
}
Hope to get answer asap, thanks!


Re: DCMD Changename problem - [ProX]BlueFire - 25.03.2011

try this:
Код:
#include <zcmd>
zcmd(changename, playerid, params[])
{
    new player,name[24];
    if (!sscanf(params, "us", player, name))
    {
        if(player != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[playerid][pAdmin] >= 3)
            {
              new string[64];
                format(string, sizeof(string), "users/%s.ini", ReturnPlayerName(player));
                frename(ReturnPlayerName(player),name);
                SetPlayerName(player,name);
                fremove(string);
                format(string, sizeof(string), "Your name has been changed to %s.", name);
                SendClientMessage(player, yellow, string);
            }
            else return SendClientMessage(playerid, red, "ERROR: You are not an administrator.");
        }
        else return SendClientMessage(playerid, red, "ERROR: Player does not exist.");
    }
    else return SendClientMessage(playerid, lb, "USAGE: /Changename [Player ID/Part of Name] [New Name]");
    return 1;
}



Re: DCMD Changename problem - Ihsan-Cingisiz - 25.03.2011

Quote:
Originally Posted by [ProX]BlueFire
Посмотреть сообщение
try this:
Код:
#include <zcmd>
zcmd(changename, playerid, params[])
{
    new player,name[24];
    if (!sscanf(params, "us", player, name))
    {
        if(player != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[playerid][pAdmin] >= 3)
            {
              new string[64];
                format(string, sizeof(string), "users/%s.ini", ReturnPlayerName(player));
                frename(ReturnPlayerName(player),name);
                SetPlayerName(player,name);
                fremove(string);
                format(string, sizeof(string), "Your name has been changed to %s.", name);
                SendClientMessage(player, yellow, string);
            }
            else return SendClientMessage(playerid, red, "ERROR: You are not an administrator.");
        }
        else return SendClientMessage(playerid, red, "ERROR: Player does not exist.");
    }
    else return SendClientMessage(playerid, lb, "USAGE: /Changename [Player ID/Part of Name] [New Name]");
    return 1;
}
I dont use zcmd and sscanf, I only want to use dcmd for thi scommand.
Thanks btw


Re: DCMD Changename problem - MadeMan - 25.03.2011

You can't make it like that, you have to use sscanf.