В настоящее время пока существует только бета-поддержка игры Alien Swarm системой SourceMod. И поддержка HUD сообщений в SM еще не включена, хотя сама игра AS их поддерживает. В данной статье будет рассмотрен способ включения HUD сообщений и пример их использования.
[align=center] [/align]
Итак, чтобы включить поддержку HUD сообщений в SourceMod, нам потребуется создать один файл в директории ..\addons\sourcemod\gamedata\core.games\custom, если директории custom у вас нет, создайте вручную. Файл создадим с названием asw_hudmsg.txt и следующим содержимым:
- Код: Выделить всё
"Games"
{
"swarm"
{
"Keys"
{
"HudTextMsg" "HudMsg"
}
}
}
Все. Теперь SourceMod поддерживает вывод HUD сообщений в игре Alien Swarm. Теперь рассмотрим пример использования этих HUD сообщений:
[pawn]
#include <sourcemod>
#include <sdktools>
#define PLUGIN_VERSION "1.0"
new bool:g_ShowMessage
public Plugin:myinfo =
{
name = "Example HUD Message",
author = "DJ_WEST",
description = "Plugin for example HUD message",
version = PLUGIN_VERSION,
url = "http://amx-x.ru"
}
public OnPluginStart()
{
decl String:s_Game[6]
// Получаем название директории с игрой
GetGameFolderName(s_Game, sizeof(s_Game))
// Проверяем, если директория не swarm, значит это не Alien Swarm
if (!StrEqual(s_Game, "swarm"))
SetFailState("This plugin supports Alien Swarm only!")
}
// Обнуляем информацию о том, что игроки уже видели сообщение, когда карта загружена
public OnMapStart()
g_ShowMessage = false
public Action:OnClientCommand(i_Client, i_Args)
{
decl String:s_Text[32]
// Считываем команду, которую использовал игрок
GetCmdArg(0, s_Text, sizeof(s_Text))
// Если команда cl_start, значит игроки начали прохождение мисии
if (StrEqual(s_Text, "cl_start") && !g_ShowMessage)
{
g_ShowMessage = true
// Формирование и показ HUD сообщений
SetHudTextParams(0.02, 0.4, 10.0, 255, 0, 0, 100, 0, 0.0, 0.0, 0.1)
ShowHud("Посетите наш сайт http://amx-x.ru")
SetHudTextParams(0.02, 0.44, 10.0, 255, 255, 255, 100, 0, 0.0, 0.0, 0.1)
ShowHud("Русское сообщество по AMX Mod X/SourceMod")
}
}
// Функция для показа HUD сообщения всем игрокам
public ShowHud(String:s_Message[128])
{
for (new i_Client = 1; i_Client <= MaxClients; i_Client++)
if (IsClientInGame(i_Client) && !IsFakeClient(i_Client))
ShowHudText(i_Client, -1, s_Message)
}
[/pawn]