HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 166 167 168 169 [170] 171 172 173 174 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Chyvachok писал:
cl_entity_s *gun = gEngfuncs.GetViewModel(); и заработало.

Учти, луч берёт углы от вьюмодели. То есть такое годится только для эффекта от первого лица. Если захочется рисовать от третьего, например другим игрокам в мультиплеере, получится бред.

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

Старое сообщение 26-10-2020 19:57
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1844

Рейтинг



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

Я смотрел код лучевой пушки из ХДМ-а, там аж 3 мессаги у оружия, одна для звука выстрела и анимации, потом отдельной мессагой рисуется луч, и третим эффект попадания. У меня все в одной мессаге.

Вот, видно где прицел: https://imgur.com/a/KeGnp7F
Вблизи оно не так бросается в глаза: https://imgur.com/a/WMpiKTq

По поводу отрисовки от 3 лица, if ( EV_IsLocal( idx ) ) вроде как проверяет игрок от 1 лица или от 3?

Сам код выглядит так, не знаю насколько он ужастно написан:

code:
void EV_BlasterSniperFire( event_args_t *args ) { int idx, iFireMode/*, m_iMuzzleFlash*/; vec3_t origin, angles, vecSrc, vecEnd, forward, right, up; pmtrace_t tr; const struct cl_entity_s *gun = gEngfuncs.GetViewModel(); static char decalname[ 32 ]; idx = args->entindex; VectorCopy( args->origin, origin ); VectorCopy( args->angles, angles ); iFireMode = args->iparam1; AngleVectors( angles, forward, right, up ); EV_GetGunPosition( args, vecSrc, origin ); VectorMA( vecSrc, 8192, forward, vecEnd ); // if ( iFireMode == 0 ) // { int m_iRing, m_iGlow, m_iBeam/*, m_iBalls*/; m_iBeam = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/laserbeam.spr" ); //m_iBalls = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/blaster_spark.spr" ); m_iGlow = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/blaster_flash.spr" ); m_iRing = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/blaster_wall_ring.spr" ); // Store off the old count gEngfuncs.pEventAPI->EV_PushPMStates(); // Now add in all of the players. gEngfuncs.pEventAPI->EV_SetSolidPlayers ( idx - 1 ); gEngfuncs.pEventAPI->EV_SetTraceHull( 2 ); gEngfuncs.pEventAPI->EV_PlayerTrace( vecSrc, vecEnd, PM_STUDIO_BOX, -1, &tr ); /*gEngfuncs.pEfxAPI->R_BeamEntPoint( idx | 0x1000, tr.endpos, m_iBeam, 0.1, 1.0, 0.0, 250, 0, 0, 0, 0, 255, 128 );*/ g_pRenderManager->AddSystem(new CRSSprite((float*)&gun->attachment[0], m_iGlow, kRenderTransAdd, 0,255,128, 1.0, -1.2, 2.0, 16.0, 2.0)); g_pRenderManager->AddSystem(new CRSBeam((float*)&gun->attachment[0], tr.endpos, m_iBeam, kRenderTransAdd, 0,255,128, 1.0, -1.2, 0.1, 8.0, 0.0)); //beam effect // g_pRenderManager->AddSystem(new CPSFlatTrail((float*)&gun->attachment[0], tr.endpos, m_iRing, kRenderTransAdd, 255,255,255, 1.0, -0.75, 0.1, 4.0, 16.0, 0.0)); //matrix/HLWE gauss style rings gEngfuncs.pEfxAPI->R_BeamPoints((float*)&gun->attachment[0], tr.endpos, m_iBeam, 0.25f, 0.25, 0.0f, 0.25f, 10.0, 0, 30, 0,255,128); //Tyne Beam //We hit something if ( (tr.fraction < 1.0) && (gEngfuncs.PM_PointContents( tr.endpos, NULL ) != CONTENTS_SKY)) { gEngfuncs.pEfxAPI->R_BulletImpactParticles( tr.endpos ); gEngfuncs.pEventAPI->EV_PlaySound( -1, tr.endpos, 0, "weapons/blaster_spritesmall.wav", 1.0, ATTN_NORM, 0, PITCH_NORM ); /*{ vec3_t fwd; VectorAdd( tr.endpos, tr.plane.normal, fwd ); gEngfuncs.pEfxAPI->R_Sprite_Trail( TE_SPRITETRAIL, tr.endpos, fwd, m_iBalls, 3, 0, 8 / 32.0, 32, 255, 200 ); }*/ physent_t *pe = gEngfuncs.pEventAPI->EV_GetPhysent( tr.ent ); //Not the world, let's assume we hit something organic ( dog, cat, uncle joe, etc ). if ( pe->solid != SOLID_BSP ) { g_pRenderManager->AddSystem(new CRSSprite((float*)&gun->attachment[0], m_iGlow, kRenderTransAdd, 0,255,128, 1.0, -1.2, 2.0, 16.0, 2.0)); //CObject *pObjRing = new CBlasterRing( tr.endpos, tr.plane.normal, 0.5, 1, 10, "sprites/blaster_wall_ring.spr" ); //g_objmanager.AddObject(pObjRing); } else { //CObject *pObjRing = new CBlasterRing( tr.endpos, tr.plane.normal, 0.5, 1, 10, "sprites/blaster_wall_ring.spr" ); //g_objmanager.AddObject(pObjRing); vec3_t normal, spot; VectorCopy(tr.plane.normal, normal); VectorAdd(tr.endpos, normal, spot); normal[0] *= -1; normal[1] *= -1; VectorAngles(normal, angles); g_pRenderManager->AddSystem(new CRenderSystem(tr.endpos, angles, m_iRing, kRenderTransAdd, 255,255,255, 1.0,-2.0, 16.0,64, 0.0)); if ( CVAR_GET_FLOAT( "r_decals" ) ) { int rnd = gEngfuncs.pfnRandomLong( 0, 4 ); sprintf( decalname, "{bigshot%i", rnd + 1 ); gEngfuncs.pEfxAPI->R_DecalShoot( gEngfuncs.pEfxAPI->Draw_DecalIndex( gEngfuncs.pEfxAPI->Draw_DecalIndexFromName( decalname ) ), gEngfuncs.pEventAPI->EV_IndexFromTrace( &tr ), 0, tr.endpos, 0 ); } } } gEngfuncs.pEventAPI->EV_PopPMStates(); //Only play the weapon anims if I shot it. if ( EV_IsLocal( idx ) ) { //V_PunchAxis( 0, gEngfuncs.pfnRandomFloat( -1.2, 1.2 ) ); gEngfuncs.pEventAPI->EV_WeaponAnimation ( BLASTER_SNIPER_FIRE, 1 ); } gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/blaster_unzoom_fire.wav", 1, ATTN_NORM, 0, 100 ); /*} else { }*/ }

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

Старое сообщение 26-10-2020 21:34
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Chyvachok писал:
с этим клиентом я кстати заметил еще проблему, трасса на клиенте с сервером расходится

А с каким клиентом не расходится?
Цитата:
Chyvachok писал:
По поводу отрисовки от 3 лица, if ( EV_IsLocal( idx ) ) вроде как проверяет игрок от 1 лица или от 3?

Да, проверяет. Поэтому, когда эвент нелокальный, vecSrc должен быть EV_GetGunPosition. А когда локальный, то &gun->attachment[0].

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

Старое сообщение 27-10-2020 07:03
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Цитата:
Aynekko писал:
Вопрос такой, задаю звук текстурам в materials.txt и при добавлении очередной текстуры у предыдущей звук снова сменился на generic, хотя она прописана. Если удалить новую текстуру из списка, то к предыдущей звук возвращается.
Написано, что лимит в файле 512, хотя строчек в файле около 300 - я уже не говорю про то, что между ними пробелы даже есть.
Опытным путем заметил, что можно заставить обе эти текстуры звучать, если удалить еще какие-то строчки. То есть явно идет упор в лимит. Почему, и как его обойти?

Собственно, я полез ковыряться, но ничего не получилось (не сломалось, но и не заработало). Куда копать?

Все еще не могу побороть этот бред. Текстура me_grass, не работает (играет дефолтный звук ходьбы). Закомментил штук 20 строчек в разделе unbreakable crates (напр. W CRATE1 и так по списку). Текстура все равно не работает.
Переименовал me_grass в me_grsss. Сразу же заработала. (само собой переложил текстуру на карте и перекомпилил)
НО ПРИ ЭТОМ ОТВАЛИЛАСЬ ДРУГАЯ ТЕКСТУРА
C++ Source Code:
1
M ME_METAL
2
M ME_SERVSIDE
3
M ME_GRATE // <--- вот эта отвалилась, играет дефолт
4
M ME_GRATEBL
5
M ME_GRATEWH

Это вообще что и как? У меня уже мозг плавится.

Добавлено 28-10-2020 в 12:26:

Кое-что удалось нарыть.
При значении CTEXTURESMAX 300 текстура заработала.
При значении 340 текстура все еще не работает.
При значении 330 отвалилось еще 3 текстуры.
320 - 2 из 4 отвалившихся вернулись в строй…
310 - работают вроде бы все.

При этом в файле прописаны активные 343 текстуры. ЧТО ЗА

__________________
Мой мод на Xash

Отредактировано Aynekko 28-10-2020 в 09:05

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

Старое сообщение 28-10-2020 09:26
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Очень ублюдский михонизм, да.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-10-2020 10:05
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Я разобрался кажется и текстуры заработали.
У меня в materials всего около 370 строчек, включая все закомментированные и т.д. и т.п. А CTEXTURESMAX проставил 512, при этом текстуры отваливаются.
Я взял и заспамил файл строчками в конце

C++ Source Code:
1
D NONE
2
D NONE
3
D NONE
4
D NONE
5
D NONE
6
......

Хотел null, но вспомнил что такая текстура есть. Не суть важно думаю, прописал ту, которой вообще в игре нет. В итоге всего строчек в файле стало больше 512 (540 где-то).
Неужели алгоритму сортировки не нравился пустой конец файла? Это только мои догадки. Но без этого спама нужная текстура не работает. Со спамом работает вообще все (по крайней мере, что активно тестил и активно отваливалось). Такие дела.

Добавлено 28-10-2020 в 13:28:

Поднял лимит текстур до 1024, увеличил буфер на 1024 и т.д.
Добавил новую текстуру - она сразу отвалилась.
Добил файл до 1060 строчек - текстура заработала. Остальные тоже работают. ох, халфа-халфушка родименькая. Обожаю.

Все же это не точно. Т.к. когда добавил еще до 1200 строчек, текстура снова отвалилась. Черт его знает. В общем, путем манипуляции с фейковыми строчками можно заставлять работать текстуры, если они не хотят.

__________________
Мой мод на Xash

Отредактировано Aynekko 28-10-2020 в 10:47

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

Старое сообщение 28-10-2020 10:38
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Aynekko писал:
При этом в файле прописаны активные 343 текстуры. ЧТО ЗА

Удали неактивные. Или все 343 используются?

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

Старое сообщение 28-10-2020 10:53
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Цитата:
Ku2zoff писал:
Удали неактивные

Так я удалял. И поведение непредсказуемо - удалишь, одна заработает, отвалится другая. Сейчас по моей методе у меня вообще более 800 неактивных текстур в файле (текстура NONE прописана 700 с чем-то раз) и пока все окей вроде.

__________________
Мой мод на Xash

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

Старое сообщение 28-10-2020 10:58
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Aynekko писал:
Неужели алгоритму сортировки не нравился пустой конец файла?
Может быть там ненужные непечатаемые символы есть где-то? Посмотри файл через ворд с отображением этих символов.

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

Старое сообщение 28-10-2020 11:14
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Нет, все чисто.

__________________
Мой мод на Xash

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

Старое сообщение 28-10-2020 11:52
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Я когда-то разбирался где там ошибка, но уже запамятовал.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-10-2020 12:47
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Цитата:
Дядя Миша писал:
Я когда-то разбирался где там ошибка, но уже запамятовал.

Жалко, что не пофиксил. Я ж на ксаш-моде и тут все вот так вот.

Добавлено 28-10-2020 в 17:03:

Возможно, проблема где-то здесь?
C++ Source Code:
1
void PM_SortTextures( void )
2
{
3
  // Bubble sort, yuck, but this only occurs at startup and it's only 512 elements...
4
  for( int i = 0; i < gcTextures; i++ )
5
  {
6
    for( int j = i + 1; j < gcTextures; j++ )
7
    {
8
      if( Q_stricmp( grgszTextureName[i], grgszTextureName[j] ) > 0 )
9
      {
10
        // Swap
11
        PM_SwapTextures( i, j );
12
      }
13
    }
14
  }
15
}


После добавления новых текстур все равно идут отвалы. Так вот я попробовал заменить i < gcTextures и j < gcTextures на знак меньше или равно. В итоге все текстуры, кроме одной (из тех что я тестирую) вернулись в строй. Но тут метод тыка, ибо я здесь что-то понимаю очень отдаленно.

Добавлено 28-10-2020 в 17:50:

Нашел другой, пока что безотказный, метод без спама строчками. Просто прописываем текстуру в файл повторно, пока она не заработает.

__________________
Мой мод на Xash

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

Старое сообщение 28-10-2020 14:50
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



gcTextures чему равно?

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

Старое сообщение 28-10-2020 15:49
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32202
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
Возможно, проблема где-то здесь?

чем тебе сортировка не угодила?

Я подозреваю, что там калечный парсер, не всегда видит перенос строки.
Ты каком блокноте заполняешь этот файлик?

Добавлено 28-10-2020 в 18:55:

А. Вот что я вспомнил. У тебя есть имена текстур более 13 символов?
Если да - вот они-то всё и портят.

C++ Source Code:
#define CBTEXTURENAMEMAX	13			// only load first n chars of name

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

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 28-10-2020 15:55
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1006
Возраст: 31

Рейтинг



Цитата:
ncuxonaT писал:
gcTextures чему равно?

static int gcTextures = 0;
Потом в инит тоже gcTextures = 0.
Цитата:
Дядя Миша писал:
Увеличь до 16 символов и по идее все баги пропадут.

Поставил 24, не помогло. Текстура была прописана 1 раз. Прописал ее 2 раза - заработала. Для одной текстуры вообще 3 раза пришлось прописать.
Блокнот самый обычный виндовый.

__________________
Мой мод на Xash

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

Старое сообщение 28-10-2020 16:03
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 06:51. Новая тема    Ответить
Страницы (260): « Первая ... « 166 167 168 169 [170] 171 172 173 174 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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