Пример плагина: Управление командами 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.