Jump to content
Korean Random

Polyacov_Yury

User
  • Content Count

    1792
  • Joined

  • Last visited

  • Days Won

    35

Polyacov_Yury last won the day on November 20

Polyacov_Yury had the most liked content!

Community Reputation

1406 ⭐⭐⭐⭐⭐

7 Followers

About Polyacov_Yury

  • Rank
    Танкоэлектрик
  • Birthday 02/28/1998

Basic information

  • Gender
    Мужчина
  • City
    Краснодар/Петергоф

Contacts

  • Nick
    Polyacov_Yury
  • Skype
    brain_drone

Recent Profile Visitors

15984 profile views
  1. Знаем :) Моды перезалиты на ЯДиске вчера вечером.
  2. Рабочий каталог же теперь точно так, как есть? Гонять его туда-сюда не так просто, как хотелось бы :)
  3. Если на прод-сервере будет как в 1.6 - смысл менять?)
  4. Там на тесте рабочий каталог переехал из WOT_ROOT/win32/ в WOT_ROOT/ (при старте из WGC). Так и должно быть? (У меня моды насовали конфигов в WOT_ROOT/../mods/)
  5. Шкуродёровый архив тоже обновили?) (дата изменения стоит 28.11 (вчера)) P.S. Для ссылки на его топик (я про шапку тутошнюю) достаточно https://koreanrandom.com/forum/topic/22800-, остальное дополнится само.
  6. Надо натравить Орион на папку win32 и создать два симлинка (на paths.xml и version.xml)
  7. That's literally the only thing you never can copy over. Everything else is generally fine.
  8. Были мысли о том, чтобы сделать что-то похожее на то, что Странник делает в своём wottransmission. Влезть в bw_site.py и до загрузки вотмодов клиентом подсовывать ему старые моды. Суть только в том, что иногда микропатчи действительно что-то ломают. В основном потому, что их разработка начинается после выхода основной версии, и нет возможности предварительно выкатить их куда-нибудь типа ST8, чтобы мододелы имели возможность подготовиться ко всяким Линиям Фронта и прочему Хеллоуину до того, как это будет отдано пользователям на растерзание. Иначе же весь контент просто выкатывался бы при выходе основной версии.
  9. Соль ещё в том, что даже если в архиве папки с номером версии нет - один фиг его перезаливать надо. А если зальешь архив со старой версией - завернут.
  10. То есть, я правильно понял, что было сделано исправление, возвращавшее старое поведение (и пути к конфигам), но, поскольку все уже переехали на новую систему, это исправление пришлось откатывать?
  11. Хоттабыч, не перепостивай ссылки, плис. Сказать юзерам, что в шапке ссылка актуальна, вполне достаточно. И да, я про ГДрайв в курсе. Я просто ещё на новой машине не настроил заливку архивов, а это, в свою очередь, потребует правки ВСЕХ ссылок на ГДрайв. Надо найти, могу ли я сделать так, чтобы мой телефон не закачивал их в себя, но при этом я всё ещё мог их просто в папку Драйва положить и получить перманентные пермалинки... Да, можно. Добавляете в нужный блок строчку "inPostmortem": true P.S. Это хорошо :) И да, я только что архив перезалил. Буквожор буквы в конфигах поел немного (Юра криво написал регулярку для расстановки пробелов после запятых) :D
  12. Архивы перезалиты, теперь всё должно работать.
  13. Знаэмо. ВГ в этом патче загрузку конфигов сломали. Как раз пришёл с обеда фикс заливать.
  14. Я знаю, как это называется. Пост для юзеров написан в понятных им "терминах". Предлагаешь нагромоздить конвертацию в кортежи в ридер JSON-конфигов? Мысль, конечно, неплохая. Но применить можно не везде. А у меня всё же код довольно сильно унифицирован из-за (и благодаря) используемому PYmodsCore ConfigInterface API. В принципе, пока моды не выкатил - можно и посмотреть. Спасибо за наводку, половлю, кому из модов именно что нужна динамичность в хранилище данных из конфига. Не факт, что кому-то она и правда нужна. Не путай. Одно дело - писать data.get(key, []). Совершенно другое - def func(val=[]): return. То, о чём ты говоришь - это как раз второе. Первое же - вполне приемлемая (и, насколько я знаю, pythonic'ная) однострочная замена конструкции val = [] if key in data: val = data[key] Почитал. Как говорится, коротко о том, почему я с таким стажем до сих пор считаю себя джуном: на слово "юнит-тест" у меня реакция однозначная: "ШТОЭТА?". Да и не очень понятно, как я их к Танкам прикручу, со всем нашим манки-патчингом через overrideMethod.
  15. Итак, товарищи пользователи. Спустя два дня интенсивного кодинга и два вечера не менее интенсивной мигрени (вчера и сегодня) я переписал весь код мода практически с нуля. Ужался он всего на 25 строк, но это не отменяет того факта, что всякие нелогичности были из него вышлифованы. Оставался маленький проблема - почему-то после переписывания не хотели работать команды по горячей клавише (как выяснилось, я в одном месте тупо получал BigWorld.target().id, не проверив сначала, а не None ли мне вернули). Ради отладки я натыкал принтов в код и пошёл в очередной бой на общем тесте. И почти тут же словил нехилые фризы. Бой и без меня его турбослили со счётом 2:11 ко второй минуте, так что я даже не переживаю. Полез смотреть. Увидел кучу-кучу-кучу по кругу выводящихся одних и тех же объектов и фалломорфировал. Полез снова в код. И что же я вижу в обработчике горячих клавиш? commandsList = self.selectedCommands.get('hotkeyOnly', []) # получить список команд из блока hotkeyOnly menuConf, _ = self.findBestFitConf() # найти подходящую к текущей ситуации конфигурацию самого меню if menuConf is not None: # если такая есть: commandsList.extend(menuConf.get(state, [])) # в зависимости от state, определяемого тем, на что я смотрю, добавить к этому списку остальные команды for command in commandsList: # для каждой команды в получившемся списке if command and command.handleKeys(command.hotKeys, event.key): # если команда не пустая и были прожаты соответствующие ей клавиши command.onCustomAction(target.id if target is not None else None, True) # пнуть команду, мол, работай. Подвох не видно на первый взгляд, да? Вот и я его не видел несколько патчей. А подвох заключается в том, что при каждом нажатии любой клавиши в список hotkeyOnly складывался текущий список команд радиалки. Сколько примерно раз за бой ты нажимаешь на клавиатуру за бой, анон? Вот. Каждое нажатие - плюс минимум 6 объектов, которые надо проверить. За несколько боёв их набиралось достаточное количество, чтобы начать вызывать проблемы. Фикс вышел на три символа. Приписать "[:]" к первой строке в приведённом кусочке. То есть - создавать копию списка hotkeyOnly, которая автоматически удалится после завершения работы обработчика, вместо того, чтобы в памяти висеть и разрастаться. Энивей. Завтра патч выходит. Вот завтра новую версию вам и выкачу. Я, кстати, перепилил структуру работы мода в плане очереди выполнения команд, так что теперь ошибок типа "слишком часто тыкаете команды", если разными командами начать спамить, быть не должно. P.S. Посмотрел git blame по строкам, отвечавшим за обработку горячих клавиш. Они были неизменными с момента изначального написания мода. По крайней мере, в моём гит-репозитории, созданном 11.12.2016 года, код "в начале времён" уже лежит с багом. Так что утечка памяти и производительности при нажатии клавиш была в моде в течение почти 3 (ТРЁХ) лет. Но почему-то узнал я о ней относительно недавно... P.P.S. Перезагрузка конфига (достаточно было просто открыть окно настроек) помогала, потому что при перезагрузке "память" мода - а вместе с ней - и блок hotkeyOnly - полностью очищается и считывается из конфиг-файлов заново. Список с кучей копий одних и тех же команд тупо удаляло, поэтому производительность возвращалась.
×
×
  • Create New...