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

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

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

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

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

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

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

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

Рейтинг



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


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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.

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

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

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

Рейтинг



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


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

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

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

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

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

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

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

Рейтинг



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


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

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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.

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

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

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

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

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

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

Рейтинг



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


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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.

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

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

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

Рейтинг



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

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

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

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

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

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

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

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

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


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

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

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

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

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

Рейтинг



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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

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

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

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

Рейтинг



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


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

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

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

__________________
"It's a friend of mine - a Cheshire Cat," said Alice: "allow me to introduce it."
"I don't like the look of it at all," said the King: "however, it may kiss my hand if it likes."
"I'd rather not," the Cat remarked.

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

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

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

Старое сообщение 25-03-2017 15:15
- За что?
Ku2zoff
Мастер Ёда

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

Рейтинг



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

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

Добавлено 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
Проживает: Архангельск
Сообщений: 3619

Рейтинг



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


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

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

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

Старое сообщение 25-03-2017 15:27
- За что?
Ku2zoff
Мастер Ёда

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

Рейтинг



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

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

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

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



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


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

Временная зона GMT. Текущее время 01:26. Новая тема    Ответить
Страницы (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.
Дизайн и программирование: Crystice Softworks © 2005 - 2022