GetPlayerWeaponState

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

Описание:

Узнаёт состояние выбранного игроком оружия.

Параметры:

(playerid)
playerid ID игрока.


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

Состояние оружия, выбранного игроком, либо 0, если игрок не подключен.

Bug.png
Баг SA-MP
Функция возвращает 0 в двух случаях: когда игрок не подключен и когда в оружии закончились патроны (константа WEAPONSTATE_NO_BULLETS тоже равна нулю). Может потребоваться дополнительный вызов IsPlayerConnected(), чтобы однозначно отличить эти две ситуации.


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

CMD:getweaponstate(playerid, params[])
{
    if (0 == IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Вы не администратор сервера!");
    extract params -> new player:targetid; else // sscanf2
        return SendClientMessage(playerid, -1, "Использование: /getweaponstate [ID игрока/часть ника]");
    if (targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "Игрок не найден.");
    static const state_names[][] =
        { "неизвестно", "нет патронов", "последний патрон", "несколько патронов", "перезарядка" };
    new st = GetPlayerWeaponState(targetid) + 1;
    new string[128];
    GetPlayerName(targetid, string, sizeof(string));
    format(
        string, sizeof(string), "Состояние оружия игрока %s: %s.",
        string, state_names[st + 1] // Поскольку список констант начинается с -1 (WEAPONSTATE_UNKNOWN),
                                    // нужно прибавить 1 к индексу.
    );
    return SendClientMessage(playerid, -1, string);
}


См. также: