Change Name Cmd
#1

How can i make that Admins can change In game the Playername of a player?
Reply
#2

Hello! Are you requesting to use ZCMD, DCMD,YCMD or any other command processor? If so please explain which one you would like to use. Second,

Use SSCANF : https://sampforum.blast.hk/showthread.php?tid=120356

And the function of "SetPlayerName": https://sampwiki.blast.hk/wiki/SetPlayerName
Reply
#3

I use ZCMD and sscanf.
Reply
#4

And what do you use to store the account details?
Reply
#5

I save the details in a .txt file with DINI.
Reply
#6

PHP Code:
CMD:setname(playerid,params[])
{
    if(
IsPlayerAdmin(playerid))
    {
        new 
idname[24], str[130], newname;
        if(
sscanf(params"udd"id,name,newname)) return SendClientMessage(playerid,red,"/SetName [Playerid/Name] [New Name]");
        
GetPlayerName(id,name,24);
        
format(str,130,"You Changed %s (%d)'s Name to $%d",name,id,newname);
        
SendClientMessage(playerid,lightblue,str);
        
format(str,130"Admin Changed Your Name to $%d",newname);
        
SendClientMessage(playerid,lightblue,str);
        
SetPlayerName(id,name);
                      
PlayerInfo[id][pAdminLevel] = name// if caused an error check your player info
    
} else return SendClientMessage(playerid,red,"Your are not autorised to use this cmd);
    return 1;

Reply
#7

warning 219: local variable "str" shadows a variable at a preceding level
error 029: invalid expression, assumed zero
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line

Then i have this Errors.
Reply
#8

Here is my command with YINI, take it as an example.

PHP Code:
CMD:renameaccount(playerid,params[])
{
    new 
oldname[128], newname[128], string[90];
    if(
sscanf(params,"s[128]s[128]"oldnamenewname)) return SendClientMessage(playerid,Yellow"Correct Usage: /renameaccount [OldName][New name]");
    new 
filestring[128];
    new 
filestring2[128];
    
format(filestring2sizeof(filestring2), "/Users/%s.ini"oldname);
    if(!
fexist(filestring2)) return SendClientMessage(playeridYellow"That account name doesn't exist!");
    
format(filestringsizeof(filestring), "/Users/%s.ini"newname);
    if(
fexist(filestring)) return SendClientMessage(playeridYellow"The new name you've chosen is already taken");
    
frename(filestring2filestring);
    new 
INI:File INI_Open(filestring);
    
INI_SetTag(File"data");
    
INI_WriteString(File,"Name"newname);
    
INI_Close(File);
    
format(stringsizeof(string), "You have successfully renamed %s's account to %s" ,oldnamenewname);
    
SendClientMessage(playeridLimestring);
    return 
1;

Reply
#9

Above is for Y_ini
there goes for Dini
Code:
CMD:changename(playerid, params[])
{
        if(PlayerInfo[playerid][LoggedIn] == 1)	{
		if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /changename [new Name]");
		if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
		if (udb_Exists(params)) return SendClientMessage(playerid,red,"This User Name Is Taken!");
		if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid, red,"[ERROR]: You need $50000 to change your name!");
		new nameee[24];  GetPlayerName(playerid, nameee, 16);
		new OldName[24],str[128];
		GetPlayerName(playerid,OldName,sizeof(OldName));
		format(str,sizeof(str),"ladmin/users/%s.sav",OldName);
		udb_RenameUser(OldName,params);
		format(str,sizeof(str),"ladmin/users/%s.sav",params);
		SetPlayerName(playerid,params);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		GivePlayerMoney(playerid, -50000);
		new string[128];
        format(string, sizeof(string),"ACCOUNT: You have successfully changed your Name to \"%s\"",params);
		return SendClientMessage(playerid,yellow,string);
	} else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
}
More examples will help you more..
Reply
#10

Quote:
Originally Posted by Jarnu
View Post
Above is for Y_ini
there goes for Dini
Code:
CMD:changename(playerid, params[])
{
        if(PlayerInfo[playerid][LoggedIn] == 1)	{
		if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /changename [new Name]");
		if(strlen(params) < 4) return SendClientMessage(playerid,red,"ACCOUNT: Incorrect password length");
		if (udb_Exists(params)) return SendClientMessage(playerid,red,"This User Name Is Taken!");
		if(GetPlayerMoney(playerid) < 50000) return SendClientMessage(playerid, red,"[ERROR]: You need $50000 to change your name!");
		new nameee[24];  GetPlayerName(playerid, nameee, 16);
		new OldName[24],str[128];
		GetPlayerName(playerid,OldName,sizeof(OldName));
		format(str,sizeof(str),"ladmin/users/%s.sav",OldName);
		udb_RenameUser(OldName,params);
		format(str,sizeof(str),"ladmin/users/%s.sav",params);
		SetPlayerName(playerid,params);
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		GivePlayerMoney(playerid, -50000);
		new string[128];
        format(string, sizeof(string),"ACCOUNT: You have successfully changed your Name to \"%s\"",params);
		return SendClientMessage(playerid,yellow,string);
	} else return SendClientMessage(playerid,red, "ERROR: You must have an account to use this command");
}
More examples will help you more..
nvalid expression, assumed zero
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero

Yep, thanks, but then i have this errors, i hope you can help me with this.

in this line " if(PlayerInfo[playerid][LoggedIn] == 1) { "
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)