SetPlayerName

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Устанавливает никнейм игрока.

Параметры:

(playerid, const name[])
playerid ID игрока, ник которого требуется изменить.
const name[] Новый никнейм.


Возвращаемое значение:

1 в случае успешного выполнения.
0, если игрок не подключен или новый никнейм уже используется другим игроком.
-1, если новый никнейм содержит неразрешённые символы (см. ниже) или длиннее MAX_PLAYER_NAME.

Info rhombus.png
Примечание
Игрок должен указать в клиенте никнейм длиной от 3 до 20 символов, в противном случае сервер не позволит ему подключиться, предложив сменить ник. В то же время, с помощью функции SetPlayerName() можно установить никнейм от 1 до MAX_PLAYER_NAME (24) символов (указана именно константа, т.к. остаётся возможность изменения макс. длины ника в будущих версиях SA:MP).
Никнейм может содержать только символы 'A'-'Z', 'a'-'z', '0'-'9', '[', ']', '_', '$', '=', '(', ')', '@' и '.'.


Bug.png
Баг SA-MP
Если новый никнейм отличается от старого только регистром символов (например, "john_doe" -> "John_Doe"), функция оставит старый никнейм.


Bug.png
Баг SA-MP
Попытка передать в качестве никнейма пустую строку приводит к падению сервера.


Пример использования:

CMD:setname(playerid, params[])
{
    if (0 == IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Вы не администратор!");
    new targetid;
    if (sscanf(params, "us[128]", targetid, params))
        return SendClientMessage(playerid, -1, "Использование: /setname [ID игрока/часть ника] [новый ник]");
    if (targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "Игрок не найден!");
    new string[144+1];
    GetPlayerName(targetid, string, sizeof(string));
    new result = SetPlayerName(targetid, params);
    if (result == -1)
        return SendClientMessage(playerid, -1, "Неправильный никнейм!");
    if (result == 0)
        return SendClientMessage(playerid, -1, "Никнейм уже используется другим игроком!");
    format(string, sizeof(string), "Игрок %s теперь известен как %s.", string, params);
    return SendClientMessageToAll(-1, string);
}


См. также: