![]() |
Страницы (264): « Первая ... « 168 169 170 171 [172] 173 174 175 176 » ... Последняя » Показать все 3960 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Ну чего ходить вокруг да около. Вот сам файл материалс. Я не могу там найти ничего странного, может вы найдете. Кроме одной закомменченой строчки //unbreakable crates
__________________
Мой мод на Xash
Меня не интерисует файл materials, мне интересно как оно выглядит в памяти. Выкладывай лог с последним куском кода.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сверил выведенный лог с последним кодом и файл материалс. Отсутствует последняя текстура.
__________________
Мой мод на Xash
До меня дошло. Мы же сперва смотрим что там записывается, а портится оно уже после. Я еще и думал, что же меня так смущает.
1 | for( i = 0; i < gcTextures; i++ ) |
2 | pmove->Con_Printf( "%с %s\n", grgchTextureType[i], grgszTextureName[i] ); |
3 | // вставить здесь |
4 | pmove->COM_FreeFile ( pMemFile ); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Тонна красных строчек "sprintf throw exception" в консоли.
На всякий случаю показываю, как вставил код:
Блин косяк там. Ща
Добавлено 28-10-2020 в 22:24:
Там была русская с в %c.
Все то же самое. Последней текстуры нет.
__________________
Мой мод на Xash
Ну ладно, раз ты игноришь мои просьбы, разбирайся сам.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну вот лог. Только в чем смысл? Сверил список диффчекером, последней текстуры нет, а так все совпадает...
__________________
Мой мод на Xash
Дай-ка подумать. У бинарного поиска могут быть некоторые фейлы вот как раз в тех случаях, что ты привёл.
Замени PM_FindTextureType вот на это
1 | char PM_FindTextureType( char *name ) |
2 | { |
3 | for( int i = 0; i < gcTextures; i++ ) |
4 | { |
5 | if( !Q_stricmp( name, grgszTextureName[i] )) |
6 | return grgchTextureType[i]; |
7 | } |
8 | return CHAR_TEX_CONCRETE; |
9 | } |
val = strnicmp( name, grgszTextureName[ pivot ], CBTEXTURENAMEMAX-1 ); |
val = Q_stricmp( name, grgszTextureName[ pivot ] ); |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
И впрямь заработало О.о старый код вернул и строчку поменял, тоже работает. Последняя текстура так появилась в консоли только после того, как я добавил пустую строчку в тхт.
Файл чистый, без дубликатов и прочего. Большое спасибо!!!
Добавлено 28-10-2020 в 23:47:
__________________
Мой мод на Xash
Да я понял. В сортировке Q_stricmp, а в поиске strnicmp, они отличаются.
Т.е. я там заменил, а тут просто забыл. Но CBTEXTURENAMEMAX всё равно надо было увеличить.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
В халве есть какое либо ограничение на кол-во бодигрупп у модели? А то добавил солдату боди для отстреленных конечностей, поврежденный и уничтоженный торс, и у него SetBodygroup перестал корректно работать, то есть оно боди просто рандомно меняет, к примеру при смерти вместо того чтобы убрать боди оружия SetBodygroup( GUN_GROUP, GUN_NONE ); меняет голову на голову негра у солдата, и боди ноги на отстреленную, та же фигня с головой офицера, SetBodygroup( HEAD_GROUP, HEAD_COMMANDER ); вместо того чтобы выставить голову в берете, меняет боди торса на поврежденный. Номера боди я уверен что правильные использую.
Я вообще заметил в халве эти SetBodygroup и GetBodygroup не корректно работают, первый тупит если у модели много бодигрупп, второй вообще не пашет, я его пробовал юзать для проверки какая голова солдата - хрен, пришлось через pev->body.
Вот в код самого hgrunta и модель, может кто подскажет как быть.
Добавлено 29-10-2020 в 09:53:
Короче сократил кол-во боди, убрал бодигруппу для торса вообще, плюс убрал blank боди у всех конечностей, и оно заработало, досадно что SetBodygroup не хочет работать с большим кол-во бодей, торс ладно, его можно отдельной моделью сделать, но я не знаю, сколько еще боди для оружия и пушек можно добавить чтобы оно не полетело.
В модельвьювере такая моделька нормально выглядит и у нее нормально всё меняется? Лучше смотреть в моём, потому что он пишет число-комбинацию для определённого набора боди. Посмотри, если всё нормально, скажи, какое там максимальное число было.
Добавлено 29-10-2020 в 11:23:
Вот я стрелочкой отметил
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да все нормально, у модели которая работает максимально число 239, хотя я там убрал только 1 бодигруппу и поубирал у боди конечностей blank боди, а у той за 4000 переваливает, строка даже не помещается и переносится из-за чего точно число сложно разобрать, наверное этот setbodygroups не рассчитан на такие числа.
SetBodyGroups рассчитан. Надо delta.lst подкорректировать.
В секции Entity_Encode
DEFINE_DELTA( body, DT_INTEGER, 8, 1.0 ), |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша теперь ясно где править, если еще боди понадобятся, спасибо.
Еще хотел по поводу трассы спросить, я ее вчера так и сяк мандровал, так и не вымандровал в итоге, идея в чем, я все еще тот лазер мучаю, решил попровать рисовать луч на сервере, допустим координата выстрела у меня
vecSrc = vecSrc + gpGlobals->v_forward * 8 + gpGlobals->v_right * 7.25 - gpGlobals->v_up * 6;.
То есть точку выстрела я сместил, и я хотел бы как-то подвернуть трассу, чтобы она тоже шла из сдвинутого vecSrc в прицел, то есть ровно центр экрана, а не из m_pPlayer->GetGunPosition(), и тут загвостка, как vecDir у трассы повернуть так чтобы она не тупо прямо шла, т.к. она тоже сместилась от прицела, а подвернуть чтобы она прямо в прицел смотрела.
Вот видно насколько он ниже прицела попадает: https://imgur.com/a/3ZmGyaJ
Вопрос, почему мне просто в начале луча не указать смещенный vecSrc, а в конце tr.vecEndPos который идет из трассы которая идет из m_pPlayer->GetGunPosition(), тут тоже есть загвозда, да луч, идет из ствола прямо в центр экрана, но есть сбоку от прицела есть преграда, через которую луч проходит, он проходит сквозь нее, не нанося ей урона, и не останавливаясь на ней, тоже не порядок: https://imgur.com/a/6fDkj4c
Такая же проблема кстати у ванильного гаусса: https://imgur.com/a/F7FiHON
Добавлено 29-10-2020 в 12:03:
У меня есть код, который подправляет VecDir для снарядов, чтобы они тоже летели ровно в центр экрана, но он не хочет никак работать для трассы, оно ее направляет куда попало, но не в центр экрана.
Он выглядит таким образом для снарядов:
code:
Vector vecDir = m_pPlayer->GetAimForwardWithOffset(); float rightOffset = 6.0; float downOffset = 2.7; //addition to UTIL_VecSkew vecDir = UTIL_VecSkew( vecSrc, vecDir, rightOffset, downOffset, ENT( pev ) ); vecSrc = vecSrc + gpGlobals->v_right * rightOffset - gpGlobals->v_up * downOffset; И сами функции, позаиствовал из Халф Пейна: Vector CBasePlayer::GetAimForwardWithOffset( bool degrees ) { Vector vecDirShooting; Vector crosshairAngle = Vector( 0, 0, 0 ); Vector angles = pev->v_angle + crosshairAngle; if ( degrees ) { return angles; } g_engfuncs.pfnAngleVectors( angles, vecDirShooting, NULL, NULL ); return vecDirShooting; } // Offset the source of trace to the right\left alittle, and then rotate the aim to the left\right according to the distance Vector UTIL_VecSkew( const Vector &vecSrc, Vector vecAiming, float rightOffset, float downOffset, edict_t *shooter ) { TraceResult tr; Vector vecEnd; float traceDistance = 8192; UTIL_TraceLine( vecSrc, vecSrc + gpGlobals->v_forward * traceDistance, dont_ignore_monsters, shooter, &tr ); float hitDistance = ( tr.vecEndPos - vecSrc ).Length(); double yawRotation = ( atan( rightOffset / hitDistance ) * 180 ) / M_PI; double pitchRotation = ( atan( downOffset / hitDistance ) * 180 ) / M_PI; //addition rotate vertically, not just left/right g_engfuncs.pfnAngleVectors( UTIL_VecToAngles( vecAiming ) + Vector( pitchRotation, yawRotation, 0.0 ), vecAiming, Vector(), Vector() ); vecAiming.z *= -1.0; return vecAiming; }
Временная зона GMT. Текущее время 16:06. | Страницы (264): « Первая ... « 168 169 170 171 [172] 173 174 175 176 » ... Последняя » Показать все 3960 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024