Регистрация - или - Войти

Восстановить пароль
×

Для восстановления пароля необходимо ввести логин или почту, которую Вы вводили при регистрации. После это, на Ваш почтовый ящик будет отпрвлено письмо с кодом.

Логин или почта :

RE5 Steam No HUD ModRE5 Steam No HUD Mod

Убирает основной HUD (Состояние здоровья, счетчик патронов и т.д.) в Steam-версии игры (Gold Edition)...

1/04/2015
A Corny VoyageA Corny Voyage

Одиночная модификация для Half-Life 2, где предстоит играть за зерно кукурузы в пищеварительной системе....

1/04/2008
Статистика ( по source картам ), шт.

субтитры из паранойи.


  • Описание
  • КАК УСТАНОВИТЬ

субтитры из паранойи

субтитры из паранойи.


Автор / ы урока : Alex_Gordon
Просмотров : 2674 ( +2 )
Скачиваний : 59
Прислал / (а) : Streit
Дата создания : 07.04.2011 21:35:07
Источник : http://www.hlfx.ru/forum
Рейтинг :
 ( 3.5 ) 
Поделиться :


Имеются следующие переводы : | русский |

Всем привет. Сейчас мы сделаем субтитры из паранойи. Первым делом нам понадобятся 2 файла: vgui_subtitles.cpp и vgui_subtitles.h (см. аттач) Добавим их на клиент. Теперь откроем Client, в нем найдем файл vgui_TeamFortressViewport.cpp. Откроем его. Найдем строку: Код: m_pCurrentCommandMenu = NULL; и после нее добавим: Код: m_pSubtitle = NULL; Теперь найдем: Код: App::getInstance()→setCursorOveride( App::getInstance()→getScheme()→getCursor(Scheme::SchemeCursor::scu_none) ); И после добавим: Код: m_pSubtitle = new CSubtitle(); m_pSubtitle→setParent(this); m_pSubtitle→setVisible(false); Теперь найдем функцию void TeamFortressViewport::Initialize( void ) и в нее добавим: Код: if (m_pSubtitle) m_pSubtitle→Initialize(); С этим файлом все. Откроем vgui_TeamFortressViewport.h Добавим новый инклюд: Код: #include "vgui_subtitles.h" Потом найдем строку Код: char m_szServerName[ MAX_SERVERNAME_LENGTH ]; и после нее напишем: Код: CSubtitle* m_pSubtitle;

Клиент можно компилировать. Переходим к серверу.

Откроем util.cpp и найдем там функцию UTIL_EmitAmbientSound Полностью заменим ее на: Код: void UTIL_EmitAmbientSound( edict_t *entity, const Vector &vecOrigin, const char *samp, float vol, float attenuation, int fFlags, int pitch ) { float rgfl[3]; vecOrigin.CopyToArray(rgfl);

if (samp && *samp == '!')
{
        char name[32];
        if (SENTENCEG_Lookup(samp, name) >= 0)
                EMIT_AMBIENT_SOUND(entity, rgfl, name, vol, attenuation, fFlags, pitch);
                UTIL_ShowMessagePVS( samp, vecOrigin );
        }
        else
                EMIT_AMBIENT_SOUND(entity, rgfl, samp, vol, attenuation, fFlags, pitch);
}

Теперь ищем функцию void UTIL_ShowMessageAll( const char *pString ) и после нее добавляем новую: Код: void UTIL_ShowMessagePVS( const char *pString, const Vector &org ) { // loop through all players for ( int i = 1; i ⇐ gpGlobals→maxClients; i++ ) { CBaseEntity *pPlayer = UTIL_PlayerByIndex( i ); if ( pPlayer && pPlayer→IsNetClient() ) { float flDist = (pPlayer→pev→origin - org ).Length(); if ( flDist > 300 ) continue; // MESSAGE_BEGIN( MSG_ONE, gmsgHudText, NULL, pEntity→edict() ); MESSAGE_BEGIN( MSG_PVS, gmsgHudText, org ); WRITE_STRING( pString ); MESSAGE_END(); } } }

Теперь откроем sound.cpp и найдем там функцию: Код: EMIT_SOUND_DYN(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int flags, int pitch) Полностью заменим ее на: Код: void EMIT_SOUND_DYN(edict_t *entity, int channel, const char *sample, float volume, float attenuation, int flags, int pitch) { if (sample && *sample == !) { char name[32]; if (SENTENCEG_Lookup(sample, name) >= 0) { EMIT_SOUND_DYN2(entity, channel, name, volume, attenuation, flags, pitch); // ALERT(at_console, "play sentence %s, output %s\n", sample, name); } else ALERT( at_aiconsole, "Unable to find %s in sentences.txt\n", sample );

                // buz: send sencences as text messages to lookup subtitles in titles.txt
        //      UTIL_ShowMessageAll( sample );
                UTIL_ShowMessagePVS( sample, entity->v.origin );
        }
        else
        {
                EMIT_SOUND_DYN2(entity, channel, sample, volume, attenuation, flags, pitch);
        //      ALERT(at_console, "play sound %s\n", sample);
        }
}

Теперь откроем util.h и найдем там: Код: extern void UTIL_ShowMessageAll ( const char *pString ); После напишем: Код: extern void UTIL_ShowMessagePVS( const char *pString, const Vector &org ); // buz

Можно компилировать. Теперь сделаем текст самих субтитров. Он записывается в titles.txt предпочтительно в конец файла. Откроем этот файл, спустимся вниз и добавим там: Код: !BA_DESK { Барни: Здравствуйте, Мистер Фримен. У меня для вас было много сообщений, но из-за ошибки системы, которая произошла минут 20 назад, я не могу их вам передать. Еще один неудачный день… Проблемы в тест-камере были, но, насколько я знаю, они уже исправлены. Мне сказано проследить, что вы надели ваш HEV костюм. } Здесь !BA_DESK - это название сентенса из файла sentences.txt с восклицательным знаком перед ним. Результат:



1. ( 2.7 Kb )
Похожие1. weapon_flamethrower - Играя в Халф-Лайф, вы не задумывались над тем, что в нем чего-то не хватает? Чего-то очень близкого, родного, горячего...
2. Исходный код снайперки - weapon_sniperrifle с оптическим прицелом
3. Как адаптировать код к модели - Допустим, вы сделали новую модель для автомата MP5, но порядок и кол-во анимаций не сходятся.
4. Подбираемый фонарик v 2.5 - Подбираемый фонарик v 2.5
5. Удалённый контроль зарядника - Всегда хотелось, чтобы зарядник в хл был управляемым.
6. Увеличение количества мяса от взрыв - Увеличение количества мяса от взрывов людей или инопланетян.
7. Неработающие двери :) - Как сделать, чтоб двери не открывались, когда нет света и рядом с ними был индикатор (красн. зел.)
8. Создание КООП,смена карт аля сингл - Сдесь я расскажу как разрешить синглплеерные скрипты в мултиплеере!
9. Изменение цвета HUD'а (полное)! - Изменение цвета HUD'а (полное)! Но прицелы придётся переделывать вам самим! Сдесь я перевевёл туториал с twhl.info на русский язык!
Вы не можете комментировать, т.к. вы не зарегистрированы.
    me3_TableLarge01_Dirty
    Half-Lifeme3_TableLarge01_Dirty
    me3_TableLarge01
    Half-Lifeme3_TableLarge01
    me3_Crate01_L
    Half-Lifeme3_Crate01_L
    me3_Desk01_Corner_Worn
    Half-Lifeme3_Desk01_Corner_Worn