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


    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.6 залит на сервера, функции медленных передвижений скрыты от всех кроме меня, пока проходит тестирование и выявление новых теоритических уязвимостей.

     

    Дополнения:

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

    Прототип BUTTONS REFRESH 3.7

     

    В предыдущем прототипе наладил антизастревание, исправлено много багов, и в целом релиз уже готов, но  все же нужно наладить синхронность, например если блокируется движение одного из медленных предметов кнопки, все остальные медленные предметы которые не блокируются продолжают движение, не очень красиво когда кнопка в лифте устремляется вверх пока платформа стоит)

     

    EDIT:

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

     

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

     

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

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

    Прототип BUTTONS REFRESH 3.8

     

    Теория:

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

     

    Рабочие заметки: 

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

     

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

     

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

     

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

     

    Сделано:

    • В настройки кнопок добавлена опция, Тип медленного передвижения::
      • Асинхронный (по умолчанию)
      • Синхронный
    • Исправлен баг с очисткой защиты слота после конца раунда
    • Полностью реализовано асинхронное и синхронное движение (100% контроль над синхронностью)
    • Запользовать шаговик как форсировщик, это позволит реализовать повороты т.к. форсировщик больше не будет иметь риск сломать последовательность действий.
    • Восстановить работу сломанной проверки доступа которая ориентировалась на запущенный таймер.
    • Кеширование UUID предметов с которыми будем работать до запуска шаговика, поскольку это очень тяжелая операция и выполняется она при каждом шаге шаговика что прям таки зверзки грузит.из предиктивной проверки вырезана поддержка медленных действий т.к. пока не придумал как внедрить без траты лишних ресурсов.
    • в предиктивной проверке внедрены оптимизации из шаговика, к примеру по новой уже не берет координату под каждое из действий для одного предмета
    • кеширование UUID вне функций PredictCheckButtonActions и ProcessButtonActions, кое где это дает хорошую экономию т.к. избавляет от необходимости кешить два раза подряд, если идет предиктивная а потом исполнительная сразу же.
    • Исправлены утечки памяти появившиеся после прототипа 3.6
    • Все ранее неуправляемые таймеры анимации кнопок теперь заменены датаймерами и их работа контролируется во время форсировки медленных действий до снятия снимков.
    • Как оказалось предиктивная проверка всех отрезков работает неправильно при наличие более одного медленного действия над одним предметом, данный баг выявился когда тот же принцип я хотел использовать в шаговом обработчике, тоже придется исправлять. 
    • Добавить медленные повороты
    • Выделить все нужные данные под медленные действия в отдельный кеш, туда войдет:
      • статус кнопки во время запуска медленных действий
      • кол-во оставшихся шагов
      • структура будет повторять структуру основного кеша кнопок но важно понимать тут только нужные данные, так мы избавивмся от ненужного мусора в основном кеше, а так же от проблем сброса статуса кнопки, когда мы по итогу не понимаем что делала кнопка до запуска форсировщика.
    • Исправлен баг при выполнении пуш кнопкой медленных действий сразу же по концу можно тут же прожать и скипнуть анимацию кнопки.
    • Полностью переписан форсировщик, теперь он не делает что-то за кнопки, а заставляет их таймеры выполнятся сразу после запуска форсировщика, это избавляет от тонн кода и багов.

     

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

    Произошла авария:

    L 12/30/2018 - 15:03:42: Info (map "c5m5_bridge") (file "errors_20181230.log")
    L 12/30/2018 - 15:03:42: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:03:42: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:03:42: [SM] Call stack trace:
    L 12/30/2018 - 15:03:42: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:03:42: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:03:42: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:03:42: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:03:42: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:03:54: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:03:54: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:03:54: [SM] Call stack trace:
    L 12/30/2018 - 15:03:54: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:03:54: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:03:54: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:03:54: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:03:54: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:04:06: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:04:06: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:04:06: [SM] Call stack trace:
    L 12/30/2018 - 15:04:06: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:04:06: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:04:06: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:04:06: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:04:06: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:04:18: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:04:18: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:04:18: [SM] Call stack trace:
    L 12/30/2018 - 15:04:18: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:04:18: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:04:18: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:04:18: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:04:18: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:04:30: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:04:30: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:04:30: [SM] Call stack trace:
    L 12/30/2018 - 15:04:30: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:04:30: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:04:30: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:04:30: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:04:30: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:04:42: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:04:42: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:04:42: [SM] Call stack trace:
    L 12/30/2018 - 15:04:42: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:04:42: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:04:42: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:04:42: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:04:42: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:04:54: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:04:54: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:04:54: [SM] Call stack trace:
    L 12/30/2018 - 15:04:54: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:04:54: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:04:54: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:04:54: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:04:54: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:05:06: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:05:06: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:05:06: [SM] Call stack trace:
    L 12/30/2018 - 15:05:06: [SM]   [1] Line 2495, fort_system/stocks/stocks_buttons.sp::tmrSlowButtonActionStepHandler
    L 12/30/2018 - 15:05:06: [SM]   [3] TriggerTimer
    L 12/30/2018 - 15:05:06: [SM]   [4] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:05:06: [SM]   [5] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:05:06: [SM]   [6] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:05:06: [SM]   [7] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:05:18: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:05:18: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:05:18: [SM] Call stack trace:
    L 12/30/2018 - 15:05:18: [SM]   [1] Line 2895, fort_system/stocks/stocks_buttons.sp::MakeButtonActionStep
    L 12/30/2018 - 15:05:18: [SM]   [2] Line 2503, fort_system/stocks/stocks_buttons.sp::tmrSlowButtonActionStepHandler
    L 12/30/2018 - 15:05:18: [SM]   [4] TriggerTimer
    L 12/30/2018 - 15:05:18: [SM]   [5] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:05:18: [SM]   [6] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:05:18: [SM]   [7] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:05:18: [SM]   [8] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:05:30: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:05:30: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:05:30: [SM] Call stack trace:
    L 12/30/2018 - 15:05:30: [SM]   [1] Line 527, fort_system/stocks/stocks_buttons.sp::GetButtonSlowActionsCacheFloatOffsetsLeftByUUID
    L 12/30/2018 - 15:05:30: [SM]   [2] Line 2498, fort_system/stocks/stocks_buttons.sp::tmrSlowButtonActionStepHandler
    L 12/30/2018 - 15:05:30: [SM]   [4] TriggerTimer
    L 12/30/2018 - 15:05:30: [SM]   [5] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:05:30: [SM]   [6] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:05:30: [SM]   [7] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:05:30: [SM]   [8] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:05:42: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:05:42: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:05:42: [SM] Call stack trace:
    L 12/30/2018 - 15:05:42: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:05:42: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:05:42: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:05:42: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:05:42: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:05:54: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:05:54: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:05:54: [SM] Call stack trace:
    L 12/30/2018 - 15:05:54: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:05:54: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:05:54: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:05:54: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:05:54: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:06:06: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:06:06: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:06:06: [SM] Call stack trace:
    L 12/30/2018 - 15:06:06: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:06:06: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:06:06: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:06:06: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:06:06: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:06:18: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:06:18: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:06:18: [SM] Call stack trace:
    L 12/30/2018 - 15:06:18: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:06:18: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:06:18: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:06:18: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:06:18: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:06:30: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:06:30: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:06:30: [SM] Call stack trace:
    L 12/30/2018 - 15:06:30: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:06:30: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:06:30: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:06:30: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:06:30: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:06:42: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:06:42: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:06:42: [SM] Call stack trace:
    L 12/30/2018 - 15:06:42: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:06:42: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:06:42: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:06:42: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:06:42: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:06:54: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:06:54: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:06:54: [SM] Call stack trace:
    L 12/30/2018 - 15:06:54: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:06:54: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:06:54: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:06:54: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:06:54: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd
    L 12/30/2018 - 15:07:06: [SM] Exception reported: Script execution timed out
    L 12/30/2018 - 15:07:06: [SM] Blaming: l4d2_fort_system.smx
    L 12/30/2018 - 15:07:06: [SM] Call stack trace:
    L 12/30/2018 - 15:07:06: [SM]   [0] TriggerTimer
    L 12/30/2018 - 15:07:06: [SM]   [1] Line 3166, fort_system/stocks/stocks_buttons.sp::FinishButtonActions
    L 12/30/2018 - 15:07:06: [SM]   [2] Line 3070, fort_system/stocks/stocks_buttons.sp::ForceFinishAllButtonActions
    L 12/30/2018 - 15:07:06: [SM]   [3] Line 3, fort_system/stocks/stocks_snapshots.sp::MakeSnapshotEntitiesOnMap
    L 12/30/2018 - 15:07:06: [SM]   [4] Line 97, fort_system/game_events.sp::Event_RoundEnd

    форсировщик не смог остановится, как оказалось он зациклился, защита от зацикливания не сработала по причине недоделок второго таймера, где я забыл добавить прибавление кол-ва итераций.

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

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

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

    Исправленный билд BUTTONS REFRESH 3.9 загружен :

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

    Надо подумать как исправить недостаток, когда делаешь медленные передвижения и повороты над одним предметом одновременно которые имеют разное количество шагов и отрезков, то когда заканчивается одно из действий другое продолжает идти, но.. в ОБРАТНОМ порядке это никак не учитывается (да отрезки и повороты идут как-бы в обратном порядке, но не учитывается что одно действие кончается раньше другого) и в итоге предмет будучи на старте этих действий в одной точке, возвращается в другую. Пока что идей насчет этого у меня нет. Если над предметами совершаются одновременно повороты и передвижения с одинаковыми параметрами то все проходит хорошо, поскольку выполняющиеся действия шагают как бы одновременно вместе, и проблем не возникает конечно же.

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

    В 31.12.2018 в 15:22, Electr0 сказал:

    Надо подумать как исправить недостаток, когда делаешь медленные передвижения и повороты над одним предметом одновременно которые имеют разное количество шагов и отрезков, то когда заканчивается одно из действий другое продолжает идти, но.. в ОБРАТНОМ порядке это никак не учитывается (да отрезки и повороты идут как-бы в обратном порядке, но не учитывается что одно действие кончается раньше другого) и в итоге предмет будучи на старте этих действий в одной точке, возвращается в другую. Пока что идей насчет этого у меня нет. Если над предметами совершаются одновременно повороты и передвижения с одинаковыми параметрами то все проходит хорошо, поскольку выполняющиеся действия шагают как бы одновременно вместе, и проблем не возникает конечно же.

     

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

     

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

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

    Данный метод работает, но в миксе с множеством всяких разных действий все же не может сохранить 100% результат.

     

    L 02/01/2019 - 17:28:14: STEPPER STEP START
    L 02/01/2019 - 17:28:14: SEARCH MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330
    L 02/01/2019 - 17:28:14: [ENT 330][4]:: fLeftOffsets 14.000003
    L 02/01/2019 - 17:28:14: [ENT 330][3]:: fLeftOffsets 11.999999
    L 02/01/2019 - 17:28:14: [ENT 330][2]:: fLeftOffsets 14.000000
    L 02/01/2019 - 17:28:14: [ENT 330][1]:: fLeftOffsets 14.000011
    L 02/01/2019 - 17:28:14: FOUND MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330 fMaxLeftOffsets 14.000011
    L 02/01/2019 - 17:28:14: SKIP iEnt 330, iActionNumb 3, fLeftOffsets 11.999999, fMaxLeftOffsets 14.000011
    L 02/01/2019 - 17:28:14: STEPPER STEP END
    L 02/01/2019 - 17:28:14: STEPPER STEP START
    L 02/01/2019 - 17:28:14: SEARCH MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330
    L 02/01/2019 - 17:28:14: [ENT 330][4]:: fLeftOffsets 13.000003
    L 02/01/2019 - 17:28:14: [ENT 330][3]:: fLeftOffsets 11.999999
    L 02/01/2019 - 17:28:14: [ENT 330][2]:: fLeftOffsets 13.000000
    L 02/01/2019 - 17:28:14: [ENT 330][1]:: fLeftOffsets 13.000011
    L 02/01/2019 - 17:28:14: FOUND MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330 fMaxLeftOffsets 13.000011
    L 02/01/2019 - 17:28:14: SKIP iEnt 330, iActionNumb 3, fLeftOffsets 11.999999, fMaxLeftOffsets 13.000011
    L 02/01/2019 - 17:28:14: STEPPER STEP END
    L 02/01/2019 - 17:28:15: STEPPER STEP START
    L 02/01/2019 - 17:28:15: SEARCH MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330
    L 02/01/2019 - 17:28:15: [ENT 330][4]:: fLeftOffsets 12.000003
    L 02/01/2019 - 17:28:15: [ENT 330][3]:: fLeftOffsets 11.999999
    L 02/01/2019 - 17:28:15: [ENT 330][2]:: fLeftOffsets 12.000000
    L 02/01/2019 - 17:28:15: [ENT 330][1]:: fLeftOffsets 12.000011
    L 02/01/2019 - 17:28:15: FOUND MAX COUNT OFFSETS LEFT FOR SLOW ACT ON iEnt 330 fMaxLeftOffsets 12.000011
    L 02/01/2019 - 17:28:15: SKIP iEnt 330, iActionNumb 3, fLeftOffsets 11.999999, fMaxLeftOffsets 12.000011
    L 02/01/2019 - 17:28:15: STEPPER STEP END

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

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

    Изменен метод определения таких случаев как 12.000003 и 11.999999 когда эти числа обозначают одно число 12 к примеру и прочие такие же. Теперь погрешность при наличие и медленных поворотов и медленных передвижений над одним и тем же предметом составляет ~1% , если только медленные передвижения по то там 0%

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

    надо сделать инструкцию по лифтам (на три кнопки, на платформе, на первом уровне, на втором уровне ) и дверям (две кнопки, снаружи, внутри) обычного типа и дверям слайдерного типа, ибо эти ...!@%%#Z&, эти ... f455GF$#G эти ...c34ghFD45h не понимают что надо выбирать вместо Передвинуть по осям предмета, выбирать Передвинуть по осям предмета [Медленно]

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

    Прототип 3.9.1

     

    Добавить:

    • В управление пункт Синхронизация кнопок, он становится активным если включено редактирование помеченных предметов, и помеченные кнопки по замыслу должны друг с другом засинхронизироваться (обмен взаимными действиями Выставить статус ВКЛ.), если у каких-то кнопок не позволяют лимиты то писать сколько кнопок не получилось засинхронить

     

    Сделано:

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




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

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

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

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

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

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

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

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


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

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

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

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

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

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

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