PDA

View Full Version : change name


JaKe12
28/07/2017, 10:09 PM
Hello i need help whit making /changename [new name] command it will send a massage to online admins after that admins can use /setname [id] and it will change to new name.

Kane
28/07/2017, 11:07 PM
I've done you a solid of making the command and explaining it.

Instead of asking to be handed a command though, do your best to learn. It gets pretty easy once you try too learn.

#include zcmd
#include foreach

new namechangeTimer[MAX_PLAYERS];
// Put this at the top of your script.

CMD:requestname(playerid, params[])
{
if (isnull(params))
return SendClientMessage(playerid, -1, "Usage: /requestname [new name] to notify admins of a name change request.");

if(strlen(params) > MAX_PLAYER_NAME || strlen(params) < 3)
return SendClientMessage(playerid, -1, "** Your name must be at least 24 characters and greater than 3.");
// This checks the params' string length. http://wiki.sa-mp.com/wiki/SetPlayerName
// Players are denied entry to the server if their name is below 3 chars.

if(gettime() - namechangeTimer[playerid] < 60)
return SendClientMessage(playerid, -1, "* You need to wait 60 seconds before sending another request.");

// This is just to avoid the command being spammable. Remove it if you don't want it.
// It'll make sure that 60 seconds have passed before the player can send in another request.

new string[128], currentName[MAX_PLAYER_NAME];
GetPlayerName(playerid, currentName, sizeof(currentName));

namechangeTimer[playerid] = gettime();
// Get the current time to use for the 60 second check above.

foreach (new i : Player)
{
if(IsPlayerAdmin(i))
{
format (string, sizeof(string), "[Admin] %s is requesting a namechange to %s.", currentName, params);
SendClientMessage(i, 0x0000FFFF, string);
}
}
// This checks if a player is an admin and sends them the notification.
// If you have your own variable for a player being an admin, change IsPlayerAdmin to that.

format (string, sizeof(string), "** You requested a namechange from %s to %s. Admins were notified.", currentName, params);
SendClientMessage(playerid, 0x0000FFFF, string);


return true;
}

If you don't have foreach, remove #include foreach and replace foreach (new i : Player) with a MAX_PLAYERS loop.

I'll leave it up to you to make the /setname command.

http://forum.sa-mp.com/showthread.php?t=570927
http://wiki.sa-mp.com/wiki/SetPlayerName

HoussamMaroc
29/07/2017, 12:40 PM
#include a_samp
#include sscanf
#include zcmd




CMD:setname(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
new player1, tmp2[32];
if(sscanf(params,"is[32]",player1,tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
new length = strlen(tmp2), string[128];
if(length < 3 || length > MAX_PLAYER_NAME+1) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,"SETNAME");
format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
PlayerInfo[playerid][God] = 0;
SetPlayerHealth(player1, 100);
SetPlayerName(player1, tmp2);
return OnPlayerConnect(player1);
} else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
stock CMDMessageToAdmins(playerid,command[])
{
if(ServerInfo[AdminCmdMsg] == 0) return 0;
new string[128];
GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"[ADMIN] '%s' (Level: %d) | Command: %s",string,PlayerInfo[playerid][Level],command);
MessageToAdmins(blue,string);
return 1;
}
forward MessageToAdmins(color,const string[]);
public MessageToAdmins(color,const string[])
{
foreach (new i : Player) if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1 || IsPlayerAdmin(i)) SendClientMessage(i, color, string);
//return 1;
}

Xeon™
29/07/2017, 12:46 PM
#include a_samp
#include sscanf
#include zcmd




CMD:setname(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
new player1, tmp2[32];
if(sscanf(params,"is[32]",player1,tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
new length = strlen(tmp2), string[128];
if(length < 3 || length > MAX_PLAYER_NAME+1) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,"SETNAME");
format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
PlayerInfo[playerid][God] = 0;
SetPlayerHealth(player1, 100);
SetPlayerName(player1, tmp2);
return OnPlayerConnect(player1);
} else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
stock CMDMessageToAdmins(playerid,command[])
{
if(ServerInfo[AdminCmdMsg] == 0) return 0;
new string[128];
GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"[ADMIN] '%s' (Level: %d) | Command: %s",string,PlayerInfo[playerid][Level],command);
MessageToAdmins(blue,string);
return 1;
}
forward MessageToAdmins(color,const string[]);
public MessageToAdmins(color,const string[])
{
foreach (new i : Player) if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1 || IsPlayerAdmin(i)) SendClientMessage(i, color, string);
//return 1;
}

Credits pls.

Kane
29/07/2017, 11:01 PM
#include a_samp
#include sscanf
#include zcmd




CMD:setname(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
new player1, tmp2[32];
if(sscanf(params,"is[32]",player1,tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
new length = strlen(tmp2), string[128];
if(length < 3 || length > MAX_PLAYER_NAME+1) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
CMDMessageToAdmins(playerid,"SETNAME");
format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
PlayerInfo[playerid][God] = 0;
SetPlayerHealth(player1, 100);
SetPlayerName(player1, tmp2);
return OnPlayerConnect(player1);
} else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
stock CMDMessageToAdmins(playerid,command[])
{
if(ServerInfo[AdminCmdMsg] == 0) return 0;
new string[128];
GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"[ADMIN] '%s' (Level: %d) | Command: %s",string,PlayerInfo[playerid][Level],command);
MessageToAdmins(blue,string);
return 1;
}
forward MessageToAdmins(color,const string[]);
public MessageToAdmins(color,const string[])
{
foreach (new i : Player) if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Level] >= 1 || IsPlayerAdmin(i)) SendClientMessage(i, color, string);
//return 1;
}

You can't just post your code like everyone uses the same variables as you and not explain a single thing.

Credits pls.


Why're you going around threads asking for credits?