Change name on admin duty -
Scripter12345 - 03.04.2012
How would i make it so when a player does /adminduty that players name changes
Re: Change name on admin duty -
Tomer!.$ - 03.04.2012
Usage of SetPlayerName.
If you want me to create the command for you, I'll need more details.
Re: Change name on admin duty -
Kindred - 03.04.2012
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 Код:
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;
}
Re: Change name on admin duty -
Scripter12345 - 03.04.2012
Quote:
Originally Posted by KurtBag
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 Код:
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; }
|
Im new to scripting would you be able to describe a little bit better please
Re: Change name on admin duty -
Kindred - 03.04.2012
pawn Код:
enum pInfo
{
pAdmin,
pAdminName,
PlayerName,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Example of a player enumerator ^ ^.
Then, for example, you make it so you /setadminname [name].
pawn Код:
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;
}
Made with sscanf and ZCMD, although AdminDuty is not defined nor is PlayerName getting the players name, should do this yourself, I don't have all day to do so.
Re: Change name on admin duty -
Scripter12345 - 03.04.2012
Quote:
Originally Posted by KurtBag
pawn Код:
enum pInfo { pAdmin, pAdminName, PlayerName, } new PlayerInfo[MAX_PLAYERS][pInfo];
Example of a player enumerator ^ ^.
Then, for example, you make it so you /setadminname [name].
pawn Код:
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; }
Made with sscanf and ZCMD, although AdminDuty is not defined nor is PlayerName getting the players name, should do this yourself, I don't have all day to do so.
|
I have one error and this is what it is
Код:
error 006: must be assigned to an array
And this is the line it is saying the error is at
Код:
PlayerInfo[playerid][pAdminName] = newname;
Re: Change name on admin duty -
Scripter12345 - 03.04.2012
Please Help
Re: Change name on admin duty -
TzAkS. - 03.04.2012
What must be assigned to an array
Код:
newname = GetPlayerName(playerid);
PlayerInfo[playerid][pAdminName] = newname;
Or
Код:
new newname[MAX_PLAYER_NAME];
GetPlayerName(playerid,newname,sizeof(newname));
PlayerInfo[playerid][pAdminName] = newname;
Re: Change name on admin duty -
Toreno - 03.04.2012
Here you go, works as it supposed to.
pawn Код:
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;
}
Re: Change name on admin duty -
Scripter12345 - 03.04.2012
Quote:
Originally Posted by Toreno
Here you go, works as it supposed to.
pawn Код:
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; }
|
Is there any way you could make it work with my normal code ?