Наше комьюнити:   OpenGL Shader Lab  •  Half-Life FX  •  Форум  
HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Кручёная загадка от valve
holf-loaf 1 WARNING: большая картинка!
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


Question Кручёная загадка от valve

Всем бодрого утра.
Суть такова: на карте c0a0b есть тот самый крутой шлюз из трёх func_door_rotating.

http://pix.academ.info/img/2017/03/25/cf84686347278c4e8f097e30295444bb.png

Вопрос: как игра определяет, в какую сторону вращаются двери справа и слева?

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 08:02
- За что?
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 26758
Нанёс повреждений: 458 ед.
Возраст: 30

Рейтинг



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


~ X ~
Дизайнер задаёт сторону, используя флаги "One-way" и "Reverse dir", не?

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 25-03-2017 08:37
-
 Skaarj
Ага, вот эти пони!

Дата регистрации: Aug 2006
Проживает: Twisting Nether
Сообщений: 1585
Нанёс повреждений: 2 ед.

Рейтинг



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


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

__________________

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

Старое сообщение 25-03-2017 08:55
-
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


XaeroX как видишь, здесь it's not the case Я специально сделал дамп энтитей. Если не веришь, сделай сам.

Skaarj с открыванием от игрока - это ясно, в двери это запрограммировано явно. Я даже пофиксил это с "игрок повёрнут в сторону" на "игрок движется в сторону", а то получалось что спиной дверь на себя тянешь. Но здесь таких флагов нет.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 09:29
- За что?
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 26758
Нанёс повреждений: 458 ед.
Возраст: 30

Рейтинг



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


~ X ~
Я не понимаю, что тебя смущает. То, что двери открываются в разные стороны? Так это очевидно из кода, а именно из фрагмента:

C++ Source Code:
if ( !FBitSet( pev->spawnflags, SF_DOOR_ONEWAY ) && pev->movedir.y ) // Y axis rotation, move away from the player
{
    Vector vec = pevActivator->origin - pev->origin;
    Vector angles = pevActivator->angles;
    angles.x = 0;
    angles.z = 0;
    UTIL_MakeVectors (angles);
    //Vector vnext = (pevToucher->origin + (pevToucher->velocity * 10)) - pev->origin;
    UTIL_MakeVectors ( pevActivator->angles );
    Vector vnext = (pevActivator->origin + (gpGlobals->v_forward * 10)) - pev->origin;
    if ( (vec.x*vnext.y - vec.y*vnext.x) < 0 )
        sign = -1.0;
}

Мысленно построй векторы vec и vnext, и ты увидишь, что z-компонента их векторного произведения отличается знаком.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 25-03-2017 09:45
-
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


Меня смущают абсолютно одинаковые key/value у этих "дверей". А активируются они path_track'ом.

XaeroX т.е. по-твоему на c0a0b игрок толкает двери?
Кто-нибудь может порпобовать запустить эту карту под ХЛ и посмотреть, что будет, если к двери стоять спиной?

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 11:22
- За что?
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 26758
Нанёс повреждений: 458 ед.
Возраст: 30

Рейтинг



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


Цитата:
~ X ~ писал:
по-твоему на c0a0b игрок толкает двери?

Ты решил поиграть в еврея и таки отвечать вопросом на вопрос?

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 25-03-2017 11:26
-
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 20586
Нанёс повреждений: 353 ед.

Рейтинг



Цитата:
~ X ~ писал:
Вопрос: как игра определяет, в какую сторону вращаются двери справа и слева?

Да никак не определяет. Там левел-дизайнеру порукам дать надо. В ксаш-моде это говно в итоге и вылезло. Тот старый код определения куда надо открывать дверь неправильный. Но в данном конкретном случае он срабатывал как надо.

Цитата:
~ X ~ писал:
Кто-нибудь может порпобовать запустить эту карту под ХЛ и посмотреть, что будет, если к двери стоять спиной?

Причём тут спина? Находится плоскость двери и определяется где игрок - перед плоскостью или за плоскостью. Но прикол в том, что код срабатывает не на игрока, а на активатор, а активатором в данном случае выступает какая-то логическая энтить, может быть мультиманагер к примеру. Вот оно вроде бы и работает правильно, а на самом конечно деле - ничего подобного.

__________________
Дядя Миша is not able at all to do that before Пасхальный понедельник

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

Старое сообщение 25-03-2017 13:00
-
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


XaeroX я таки решил узнать таки почему ты считаешь что там имеет значение положение игрока.

Цитата:
Дядя Миша писал:
В ксаш-моде это говно в итоге и вылезло

