Каталог Новини Посібники Спільнота Для авторів
Усе для сервера CS 1.6 / CSS / CS:GO — плагіни | збірки | моделі | карти » Статті » Статті про CS 1.6 » Pawn Додаткова граната. Приклад коду для навчання

Pawn Додаткова граната. Приклад коду для навчання

01.06.2023, 22:47adminПереглядів: 172Коментарів: 0
Pawn  Додаткова граната. Приклад коду для навчання

Про матеріал

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;
}


Коментарі (0)

Додати коментар

Залишити коментар

Нові матеріали на пошту

Підписка з підтвердженням email. Не частіше одного листа на добу, відписка доступна в кожному листі.

Увійти до спільноти

Реєстрація · Відновити пароль