Kornet_WA 138 #398740 Posted July 23, 2017 Возможно, но у меня желание нет. На данный момент, вроде, в ru секторе популярны 3 мода, реализующий данный функционал. Жаль. Активистов твоего уровня очень мало, night_dragon_on тоже не будет делать, Kotyarko_O пропал куда то, а больше ни кого и не знаю. Честно сказать ты и так на доброй воле многое сделал для нас Громаднейшее спасибо за это. Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398742 Posted July 23, 2017 .А вообще сложно допустим адаптировать уже готовый код,но средствами ХВМ? , не сложно. ХВМ пользовалось бы популярностью не меньше,чем тот же демедж лог)) , наверняка пользовалось бы большой популярностью.@Kornet_WA, @Slava7572, переделывать этот мод под XVM нет ни какого смысла. Но если очень хочется, то это не сложно. Заменить такие конструкции: def new_onBecomePlayer(self): old_onBecomePlayer(self) stat.battleResultsAvailable.set() stat.load() old_onBecomePlayer = Account.onBecomePlayer Account.onBecomePlayer = new_onBecomePlayer на такие: @registerEvent(Account, 'onBecomePlayer') def new_onBecomePlayer(self): stat.battleResultsAvailable.set() stat.load() Или такие: def new_onBecomeNonPlayer(self): stat.battleResultsAvailable.clear() old_onBecomeNonPlayer(self) old_onBecomeNonPlayer = Account.onBecomeNonPlayer Account.onBecomeNonPlayer = new_onBecomeNonPlayer на такие: @overrideMethod(Account, 'onBecomeNonPlayer') def new_onBecomeNonPlayer(base, self): stat.battleResultsAvailable.clear() base(self) И сделать чтение конфигурационных файлов через XVM (так удобнее). В данном моде, вроде, ни чего больше менять не надо. Если будут вопросы, то задавайте, наверняка кто-нибудь ответит. 3 Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #398772 Posted July 24, 2017 сделать чтение конфигурационных файлов через XVM (так удобнее). я тока понял, что тут прописан путь для папки статистики def load(self):.. path = '/'.join(['.', 'res_mods', 'configs', 'wotstat']).. если заменить на def load(self):.. path = '/'.join(['.', 'res_mods', 'configs', 'xvm', 'wotstat']) то папка, вроде, должна читаться из конфигс\хвм? Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398778 Posted July 24, 2017 @vlad_cs_sr, я имел ввиду перенести настройки в XVM. То есть добавить в @xvm.xc: "wotstat": ${"wotstat.xc":"wotstat"}, Добавить в папку со своим конфигом файл wotstat.xc. И перенести туда содержимое файла config.json. В скрипт добавить импорт: import xvm_main.python.config as config После этого, в скрипте заменяем такие конструкции: self.config.get('battleStatPatterns',[])self.config.get('dailyAutoResetHour', 4)и т.д. на такие config.get('wotstat/battleStatPatterns',[])config.get('wotstat/dailyAutoResetHour', 4) 3 Quote Share this post Link to post Short link Share on other sites
Slava7572 1,685 #398818 Posted July 24, 2017 , не сложно. , наверняка пользовалось бы большой популярностью. @Kornet_WA, @Slava7572, переделывать этот мод под XVM нет ни какого смысла. Но если очень хочется, то это не сложно. Заменить такие конструкции: def new_onBecomePlayer(self): old_onBecomePlayer(self) stat.battleResultsAvailable.set() stat.load()old_onBecomePlayer = Account.onBecomePlayerAccount.onBecomePlayer = new_onBecomePlayer на такие: @registerEvent(Account, 'onBecomePlayer')def new_onBecomePlayer(self): stat.battleResultsAvailable.set() stat.load() Или такие: def new_onBecomeNonPlayer(self): stat.battleResultsAvailable.clear() old_onBecomeNonPlayer(self)old_onBecomeNonPlayer = Account.onBecomeNonPlayerAccount.onBecomeNonPlayer = new_onBecomeNonPlayer на такие: @overrideMethod(Account, 'onBecomeNonPlayer')def new_onBecomeNonPlayer(base, self): stat.battleResultsAvailable.clear() base(self) И сделать чтение конфигурационных файлов через XVM (так удобнее). В данном моде, вроде, ни чего больше менять не надо. Если будут вопросы, то задавайте, наверняка кто-нибудь ответит. Вы просто лучший)))Обязательно переделаю как время будет.С точки зрения производительности(как я понял) может смысла и нет,но он есть хотя бы потому,что все будет в одном комплексном моде ХВМ,опять же не будет проблем с постоянными обновлениями картохи. Спасибо! 1 1 Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398820 Posted July 24, 2017 опять же не будет проблем с постоянными обновлениями картохи , почему не будет? Такие же проблемы, как и в отдельном моде, будут. Quote Share this post Link to post Short link Share on other sites
Slava7572 1,685 #398826 Posted July 24, 2017 , почему не будет? Такие же проблемы, как и в отдельном моде, будут. Я имею ввиду перекомпил и прочие еженедельные "радости",сейчас правда в этом плане чуть легче,не каждый патч меняют что то кардинально,но все же намного проще исправить .ру файл,чем .рус :) Quote Share this post Link to post Short link Share on other sites
Kornet_WA 138 #398835 Posted July 24, 2017 Хотелось бы конечно и новых плюшек. например размер окна по вертикали, просил полиройда говорил что возможно но так и забиыл. Выбор первой вкладки в окне статистики по умолчанию. Информационные сообщения от ВГ иногда висят под статистикой. Кстати сообщение о предыдущем бое в чат логичнее было бы засунуть сюда туда же и фишку на ограничение строк в чате. 1 Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #398905 Posted July 24, 2017 , наверняка пользовалось бы большой популярностью. @Kornet_WA, @Slava7572, переделывать этот мод под XVM нет ни какого смысла. Но если очень хочется, то это не сложно. Заменить такие конструкции: def new_onBecomePlayer(self): old_onBecomePlayer(self) stat.battleResultsAvailable.set() stat.load() old_onBecomePlayer = Account.onBecomePlayer Account.onBecomePlayer = new_onBecomePlayer на такие: @registerEvent(Account, 'onBecomePlayer') def new_onBecomePlayer(self): stat.battleResultsAvailable.set() stat.load() Или такие: def new_onBecomeNonPlayer(self): stat.battleResultsAvailable.clear() old_onBecomeNonPlayer(self) old_onBecomeNonPlayer = Account.onBecomeNonPlayer Account.onBecomeNonPlayer = new_onBecomeNonPlayer на такие: @overrideMethod(Account, 'onBecomeNonPlayer') def new_onBecomeNonPlayer(base, self): stat.battleResultsAvailable.clear() base(self) И сделать чтение конфигурационных файлов через XVM (так удобнее). В данном моде, вроде, ни чего больше менять не надо. Если будут вопросы, то задавайте, наверняка кто-нибудь ответит. @vlad_cs_sr, я имел ввиду перенести настройки в XVM. То есть добавить в @xvm.xc: "wotstat": ${"wotstat.xc":"wotstat"}, Добавить в папку со своим конфигом файл wotstat.xc. И перенести туда содержимое файла config.json. В скрипт добавить импорт: import xvm_main.python.config as config После этого, в скрипте заменяем такие конструкции: self.config.get('battleStatPatterns',[]) self.config.get('dailyAutoResetHour', 4) и т.д. на такие config.get('wotstat/battleStatPatterns',[]) config.get('wotstat/dailyAutoResetHour', 4) В общем, намутил чего-то, и оно не взлетело mod_stat.zip Зато мод пишет ошибки в журнал xvm.log Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398917 Posted July 25, 2017 Зато мод пишет ошибки в журнал , это надо у @sirmax спросить. В py_macro запрещено использовать eval()? Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #398918 Posted July 25, 2017 Запрещено Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398919 Posted July 25, 2017 Значит не так просто будет переделать данный мод на py_macro. Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #398920 Posted July 25, 2017 С другой стороны, лично для меня, если мод не будет включен в состав дефолта, всё равно, что отдельный устанавливать, что аддон. Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398924 Posted July 25, 2017 (edited) @sirmax, а с этим поможешь? ну или хотя бы какой *.ру отвечает за вывод статистики на вкладке "достижения/техника"? Edited July 25, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #398925 Posted July 25, 2017 Я не смотрел, нет времени. Логика отображения в достижениях во флеше, а не в питоне. Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398926 Posted July 25, 2017 ну или хотя бы какой *.ру отвечает за вывод статистики на вкладке "достижения/техника"? , а то что выложил night_dragon_on не помогло? Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398938 Posted July 25, 2017 (edited) , а то что выложил night_dragon_on не помогло? помогло, очень! Инфа "осталось побед до" кроме как в ангаре в достижениях нигде больше не выводилась, ее продублировать - 10 строк кода. Но с макросами статистики вопрос в другом: зачем заново писать код для расчета wn8 и Eff если есть готовый в "недрах" хвм и его можно вывести в виджете? вот если макросы не расшариваются для ангара, тогда придется, но тут ведь еще паровозом придется писать код на окраску по значению, по сути "с нуля" создавать эти макросы с динамической окраской... имхо не настолько я хочу этот виджет, чтобы так заморачиваться (с моим уровнем знаний - задачка на пару недель минимум, да и вряд ли самостоятельно осилю - классический случай когда желание намного опережает возможность)... Edited July 25, 2017 by Kapany3uk Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398939 Posted July 25, 2017 но тут ведь еще паровозом придется писать код на окраску по значению, по сути "с нуля" создавать эти макросы с динамической окраской... , ну это не потребуется, есть же ├────────────────────────────┼──────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────── │xvm.py (utils.py) │{{py:xvm.dynamic_color_rating(r, v)}} │макрос плавного перехода цвета между границами цветов из файла color.xc, r - название секции из │ │ │файла color.xc, v - значение. Пример: {{py:xvm.dynamic_color_rating('x', {{xwn8}})}} ├────────────────────────────┼──────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────── Quote Share this post Link to post Short link Share on other sites
Kapany3uk 948 #398940 Posted July 25, 2017 , ну это не потребуется, есть же ├────────────────────────────┼──────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────── │xvm.py (utils.py) │{{py:xvm.dynamic_color_rating(r, v)}} │макрос плавного перехода цвета между границами цветов из файла color.xc, r - название секции из │ │ │файла color.xc, v - значение. Пример: {{py:xvm.dynamic_color_rating('x', {{xwn8}})}} ├────────────────────────────┼──────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────── тут "плавный" переход, а надо "резкий", 1430 - желтый, 1431 - зеленый (пример, цифры с потолка) Quote Share this post Link to post Short link Share on other sites
ktulho 5,790 #398941 Posted July 25, 2017 тут "плавный" переход, а надо "резкий", 1430 - желтый, 1431 - зеленый (пример, цифры с потолка) , да ты даже не заметишь разницы), Если сделаешь макросы статистики, то я добавлю макрос "резкого" перехода.) Quote Share this post Link to post Short link Share on other sites