HLFX.Ru Forum
Показать все 70 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Кастомные декали паранои (https://hlfx.ru/forum/showthread.php?threadid=2010)


Отправлено ToMMuK 14-11-2009 в 19:04:

Кастомные декали паранои

Собственно, перерыл весь клиент, ничего стояшего так и ненашёл. Так всё таки почему эти декали не рисуються на ентитях?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено PoD-Stas 14-11-2009 в 20:34:

Ух я эту проблему давно разжевывал.. и даже обьяснял.
в коде не предусмотрена работа этих декалей с энтитями. Лучше спроси у Buzer'a. Я уже особо не помню код как там все реализовано, хотя тчо то пытался сделать)


Отправлено ToMMuK 14-11-2009 в 23:59:

Собственно вот ещё такая проблемка нарисовалась, в общем-то решил зделать чтобы в зависимости от поверхности рисовались разные декали, что получилось можно увидеть в аттаче, такой баг есть на всех текстурах где используються не деф. декали(в нашем случае это те которые мааленькие точечки такие), если это стена то сверху на паре юнитах будет другая декаль, если пол то по обоим сторонам наблюдаеться таже фигня.

Вот сам код проверки текстуры :

C++ Source Code:
1
entity = gEngfuncs.pEventAPI->EV_IndexFromTrace( pTrace );
2
 
3
// FIXME check if playtexture sounds movevar is set
4
//
5
 
6
chTextureType = 0;
7
 
8
// Player
9
if ( entity >= 1 && entity <= gEngfuncs.GetMaxClients() )
10
{
11
  // hit body
12
  chTextureType = CHAR_TEX_FLESH;
13
}
14
else if ( entity == 0 )
15
{
16
  // get texture from entity or world (world is ent(0))
17
  pTextureName = (char *)gEngfuncs.pEventAPI->EV_TraceTexture( pTrace->ent, vecSrc, vecEnd );
18
 
19
  if ( pTextureName )
20
  {
21
    strcpy( texname, pTextureName );
22
    pTextureName = texname;
23
 
24
    // strip leading '-0' or '+0~' or '{' or '!'
25
    if (*pTextureName == '-' || *pTextureName == '+')
26
    {
27
      pTextureName += 2;
28
    }
29
 
30
    if (*pTextureName == '{' || *pTextureName == '!' || *pTextureName == '~' || *pTextureName == ' ')
31
    {
32
      pTextureName++;
33
    }
34
 
35
    // '}}'
36
    strcpy( szbuffer, pTextureName );
37
    szbuffer[ CBTEXTURENAMEMAX - 1 ] = 0;
38
 
39
    // get texture type
40
    chTextureType = PM_FindTextureType( szbuffer );
41
  }
42
}
43
 
44
pe = gEngfuncs.pEventAPI->EV_GetPhysent( pTrace->ent );

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 15-11-2009 в 08:47:

ToMMuK а ты, наблюдательный
Всего через три года заметил!
Декали надо крепить мовевитчем на клиенте.
А насчет скрина - не понял в чем проблема.
Кастомные декали строго одного типа - только на стеклах, да и то хаком.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PoD-Stas 15-11-2009 в 10:23:

ToMMuK не рационально ты сделал=/ смотри код который я писал еще года два назад в неофициальном патче жеки... там такого уг нету =D


Отправлено ToMMuK 15-11-2009 в 11:15:

Цитата:
PoD-Stas писал:
ToMMuK не рационально ты сделал=/ смотри код который я писал еще года два назад в неофициальном патче жеки... там такого уг нету =D
Где сие чудо можно откопать?

Дядя Миша а разьве два разных типа на одной текстуре это нормально, когда должен быть только один?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено PoD-Stas 15-11-2009 в 12:12:

http://www.sendspace.com/file/v7enow вот тут похоже.


Отправлено ToMMuK 15-11-2009 в 13:04:

Спасибо, но всё равно не помогает сама параноя видит другую текстуру.

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено PoD-Stas 15-11-2009 в 14:38:

странно попробуй в мэппинге другие приемы


Отправлено ToMMuK 15-11-2009 в 18:56:

Цитата:
Дядя Миша писал:
Декали надо крепить мовевитчем на клиенте.


Насколько я помню, мовевитч на сервере Сосбно как?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено PoD-Stas 15-11-2009 в 19:17:

ToMMuK декали - клиентский эффект


Отправлено ToMMuK 15-11-2009 в 19:25:

Цитата:
PoD-Stas писал:
ToMMuK декали - клиентский эффект


Мовевитч всё равно на сервере

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 16-11-2009 в 09:31:

Цитата:
ToMMuK писал:
а разьве два разных типа на одной текстуре это нормально, когда должен быть только один?

как определил что должен? там же набор рандомных декалей.
Цитата:
ToMMuK писал:
Насколько я помню, мовевитч на сервере Сосбно как?

так сделай мовевитч на клиенте. Специально для декалей.
Это намного проще, чем иммитация констрайнтов на сервере.
Декали нисчем не коллидятся, клиент тчинкает каждый кадр - лафа, а не мовевитч.
Даю подсказку - тебе поможет код крепления мазл-флэша в func_tank.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 16-11-2009 в 10:57:

Цитата:
Дядя Миша писал:
как определил что должен? там же набор рандомных декалей.


Ну как, как, проверяю по текстуре, если текстура относиться к металу то он ставит декаль метала, если бетон то декальку бетона

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 16-11-2009 в 12:11:

ToMMuK так мож у тебя конкретно с определением материалов - лажа? Или оно все декали подряд ставит на какой-то материал?
Признавайся что ты там натворил.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено PoD-Stas 16-11-2009 в 13:23:

Дядя Миша не у него там стандартный баг халфы, когда рядом два браша с разными материалами, и бывает когда стреляешь по одному и другому, раздается звук противолежащего=) как-то так. ну а поскольку расстановку декалей по своим материалам он устроил средствами стандартными, то получается что и баг переносится.


