HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (264): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



Цитата:
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?

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

Сообщить модератору | IP: Записан
Сообщение: 152594

Старое сообщение 30-12-2015 02:34
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

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();

Сообщить модератору | IP: Записан
Сообщение: 152597

Старое сообщение 30-12-2015 16:25
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

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

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

Сообщить модератору | IP: Записан
Сообщение: 153027

Старое сообщение 16-01-2016 20:10
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35011
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


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

Сообщить модератору | IP: Записан
Сообщение: 153028

Старое сообщение 16-01-2016 20:50
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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


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

Сообщить модератору | IP: Записан
Сообщение: 153032

Старое сообщение 17-01-2016 13:02
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



Что делает функция 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 битовое это одни единички, и в сочетании с & он просто передаёт значение дальше.

Сообщить модератору | IP: Записан
Сообщение: 153306

Старое сообщение 26-01-2016 08:14
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35011
Нанёс повреждений: 514 ед.
Возраст: 38

Рейтинг



Награды
 
[1 награда]


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

Сообщить модератору | IP: Записан
Сообщение: 153307

Старое сообщение 26-01-2016 09:04
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

Отредактировано Crystallize 04-02-2016 в 03:58

Сообщить модератору | IP: Записан
Сообщение: 153465

Старое сообщение 04-02-2016 03:43
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

Сообщить модератору | IP: Записан
Сообщение: 153494

Старое сообщение 07-02-2016 15:02
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6843
Возраст: 34

Рейтинг



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

Сообщить модератору | IP: Записан
Сообщение: 153498

Старое сообщение 07-02-2016 18:12
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

Сообщить модератору | IP: Записан
Сообщение: 153500

Старое сообщение 07-02-2016 19:26
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6843
Возраст: 34

Рейтинг



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

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

Сообщить модератору | IP: Записан
Сообщение: 153610

Старое сообщение 18-02-2016 20:19
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4756
Возраст: 35

Рейтинг



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

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

Сообщить модератору | IP: Записан
Сообщение: 153649

Старое сообщение 23-02-2016 09:32
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6843
Возраст: 34

Рейтинг



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

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

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

Сообщить модератору | IP: Записан
Сообщение: 153650

Старое сообщение 23-02-2016 13:43
- За что?
KorteZZ
Lambda

Дата регистрации: Oct 2009
Проживает: Mongolia
Сообщений: 377
Возраст: 37

Рейтинг



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

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

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

__________________

Killing Floor: Horzine Outbreak

Сообщить модератору | IP: Записан
Сообщение: 154180

Старое сообщение 23-03-2016 15:11
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 23:39. Новая тема    Ответить
Страницы (264): « Первая ... « 34 35 36 37 [38] 39 40 41 42 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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