03.04.2012, 19:50
How would i make it so when a player does /adminduty that players name changes
CMD:adminduty(playerid, params[])
{
//Check if player is admin
SetPlayerName(playerid, PlayerInfo[playerid][pAdminName]); // Change PlayerInfo[playerid][pAdminName] to the section where it saves the players admin name.
//Rest of code
return 1;
}
Well, first you'd have to add an adminname section in you're player file saving system, or make it so it creates a seperate file for all (or each) admin name. Then you can simply do something like this.
pawn Код:
|
enum pInfo
{
pAdmin,
pAdminName,
PlayerName,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
CMD:setadminname(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
new string[128], newname[15];
if(sscanf(params, "s", newname)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /setadminanme <name>");
PlayerInfo[playerid][pAdminName] = newname;
format(string, sizeof(string), "You set your admin name to %s", newname);
SendClientMessage(playerid, 0xFFFFFFFF, string);
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "You are not authorized to use this command!");
return 1;
}
CMD:adminduty(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] >= 1)
{
if(AdminDuty[playerid] == 1)
{
SetPlayerName(playerid, PlayerInfo[playerid][pAdminName]);
}
else
{
SetPlayerName(playerid, PlayerName);
}
}
return 1;
}
pawn Код:
Then, for example, you make it so you /setadminname [name]. pawn Код:
|
error 006: must be assigned to an array
PlayerInfo[playerid][pAdminName] = newname;
newname = GetPlayerName(playerid); PlayerInfo[playerid][pAdminName] = newname;
new newname[MAX_PLAYER_NAME]; GetPlayerName(playerid,newname,sizeof(newname)); PlayerInfo[playerid][pAdminName] = newname;
enum pInfo
{
pAdmin,
AdminName[24],
PlayerName[24],
bool:HasSetAdminName,
OnDuty
}
new PlayerInfo[MAX_PLAYERS][pInfo];
CMD:setadmin(playerid, params[])
{
new
lvl,
a_string[65],
name[MAX_PLAYER_NAME]
;
if(sscanf(params, "i", lvl))
{
return SendClientMessage(playerid, -1, "USAGE: /setadmin [level]");
}
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
PlayerInfo[playerid][PlayerName] = name;
PlayerInfo[playerid][pAdmin] = lvl;
format(a_string, 65, "You are now admin level %d.", lvl);
SendClientMessage(playerid, -1, a_string);
return 1;
}
CMD:setadminname(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1)
{
return SendClientMessage(playerid, -1, "You are not an admin.");
}
new
adminname[24],
a_string[65]
;
if(sscanf(params, "s[24]", adminname))
{
return SendClientMessage(playerid, -1, "USAGE: /setadminanme [name]");
}
PlayerInfo[playerid][AdminName] = adminname;
format(a_string, 65, "Your admin name is %s.", PlayerInfo[playerid][AdminName]);
SendClientMessage(playerid, -1, a_string);
PlayerInfo[playerid][HasSetAdminName] = true;
return 1;
}
CMD:adminduty(playerid, params[])
{
if(!PlayerInfo[playerid][pAdmin])
{
return SendClientMessage(playerid, -1, "You are not an admin.");
}
if(PlayerInfo[playerid][OnDuty])
{
SetPlayerName(playerid, PlayerInfo[playerid][PlayerName]);
PlayerInfo[playerid][OnDuty] = false;
}
else
{
if(!PlayerInfo[playerid][HasSetAdminName])
{
return SendClientMessage(playerid, -1, "You haven't set an admin name yet.");
}
SetPlayerName(playerid, PlayerInfo[playerid][AdminName]);
PlayerInfo[playerid][OnDuty] = true;
}
return 1;
}
Here you go, works as it supposed to.
pawn Код:
|