Главная Новости Услуги Форум | База знаний

Вверх

Меню
Пользователей онлайн
Онлайн игроков: 60

Пример плагина: Управление командами CS 1.6 (cstrike.inc)

Пример: управление командами через cstrike.inc

Инклуд <cstrike> даёт доступ к функциям Counter-Strike 1.6: команды (CT/T/Spectator), деньги, оружие, модельки, бомба. Это CS-specific API — недоступно в других модах.

Что делает плагин

  • Команда /ct в чат — переводит игрока в CT (counter-terrorist).
  • Команда /t — переводит в T (terrorist).
  • Команда /spec — переводит в наблюдатели.
  • В конце раунда показывает всем счёт команд.

Полный код плагина

#include <amxmodx>
#include <cstrike>

public plugin_init()
{
    register_plugin("Team Manager", "1.0", "WikiExample");

    register_clcmd("say /ct",   "cmd_to_ct");
    register_clcmd("say /t",    "cmd_to_t");
    register_clcmd("say /spec", "cmd_to_spec");

    register_event("SendAudio", "round_end", "a", "2=%!MRAD_terwin", "2=%!MRAD_ctwin");
}

public cmd_to_ct(id)
{
    cs_set_user_team(id, CS_TEAM_CT);
    client_print(id, print_chat, "[Team] Вы переведены в CT.");
    return PLUGIN_HANDLED;
}

public cmd_to_t(id)
{
    cs_set_user_team(id, CS_TEAM_T);
    client_print(id, print_chat, "[Team] Вы переведены в T.");
    return PLUGIN_HANDLED;
}

public cmd_to_spec(id)
{
    cs_set_user_team(id, CS_TEAM_SPECTATOR, CS_DONTCHANGE);
    user_kill(id, 1);  // убиваем чтобы перекинуть сразу
    client_print(id, print_chat, "[Team] Вы в наблюдателях.");
    return PLUGIN_HANDLED;
}

public round_end()
{
    new ct = 0, t = 0;
    new players[32], num;
    get_players(players, num);

    for (new i = 0; i < num; i++)
    {
        new team = cs_get_user_team(players[i]);
        if (team == CS_TEAM_CT) ct++;
        else if (team == CS_TEAM_T) t++;
    }

    client_print(0, print_chat, "[Team] Счёт: CT=%d, T=%d", ct, t);
    return PLUGIN_CONTINUE;
}

Разбор ключевых функций cstrike.inc

  • cs_set_user_team(id, CS_TEAM_CT) — меняет команду без перезаписи модели.
  • cs_set_user_team(id, CS_TEAM_SPECTATOR, CS_DONTCHANGE) — переводит в наблюдатели. CS_DONTCHANGE — оставить старую модель.
  • cs_get_user_team(id) — возвращает текущую команду (CS_TEAM_UNASSIGNED=0, T=1, CT=2, SPECTATOR=3).
  • user_kill(id, 1) — убивает игрока (из amxmodx.inc, второй параметр = korblud).

Компиляция: скопируйте код в team_manager.sma, скомпилируйте через amxxpc team_manager.sma, готовый team_manager.amxx положите в cstrike/addons/amxmodx/plugins/ и добавьте строку team_manager.amxx в plugins.ini.

Подробные инструкции и обсуждения ждём вас на нашем форуме — в разделе CS 1.6.
Назад