Sidebar

Мульти-блок (Multiblock)

  • Рекомендуется задавать вопросы только относительно темы с уроком. Для остальных вопросов существует раздел [url=http://cs-mapping.com.ua/forum/forumdisplay.php?f=12]«Помощь»[/url].

    Темы с просьбами помощи будут удаляться без предупреждения и без объяснения причины.

    Запрещается поднятие старой темы оффтопом. Ваше сообщение будет удалено, а в профиль будет выписано замечание.

hypax

Парам парам пам! ПАМ!
18.07.2013
581
Мульти-блок (Multiblock)

Всем доброго вечера, сразу оговорюсь по данному уроку что он будет интересен ,в большей степени, для мапперов делающих карты для режима Bunny Hop и похожих.В целом все довольно просто, по этому не буду размусоливать :)

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

Используемые энтити:

func_button
multi_manager
trigger_changetarget
trigger_teleport
info_teleport_destination

Сам блок, это статичная кнопка (Delay before reset 0 и флажки Don`t move , Touch Activates) покрытая тонким слоем(в 1юнит) портала(trigger_teleport).Эта кнопка при прикосновении, активирует multi_manager, а тот в свою очередь по очередно два trigger_changetarget с интервалом 0.1 сек.
Первый trigger_changetarget вставляет "правильный target" в trigger_teleport,тем самым активируя его.
Второй trigger_changetarget, возвращает "неправильный target" который не связывает, trigger_teleport с его info_teleport_destination, тем самым деактивируя trigger_teleport.

ps. изначально в trigger_teleport вписан "не правильный target" ,по этому телепорт не активен.В качестве "не правильного target" я подразумеваю некорректный, т.е не связывающий.

Стоя на кнопке(блоке), игрок активирует быстрый цикл активации и деактивации портала, соответственно переносится (телепортируется) в точку info_teleport_destination.Если же игрок прыгает,его не портует т.к в момент прыжка он не соприкасается с поверхностью портала.


В прикрепленном архиве тестовая карта в rmf и bsp формате.
 

Вложения

Gaia

Чёрный вертолёт
Спонсор
04.08.2008
4 613
32
104
63
Что будет с игроками у которых высокий пинг?
 

Gaia

Чёрный вертолёт
Спонсор
04.08.2008
4 613
32
104
63
2 pdemon33:
И зачем? Это ж не ДМ. Вон, на юниксе предельный пинг 800, емнип. И нормально всё. тока там плагин стоит хитроумный, который заставляет блоки стоять на месте, а не опускаться. Игрока же просто сталкивает, если он задумался на каком либо из блоков.
 

Endym

ёкай
17.05.2011
154
26
Штука интересная, но часто не попользуешься, тут получается 5 блоков вместо 1 func_door как с обычным бхоп-блоком. На большой бхоп-карте каждая энтитя на счет ;) Но в каких-то определенных условиях может быть полезен, да и просто интересная реализация :drink:
зы. Даешь еще туториалов про kz!
 
С помощью Оффтоп на таком блоке можно будет стоять не прыгая. Более того, такой вариант реализации блока подходит только для тех, кто распрыгивается скриптами. Ирония, не правда ли?

Смотрите. Вы отводите всего одну десятую секунды на прыжок (включая время простоя на блоке) - что, разумеется, очень мало. Без скриптов такая частота прыжков крайне трудновыполнима. Игроки с нестабильным FPS и большим пингом вообще не смогут пользоваться таким блоком - даже могучий алиас special имеет свои ограничения.

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

hypax

Парам парам пам! ПАМ!
18.07.2013
581
Endym сказал(а):
Штука интересная, но часто не попользуешься, тут получается 5 блоков вместо 1 func_door как с обычным бхоп-блоком. На большой бхоп-карте каждая энтитя на счет ;) Но в каких-то определенных условиях может быть полезен, да и просто интересная реализация :drink:
зы. Даешь еще туториалов про kz!
даже 6 энтитей:D.Если дорожка из нескольких таких блоков, количество энтитей можно оптимизировать:

- порталы на кнопке можно обьеденить (если блоки относятся к одной дорожке)
- соответственно инфо_телепорт нужен только один( на одну дорожку)
- кнопки также можно обьеденить
- ченж_таргеты и мульти_менеджер копировать не нужно
:]


Kyo сказал(а):
С помощью Оффтоп на таком блоке можно будет стоять не прыгая. Более того, такой вариант реализации блока подходит только для тех, кто распрыгивается скриптами. Ирония, не правда ли?.
с "sv_gravity 0" можно вообще не прыгать а летать, я не брал в расчет тех кто прыгает на скриптах т.к сам ими никогда не пользовался и нехорошо это :roll:

Kyo сказал(а):
Смотрите. Вы отводите всего одну десятую секунды на прыжок (включая время простоя на блоке) - что, разумеется, очень мало. Без скриптов такая частота прыжков крайне трудновыполнима. Игроки с нестабильным FPS и большим пингом вообще не смогут пользоваться таким блоком - даже могучий алиас special имеет свои ограничения.

А если не меняя алгоритм начать увеличивать время простоя, то пострадает синхронизация. Если Вы расширите временный диапазон, скажем, до половины секунды, то игрок, который за это время сможет не только оттолкнуться, но и приземлиться, будет телепортирован.
одной десятой в мульти_менеджере, вполне хватает чтобы оттолкнуться и комфортно прыгать (без всяких скриптов).Я не знаю ни одного игрока который бы останавливался на блоке чтобы подумать ,а потом прыгнуть.С большим пингом на большинстве карт вам нечего делать,любая маломальская задержка, сорвет продвижение по дорожке.

зы. данный блок тестировался и не раз, пока что никаких проблем небыло. :)
 
с "sv_gravity 0" можно вообще не прыгать а летать
Но sv_gravity - это серверный квар, который может изменить только администратор, тогда как упомянутый мною трюк выполняется на стороне клиента и доступен каждому.

Я не утверждаю, что эта конструкция - плохая и не годится для использования. Я всего лишь указываю на замеченные уязвимости. Я даже соберу их в удобный и понятный список. Подытожим:
1) Как маппер, решивший позаимствовать этот метод, я не могу увеличить время простоя на блоке. Я подробно расписал почему в сообщении выше.
2) Так как происходит проверка на взаимодействие, а не на наличие, я могу обманывать эту систему, регулярно касаясь блока - например, при помощи трюка, известного как DoubleDuck.
3) Если блок, например, находится в помещении с низким потолком, то можно успеть прыгнуть и коснуться блока до того, как он деактивируется. В итоге получится ложное срабатывание, и прыгающего игрока телепортирует.
4) Серьезная зависимость конструкции от пинга. Причем не обязательно в худшую сторону. Поскольку передвижения находятся на стороне клиента, то триггер может сработать с запозданием - пока сервер ждал пакета, игрок уже убежал. Хотя, я наблюдал и обратную ситуацию - когда триггеры как будто срабатывали заранее, и сервер дергал убежавшего игрока назад, делая поправку на действия ентити. Я не могу дать точного ответа, почему так происходит. Но неоднократные эксперименты очень красноречиво показали, что игра в интернете и короткие временные переменные - плохо сочетаемые вещи.

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

hypax

Парам парам пам! ПАМ!
18.07.2013
581
2 Kyo:
> 2) Так как происходит проверка на взаимодействие, а не на наличие, я могу обманывать эту систему, регулярно касаясь блока - например, при помощи трюка, известного как DoubleDuck.

это решается просто - портал на кнопке вытягивается чуть выше т.к DoubleDuck это грубо говоря "не высокий прыжок" то игрок исполняющий его портнется, т.к не взлетел на высоту прыжка.Хотя откровенно говоря, обманув и встав на блоке с помощью DoubleDuck игрок потеряет скорость,что не имеет смысла.

Мблок может не совсем соответствовать требованиям игры в интернете из-за особенности портировать всех и вся в момент активации, следовательно преодолевать данную дорожку может один игрок(остальные в очередь) это тоже надо учитывать.

С остальным в принципе согласен, хотя отвязать принцип работы от временных промежутков наврятли удастся, ведь даже таже дверь перемещается за определенный промежуток времени.Другое дело подстраивать и модернизировать мблок под условия прохождения дорожки.
 
это решается просто - портал на кнопке вытягивается чуть выше
Это сломает конструкцию. Высота подъема с DD - 32 юнита. Преодолеть эту высоту за десятую секунды обычным прыжком нельзя. И, как мы уже выяснили, увеличить доступное на прыжок время тоже нельзя. Почему мне приходится объяснять очевидные, казалось бы, вещи?

С остальным в принципе согласен, хотя отвязать принцип работы от временных промежутков наврятли удастся
Это возможно. Нужно подумать в другом направлении. Задача аналогична игре в горячую картошку - нельзя задерживаться на блоке слишком долго. То есть, образно говоря, блок должен становится "холодным" , каждый раз как его никто не касается, но начинать нагреваться сразу же, как его вновь начнут касаться. Опасная телепортирующая область не должна появляться, если лимит времени не превышен. Такой подход решит все четыре упомянутые проблемы.
 

hypax

Парам парам пам! ПАМ!
18.07.2013
581
Kyo сказал(а):
Это сломает конструкцию. Высота подъема с DD - 32 юнита. Преодолеть эту высоту за десятую секунды обычным прыжком нельзя. И, как мы уже выяснили, увеличить доступное на прыжок время тоже нельзя. Почему мне приходится объяснять очевидные, казалось бы, вещи?
Потому что вы хотите сделать анти-dd, при этом непонятно зачем.Нужно рассматривать реальную ситуацию на реальной дорожке, а говорить об этом не имея реального обьекта для которого решается задача, можно долго.

нельзя задерживаться на блоке слишком долго. То есть, образно говоря, блок должен становится "холодным" , каждый раз как его никто не касается, но начинать нагреваться сразу же, как его вновь начнут касаться. Опасная телепортирующая область не должна появляться, если лимит времени не превышен.
на таком принципе, также будет ограничение по времени пребывания,что также нехорошо скажется в игре на серверах, и также можно будет использовать dd(при низком потолке,временной промежуток между прыжками сокращается,что также похоже на dd) и это казалось бы тоже, очевидные вещи.

зы.еще раз повторюсь, что если хочется ограничить игрока в использовании прыжков, нужно рассматривать на реально существующей дорожке. :)
 
вы хотите сделать анти-dd, при этом непонятно зачем.
Вам действительно непонятно? Я написал настолько размыто и недоходчиво, что смысл остался неясен? В таком случае, простите, моих способностей в риторике недостаточно, чтобы исправить положение. Я сделал все что мог.

Нужно рассматривать реальную ситуацию на реальной дорожке
Вы сами подталкиваете меня к мысли о том, нужен ли вообще этот блок на "реальной дорожке", когда существуют другие эффективные и менее ресурсоемкие по количеству ентитей методы. Однако, не будем об этом. Сейчас мне интересен конкретный блок, о котором эта тема.

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

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

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

hypax

Парам парам пам! ПАМ!
18.07.2013
581
2 Kyo:

Ну зачем же истерить?)В решении любой задачи, нужно прийти к консенсусу :) иначе, одна из сторон останется не довольной, что подвергает сомнению такое решение.

Относительно слова багрепорт, подразумевается подробное описание ошибки, с приложенными скриншотами.Вы же сами утверждали,что внесение изменений в данную конструкцию "сломает ее", из чего следует что вам нужна другая система, принцип которой вы описали используя пример с картошкой :D ,что кстати ставит под сомнения ваше высказывание что вы маппер.(напоминает фразу юного игродела: я хочу сделать игру как гта, только чтобы во все дома можно было заходить) Соответственно нужно понимать и представлять ограничения и возможности данного движка и т.д и т.п.

К сожалению я ошибочно понял, что вы создаете проект в котором хотите использовать данный блок(соответственно проблему с использованием double_duck можно решить к конкретной дорожке т.к в другом месте данное ограничение может наоборот мешать), теперь же я понимаю что вы просто накручиваете количество сообщений на форуме :)

Я принимаю Ваши извинения)

ps.данную систему мблока изменять не буду, она выполняет свои функции.Но никто не запрещает скачать рмф файл и экспериментировать сколько душе угодно.И возможно вы сделаете систему еще лучше.Если вы решите продолжить свои высказывания, пишите мне в лс , не стоит засорять тему.:drink:
 
Последнее редактирование:
Ну зачем же истерить?)
ставит под сомнения ваше высказывание что вы маппер.
напоминает фразу юного игродела
вы просто накручиваете количество сообщений
Какого сена ты меня оскорбляешь? Слушай, сахарок, я не твой дружок из контерстрайка. Будь добр придержать коней и не хамить.

скачать рмф файл и экспериментировать сколько душе угодно.И возможно вы сделаете систему еще лучше.
Я то сделаю, не сомневайся. Может мне и тутор за тебя дописать?

Что же, мне не сложно. Прикрепляю рабочий пример к сообщению.
 

Вложения

hypax

Парам парам пам! ПАМ!
18.07.2013
581
2 Kyo:
Я то сделаю, не сомневайся
Да ктож сомневается, я же понятно написал и никто тебя не оскорблял :facepalm: не канюч и не принимай близко к сердцу.

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

Оффтоп
 

Вложения

Half-Life: Alyx release

000
Дней
00
часа(ов)
00
minutes
00
Секунды
До выхода Half-Life: Alyx
Half-Life: Alyx вышел!

Донат - Хостинг

Итого
125.00 $
Цель
600.00 $

Доноры Красавчики

Пользователи онлайн