Пятница, 24.11.2017, 17:58
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Оцените мой сайт
Всего ответов: 618

Начало » Статьи » Туториалы по программированию (HL1)

Два цвета крови у зомби

Ну вот. Проведя несколько несложных мыслительных операций и запоров три файла zombie.cpp, я наконец-то устроил так, чтобы при попадании в разные части тела зомби спавнилась разная по цвету кровь. Это реализованно в хл2: при стрельбе в голову(по крабу) с зомби брызжет зелёная кровь, а при стрельбе в тело - жёлтая в перемешку с красной. Чтобы у зомби в хл1 было нечто подобное надо открыть zombie.cpp и подключить туда новый заголовочный файл:

 
#include    "extdll.h"
#include    "util.h"
#include    "cbase.h"
#include    "monsters.h"
#include    "schedule.h"

#include        "weapons.h"
//Для задекларирования функции SpawnBlood

Далее нужно добавить в описание класса CZombie новую строчку:
 
// No range attacks
BOOL CheckRangeAttack1 ( float flDot, float flDist ) { return FALSE; }
BOOL CheckRangeAttack2 ( float flDot, float flDist ) { return FALSE; }
int TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType );

void TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType);
//Это и будет рисовать кровь

Потом, ниже после void CZombie :: HandleAnimEvent( MonsterEvent_t *pEvent ) воткните:
 
void CZombie::TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType)
{
    
    switch( ptr->iHitgroup)
    {
        case HITGROUP_CHEST:
//Грудь
            case HITGROUP_STOMACH:
//Живот
                case HITGROUP_LEFTLEG:
//Левая нога
                    case HITGROUP_RIGHTLEG:
//Правая нога
                        case HITGROUP_LEFTARM:
//Левая рука
                            case HITGROUP_RIGHTARM:
//Правая рука
                                case HITGROUP_GENERIC:
//Прочие хитгруппы
                                    SpawnBlood(ptr->vecEndPos, BLOOD_COLOR_RED, flDamage * 5.0);
// Спавнится красная кровь
                                break;
                            case HITGROUP_HEAD:
//Голова(Хедкраб)
                                SpawnBlood(ptr->vecEndPos, BLOOD_COLOR_YELLOW, flDamage * 5.0);
// Спавнится жёлтая кровь
                            break;
    }
    
    CBaseMonster::TraceAttack( pevAttacker, flDamage, vecDir, ptr, bitsDamageType );
}

После этого надо изменить параметр m_bloodColor = BLOOD_COLOR_GREEN; в void CZombie :: Spawn() на m_bloodColor = DONT_BLEED; чтобы не спавнилась жёлтая кровь по дефолту. На этом всё. Можно установить индивидуальный цвет крови для каждой хитгруппы, но как перевести цвет из RGB в халфовский формат цвета крови я не знаю, поэтому пока есть только два цвета.

ЗЫ. Сорри что немножко криво хитгруппы расписаны



Источник: http://www.hlfx.ru/forum/showthread.php?s=8332d886bea44b3d5ba7efc42cb1f496&threadid=700
Категория: Туториалы по программированию (HL1) | Добавил: DetLeR (17.08.2007) | Автор: Ku2zoff
Просмотров: 686 | Рейтинг: 1.0 |

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7