Перейти к публикации
  • добавить автоматическую синхронизацию кнопок


    Electr0
    • Публичное тестирование

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

     

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

     

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

     

    если не хватает лимита уместить действия синхронизации то выбивает в ошибку.


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

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



    прототип 1: 

     

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

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

    прототип 2 завершен, синхронизация кнопки с указанной кнопкой происходит успешно

     

    прототип 3

     

    нужно добавить проверки защиты от превышения лимитов действий во время синхронизации.

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

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

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

    прототип 3

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

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

    прототип 3 завершен, синхронизация помеченных кнопок между собой работает

     

    прототип 4 добавить проверки:

    1. при выполнении синхронизации помеченнных предметов если предмет один то не запускать цепочку действий

    2. при выполнении синхронизации помеченных предметов делать расчет в предварительной проверке у какой кнопки сколько осталось в лимите действий.

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

     

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

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

     

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

    причины вполне объективны, при синхронизации 45 кнопок, кол-во связей между ними  44 * 45 = 1980 действий

     

    На выполнение синхронизации одной кнопки с другой уходит:  0.000406 сек

    На выполнение синхронизации 45 предметов уходит: 0.946917 сек, а это очень большой лаг ведь встает весь сервер на секунду

     

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

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

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

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

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

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

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

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

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

     

    прототип 5, добавить предстартовые проверки в функцию синхронизации помеченных кнопок.

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

    прототип 5,

     

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

     

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

    все хорошо, исправлено, добавлено, удалено

     

    при синхронизации помеченных кнопок эти параметры суммируются и показывается общая статистика по выполенной работе: к примеру:


    [FS] Вы синхронизировали 45 кнопок между собой, по действиям: все хорошо 0, исправлено: 0, добавлено 1980, удалено: 0.

     

    если запуск происходит повторно и все действия в порядке:


    [FS] Вы синхронизировали 45 кнопок между собой, по действиям: все хорошо 1980, исправлено: 0, добавлено 0, удалено: 0.

     

     

    если замечена ошибка в настройках синхронизации:


    [FS] Вы синхронизировали 45 кнопок между собой, по действиям: все хорошо 1978, исправлено: 2, добавлено 0, удалено: 0.

     

     

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

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

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




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

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

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

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

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

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

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

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


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

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

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

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

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

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

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