Отправлено Дядя Миша 16-11-2009 в 18:54:

PoD-Stas так оно и в параное есть?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 16-11-2009 в 19:47:

Дядя Миша ага, просто материал определяеться как у рядом стоящего браша в общем нужно от этого как-то избавляться

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Ku2zoff 17-11-2009 в 07:10:

>>ToMMuK так мож у тебя конкретно с определением материалов - лажа? Или оно все декали подряд ставит на какой-то материал?
Признавайся что ты там натворил.

>>Дядя Миша ага, просто материал определяеться как у рядом стоящего браша в общем нужно от этого как-то избавляться

ToMMuK сделай определение типа материалов на клиенте и не парься. Сразу куча халфовских багов пропадёт, в частности "неопределение вообще" типа текстуры при компиляции в Release.


Отправлено ToMMuK 17-11-2009 в 09:28:

Цитата:
Ku2zoff писал:
ToMMuK сделай определение типа материалов на клиенте и не парься. Сразу куча халфовских багов пропадёт, в частности "неопределение вообще" типа текстуры при компиляции в Release.


Оно и так на клиенте сделано

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 17-11-2009 в 10:42:

Цитата:
Ku2zoff писал:
сделай определение типа материалов на клиенте и не парься

Смеялсо. ЖЖЖОТИ. На клиенте - какая-то особая, уличная магия?
Я бы вам помог, но хоть убей не могу понять об чем речь.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 17-11-2009 в 11:05:

Дядя Миша может быть, народ верит, что на клиенте другие браши и другие функции трейсов?

__________________

xaerox on Vivino


Отправлено ToMMuK 17-11-2009 в 11:27:

Цитата:
Дядя Миша писал:
Я бы вам помог, но хоть убей не могу понять об чем речь.


Речь, о том что он верх браша последние юнитов 5 определяет как другой материал, в данном случае бетона, хотя текстура там всё ещ металическая

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 17-11-2009 в 11:55:

ToMMuK ну это все очень абстрактно.
А ты не мог бы картинку приложить с пояснениями?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 17-11-2009 в 14:01:

Можно и картинку

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено XaeroX 17-11-2009 в 14:19:

ToMMuK теперь, плиз, сделай картинку с пояснением, что не так на этой картинке.

__________________

xaerox on Vivino


Отправлено ToMMuK 17-11-2009 в 16:34:

