Change name on admin duty
#1

How would i make it so when a player does /adminduty that players name changes
Reply
#2

Usage of SetPlayerName.
If you want me to create the command for you, I'll need more details.
Reply
#3

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;
}
Reply
#4

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
Reply
#5

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.
Reply
#6

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;
Reply
#7

Please Help
Reply
#8

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;
Reply
#9

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;
}
Reply
#10

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 ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)