Создать акаунт
Всё для сервера CS 1.6 / CSS / CS:GO - Плагины | Сборки | Модели | Карты » Статьи » Статьи о CS 1.6 » Pawn Дополнительная граната. Пример кода для обучения

Pawn Дополнительная граната. Пример кода для обучения

01 июн 2023, 22:47
Статьи о CS 1.6
0

Pawn  Дополнительная граната. Пример кода для обучения

В этом коде определены несколько констант, которые определяют флаг доступа команды "b" (TEAM_FLAG), максимальное количество гранат, которые игрок может иметь (MAX_GRANADES), путь к пользовательской модели гранаты (CUSTOM_GRENADE_MODEL) и путь к пользовательскому звуку гранаты (CUSTOM_GRENADE_SOUND).

Функция plugin_init() регистрирует плагин и команду buygrenade2. Эта команда будет вызываться, когда игрок покупает гранату в дополнительный слот.

Функция DeathMsg() обрабатывает событие убийства игрока и проверяет, имеет ли атакующий игрок флаг доступа "b". Если да, то проверяется количество гранат у атакующего игрока и добавляется одна граната, если их количество не превышает MAX_GRANADES.

Функция buygrenade2(id) выполняет покупку гранаты в дополнительный слот для игроков с флагом доступа "b". Она проверяет флаг доступа игрока, его команду и количество гранат, а затем добавляет одну гранату, если это возможно. Звук гранаты воспроизводится с помощью функции emit_sound, и игроку выводится сообщение о покупке гранаты.

После компиляции и установки плагина на сервер Counter-Strike 1.6, игроки с флагом доступа "b" смогут покупать и использовать дополнительную гранату в игре без замены стандартной гранаты.

#include < amxmodx >
#include < amxmisc >

new const TEAM_FLAG = 'b';
new const MAX_GRANADES = 1;
new const CUSTOM_GRENADE_MODEL[] = "models/custom_grenade.mdl";
new const CUSTOM_GRENADE_SOUND[] = "sound/custom_grenade.wav";

public plugin_init()
{
register_plugin("b_custom_grenade", "1.0", "Your Name");
register_clcmd("buygrenade2", "buygrenade2");
register_event("DeathMsg", "DeathMsg", "be", "1=0,1=0");
}

public DeathMsg()
{
new victim = read_data(1), attacker = read_data(2);
new const flag = get_user_flags(attacker);

if (victim > 0 && attacker > 0 && (flag & ADMIN_KICK))
{
new const attacker_team = get_user_team(attacker);
if (attacker_team == TEAM_FLAG)
{
new const attacker_grenades = get_user_grenades(attacker, CS_WEAPON_HEGRENADE);
if (attacker_grenades < MAX_GRANADES)
{
set_user_grenades(attacker, CS_WEAPON_HEGRENADE, attacker_grenades + 1);
}
}
}
}

public buygrenade2(id)
{
new const flag = get_user_flags(id);

if (flag & ADMIN_KICK)
{
new const team = get_user_team(id);
if (team == TEAM_FLAG)
{
new const grenades = get_user_grenades(id, CS_WEAPON_HEGRENADE);
if (grenades < MAX_GRANADES)
{
set_user_grenades(id, CS_WEAPON_HEGRENADE, grenades + 1);
emit_sound(id, CHAN_ITEM, CUSTOM_GRENADE_SOUND, 1.0, ATTN_NORM, 0, 100);
client_print(id, print_chat, "You bought an extra grenade!");
return PLUGIN_HANDLED;
}
else
{
client_print(id, print_chat, "You already have the maximum number of grenades!");
return PLUGIN_STOP;
}
}
}
return PLUGIN_CONTINUE;
}


Только для авторизованых Юзеров

Смотрите также:

Комментарии
Минимальная длина комментария - 50 знаков. комментарии модерируются