HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- SET_VIEW ДЛЯ ИГРОКА. (https://hlfx.ru/forum/showthread.php?threadid=4290)
Отправлено ILZM 10-02-2014 в 15:46:
SET_VIEW ДЛЯ ИГРОКА.
Приветствую всех!
Если говорить короче, в void CBasePlayer :: PreThink ( void ) у игрока чтоит этот код, но работает не так, как надо. Эта энтити так и стоит на точке спавна игрока, а должна следовать игроку.
C++ Source Code:
1 | if ( ENTINDEX ( pev->euser3 ) ) |
3 | CBaseViewObserver *pViewObserver = ( CBaseViewObserver *) CBaseEntity :: Instance ( pev->euser3 ); |
5 | pViewObserver->pev->movetype = MOVETYPE_NONE; |
7 | pViewObserver->SetAbsOrigin ( pev->origin + pev->view_ofs ); |
8 | pViewObserver->SetAbsAngles ( GetAbsAngles ( ) ); |
10 | pViewObserver->SetLocalOrigin ( pev->origin + pev->view_ofs ); |
11 | pViewObserver->SetLocalAngles ( GetAbsAngles ( ) ); |
13 | pViewObserver->pev->origin = pev->origin + pev->view_ofs; |
14 | pViewObserver->pev->angles = pev->angles; |
18 | SET_VIEW ( edict ( ), pev->euser3 ); |
23 | //ALERT ( at_console, "%f %f %f\n", pev->view_ofs [ 0 ], pev->view_ofs [ 1 ], pev->view_ofs [ 2 ]); |
25 | ALERT ( at_console, "%f %f %f\n", pViewObserver->pev->origin [ 0 ], pViewObserver->pev->origin [ 1 ], pViewObserver->pev->origin [ 2 ]); |
Тройное присваивание из-за бизысходности...
Добавлено 10-02-2014 в 19:46:
Ах ну да, не объяснено же. Создается энтити на которой стоит камера игрока. Она должна иметь такие же углы и координаты как у игрока.
Отправлено Дядя Миша 10-02-2014 в 16:05:
Цитата:
ILZM писал:
if ( ENTINDEX ( pev->euser3 ) )
Это бред, а не условие. Оно, например вернёт false, если эдикт worldspawn. Тогда уж логичнее проверять сам euser3 на NULL.
Цитата:
ILZM писал:
Эта энтити так и стоит на точке спавна игрока, а должна следовать игроку.
Ну привяжи её через парент - будет следовать игроку.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ILZM 10-02-2014 в 16:13:
Дядя Миша, а условие то рабочее) Удочерить не то, что нужно, т. К. Потом будут некоторые действия над координатами и углами. Или же при парентировании можно ставить локальные углы? Кстати, а почему не работает? В скриптинге бы работало.
Отправлено Дядя Миша 10-02-2014 в 16:38:
Цитата:
ILZM писал:
Или же при парентировании можно ставить локальные углы?
Можно конечно.
Цитата:
ILZM писал:
а условие то рабочее)
Ты спорить пришёл или совета спрашивать?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ILZM 10-02-2014 в 17:22:
Дядя Миша, спасибо за совет. работает
А как удочерить углы?
Отправлено XaeroX 10-02-2014 в 17:26:
Цитата:
ILZM писал:
Тройное присваивание из-за бизысходности...
А если в цикле шагов на 10000 попробовать?__________________
Отправлено Дядя Миша 10-02-2014 в 17:31:
Цитата:
XaeroX писал:
А если в цикле шагов на 10000 попробовать?
Ага! Ты намекаешь, что рано или поздно процессор таки задействует режим обучения и поймет чего от него хотят?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено XaeroX 10-02-2014 в 17:42:
Дядя Миша
Я просто попытался воспользоваться логикой автора. Говорят, когда хочешь понять алгоритм - сначала пойми авторскую логику.
__________________