GivePlayerWeapon

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

Описание:

Выдаёт игроку оружие и патроны.

Параметры:

(playerid, weaponid, ammo)
playerid ID игрока.
weaponid ID оружия.
ammo Количество патронов.


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

1, если игрок подключен, иначе 0.

Bug.png
Баг SA-MP
Если выдать игроку отрицательное количество патронов (параметр ammo), он не сможет переключать оружие вперёд. Например, если у игрока есть бейсбольная бита и ему выдан Colt-45 с -1 патроном, он не сможет переключиться с биты на Coit-45 (в HUD'е значок Colt-45 мелькнёт с -1 патроном, после чего будет снова выбрана бита).
Возвращаемое функцией значение зависит только от подключения игрока, но не от успеха выполнения функции. Если игрок находится в состоянии слежки (PLAYER_STATE_SPECTATING) или спавна (PLAYER_STATE_SPAWNED), либо указан неправильный ID оружия, игрок не сможет получить оружие, но функция всё равно вернёт 1.


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

new const weapon_names[][] = {
/*  0 */{"Без оружия"},                 /*  1 */{"Кастет"},                     /*  2 */{"Клюшка для гольфа"},
/*  3 */{"Полицейская дубинка"},        /*  4 */{"Нож"},                        /*  5 */{"Бейсбольная бита"},
/*  6 */{"Лопата"},                     /*  7 */{"Кий"},                        /*  8 */{"Катана"},
/*  9 */{"Бензопила"},                  /* 10 */{"Большой дилдо"},              /* 11 */{"Малый дилдо"},
/* 12 */{"Большой вибратор"},           /* 13 */{"Малый вибратор"},             /* 14 */{"Цветы"},
/* 15 */{"Трость"},                     /* 16 */{"Граната"},                    /* 17 */{"Слезоточивый газ"},
/* 18 */{"Коктейль Молотова"},          /* 19 */{""},/* 20 */{""},/* 21 */{""}, /* 22 */{"Кольт .45"},
/* 23 */{"Кольт .45 с глушителем"},     /* 24 */{"Пустынный орёл"},             /* 25 */{"Дробовик"},
/* 26 */{"Обрез"},                      /* 27 */{"SPAS-12"},                    /* 28 */{"Микро-Узи"},
/* 29 */{"MP5"},                        /* 30 */{"АК-47"},                      /* 31 */{"M4"},
/* 32 */{"TEC-9"},                      /* 33 */{"Винтовка"},                   /* 34 */{"Снайперская винтовка"},
/* 35 */{"Гранатомёт"},                 /* 36 */{"Самонаводящийся гранатомёт"}, /* 37 */{"Огнемёт"},
/* 38 */{"Пулемёт"},                    /* 39 */{"Взрывпакет"},                 /* 40 */{"Детонатор"},
/* 41 */{"Баллончик с краской"},        /* 42 */{"Огнетушитель"},               /* 43 */{"Фотоаппарат"},
/* 44 */{"Прибор ночного видения"},     /* 45 */{"Тепловизор"},                 /* 46 */{"Парашют"}
};

CMD:giveweapon(playerid, params[])
{
    if (0 == IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Вы не администратор сервера!");
    extract params -> new player:targetid, weaponid, ammo; else // sscanf2
        return SendClientMessage(playerid, -1, "Использование: /giveweapon [ID игрока/часть ника] [ID оружия] [кол-во патронов]");
    if (targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "Игрок не найден.");
    if (weaponid < 1 || weaponid > 46 || weaponid == 19 || weaponid == 20 || weaponid == 21)
        return SendClientMessage(playerid, -1, "Неправильный ID оружия.");
    if (ammo < 0 || ammo > 1000)
        return SendClientMessage(playerid, -1, "Количество патронов должно быть от 1 до 1000.");
    GivePlayerWeapon(targetid, weaponid, ammo);
    new string[128];
    GetPlayerName(targetid, string, sizeof(string));
    format(string, sizeof(string), "Вы выдали игроку %s оружие \"%s\" c %d патронами.", string, weapon_names[weaponid], ammo);
    return SendClientMessage(playerid, -1, string);
}


См. также: