Sign up - or - Login

Recover password
×

To recover your password, you must enter the username or e-mail that you used during the registration. After that, a mail with a security code will be sent to your inbox.

Your username or e-mail :

AdamAdam

Мод о путешествии Фримена во времени...

20/04/2000
Stat ( comments ), pcs.

Фикс: func_healthcharger и func_recharger


  • Description
  • HOW TO INSTALL

Фикс: func_healthcharger

Фикс: func_healthcharger и func_recharger


Author/s of tutorial : Maxwel
Views : 1612 ( +1 )
Uploader : Streit
Created : 04/07/2011 9:07:39 PM
Source : http://www.hlfx.ru/forum
Rating :
 ( 0 ) 
Share :


Following translations are available : | russian |

Итак… Когда сравнить 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;
}

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

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



Similar1. Исходный код ножа - weapon_knife (Нож) с двумя режимами атаки: Slash и Stab.
2. Новые типы патронов - Каждый хоть раз добавлял в Хл новое оружие но ему не нравилось, что оно или слишком мощно стреляет или слишком слабо.
You cannot comment, because you are not logged-in.
    2 Flowers
    Half-Life 22 Flowers
    Content Warning (Раздача в Steam)
    Content Warning (Раздача в Steam)
    Hammerting (Раздача в GOG)
    Hammerting (Раздача в GOG)
    Islets (Раздача в EpicGamesStore)
    Islets (Раздача в EpicGamesStore)