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

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

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

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

Operation Black ThunderOperation Black Thunder

Мод о спец-операции недалёкого будущего...

25/04/2004
Get a LifeGet a Life

Шутер от первого лица...

25/04/2008
Статистика ( по goldsrc исходникам модов ), шт.

Фикс: func_healthcharger и func_recharger


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

Фикс: func_healthcharger

Фикс: func_healthcharger и func_recharger


Автор / ы урока : Maxwel
Просмотров : 2068 ( +3 )
Прислал / (а) : Streit
Дата создания : 07.04.2011 21:07:39
Источник : http://www.hlfx.ru/forum...
Рейтинг :
 ( 0 ) 
Поделиться :


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

Итак… Когда сравнить HL1 и HL2 то замечается различие в зарядниках здоровья и костюм… Правильно! В HL2 зарядники прекращают свою работу, когда игрок будет заряжен полностью… В HL1 они не останавливаются… точнее они не заряжают, но звук зарядки проигрывается… Как-то неправильно получается… Это можно исправить очень простым способом. Вся робота будет вестись на серверной части.

Для func_recharger: Открываем h_battery.cpp, там ищем класс CRecharge, заходим в процедуру CRecharge::Use, ищем вот этот текст:

Code:

if ((m_iJuice <= 0) || (!(pActivator->pev->weapons & (1<<WEAPON_SUIT))))
{
   if (m_flSoundTime <= gpGlobals->time)
   {
     m_flSoundTime = gpGlobals->time + 0.62;
     EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/suitchargeno1.wav", 0.85, ATTN_NORM );
   }
   return;
}

тут нам стоит доработать условие, при котором проигрывается звук отказа, чтобы оно приходило в истину ещё и когда игрок полностью заряжен. Условие заряжености игрока формулируется так:

Code:

pActivator->pev->armorvalue == 100

то есть, у нас должно получится вот что:

Code:

if ((m_iJuice <= 0) || (!(pActivator->pev->weapons & (1<<WEAPON_SUIT))) || (pActivator->pev->armorvalue == 100) )
{
   if (m_flSoundTime <= gpGlobals->time)
   {
     m_flSoundTime = gpGlobals->time + 0.62;
     EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/suitchargeno1.wav", 0.85, ATTN_NORM );
   }
   return;
}

Итак зарядник костюма пофиксили.

Для func_healthcharger: Делается аналогично до зарядника костюма. Файл: healthkit.cpp Класс: CWallHealth Процедура: CWallHealth::Use Ищем текст:

Code:

if ((m_iJuice <= 0) || (!(pActivator->pev->weapons & (1<<WEAPON_SUIT))))
{
   if (m_flSoundTime <= gpGlobals->time)
   {
     m_flSoundTime = gpGlobals->time + 0.62;
     EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshotno1.wav", 1.0, ATTN_NORM );
   }
   return;
}

Добавляем ещё одно условие:

Code:

pActivator->pev->health == 100

(обратите внимание, тут используем не задефайненное значение, а точное 100) Получим:

Code:

if ((m_iJuice <= 0) || (!(pActivator->pev->weapons & (1<<WEAPON_SUIT))) || (pActivator->pev->health == 100))
{
   if (m_flSoundTime <= gpGlobals->time)
   {
     m_flSoundTime = gpGlobals->time + 0.62;
     EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/medshotno1.wav", 1.0, ATTN_NORM );
   }
   return;
}

Теперь и зарядник здоровья тоже пофиксили.

Казалось бы, что мелочь какую-то фиксили, но всё же надо было, чтобы всё правильно выглядело для игрока



Похожие1. учёные не отставали - Как сделать так, чтобы учёные не отставали на каждом препятствии
2. Создание сценариев - Для создания сценариев (aka скриптов) в Half-Life существуют две энтити: scripted_sequence и scripted_sentence. Первая отвечает за движения, выполняемые монстром/персонажем, будь то ходьба, бег, нажатие кнопки, тряска автомата с газировкой или почёсывание подбородка. Вторая служит для того, чтобы персонаж произнес какую-то фразу. При этом его голова повернётся в сторону слушателя, и рот будет открываться в соответствии с амплитудой звука.
Вы не можете комментировать, т.к. вы не зарегистрированы.
    Plumber
    Half-Life 2Plumber
    BLENDER в BSP
    Half-Life 2BLENDER в BSP
    The Lost Temple | Карта на прохождение
    Garrys modThe Lost Temple | Карта на прохождение
    В премодерации
    Half-LifeВ премодерации