Вот оно готово может проблема в том что он передаёт неправильный vecSrc?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 17-11-2009 в 18:36:

ToMMuK ну я тебе на это что могу сказать.
1. у тебя там не просто соседние стенки, а УГОЛ - а это совершенно другое дело.
2. какую конкретно функцию ты юзаешь для определения материала?
TraceTexture или TraceLine ?
3. на клиенте траса принимает в качестве второго параметра направление, а не конечную точку. Бузер их вечно путал (вот и в дождике Бузера накосячил). Может быть здесь - тожы самое?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 17-11-2009 в 18:54:

1. Рамка между дверью и стеной - энтитя, их мы пропускаем, т.к нерисуем на них декали )

2. TraceTexture

3. Что есть направление?

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 17-11-2009 в 19:04:

ToMMuK скин сюда код трассы декалей.
Только я тебя очень прошу - в аттаче, не выкладывай в посте.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 17-11-2009 в 19:11:

Вот тута всё что надо

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Дядя Миша 18-11-2009 в 10:15:

ToMMuK там у трассы джиттер примерно в пять юнитов получается.
А декали ставяться через раз, может в этом все дело?
Чему равны flSpreadX, flSpreadY ? Попробуй их занулить для теста.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ToMMuK 18-11-2009 в 10:33:

flSpreadX = 0.00
flSpreadY = 0.01, чаще 0.00, ну или -0.01

Даже если их обнулять, всё равно тот же эффект

__________________
Сайт латвийского мода

Игроки в халф лайф делятся на две больше группы - те, кто не доехал на поезде и те, кто прошел несколько раз.


Отправлено Lev 05-04-2012 в 06:57:

Извиняюсь за поднятие старой темы, просто мне тоже интересно из-за чего так путает декали - я в принципи кое-какую закономерность нашёл


Отправлено Lev 05-04-2012 в 07:00:

Вот


Отправлено Дядя Миша 05-04-2012 в 12:02:

Ну вот ты сам и ответил на свой вопрос - звучит звук попадания в дерево и там же выбирается "деревянная декаль".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 05-04-2012 в 12:27:

Я имел в виду при каких условиях - как я понимаю, пуля ''трейслайн'' пролетает мимо ящика и попадает куда надо, а вот ''TraceTexture'' в момент полёта таки задевает первую попавшуюся текстуру (этот самый ящик), определяет её, и рисует в конечной точке трейслайна декаль, соответствующую этой текстуре - я правильно мыслю?


Отправлено Дядя Миша 05-04-2012 в 14:47:

Я без понятия как конкретно этот механизм устроен, но скажу, что TRACE_TEXTURE работает со вполне конкретной энтитью. То есть ей нельзя просто пустить трассу, чтобы она нашла первую энтить на пути.
Нет, ей надо указать именно ту энтить, в которую упёрлась твоя трасса от выстрела. И вот именно её она будет трейсить. Такие дела.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 05-04-2012 в 14:58:

Может её можно заменить на трейслайн - только я не знаю как с помощью него устроить проверку.


Отправлено Дядя Миша 05-04-2012 в 15:11:

Нет, тут не всё так просто. Тут надо разбираться как следует.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 10-04-2012 в 17:47:

В ev_hldm есть функция определения звука удара пуль об определённую поверхность - EV_HLDM_PlayTextureSound, от туда же рисуестся вот такой эффект (обычный SmokePuff)

if ( pe && pe->solid == SOLID_BSP )
{
CObject *pObj = new CSmokePuff( ptr->endpos, ptr->plane.normal, 0.8, 0.2, spd_min, spd_max, 10, 20, spd_side, 0.4, 0.27, 0.14 );
g_objmanager.AddObject(pObj);
} - сам эффект записан в triapiobjects.cpp. Я хотел там сделать свой (искры для металла), но как его правильно написать на клиенте я не знаю - просто чтоб спрайт появлялся и исчезал. Подскажите пожалуйста, как это можно сделать?


Отправлено Lev 23-04-2012 в 09:01:

Сделал на сервере черес мессагу, думал в combat.cpp в конце функции FireBulletsPlayer поставить, только как рисовать его в месте попадания пули не знаю. Если так - UTIL_Richo( pev->origin ) - то не подходит, хотя и работает. Вот мессага

