Статистика по очкам ( Общая )
Фикс: func_healthcharger и func_recharger
Фикс: func_healthcharger
Фикс: func_healthcharger и func_recharger
Автор / ы урока : Maxwel Просмотров : 1969 ( +1 ) Прислал / (а) : 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, ищем вот этот текст:
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;
}
тут нам стоит доработать условие, при котором проигрывается звук отказа, чтобы оно приходило в истину ещё и когда игрок полностью заряжен. Условие заряжености игрока формулируется так:
pActivator->pev->armorvalue == 100
то есть, у нас должно получится вот что:
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
Ищем текст:
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;
}
Добавляем ещё одно условие:
pActivator->pev->health == 100
(обратите внимание, тут используем не задефайненное значение, а точное 100)
Получим:
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. weapon_flamethrower - Играя в Халф-Лайф, вы не задумывались над тем, что в нем чего-то не хватает? Чего-то очень близкого, родного, горячего... 2. Изменяем классы монстров злой барн - Как известно, первое что хочет сделать начинающий кодер (по крайней так было у меня ) это написать какое-нибудь оружие и изменить монстров. 3. Два цвета крови у зомби - Два цвета крови у зомби 4. Подбираемый фонарик v 2.5 - Подбираемый фонарик v 2.5 5. Летающие бочки и trigger_push - Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются. 6. Переключение оружия a la HL2 - Мне не нравится, как переключается оружие в ХЛ. Может, кому-то и интересно тыкать по менюшкам худа, но мне больше нравится реализация переключения в Unreal RTN, Quake Mission Packs и HL2 7. Функции движка - как и для чего - Функции движка - как и для чего их использовать? 8. Создание сценариев - Для создания сценариев (aka скриптов) в Half-Life существуют две энтити: scripted_sequence и scripted_sentence. Первая отвечает за движения, выполняемые монстром/персонажем, будь то ходьба, бег, нажатие кнопки, тряска автомата с газировкой или почёсывание подбородка. Вторая служит для того, чтобы персонаж произнес какую-то фразу. При этом его голова повернётся в сторону слушателя, и рот будет открываться в соответствии с амплитудой звука. 9. Sparks - Как добавить искры
Вы не можете комментировать, т.к. вы не зарегистрированы.