HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Проблема с UTIL_BloodStream
странный цвет крови
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
[)r0n
Житель форума

Дата регистрации: Apr 2008
Проживает: (void)
Сообщений: 161

Рейтинг



Плиз хелп! Решил сделать, чтоб при попадании в противника, из того вылетала струя крови ( как в cs при хэдшотах) только капли почему-то разноцветные, помогите исправить?!

Сообщить модератору | IP: Записан
Сообщение: 39063

Старое сообщение 06-11-2008 07:15
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35072
Нанёс повреждений: 515 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Нда, так сложно почитать FAQ и посмотреть, как вставляются картинки с превьюшками. Ну просто архисложно вставляются.

Цитата:
[)r0n писал:
помогите исправить?!

Исправить что? Не вижу кода.

__________________

Сообщить модератору | IP: Записан
Сообщение: 39065

Старое сообщение 06-11-2008 09:11
-
[)r0n
Житель форума

Дата регистрации: Apr 2008
Проживает: (void)
Сообщений: 161

Рейтинг



Да там кода нет, я просто в weapon.cpp в void SpawnBlood после

C++ Source Code:
UTIL_BloodDrips( vecSpot, g_vecAttackDir, bloodColor, (int)flDamage );

дописал
C++ Source Code:
UTIL_BloodStream( vecSpot, UTIL_RandomBloodVector(), BLOOD_COLOR_RED, RANDOM_LONG(50, 150) );


Добавлено 07-11-2008 в 05:32:

P.S. прочитал я твой FAQ доволен?

Добавлено 07-11-2008 в 05:37:

Так вот, как видно из скриншота "брызги" крови разноцветные, а не просто красные. Вот это надо исправить, вопрос только в том, как это сделать.

А вот код UTIL_BloodStream найденный в util.cpp

C++ Source Code:
1
void UTIL_BloodStream( const Vector &origin, const Vector &direction, int color, int amount )
2
{
3
  if ( !UTIL_ShouldShowBlood( color ) )
4
    return;
5
 
6
  if ( g_Language == LANGUAGE_GERMAN && color == BLOOD_COLOR_RED )
7
    color = 0;
8
 
9
  MESSAGE_BEGIN( MSG_PVS, SVC_TEMPENTITY, origin );
10
  WRITE_BYTE( TE_BLOODSTREAM );
11
  WRITE_COORD( origin.x );
12
  WRITE_COORD( origin.y );
13
  WRITE_COORD( origin.z );
14
  WRITE_COORD( direction.x );
15
  WRITE_COORD( direction.y );
16
  WRITE_COORD( direction.z );
17
  WRITE_BYTE( color );
18
  WRITE_BYTE( min( amount, 255 ) );
19
  MESSAGE_END();
20
}

Сообщить модератору | IP: Записан
Сообщение: 39077

Старое сообщение 07-11-2008 02:37
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35072
Нанёс повреждений: 515 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


Такой глюк наблюдается из-за того, что функция использует индексированные цвета. А TE_BLOODSTREAM берет не конкретный индекс, и диапазон индексов. И помимо красного цвета, в диапазон попадают и другие цвета.
Возможно, у тебя покоцанный пиратами файл индексов (palette.lmp он кажется называется).
Попробуй вместо BLOOD_COLOR_RED писать число, отличающееся немного в ту или иную сторону (посмотри сначала, чему BLOOD_COLOR_RED равен), пока в диапазон не будут попадать только красные цвета.

__________________

Сообщить модератору | IP: Записан
Сообщение: 39082

Старое сообщение 07-11-2008 10:45
-
[)r0n
Житель форума

Дата регистрации: Apr 2008
Проживает: (void)
Сообщений: 161

Рейтинг



Пасиб за помощь, вот:



тока palette, как оказалось, тут не причем

Отредактировано [)r0n 08-11-2008 в 12:00

Сообщить модератору | IP: Записан
Сообщение: 39097

Старое сообщение 08-11-2008 11:54
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35072
Нанёс повреждений: 515 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


А в чем была проблема?

__________________

Сообщить модератору | IP: Записан
Сообщение: 39098

Старое сообщение 08-11-2008 12:47
-
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 4066
Возраст: 37

Рейтинг



[)r0n
Прикольная фича ))) Напиши тутор, если не сложно

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

Сообщить модератору | IP: Записан
Сообщение: 39104

Старое сообщение 08-11-2008 14:31
- За что?
Василь
Житель форума

Дата регистрации: Jul 2008
Проживает: Быково
Сообщений: 287
Возраст: 34

Рейтинг



Интересно как бы это смотрелось партиклями.

__________________
HomePage
YouTube
RIP - Defiler Unit

Сообщить модератору | IP: Записан
Сообщение: 39109

Старое сообщение 08-11-2008 17:20
- За что?
[)r0n
Житель форума

Дата регистрации: Apr 2008
Проживает: (void)
Сообщений: 161

Рейтинг



to XaeroX

В общем, решил посмотреть на палитру файла palette.bmp, увидел это:



В этой палитре каждый цвет имеет индекс, а BLOOD_COLOR_RED равен 247, тоесть берет цвет из самого низа палитры, а там кроме красного еще есть и другие цвета. Корче, palette не битый, он так задуман . А вот насчет диапазона TE_BLOODSTREAM ты оказался прав, из-за того, что он слишком большой туда все эти цвета из конца палитры попадают. В общем, выбрал цвет с индексом 71, с ним все работает.

to (_-=ZhekA=-_)

Там кода почти нет, идешь в weapon.cpp там в void SpawnBlood пишем:

C++ Source Code:
1
if ( bloodColor == BLOOD_COLOR_RED )
2
{
3
  UTIL_BloodStream( vecSpot, UTIL_RandomBloodVector(), 71, RANDOM_LONG(50, 150) );
4
}
5
else
6
{
7
  UTIL_BloodStream( vecSpot, UTIL_RandomBloodVector(), bloodColor, RANDOM_LONG(50, 150) );
8
}


Сразу предупреждаю, я это писал в спирите, но как мне кажется должно работать везде.

Отредактировано [)r0n 09-11-2008 в 01:19

Сообщить модератору | IP: Записан
Сообщение: 39121

Старое сообщение 09-11-2008 01:08
- За что?
(_-=ZhekA=-_)
Житель форума

Дата регистрации: Jan 2006
Проживает: Москва
Сообщений: 4066
Возраст: 37

Рейтинг



[)r0n
Cпасибо

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png

Сообщить модератору | IP: Записан
Сообщение: 39133

Старое сообщение 09-11-2008 10:38
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 04:39. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Проблема с UTIL_BloodStream
странный цвет крови
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024