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=3495)
Отправлено marikcool 26-06-2012 в 05:58:
да гейт можно срезать нафиг
Добавлено 26-06-2012 в 09:58:
функции из кода игрока:
C++ Source Code:
4 | CBasePlayer::StudioProcessGait(value); |
7 | CBasePlayer::StudioProcessGait(int a1) |
9 | CBasePlayer::CalculateYawBlend(a1); |
13 | CBasePlayer::StudioEstimateGait(a1) |
функции используемые в SV_StudioSetupBones
C++ Source Code:
1 | // 7949C: using guessed type _DWORD __cdecl AngleMatrix(_DWORD, _DWORD); |
2 | // 7A88C: using guessed type _DWORD __cdecl StudioCalcBonePosition(_DWORD, float, _DWORD, _DWORD, _DWORD, _DWORD); |
3 | // 7B7CC: using guessed type _DWORD __cdecl GetPlayerYaw(_DWORD); |
4 | // 7BA6C: using guessed type _DWORD __cdecl GetPlayerGaitsequence(_DWORD); |
5 | // 7BF9C: using guessed type _DWORD __cdecl QuaternionMatrix(_DWORD, _DWORD); |
6 | // 7BFEC: using guessed type _DWORD __cdecl StudioCalcBoneQuaterion(_DWORD, float, _DWORD, _DWORD, _DWORD, _DWORD); |
7 | // 7CE8C: using guessed type _DWORD __cdecl ConcatTransforms(_DWORD, _DWORD, _DWORD); |
8 | // 7CF1C: using guessed type _DWORD __cdecl StudioSlerpBones(_DWORD, _DWORD, _DWORD, _DWORD, float); |
9 | // 7D13C: using guessed type _DWORD __cdecl UTIL_GetPlayerGaitYaw(_DWORD); |
10 | // 7E2FC: using guessed type _DWORD __cdecl StudioCalcBoneAdj(float, _DWORD, _DWORD, _DWORD, char); |
11 | // 7EF0C: using guessed type _DWORD __cdecl GetPlayerPitch(_DWORD); |
12 | // 1E9110: using guessed type int g_pstudiohdr; |
13 | // 1E9114: using guessed type int g_pRotationMatrix; |
14 | // 1E9118: using guessed type int g_pBoneTransform; |
15 | // 82CD4: using guessed type int var_250[128]; |
получаются углы про которые говорил Дядя Миша собераются в тхинке игрока, и используются в SV_StudioSetupBones, поэтому контровская дллка не дает никаких эффектов т.к переменные в классе CBasePlayer в mp.dll никак не заполняются.
Отправлено Ku2zoff 26-06-2012 в 16:58:
Вроде бы сделал серверный расчёт костей (но только для 2-way блендинга, то есть стандартный). ХЗ работает или нет, не знаю как проверить.
Добавлено 26-06-2012 в 23:58:
Вообще мне сдаётся, что код-пример, который я взял за основу, не работает. А вот сами функции должны работать.
Отправлено Ku2zoff 28-06-2012 в 17:18:
Цитата:
Дядя Миша писал:
Я думал в ксаше подключить, но это пришлось бы тащить модельки соответствующие, а у меня концепция - минимум ресурсов.
А если кто-нибудь сделает одну модельку игрока. Для ксашмода? Скелеты у них всё равно одинаковые, делов-то, заменить анимации.
Отправлено Дядя Миша 28-06-2012 в 18:35:
А если бы они сначала закончили конкурс карт под ксаш-мод, а не пазорно потерялись, так это было бы воще отлично!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено marikcool 03-07-2012 в 21:18:
кто дальше будет ковыряться приложил декомпил sv_studiosetupbones от контры.
Отправлено Ku2zoff 04-07-2012 в 04:53:
Это всё конечно интесесно, но как проверить, заработает ли код, если не отрисовать хотя бы кости на сервере?
Отправлено marikcool 04-07-2012 в 05:08:
по хитбоксам, без дебагера стрельни в голову модельки, поверни модель чтобы голова сместилась и снова стрельни в старое место, если попадешь значит ничего не переключается.
Отправлено Ku2zoff 04-07-2012 в 05:29:
marikcool вот делать мне больше нечего как вертеть модель одного игрока и стрелять по ней другим игроком. Намного лучше было бы нарисовть на местах костей спрайтовые лучи.
Отправлено marikcool 04-07-2012 в 05:45:
если вообще в модель попадает код работает, в других случая обычно у модели хитбоксы в раза 4 больше нормы и это сразу видно стреляя в метре над головой попадаешь.
тестить можно на любом монстре.
Отправлено HAWK0044 04-07-2012 в 06:49:
marikcool
сколько раз я тебе говорил, ну запихни ты трассировку в апдейтстатус бар и смотри какой хитбокс выцеливаеться с прицела.
Отправлено Ku2zoff 04-07-2012 в 07:39:
HAWK0044 неплохой вариант... Но опять же, надо лишнюю модель, в которую целиться.
Отправлено marikcool 04-07-2012 в 08:22:
Цитата:
HAWK0044 писал:
marikcool
сколько раз я тебе говорил, ну запихни ты трассировку в апдейтстатус бар и смотри какой хитбокс выцеливаеться с прицела.
я так и сделал, ты кутузову ее скинь.
Отправлено marikcool 18-09-2012 в 18:35:
почему в голдсорсе в ibone падает мусор?
C++ Source Code:
1 | [sv_ssb] orgiBone 97353076 iBone: 0 numbones: 1/24 pseqdesc->numblends 1 |
2 | [sv_ssb] orgiBone 97353076 iBone: 0 numbones: 1/24 pseqdesc->numblends 1 |
3 | [sv_ssb] orgiBone 97353076 iBone: 0 numbones: 1/24 pseqdesc->numblends 1 |
4 | [sv_ssb] orgiBone 97353076 iBone: 0 numbones: 1/24 pseqdesc->numblends 1 |
5 | [sv_ssb] orgiBone 74893760 iBone: 0 numbones: 1/24 pseqdesc->numblends 1 |
6 | [sv_ssb] orgiBone 97319308 iBone: 0 numbones: 1/50 pseqdesc->numblends 2 |
7 | [sv_ssb] orgiBone 97445536 iBone: 0 numbones: 1/13 pseqdesc->numb |
__________________
vk.com/skullcapstudios
Отправлено marikcool 22-09-2012 в 21:57:
и так появилась внятность,
когда движок импортирует sv_studiosetupbones, при вызове он не посылает костей, ориджин и англес и там помоему не эдикт приходит а указатель на сбэйсплеер для кс, следовательно крутить монстров не получается, оно и контре и ненадо там только 9вэй корректно и работает.
но если функция не переопределена с клиентки, в движке входящие данные для соотвественно sv_studiosetupbones корректны.
пока решением остается перехватить оригинальный sv_studiosetupbones, без импорта функций с клиентки. (это чтобы все варианты блендингов работали)
__________________
vk.com/skullcapstudios
Отправлено marikcool 23-09-2012 в 18:21:
и так перехватить удалось оригинальную sv_studiosetupbones, если кому надо то адресс функции GetModuleHandle("hw.dll")+0x96350
далее имеем такие же глюки что и с импортной функцией, следовательно был сделан вывод что неправильные аргументы. последнии 2 аргумента нужно поменять местами.
счас разбераюсь с origin и angles.
пока что юзаю такой вариант, позже обновлю пост.
SV_StudioSetupBones( struct model_s *pModel, float frame, int sequence, const vec3_t angles, const vec3_t origin, const byte *pcontroller, const byte *pblending,
edict_t *pEdict, signed int a8 );
__________________
vk.com/skullcapstudios