ktulho 5,780 #432993 Posted June 13, 2018 2 часа назад, sirmax сказал: вместо локализованного текста нужно использовать ключи локализации Может сделать, чтобы оба варианта поддерживалось? Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #432997 Posted June 13, 2018 смысл в том, что ключи универсальны для любого языка, соответственно конфиг не будет привязан к одной локализации. Иначе фича будет ограничена, ей будет не удобно пользоваться. Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #433010 Posted June 13, 2018 @sirmax и я о том же. В дефолте прописать ключи, и оставить возможность использовать шаблоны. Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #433012 Posted June 13, 2018 Насчет такого варианта не возражаю, хотя считаю, что ключей достаточно. Локализованный текст тоже нужно из файлов локализации брать, потому что руками набивать - это плохо. Пропустят пробел, и будут писать, что не работает. 1 Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #433086 Posted June 13, 2018 (edited) 10 часов назад, sirmax сказал: только вместо локализованного текста нужно использовать ключи локализации 5 часов назад, sirmax сказал: хотя считаю, что ключей достаточно Ключами немного не то получается, в шаблонах прописываем ключ: i18n.makeString('#system_messages:connected') Получаем на выходе: Добро пожаловать на сервер '%s' World of Tanks! По этому шаблону мы не можем скрыть текст в системном канале т.к наименование сервера не указано. И так не только с сервером, в локализации множество фраз аналогично дополняется (Ремонт: ..., Куплено: ... и т.п). Edited June 13, 2018 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #433089 Posted June 13, 2018 (edited) @night_dragon_on а если так: connectionMgr = dependency.instance(IConnectionManager) i18n.makeString('#system_messages:connected'.format(connectionMgr.serverUserName)) P.S. А, это же в конфиге надо прописывать P.P.S. ключи надо сравнивать раньше. Хотя раньше негде. Edited June 13, 2018 by ktulho Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #433097 Posted June 13, 2018 17 минут назад, ktulho сказал: ключи надо сравнивать раньше Я же ранее упомянул что помимо именно этой фразы полно других в которые так или иначе данные подставляются, например: i18n.makeString('#system_messages:artefact_apply/money_success') %(kind)s '%(name)s' снято с машины. Потрачено %(money)s. i18n.makeString('#system_messages:artefact_apply/success') %(kind)s '%(name)s' установлено на машину. i18n.makeString('#system_messages:artefact_buy/not_enough_crystal') Покупка %(kind)s '%(name)s' не удалась. Недостаточно бон. И т.п., так что первоначальный вариант записи непосредственно текстом единственно возможный. Quote Share this post Link to post Short link Share on other sites
aleksei.zemlyanskii@facebo 0 #433099 Posted June 13, 2018 Стесняюсь спросить а где моды XVM? нашел самый свежий вопрос к разрабам? Quote Share this post Link to post Short link Share on other sites
ADv 10 #433105 Posted June 13, 2018 (edited) @ktulho поймал ошибку и вылет с новым скриптом infoAutoAim.py Захватил противника в автоприцел, он скрылся передо мной за камнем, после чего пропал из засвета. Когда появился - игра вылетела, в логе - указанная ошибка. Реплей, к сожалению, не сохранился из-за вылета. Пустой temp.wotreplay остался. 2018-06-13 18:01:41.495: INFO: ============================= 2018-06-13 18:01:41.495: INFO: 2018-06-13 18:01:41: [ERROR] mods/xfw/python/xfw/events.pyc 2018-06-13 18:01:41.495: ERROR: Traceback (most recent call last): 2018-06-13 18:01:41.495: ERROR: File "mods/xfw/python/xfw/events.py", line 57, in __event_handler 2018-06-13 18:01:41.496: ERROR: File "mods/xfw/python/xfw/events.py", line 24, in fire 2018-06-13 18:01:41.497: ERROR: File "res_mods/configs/xvm/py_macro\infoAutoAim.py", line 79, in onLockTarget 2018-06-13 18:01:41.497: ERROR: hideMarker(oldTarget) 2018-06-13 18:01:41.497: ERROR: File "res_mods/configs/xvm/py_macro\infoAutoAim.py", line 31, in hideMarker 2018-06-13 18:01:41.497: ERROR: node = target.appearance.compoundModel.node('hull') 2018-06-13 18:01:41.497: ERROR: AttributeError: 'NoneType' object has no attribute 'appearance' 2018-06-13 18:01:41.497: INFO: ============================= Полный лог в аттаче. python.log Edited June 13, 2018 by ADv 1 Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #433111 Posted June 13, 2018 18 минут назад, night_dragon_on сказал: Я же ранее упомянул что помимо именно этой фразы полно других в которые так или иначе данные подставляются, например: Как раз с этими примерами проблем нет. Их все можно перехватить в SystemMessages.pushI18nMessage() 7 минут назад, ADv сказал: поймал ошибку и вылет с новым скриптом infoAutoAim.py Спасибо, но лучше писать в соответствующую тему. 1 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #433113 Posted June 13, 2018 я ж говорю - посмотрите, как сделано в отключении тултипов 1 Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #433151 Posted June 13, 2018 (edited) @sirmax , текст то уберется таким способом @overrideMethod(i18n, 'makeString') Но само сообщение пустое будет висеть в ЦУ. Edited June 13, 2018 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #433153 Posted June 13, 2018 (edited) Может так: @overrideMethod(i18n, 'makeString') def _i18n_makeString(base, key, *args, **kwargs): if key in config.get('hangar/hideMessagePatterns', []): return '' return base(key, *args, **kwargs) В принципе здесь и проверку шаблонов можно делать. Edited June 13, 2018 by ktulho Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #433155 Posted June 13, 2018 (edited) @ktulho , так пустое сообщение останется в ЦУ. Edited June 13, 2018 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #433156 Posted June 13, 2018 @night_dragon_on ну вместо '' можно возвращать какую-нибудь последовательность, а в as_setMessagesListS перехватывать эту последовательность. Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #433157 Posted June 13, 2018 ну так у меня и сделано, вы бы хоть посмотрели Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #433159 Posted June 13, 2018 (edited) Так смотрели, если ключ совпал с тем что прописано в конфиге возвращается константа: return XVM_TOOLTIPS.HIDE Но я так и не понял почему она далее ищется в tooltipId if XVM_TOOLTIPS.HIDE not in tooltipId Она же имеет постоянное значение, на нее ничего не присваивается. (или у меня просто голова после смены не варит сегодня и я чего то перед носом не вижу ). Edited June 13, 2018 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #433161 Posted June 13, 2018 (edited) ищется, чтобы скрыть. в первом методе помечаем то, что надо скрыть, во втором - скрываем. "not in" - потому что tooltipId - это уже локализованный текст (почему так называется переменная - это к WG). А она может быть форматированной, с лишними тегами. Поэтому ищем уникальный текст во всей строке. Edited June 13, 2018 by sirmax 1 Quote Share this post Link to post Short link Share on other sites
Kaeptn 24 #434969 Posted June 26, 2018 В 13.6.2018 в 09:10, sirmax сказал: meaning that the keys are universal for any language, respectively, the config will not be tied to one localization. Otherwise, the feature will be limited, it will not be convenient to use. this mod: http://forum.worldoftanks.eu/index.php?/topic/496784-0919-tidy-messenger/ can filter messages by message ID, language independet. maybe his approach is interesting in this case? Quote Share this post Link to post Short link Share on other sites
ktulho 5,780 #435645 Posted July 5, 2018 @sirmax, есть ли возможность, при просмотре риплеев, сделать загрузку скриптов из py_macro пораньше, перед событием onBecomePlayer? Quote Share this post Link to post Short link Share on other sites