Показать все 12 сообщений этой темы на одной странице |
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=5818)
координаты игроков
как узнать какие координаты "включает в себя " модель игрока?
вопрос не очень понятен и точен по больше инфы нужно !
__________________
илья
cs16forever включает три координаты: X, Y, Z. Узнать их можно из соответствующих компонентов player->pev->origin.
ну тогда все понятно координаты спавна игрока так бы и сказали они как раз настраиваются вот в этой функции в gamerules.cpp
edict_t *CGameRules :: GetPlayerSpawnSpot( CBasePlayer *pPlayer )
{
edict_t *pentSpawnSpot = EntSelectSpawnPoint( pPlayer );
pPlayer->pev->origin = VARS(pentSpawnSpot)->origin + Vector(0,0,1);<вот
-Vector(XYZ)
pPlayer->pev->v_angle = g_vecZero;
pPlayer->pev->velocity = g_vecZero;
pPlayer->pev->angles = VARS(pentSpawnSpot)->angles;
pPlayer->pev->punchangle = g_vecZero;
pPlayer->pev->fixangle = TRUE;
return pentSpawnSpot;
}
__________________
илья
спасибо за ответы.
нет, не спавна.
мне нужно определить, расположение модели игрока в пространтве. т.е. все точки модели.
Где расположен игрок знаю, а вот как определить где его голова, рука, нога? Все координаты стрельнув в которые игрок получит урон.
cs16forever это не так делается.
Тебе нужна функция
void CBasePlayer :: TraceAttack
там в ней уже разобрано куда попала пуля - в голову или в руку.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
cs16forever тебе нужны координаты точки попадания? Их нетрудно получить. Но в процессе самого попадания, а не заранее. Конечной точкой будет ptr->vecEndPos. TraceResult *ptr - один из аргументов TraceAttack. А вот если тебе нужен ориджин хитбокса, тут без доступа к костям модели ничего не получится. А чтобы получить доступ к костям, нужен доступ к SV_StudioSetupBones, которой в обычной халфе нет. Ты напиши, что конкретно хочешь сделать, может быть не нужно городить огород, и есть стандартное средство.
эх вечно вы в какие то сложности лезите
__________________
илья
CBasePlayer::TraceAttack |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
1 | void pfnPlayerPostThink(edict_t *pent) |
2 | { |
3 | // как здесь CBasePlayer::TraceAttack заюзать? |
4 | // определить что атаковал другого и т.д. |
5 | RETURN_META(MRES_IGNORED); |
6 | } |
1 | C_DLLEXPORT int GetEntityAPI2_Post(DLL_FUNCTIONS *pFunctionTable, int *) |
2 | { |
3 | memset(&gpFunctionTable_Post, 0, sizeof(DLL_FUNCTIONS)); |
4 | gpFunctionTable_Post.pfnPlayerPostThink = pfnPlayerPostThink; |
5 | memcpy(pFunctionTable, &gpFunctionTable_Post, sizeof(DLL_FUNCTIONS)); |
6 | g_pFunctionTable_Post = pFunctionTable; |
7 | return true; |
8 | } |
Временная зона GMT. Текущее время 18:02. | Показать все 12 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024