я ждал этого ответа, спасибо

Цитата:
Дядя Миша писал:
Причём тут спина?

ну, при том что ксероксы постят страшные коды:
Цитата:
XaeroX писал:
Vector angles = pevActivator->angles;


В общем, на вопрос практически ответили.
Я ожидал чуть более бурной реакции на такую мистику. (
И, да, левелдизайнеру надо дать по рукам. Молотком. Из-за одгоно targetname на все три двери, я не могу сделать патч. А писать идиотизмы как в SoHL типа if (mapname == "c100a500") { Find("lockeddoor")->Destroy(); } - это хуже всего.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 14:39
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 20586
Нанёс повреждений: 353 ед.

Рейтинг



Активатор - это тот, кто ближе всего по цепочке. А там в этой роли мульти_манагер. Углы у него тоже есть, равны 0 0 0. Передвинь его за ворота и запоры начнут открываться в другую сторону.

__________________
Дядя Миша is not able at all to do that before Пасхальный понедельник

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

Старое сообщение 25-03-2017 14:41
-
 XaeroX
Rainbow Dash

Дата регистрации: Oct 2005
Проживает: Новосибирск
Сообщений: 26758
Нанёс повреждений: 458 ед.
Возраст: 30

Рейтинг



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


Цитата:
~ X ~ писал:
я таки решил узнать таки почему ты считаешь что там имеет значение положение игрока.

Ты поиздеваться решил, что ли? Покажи в моих постах в этой теме слово "игрок".
Цитата:
~ X ~ писал:
Я ожидал чуть более бурной реакции на такую мистику

Там не мистика, просто несколько запутанный код, особенно для людей с плохим пространственным представлением.

__________________
So she began again: 'Où est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.'

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

Старое сообщение 25-03-2017 14:45
-
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


XaeroX ты не говорил что pevActivator - не игрок. Я предположил что как раз так.
Для мапперов это настоящая мистика т.к. никто и нигде не ожидает, что двери с одними и теми же key/value будут вести себя по-разному без какой-либо видимой причины. За такой undefined behavior надо линчевать на bsp-дереве.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 15:15
- За что?
Ku2zoff
Юзер (типа моддер)
Предупреждения:++++++++

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

Рейтинг



Цитата:
Дядя Миша писал:
Передвинь его за ворота и запоры начнут открываться в другую сторону.

Ого. Ничего себе подробности. Для маппера тут конкретная засада. Он ведь не видит код, и не знает, откуда берутся углы. С одной стороны, это удобно, но с другой... Можно месяц ломать голову, почему они открываются в другую сторону, пока не разместишь мульти_манагер относительно ворот так же, как и в оригинале. Правда, до этого ещё додуматься надо.

Добавлено 25-03-2017 в 22:25:

Цитата:
XaeroX писал:
____UTIL_MakeVectors ( pevActivator->angles );
____Vector vnext = (pevActivator->origin + (gpGlobals->v_forward * 10)) - pev->origin;

Ага, вот оно. Я эту заразу сразу же переписал, чтобы игрок мог открывать двери, двигаясь жопой вперёд. Просто, когда я попробовал в своём моде погамать на карте cs_oldmansion, я заметил, что если игрок пятится, дверь всё равно открывается в направлении его взгляда. А в кс можно двери жопой открывать в правильном направлении

__________________
Вы всё ещё не пьёте? Тогда мы идём к вам!

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

Старое сообщение 25-03-2017 15:25
- За что?
 ~ X ~
offline

Дата регистрации: Oct 2005
Проживает: (void)
Сообщений: 2842
Нанёс повреждений: 0 ед.

Рейтинг



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


Ku2zoff а двойная засада в том, что в XDM, например, это пофикшено и хак не прокатит. Тройная в том, что кто-нибудь обязательно обвинит меня в саботаже.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Связь со мной здесь: [email protected]

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

Старое сообщение 25-03-2017 15:27
- За что?
Ku2zoff
Юзер (типа моддер)
Предупреждения:++++++++

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

Рейтинг



Цитата:
~ X ~ писал:
Тройная в том, что кто-нибудь обязательно обвинит меня в саботаже.

Ты не обижайся, но XDM сам по себе почти сплошной саботаж Столько всего переписано, шопипец. Однако, экономия траффика и быстродействие по сети налицо.

__________________
Вы всё ещё не пьёте? Тогда мы идём к вам!

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

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



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


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

Временная зона GMT. Текущее время 01:40. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Кручёная загадка от valve
holf-loaf 1 WARNING: большая картинка!
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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

Рейтинг@Mail.ru