Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3638
Старый 27.05.2022, 00:04
  #3638
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Скрипты

}{0TT@6bI4Не рухнет. Максимум — будет подвисать при загрузке карты.

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

Jewilly, если вдруг заинтересует красивое решение, то просто скажу, на чём оно основывается:
При помощи функций IsTilePassable можно проверять расположение блокирумеых клеток относительно центра объекта (у гарнизона — одна сверху, одна снизу). После опознования ориентации гарнизона, герой просто перекидывается на другую сторону при помощи SetObjectPosition с типом телепортации 0 (без анимации), если владелец героя не забаненный игрок (все это через триггер касания)

Ну и по красоте, нужно создать класс "Гарнизон" с методами ЗабанитьИгрока, РазбанитьИгрока и прочей шлабудой при желании, если добавлять какие-то эффекты, допсообщения и так далее.
Отличное решение, и правда. Так скажем выжимает из механики максимум .
Когда я только сел писать скрипт для карты, с большими амбициями я полетел реализовывать собственные структурки и паттерны выдумывать, собственно занимаясь внедрением основным приёмов ООП в мой код.
Однако, так как карта не является РПГшной и всякие механики проработаны не очень глубоко, я пришёл к тому, что я пишу 2-3 дня(сами знаете, что не всегда есть время в героях поковыряться) какой-то интересный функционал, учитывая 1)Все правила красивого кода 2)Все книжные пастулаты 3)Творческое я 4)Основную концепцию ООП, делаю всё красиво. Потом этот функционал используется в виде 30-40 строк кода, и далее лежит мертвым файлом. 
Я прикинул сроки написания скрипта таким макаром, и учитывая, что очень большая часть разработки карты являет собой исключительную боль(по-крайней мере мне сложно смириться с очень урезанным функционалом скриптовой библиотеки), решил писать всё на адекватных, но всё-таки костылях. Из разряда побаловаться глобальными переменными туда-сюда, и всё в таком духе К тому же рефакторинг моего геройского кода сложен, отсюда часть функционала лежит мертвым грузом за неимением времени его переделать(Он ведь, сволочь, работает как часы, и жалко удалять!!!).
Не знаю, к чему я это, видимо накипело. Однако доки к скрипту я пишу, надеюсь, что какой-то нубик впоследствие сможет накопипастить оттуда приколов.
__________________




Не уходи безропотно во тьму,
Будь яростней пред ночью всех ночей,
Не дай погаснуть свету своему!

Хоть мудрый знает – не осилишь тьму
Во мгле словами не зажжёшь лучей –
Не уходи безропотно во тьму.




                                                                                       




Не уходи безропотно во тьму,
Будь яростней пред ночью всех ночей,
Не дай погаснуть свету своему!

Хоть мудрый знает – не осилишь тьму
Во мгле словами не зажжёшь лучей –
Не уходи безропотно во тьму.




                                                                                       
Jewily вне форума
Ответить с цитированием