void UTIL_Richo( const Vector &position )
{
MESSAGE_BEGIN( MSG_PAS, SVC_TEMPENTITY, position );
WRITE_BYTE( TE_SPRITE );
WRITE_COORD( position.x );
WRITE_COORD( position.y );
WRITE_COORD( position.z );
WRITE_SHORT( g_sModelIndexRicho );
WRITE_BYTE( 1 );
WRITE_BYTE( 100 );
MESSAGE_END();
} - может кто знает, какие параметры нужно поставить?


Отправлено Дядя Миша 23-04-2012 в 11:19:

Ну искр не будет при таком подходе-то.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 23-04-2012 в 16:35:

Ну я имел в виду не SPARKS а просто спрайт искры, просто чтоб появлялся и исчезал. Вот так - UTIL_Richo( pev->origin ) - работает, но рисует спрайт не в точке попадания пули, а прямо под игроком.


Отправлено KiQ 23-04-2012 в 17:24:

Так надо не pev->origin, а trace_entity->pev->origin хотя бы, но тоже фигня, будет рисоваться только на энтитях и в точке оригина. Надо вектор трейса совать.

__________________
-Brain is dead-


Отправлено Дядя Миша 23-04-2012 в 17:28:

какие координаты задал - там и будет рисовать. Или ты до сих пор этого не понял?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 23-04-2012 в 17:34:

Дядя Миша так pev->origin это и есть ноги игрока. Или это не мне?

__________________
-Brain is dead-


Отправлено Дядя Миша 23-04-2012 в 17:41:

KiQ когда я отвечал - твоего поста еще не было.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 23-04-2012 в 17:57:

Как это можно сделать?


Отправлено Lev 24-04-2012 в 18:58:

Посмотрел в туторе Ku2zoff-а, и сделал на клиенте вот так

gEngfuncs.pEfxAPI->R_SparkShower( ptr->endpos );
gEngfuncs.pEfxAPI->R_MuzzleFlash( ptr->endpos, 15 ); - неплохо смотрится


Отправлено marikcool 06-06-2012 в 06:03:

только вспомнил, кстати про трейсы, если бегать по краю браша звучащей текстуры (например метал) то будет звук шагов по земле, неправильный трэйс вообщем.

хорошо проверяется на карте de_nuke со стороны терров, залезаем на ангар и бегаем по краю.


Отправлено Ku2zoff 06-06-2012 в 06:54:

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


Отправлено marikcool 06-06-2012 в 08:29:

Цитата:
Ku2zoff писал:
marikcool линия трейса точечная же. Пусть у тебя хоть два браша звучащей текстуры, а между ними щель в пару юнитов, трейсить будет именно щель, то есть по центру игрока. Можно конечно приделать аттачменты к ногам модели и трейсить для каждой ноги отдельно, но геморно же.

надо трейсить от краев ббокса тогда(4 точки), минимальной длины трейс и будет наша повехность(длина 0 получается), далее затрейсить из этой точки трэйстекстуру. наверно так, впринципе можно пофиксить.


Отправлено qpAHToMAS 06-06-2012 в 08:35:

Ku2zoff а эта линия идет от центра игрока вниз до его ног? Т.е. обрывается прямо в месте где его игрок (его ноги как бы) стыкуется с землей?


Отправлено Дядя Миша 06-06-2012 в 09:02:

в первохалфе принципиально отсутствует возможность трейсить текстуры ббоксом. Из-за того же клипноды никак не связаны с поверхностями.
А по обычному дереву можно трейсить только точечный хулл.
Ну да никто не мешает сделать несколько трейсов

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 06-06-2012 в 09:56:

>приделать аттачменты к ногам модели и трейсить для каждой ноги отдельно

и декалсы следов рисовать как в mech warrior. было бы круто.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Ku2zoff 06-06-2012 в 12:12:

Цитата:
qpAHToMAS писал:
Ku2zoff а эта линия идет от центра игрока вниз до его ног?

Ну выходит она из ориджина игрока, то есть ровно посерединке модели. А вот какой длины не знаю, надо pm_shared глядеть.
Цитата:
thambs писал:
и декалсы следов рисовать

