HLFX.Ru Forum Страницы (264): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »
Показать все 3950 сообщений этой темы на одной странице

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)


Отправлено Crystallize 30-12-2015 в 02:34:

Цитата:
XaeroX писал:
Ну зачем ты вопросы такие задаёшь? Не думаю, что кто-то до сих пор спирит использует. Исходники его открыты - изучай.


Есть же ещё такая вещь, как память.

Открываешь исходники, а там:
code:
/*float tempswap; // MJB I've tried adding this code so I can swap the vector components, // but for some reason it just isn't working. I have no idea why. // Perhaps YOU know why and could fix it?

Ох лол. То есть фича у нас не работает, но в фгд мы её добавим.


Отправлено Crystallize 30-12-2015 в 16:25:

Я смотрю, чтобы повернуть вектор, они просто переводят его в углы, и прибавляют угол поворота. По-моему это бред.

code:
Vector CCalcVelocityPolar::CalcVelocity( CBaseEntity *pLocus ) { Vector vecBasis = CalcLocus_Velocity( this, pLocus, STRING(pev->netname) ); Vector vecAngles = UTIL_VecToAngles( vecBasis ) + pev->angles; Vector vecOffset = CalcLocus_Velocity( this, pLocus, STRING(pev->message) ); float fFactor = CalcLocus_Ratio( pLocus, STRING(pev->noise) ); if (!(pev->spawnflags & SF_CALCVELOCITY_NORMALIZE)) fFactor = fFactor * vecBasis.Length();


Отправлено Crystallize 16-01-2016 в 20:10:

Пытаюсь сделать для yaw игрока такое же ограничение углов -89...89, как это сделано для питча. Пробовал в функциях AdjustAngles и MouseMove, по аналогии с питчем писал

code:
if {viewangles[yaw] <= -89} viewangles[YAW] =-89;

и т.д.
результат один: внезапно халфа невзлюбила отрицательный yaw, и при виде его сразу выставляет максимально возможный положительный, который ты вписал.


Отправлено XaeroX 16-01-2016 в 20:50:

if ( yaw < 0 ) yaw += 360, не?


Отправлено Crystallize 17-01-2016 в 13:02:

Цитата:
XaeroX писал:
if ( yaw < 0 ) yaw += 360, не?


Ну я вписал по такому принципу рядом, не помогло.
Там у yaw диапазон 0-360, вроде разобрался.


Отправлено Crystallize 26-01-2016 в 08:14:

Что делает функция anglemod? Я раньше думал, что она для плавного поворота между двумя значениями. Тут нашёл такое объяснение:

code:
/** * This function adds or substracts 360 enough times needed to the given angle in * order to set it into the range [0, 360) and returns the resulting angle. Letting * the engine have a hand on angles that are outside these bounds may cause the * game to freeze by screwing up the engine math code. */ inline float AngleMod(float a) { return (360.0 / 65536) * ((int)(a * (65536.0 / 360.0)) & 65535); }

Судя по объяснению, это избавление от отрицательных значений угла. Но тогда почему запись такой пипец? По идее достаточно же if (yaw<0) yaw=yaw+360.
(int) этот со скобочками не гуглится. Битовый AND тоже непонятно зачем нужен, если 65535 битовое это одни единички, и в сочетании с & он просто передаёт значение дальше.


Отправлено XaeroX 26-01-2016 в 09:04:

Crystallize
Округляет угол до ближайшего 16-битного значения, которые используются для пересылки по сети.


Отправлено Crystallize 04-02-2016 в 03:43:

Делал гигантизм в Хаммере, получается карту с visibility matrix больше примерно 200мб в принципе нельзя осветить на 32-х битной версии из-за нехватки оперативки?


Отправлено Crystallize 07-02-2016 в 15:02:

Как добавить на клиента функцию ALERT?


Отправлено Ku2zoff 07-02-2016 в 18:12:

Crystallize возьми и сделай обёртку для ConPrintf.


Отправлено Crystallize 07-02-2016 в 19:26:

Спасибо. Погуглю конечно про обёртку, но особо не надеюсь... А можно напрямую заюзать gEngFuncs.ConPrintf? Или она принимает не нормальные типы данных, а эти ваши эдикты?


Отправлено Ku2zoff 18-02-2016 в 20:19:

Crystallize не совсем понял, при чём тут эдикты. Серверный ALERT имеет два аргумента: тип алерта и собственно текст. Тип не особо важен, если ты просто хочешь слать в консоль диагностические сообщения. НО если хочешь прям как на сервере, придётся писать мудрёную функцию. Чтобы учитывать каждый тип алерта:

at_notice - просто уведомление в левом верхнем углу экрана
at_console - уведомление с записью в консоль
at_aiconsole - то же, что и at_console, но только при кваре developer 2
at_warning - не помню точно, чем отличается от предыдущих. По-моему, добавляет перед текстом "WARNING: "
at_error - вроде бы добавляет перед текстом "ERROR: "
at_logged - сообщение в серверную консоль, так же пишется в лог сервера


Отправлено Crystallize 23-02-2016 в 09:32:

Цитата:
Ku2zoff писал:
не совсем понял, при чём тут эдикты.

Просто читал какое-то обсуждение на хлру, типа почему лучше использовать функции движка в обёрнутом, а не в сыром виде. Типа потому что в сыром виде они работают не с привычными данными, а только с эдиктами.
Вопрос в общем пока отпадает, оказалось я проглядел что в спирите на клиенте уже реализована gEngfuncs.Con_DPrintf и gEngfuncs.Con_Printf. Понять бы ещё разницу между ними...


Отправлено Ku2zoff 23-02-2016 в 13:43:

Цитата:
Crystallize писал:
оказалось я проглядел что в спирите на клиенте уже реализована gEngfuncs.Con_DPrintf и gEngfuncs.Con_Printf. Понять бы ещё разницу между ними...

Элементарно, Ватсон!

gEngfuncs.Con_Printf - выводит сообщение всегда.
gEngfuncs.Con_D(ebug)Printf - только когда игра запущена в дебаге, либо с кваром developer


Отправлено KorteZZ 23-03-2016 в 15:11:

Помогите, пожалуйста, с Iron Sight. Сделал, я, значит, эту штуку на Мосинке, теперь она практически работает: анимация, разброс, легкий зум. Осталось сделать замедление скорости передвижения игрока. Как это можно сделать? А то скачет с зумом, как угорелый.

Плюс вопрос: как убрать диагональное ускорение игрока? А то вперед и вбок нормально ходит, а диагонально скорость увеличивается чуть ли не в два раза.

И еще: как сделать двойное условие? Если зум включен и если патронов больше 1, то... Если зум включен и если патрон единственный, то...
Работаю в XashXT.

__________________

Killing Floor: Horzine Outbreak


Временная зона GMT. Текущее время 10:43. Страницы (264): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »
Показать все 3950 сообщений этой темы на одной странице

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