HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Проблема с UTIL_BloodStream (https://hlfx.ru/forum/showthread.php?threadid=1572)
Отправлено [)r0n 06-11-2008 в 07:15:
Плиз хелп! Решил сделать, чтоб при попадании в противника, из того вылетала струя крови ( как в cs при хэдшотах) только капли почему-то разноцветные, помогите исправить?!

Отправлено XaeroX 06-11-2008 в 09:11:
Нда, так сложно почитать FAQ и посмотреть, как вставляются картинки с превьюшками. Ну просто архисложно вставляются.
Цитата:
[)r0n писал:
помогите исправить?!
Исправить что? Не вижу кода.__________________
Отправлено [)r0n 07-11-2008 в 02:37:
Да там кода нет, я просто в 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 ) |
3 | if ( !UTIL_ShouldShowBlood( color ) ) |
6 | if ( g_Language == LANGUAGE_GERMAN && color == BLOOD_COLOR_RED ) |
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 ); |
18 | WRITE_BYTE( min( amount, 255 ) ); |
Отправлено XaeroX 07-11-2008 в 10:45:
Такой глюк наблюдается из-за того, что функция использует индексированные цвета. А TE_BLOODSTREAM берет не конкретный индекс, и диапазон индексов. И помимо красного цвета, в диапазон попадают и другие цвета.
Возможно, у тебя покоцанный пиратами файл индексов (palette.lmp он кажется называется).
Попробуй вместо BLOOD_COLOR_RED писать число, отличающееся немного в ту или иную сторону (посмотри сначала, чему BLOOD_COLOR_RED равен), пока в диапазон не будут попадать только красные цвета.
__________________
Отправлено [)r0n 08-11-2008 в 11:54:
Пасиб за помощь, вот:

тока palette, как оказалось, тут не причем 
Отправлено XaeroX 08-11-2008 в 12:47:
А в чем была проблема?
__________________
Отправлено (_-=ZhekA=-_) 08-11-2008 в 14:31:
[)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
Отправлено Василь 08-11-2008 в 17:20:
Интересно как бы это смотрелось партиклями.
__________________
HomePage
YouTube
RIP - Defiler Unit
Отправлено [)r0n 09-11-2008 в 01:08:
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 ) |
3 | UTIL_BloodStream( vecSpot, UTIL_RandomBloodVector(), 71, RANDOM_LONG(50, 150) ); |
7 | UTIL_BloodStream( vecSpot, UTIL_RandomBloodVector(), bloodColor, RANDOM_LONG(50, 150) ); |
Сразу предупреждаю, я это писал в спирите, но как мне кажется должно работать везде.
Отправлено (_-=ZhekA=-_) 09-11-2008 в 10:38:
[)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