Неплохая идея. По трейсу из каждой ноги не такая уж и нагрузка на современный процессор.


Отправлено marikcool 06-06-2012 в 14:39:

Цитата:
Ku2zoff писал:
Неплохая идея. По трейсу из каждой ноги не такая уж и нагрузка на современный процессор.

тогда уже и сделать проигрывание звука наступления ногой в нижней точкой атачемента) отдельно звуки на левую и правую ногу.


Отправлено Дядя Миша 06-06-2012 в 14:59:

А ничего что анимация игрока не проигрывается на сервере?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено marikcool 06-06-2012 в 16:09:

Цитата:
Дядя Миша писал:
А ничего что анимация игрока не проигрывается на сервере?

пусть играет на клиенте, звуки же на клиентке играются.


Отправлено Дядя Миша 06-06-2012 в 16:23:

У нас народ при слове "клиент" привычно впадает в ступор )

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 06-06-2012 в 16:30:

Цитата:
Дядя Миша писал:
А ничего что анимация игрока не проигрывается на сервере?

Так вроде же и звуки шагов тож на клиенте играются. Если чего-нибудь намудрить в pm_shared и не перекомпилить клиент, будут глюки.


Отправлено Lev 07-06-2012 в 08:59:

Давно хотел спросить - а можно заставить декали рисоваться на брекаблях - они же всё равно не двигаются?


Отправлено marikcool 07-06-2012 в 09:06:

Цитата:
Lev писал:
Давно хотел спросить - а можно заставить декали рисоваться на брекаблях - они же всё равно не двигаются?

Они помоему и так рисются, в стекло постреляй дырки будут.


Отправлено Lev 07-06-2012 в 09:09:

Нет - не будут - если только в простое стекло - не брекабл


Отправлено Дядя Миша 07-06-2012 в 14:04:

http://hlfx.ru/forum/showthread.php?s=&threadid=2534

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Lev 09-06-2012 в 05:53:

У меня там так и написано


Отправлено Sigurth 24-08-2016 в 07:43:

Прошу прощения за поднятие старой темы. Случайно наткнулся на неё в поиске. Как я понял, проблема с кривым трейсом текстуры не была решена. Я недавно столкнулся с такой же проблемой, когда решил сделать разные декали для материалов, и когда положил на карту длинную деревянную доску с повернутой текстурой на ~30 градусов, то обнаружил тот же баг. Я так предполагаю, что TraceTexture упирается не в браш, а в текстуру. А текстура как бы "вылазит" за пределы браша, если, например, масштаб её увеличен, или она повёрнута. Но это лишь предположение, я понятия не имею, как работает эта функция. Короче, я исправил этот баг маленьким хаком. Приведу просто фрагмент кода. Делал на сервере.

C++ Source Code:
1
if (pEntity && pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE)
2
  // hit body
3
chTextureType = CHAR_TEX_FLESH;
4
else
5
{
6
 
7
  // Sigurth: вся соль тут. Вместо vecSrc используем ptr->vecEndPos, всё остальное оригинальный код
8
  //vecSrc.CopyToArray(rgfl1);
9
  (ptr->vecEndPos).CopyToArray(rgfl1);
10
  vecEnd.CopyToArray(rgfl2);
11
 
12
  // get texture from entity or world (world is ent(0))
13
  if (pEntity)
14
    pTextureName = TRACE_TEXTURE( ENT(pEntity->pev), rgfl1, rgfl2 );
15
  else
16
    pTextureName = TRACE_TEXTURE( ENT(0), rgfl1, rgfl2 );


Короче говоря, мы просто начинаем трейс буквально у его конца, тем самым минуя другие браши. Вот таким вот образом можно избежать ~99% появлений этого бага. По крайней мере, у себя я его больше не встречал.


Отправлено Дядя Миша 24-08-2016 в 13:54:

Во второй параное материалы круче

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено KiQ 24-08-2016 в 16:21:

Дядя Миша а билд будет?

__________________
-Brain is dead-


Временная зона GMT. Текущее время 11:12.
Показать все 70 сообщений этой темы на одной странице

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