Перейти к публикации
  • Кнопки


    Electr0
    • Сделано

    Возможности

     

    Описание:

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

     

    Применение:

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

     

    Ограничения:

    • Лимит действий на  кнопку: 20
    • Лимит действий над одним предметом в рамках одной кнопки: 10

     

    Типы:

    • Переключатель ( работает как обычный выключатель, действия совершенные при включении, при выключении выполняются в обратной последовательности )
    • Кнопка ( при нажатии выполняет действия которые нужно делать при включении и отжимается обратно  )

     

    Примеры моделей кнопок:

     

    Выключено:

    second.jpgfirst.jpgfive.jpg

     

    Включено:

    third.jpgfour.jpgsix.jpg

     

    Настройки  кнопки (!f - Управление => Настройки кнопки):

    • Название
    • Тип
    • Заблокировать после использования
    • Пароль
    • Обзор действий
    • Добавление действий
    • Тип медленного передвижения
    • Скопировать действия с другой кнопки
    • Сбросить настройки

     

    Настройки действий:

    • Типы действий над предметами:
      • Передвинуть по осям предмета

      • Передвинуть по осям предмета [Медленно]

      • Повернуть по осям предмета

      • Повернуть по осям предмета [Медленно]

      • Заблокировать (Дверь / Кнопку)
      • Разблокировать (Дверь / Кнопку)
      • Открыть дверь
      • Закрыть дверь
      • Выставить яркость
      • Выставить цвет по названию
      • Выставить RGB цвет
      • Выставить скин
      • Выставить анимацию
      • Выставить статус ВКЛ. (Кнопке)
      • Выставить статус ВЫКЛ. (Кнопке)
    • Перенастройка (вы можете перенастроить уже добавленное действие над предметом, в таком случае выбирать курсором, как при добавлении не придется)
    • Добавить еще (вы можете добавить еще одно действие к предмету)
    • Очередность (если у вас в рамках одной кнопки выполняется несколько действий над одним предметом, вы можете менять очередность их выполнения, для этого есть кнопки вверх / вниз в меню обзора действий)
    • Удаление

     

    Подсветка (красная):

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

     

    Предварительные проверки:

    • Перед запуском выполнения действий кнопки на передвижение и повороты, выполняется проверка на то попадет ли предмет действия в игрока, так же действие не начнут выполнятся если игрок стоит на предмете действия или прыгает на нем.
    • Если предметом действия являются двери и пока они открываются / закрываются кнопку нельзя нажать.
    • Если предметом действия является кнопка, пока она включается / выключается кнопку нельзя нажать.

     

    Сохранение

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

     

    Как найти?:

    !f => Предметы => Наборы => Кнопки

    !f => Предметы => Часто используемое => Кнопки

     

    Цена: 100 игровых $

     

    Меню:

    • О визуальном виде меню можно посмотреть ниже,  разделе стили меню, применен тот же стиль меню что и в библиотеке.

     

    Стили меню

     


    Меню настройки кнопки:


     

    Настройка кнопки

    UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb

    1. Обновить

     

    Название - Переключатель света  в холле

    2. Сменить

     

    Тип - Переключатель

    3. Сменить

     

    Заблокировать после использования

    4. Сменить

     

    Действия (4 / 20)

    5. Обзор (если 0 действий то серая)

    6. Добавить (если 20 действий уже есть то серая)

     

    8. Назад

     


    Меню обзора действий:


     

    Действие 1 / 4

    UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb

    Тип предмета: Лампа (Люминесцентная)

     

    Тип действия: Выставить яркость

    Включено: 500 / На 500 (Если тип кнопка)

    Выключено: 0 (Если тип кнопка не показывать)

    1. Перенастроить

     

    Очередность 1 / 2

    2. Вверх

    3. Вниз

     

    4. Удалить

     

    8. Назад

    9. Далее


    Действие 2 / 4

    UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb

    Тип предмета: Лампа (Люминесцентная)

     

    Тип: Выставить яркость

    Включено: 500 / На 500 (Если тип кнопка)

    Выключено: 0 (Если тип кнопка не показывать)

    1. Перенастроить

     

    Очередность 2 / 2

    2. Вверх

    3. Вниз

     

    4. Удалить

     

    8. Назад

    9. Далее


    Действие 3 / 4

    UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb

    Тип предмета: Дверь

     

    Тип: Передвинуть предмет по его ОСИ

    Ось: Y (Если тип кнопка не показывать)

    Включено: -54.51 / На -54.51 по оси Y  (Если тип кнопка)

    Выключено: 54.51 (Если тип кнопка не показывать)

    1. Перенастроить

     

    Очередность 1 / 2

    2. Вверх

    3. Вниз

     

    4. Удалить

     

    8. Назад

    9. Далее


    Действие 4 / 4

    UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb

    Тип предмета: Дверь

     

    Тип: Передвинуть предмет по его ОСИ

    Ось: Y (Если тип кнопка не показывать)

    Включено: -54.51/ На -54.51 по оси Y (Если тип кнопка)

    Выключено: 54.51 (Если тип кнопка не показывать)

    1. Перенастроить

     

    Очередность 2 / 2

    2. Вверх

    3. Вниз

     

    3. Удалить

     

    8. Назад

     

     


     

     

    Благодарности:

    • @raziEiL идея выставления обратной скорости воспроизведения анимации, которая очень подошла для организации анимации выключения щитового переключателя и голубой кнопки, модели которых не имеют анимации выключения.
    • @asha@Marysan@EskimoCallboy  тестирование

    Отзывы пользователей

    Рекомендованные комментарии



    Прототип 3.8

     

    Сделано:

    • Поискать и добавить еще модели кнопок с анимациями: models/props_fairgrounds/gallery_button.mdl:

    five.jpgsix.jpg

    • Создать запрос на удаление у игроков перед релизом следующих моделей, для избежания проблем:
      • models/props_unique/generator_switch_01.mdl
      • models/props_mill/freightelevatorbutton02.mdl
      • models/maxofs2d/button_03.mdl
      • models/maxofs2d/button_04.mdl
      • models/maxofs2d/button_05.mdl
    • Когда ставишь кнопки смотря на стену они ставятся криво (исключение голубая кнопка, она может использоваться на столе)
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 3.9

     

    Сделано:

    • В меню управления выставить яркость добавлены пункты 0, 350, 400, 450
    • В меню добавления действий в выставлении яркости добавлена возможность выбрать 0
    • Исправлено отсутствие подрузки данных кнопок при загрузке снимков конца раунда.
    • Исправлено отсутствие сохранения ламп в снимках конца раунда, из-за того что лампы в этот же момент делали очистку своих переменных, теперь запускаем создание снимка конца раунда чуть раньше.
    • Оптимизации сохранения, копирования, загрузки кеша кнопок, избавился по максимуму от экспорта в строку и импорта из нее.
    • Дополнительные стандартизации синтаксисов ArrayList, StringMap
    • Исправлен возврат в выбор цвета по названию при выходе назад из подтверждения действия по выставлению яркости
    Ссылка на комментарий
    Поделиться на других сайтах

    Все готово для внутреннего тестирования, @Marysan, @EskimoCallboy надо протестить в полевых условиях, создать какую нить убежку с ловушками, либо что-то к своим прикручивать

     

    Релиз ноты подготовлены, текст для объявления в стиме тоже. 

     

    Добавлена первая версия  инструкции в https://ally.pro/topic/397-obzor-vozmozhnostey-stroyki, там можно прочитать про применение как выключатель ламп, а так же обзор уже добавленных действий, и настройки кнопки

    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 4.0

     

    Сделано:

    • 1. Предиктивная проверка научилась предотвращать запуск действия если двери еще закрываются или открываются, так же если кнопка включается и выключается.
      2. if (StrEqual(sClass, "prop_dynamic") && IsButtonByUUID(sObjUUID)) => if (IsButtonByUUID(sObjUUID)) по причине бессмысленности анализа класса кнопки.
      3. добавлено действие выставить статус включена кнопке, и такое же для выключения чтобы синхронизировать нужные кнопки, к примеру кнопку для дверей внутри дома, и кнопку с снаружи, это единственный вариант без возникновения бесконечной рекурсии кода
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 4.1

    Сделано:

    1. Исправлен дубль статуса ошибки если над предметом выполняется пара одинаковых действий.
    2. Перемещен запрет выполнения действий над кнопками и дверьми, таким образом что в любые действия над ними не могли выполнятся если дверь или кнопка используется или открывается, закрывается.
    3. Удалено выставление 0 яркости, это ломает соседние лампы.
    4. добавляем проверку на нахождение на предмете для дверей, если дверь горизонтальная и ее открыть будет боба для тех кто на ней стоял =D
    5. разрешаю админам настраивать кнопки других игроков.

     

    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 4.2

    • Установлен минимальный порог установки яркости в 10
    • Исправлено появление исключений с таймером показа лазербокса предмета
    • Утолщены линии лазербокса в три раза
    Ссылка на комментарий
    Поделиться на других сайтах

    Нужно добавить проверку чтобы хозяин кнопки сходился с хозяином предметов действий, дело в том что если игрок передавал предметы другому игроку есть риск что эта кнопка начнет выполнять действия над чужими предметами. ЛИБО добавить генерацию новых uuid для предметов которые передавались другому игроку. 

    Ссылка на комментарий
    Поделиться на других сайтах

    В 13.11.2018 в 08:34, Electr0 сказал:

    Нужно добавить проверку чтобы хозяин кнопки сходился с хозяином предметов действий, дело в том что если игрок передавал предметы другому игроку есть риск что эта кнопка начнет выполнять действия над чужими предметами. ЛИБО добавить генерацию новых uuid для предметов которые передавались другому игроку. 

    нужно что-то другое, ведь есть варианты экзотики на вроде кнопки из автозагрузчика где не прошивается стим ид.

    Ссылка на комментарий
    Поделиться на других сайтах

    44 минуты назад, Electr0 сказал:

    Нужно на этапе передачи слота делать смену UUID

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

    Ссылка на комментарий
    Поделиться на других сайтах

    18 минут назад, Electr0 сказал:
    1 час назад, Electr0 сказал:

    Нужно на этапе передачи слота делать смену UUID

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

    решил проблему достаточно просто, перед выполнением предиктивной проверки и перед исполнением действий я формирую кеш UUID состоящий из структуры UUID == REF индекс пропа, таким образом я оптимизирую доступ к пропам по UUID, но я ведь зная что у кнопки есть хозяин со стим идом, могу сформировать кеш UUID именно с стимид'ами хозяина кнопки, это я и сделал.

    Ссылка на комментарий
    Поделиться на других сайтах

    Релиз кандидат 1.01:

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

    Релиз кандидат 1.04:

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

    Релиз кандидат 1.05:

    • Исправлен найденный вчера баг, когда вводимые значения в виде слова NE прокатывали для числовых инпутов что так-то не АЛЕ.
    • Оптимизирована проверка макс и минимальных пороговых значений числовых инпутов.
    • Добавлен выбор действия ВЫКЛЮЧЕНИЯ после выбора следующих действий: 
      • Заблокировать (Дверь / Кнопку)
      • Разблокировать (Дверь / Кнопку)
      • Открыть дверь
      • Закрыть дверь
      • Выставить статус ВКЛ. (Кнопке)
      • Выставить статус ВЫКЛ. (Кнопке)
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип BUTTONS REFRESH 3

     

    Сделано:

    • Создана и протестирована вторая итерация плавного передвижения предметов, вторая версия научилась правильно опускать и поднимать предметы, старая могла только поднимать т.к. работала с только положительными числами, вторая версия умеет двигать во по всем осям в оба направления оных.
    • Меню добавления такого типа передвижения
    • Устранить тряску во время нахождения на предметах которые передвигаются вверх (теперь очень здорово ездить на таком лифте), первая версия этого фикса основывается на телепортации игроков на величину отрезка передвижения,  у этого метода есть недостаток, если игрок по воле судьбы или идиотизма стоит на пути другого предмета он застрянет в нем, т.к. проверка не проверяет на его пути.
    • Пофиксить отсутствие фикса на тряску для ботов.
    • Устранить проблему с предиктивной проверкой которая должна при таких действиях делать прогноз на передвигаемый отрезок
    • Исправить проблему застревания если стоишь на медленно поднимающейся кнопке
    • Устранить проблему отсутствия запрета на сохранение во время выполнения таймеров медленных действий
    • Запретить переключатся статусу кнопки если медленные действия еще не окончены.
    • Расширить лимит действий до 30
    • Исправлен баг с медленными действиями первых прототипов которые исключали возможность двух и более действий над одним предметом т.к. указатель закрывался при открытии таймера следующего действия.
    • Устранить проблему отсутствия запрета действий над предметами над которыми выполнятся медленные действия

     

    Надо сделать:

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

     

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

    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип BUTTONS REFRESH 3.4

     

    Сделано:

    • Устранить проблему сохранения снимков во время движения пропов (дампер снимков должен предсказывать положение предмета в пространстве после операций включения / выключения)
    • При выключении плагина если есть активные медленные действия, все они должны быть форсированно завершены до выгрузки плагина во избежании поломки предметов. Кнопки должны быть так же форсированы в состояние когда их анимация соответствует итогу операции которая ей выполнялась.
    • Исправлен баг с отсутствием хп у кнопок после спауна (0-day)
    • Исправить баг с тряской предмета при медленных действиях после работы форсировщика финиша действий
    • Реализован фикс багов финиша действий, теперь финиш действий невозможно затролить, однако в нем остался баг с кнопками которым выставляют статус включена / выключена
    • Исправлен баг при форсировке действий с кнопками которым выставлялся статус вкл.  / выкл.
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип BUTTONS REFRESH 3.5

     

    Сделано:

    •  Устранить проблему застревания при выполнении медленных действий если на пути предмета оказался игрок
    • Устранить проблему с предиктивной проверкой которая должна при таких действиях делать прогноз на все передвигаемые отрезки сразу и если в одном из них есть косяк то не давать разрешение на запуск. [Это обязательно надо сделать иначе есть высокий риск зацикливания таймера медленных действий в местах где следующий отрезок ведет в точку куда нельзя поставить предмет]
    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип BUTTONS REFRESH 3.6

     

    Сделано:

    • Защита от зажимания пропами в случаях когда человек встает между двумя стремящимися сомкнутся пропами, в этих случаях реализуется защита от false детекта когда плагин думает что человек стоит на предмете
    • Защита от побочных эффектов телепортации стоящих на предмете людей синхронно с предметом, в этих случаях закрыта проблема когда игрока могло телепортировать в стоящие на верху пропы.
    • Поддержка фикса застревания / сваливания с предметов под медленным действием во время прыжков

     

    Этот прототип очень важен, поскольку он позволит сократить вероятность возможных застреваний.

    Ссылка на комментарий
    Поделиться на других сайтах




    Присоединяйтесь к обсуждению

    Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

    Гость
    Добавить комментарий...

    ×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

      Разрешено не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

    Отклонено = Отзыв некорректный, бред, либо уже реализовано. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...