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

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

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

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

Residual PointResidual Point

Корейский мод про Чёрную Мезу...

5/10/2007
City_SPb v.1.2City_SPb v.1.2

Город Санкт-Петербург, будущее......

1/06/2011
Статистика ( по source исходникам модов ), шт.

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


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

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

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


Автор / ы урока : Ku2zoff
Просмотров : 3327 ( +3 )
Скачиваний : 0
Прислал / (а) : Streit
Дата создания : 07.04.2011 20:54:13
Источник : http://www.hlfx.ru/forum...
Рейтинг :
 ( 0 ) 
Поделиться :


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

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

Code:

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

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

Далее нужно добавить в описание класса CZombie новую строчку:

Code:

// 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 ) воткните:

Code:

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 в халфовский формат цвета крови я не знаю, поэтому пока есть только два цвета.

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



Похожие1. Изменяем классы монстров злой барн - Как известно, первое что хочет сделать начинающий кодер (по крайней так было у меня ) это написать какое-нибудь оружие и изменить монстров.
2. И снова наследование классов :) - Казалось бы тема наследования классов давно избита, ан нет всё ещё существуют вопросы, правда про чуть боле сложное наследование.
3. учёные не отставали - Как сделать так, чтобы учёные не отставали на каждом препятствии
4. Динамическое освещение - этой статье будет описан способ добавления динамических вспышек света, которые можно использовать для еффекта молнии
5. Цвет спрайтов HUD - Итак, как же сменить цвет спрайтов в HUD-системе
6. Как перекрасить пули в ХЛ - Здесь я вам расскажу, как можно перекрасить пули в Half-Life1 и приведу свой пример
7. Создание сценариев - Для создания сценариев (aka скриптов) в Half-Life существуют две энтити: scripted_sequence и scripted_sentence. Первая отвечает за движения, выполняемые монстром/персонажем, будь то ходьба, бег, нажатие кнопки, тряска автомата с газировкой или почёсывание подбородка. Вторая служит для того, чтобы персонаж произнес какую-то фразу. При этом его голова повернётся в сторону слушателя, и рот будет открываться в соответствии с амплитудой звука.
8. Как сделать старый 640 худ из 2560/1280 нового худа - сидел, думал как вернуть старые времена, додумал
Вы не можете комментировать, т.к. вы не зарегистрированы.
    METLKR (версия 1.0.0.11082026)
    Mass Effect 2METLKR (версия 1.0.0.11082026)
    PawnHighLight v. 1.1
    Unreal Tournament 99PawnHighLight v. 1.1
    сейв с обновлением
    Half-Life 2сейв с обновлением
    сейв "турель 19 "отомщение""
    Half-Life 2сейв