Русское сообщество по скриптингу

[ASW] Включение поддержки HUD сообщений

Статьи или фрагменты кода для новичков и уже опытных скриптеров по SourceMod.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по SourceMod.

[ASW] Включение поддержки HUD сообщений

Сообщение DJ_WEST » 03 авг 2010, 14:06

Автор: DJ_WEST

В настоящее время пока существует только бета-поддержка игры Alien Swarm системой SourceMod. И поддержка HUD сообщений в SM еще не включена, хотя сама игра AS их поддерживает. В данной статье будет рассмотрен способ включения HUD сообщений и пример их использования.

[align=center]
asw_hudmsg.jpg
[/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]
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

сделали, а как я не понял

Сообщение mundFraurnSaf » 08 янв 2011, 01:34

Как именно сделали?
Аватара пользователя
mundFraurnSaf
 
Сообщения: 1
Зарегистрирован: 08 янв 2011, 01:29
Откуда: Россия
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1