Mixaill 1,740 #406711 Posted October 11, 2017 7 часов назад, Polyacov_Yury сказал: Спешу с новостями Это я торможу с публикацией. :) 7 часов назад, Polyacov_Yury сказал: В версии 0.9.20.1 пакет net.openwg.vfsgettext больше не будет нужен. Более изящное исполнение включено в стандартный клиент игры. По крайней мере - на тесте это так. Да, это сознательное и запланированое изменение в 9.20.1. Помимо фикса загрузки gettext-файлов было исправлено ещё примерно два бага. Ждите обновления документации в скором времени. Quote Share this post Link to post Short link Share on other sites
IzeBerg 128 #406726 Posted October 11, 2017 (edited) 14 часа назад, Polyacov_Yury сказал: Собственно, о чем я. Рассортировать пакеты в папке /mods/версия/ я предлагаю. К примеру, в отдельную папочку скидать такие вещи, как mods_gui, vxSettingsApi, modsListApi и подобные, в отдельную - моды от ПроТанки, в отдельную - от @Pavel3333... Просто чтобы все не лежало в одной аморфной куче. Ладно, я своими только модами пользовался, все тихо-мирно в папочке PYmods лежит и не мешает лишний раз. Но как только начал чужие модики накатывать - в папку с пакетами стало заглядывать боязно. Это не решит проблему (которой нет, лол). Для этого нужен отдельный менеджер пакеджей, чтоб тыкать интерфейсом красиво можно было. Edited October 11, 2017 by IzeBerg Quote Share this post Link to post Short link Share on other sites
ribbed 505 #406750 Posted October 12, 2017 В 9.20.1 починили ряд багов: Неполная регистронезависимость имён в VFS Некорректная загрузка локаций из пакетов Невозможность загрузки Gettext-файлов из VFS Обновленная версия доки (v0.5) приаттачена к первому посту. Большое спасибо @Mixaill за работу над докой. Английскую версию сейчас допереводим, приаттачу, как только будет готова. Quote Share this post Link to post Short link Share on other sites
Polyacov_Yury 1,667 #406751 Posted October 12, 2017 24 минуты назад, ribbed сказал: В 9.20.1 починили ряд багов: Неполная регистронезависимость имён в VFS Ох ты ж ёжик.. Это, получается, мне придется аж в нескольких местах .lower()'ы у имен файлов из кода поубирать. С лету могу сказать, что затронутся BanksLoader и Ремодомод. Или, может, оставить их... По правилу "работает - не трожь" :) P.S. Поправили пачку пробелов и переносов строк в доке, да. При этом "инсталлятор" все равно с одной Л написан :) Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #406752 Posted October 12, 2017 32 минуты назад, ribbed сказал: Неполная регистронезависимость имён в VFS Тут нужно пояснить, что именно исправили. Исправили только итерацию по списку файлов в /res/scripts/client/gui/mods/__init__.py То есть модификация не будут два раза инициализироваться, если она есть как в пакете, так и res_mods имя файла содержит как минимум один символ в верхнем регистре Однако, до сих пор необходимо: проводить дедупликацию данных от функции keys() В остальных случаях править регистр предположительно не нужно, это исправлено в пункте 38 минут назад, ribbed сказал: Некорректная загрузка локаций из пакетов Quote Share this post Link to post Short link Share on other sites
Polyacov_Yury 1,667 #406859 Posted October 13, 2017 В 12.10.2017 в 14:52, Mixaill сказал: Тут нужно пояснить, что именно исправили. Исправили только итерацию по списку файлов в /res/scripts/client/gui/mods/__init__.py То есть модификация не будут два раза инициализироваться, если она есть как в пакете, так и res_mods имя файла содержит как минимум один символ в верхнем регистре Однако, до сих пор необходимо: проводить дедупликацию данных от функции keys() В остальных случаях править регистр предположительно не нужно, это исправлено в пункте Только с четвертого запуска клиента, после прочтения пары скриптов и нескольких логов таки понял, о чем Вы. Этот фикс - да, я видел. От дважды-импорта модов. Я просто думал, что наконец-то починили регистр у файлов в пакетах... Ну да ладно. Quote Share this post Link to post Short link Share on other sites
Armagomen_UA 158 #406876 Posted October 13, 2017 Стесняюсь спросить, по приоритету загрузки что идет первое mods или старая res_mods. ? Не знаю как сейчас но раньше это мешало когда одни и те же файлы мода есть в пакетах и просто в res_mods лежали, если этого еще не сделали то надо бы сделать чтобы сначала прогружало пакеты а затем res_mods и только те скрипты которых нет в пакетах. 1 1 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #406877 Posted October 13, 2017 1 минуту назад, Armagomen_dev сказал: что идет первое mods или старая res_mods. в res_mods. как по мне, это удобно, когда есть старый вотмод и измененный .pyc, который отлаживаешь и помещаешь в вотмод новой версии. Quote Share this post Link to post Short link Share on other sites
Armagomen_UA 158 #406879 Posted October 13, 2017 (edited) 9 минут назад, Pavel3333 сказал: в res_mods. как по мне, это удобно, когда есть старый вотмод и измененный .pyc, который отлаживаешь и помещаешь в вотмод новой версии. Паша, я сейчас не про отладку говорю а про использование, да и автоматическое создание пакета делается в один клик, это не проблема. Проблема вылазит в конфликт когда один и тот же мод грузится из разных папок, но при этом тот который в рес модс лежит старой версии и в нем нет параметров которые есть в новой но при этом мод обращается к ним, в итоге получаем ошибку. Отладка никак не причина того чтобы не делать это. Edited October 13, 2017 by Armagomen_dev Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #406880 Posted October 13, 2017 @Armagomen_dev, лично у меня из-за этого никогда проблем не возникало, но ты прав. Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #406909 Posted October 14, 2017 17 часов назад, Armagomen_dev сказал: Проблема вылазит в конфликт когда один и тот же мод грузится из разных папок, но при этом тот который в рес модс лежит старой версии и в нем нет параметров которые есть в новой но при этом мод обращается к ним, в итоге получаем ошибку. Проблема возникла уже в том моменте, что каким-то образом была создана ситуация, что модификация у конечного пользователя есть как в виде .wotmod, так и в варианте для /res_mods/ . Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,210 #406929 Posted October 14, 2017 (edited) 25 минут назад, Mixaill сказал: Проблема возникла уже в том моменте, что каким-то образом была создана ситуация, что модификация у конечного пользователя есть как в виде .wotmod, так и в варианте для /res_mods/ . Это вполне рабочая ситуация для юзверов. Вот из-за таких и многих других ситуаций я и запилил WMCleaner. Edited October 14, 2017 by StranikS_Scan Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #406974 Posted October 15, 2017 On 12.10.2017 at 2:13 PM, ribbed said: Некорректная загрузка локаций из пакетов Не совсем понятно, о чем именно речь идет. On 14.10.2017 at 1:26 AM, Armagomen_dev said: Стесняюсь спросить, по приоритету загрузки что идет первое mods или старая res_mods. ? Приоритет загрузки, ты не поверишь, прописан в paths.xml в корне игры. On 14.10.2017 at 1:40 AM, Pavel3333 said: лично у меня из-за этого никогда проблем не возникало, но ты прав. @Armagomen_dev, проблема не в порядке загрузки, здесь, ИМХО, все сделано правильно, а в организации работы над модами. Лично я такими вещами уже давно не занимаюсь, поскольку у меня все уже в пакетах, которые собираются скриптами сборки в один двойной клик вместе с питоном, флешом и т.д., комбинация команд Ctrl+C/<переключить папку в проводнике>/Click+Delete/Ctrl+V для обновления пакетов в клиенте меня особо пока не напрягает. Для тех, у кого моды достаточно тяжелые и готовый *.wotmod весит несколько десятков мегабайт или более, и переписывать/обновлять его при каждой правке не вариант, могу посоветовать использовать Python не только для написания самих модов, но и для автоматизации установки обновленных файлов из рабочего каталога разработки в клиент с оценкой даты/времени/контрольной суммы (если необходимо) и перезаписью файлов в res_mods по необходимости + скрипт зачистки res_mods, чтобы когда все нужные файлы уже упакованы в *.wotmod и проводится финальное тестирование, файлы разработки не мешали. On 14.10.2017 at 7:18 PM, Mixaill said: Проблема возникла уже в том моменте, что каким-то образом была создана ситуация, что модификация у конечного пользователя есть как в виде .wotmod, так и в варианте для /res_mods/ . Данная "проблема" скорее всего это просто "обратная сторона медали". Чуть ниже расписал более подробно. Для пользователя res_mods как дает возможность редактировать файлы из пакета без редактирования пакета непосредственно (это положительная сторона вопроса), так и проблему в виде не совсем логичного переопределения файлов из пакета старыми версиями файлов. Но для второй ситуации следом идет вполне логичный вопрос - "Товарищ! Ты зачем копируешь файлы из res_mods старого патча в новый? Если ты не понимаешь, какой файл и за что отвечает?". Или к разработчикам мода, которые после миграции на пакеты в текущем патче не прописали, что нужно зачистить из res_mods все файлы, из тех, что присутствуют в пакете, или просто не прописавшим список файлов, которые необходимо удалить. Как по мне, проблемы абсолютно-не-думающего-своей-головой-пользователя - это точно не проблемы разработчика модификации. Что касаемо решения такой проблемы со стороны разработчиков, если кому-то реально больше нечем заняться, на уровне пакета можно добавить код проверки на реальное расположение файла в VFS. ЕМНИП, у ResMgr есть функция разрешения пути VFS в реальный путь, и для res_mods он вернет путь, по которому явно будет присутствовать файл, а вот по пути виртуальному (файл в пакете) найти его средствами "RealFS" уже не получится. В общем, что-то типа import os.path import ResMgr path = '<VFS_Filename>' # 'script/client/gui/mods/__init__.pyc' isOverrided = os.path.isfile(ResMgr.resolveToAbsolutePath(path)) Ну особо дотошные товарищи могут сделать os.path.relpath и прописать проверку в стиле os.path.commonprefix c 'res_mods/' на равенство этому самому 'res_mods/' (слеш нужен, из-за особенностей работы commonprefix'а). Но это если прям ну совсем нечего делать, или речь идет о написании совместимого кода с программами, вносящими свои пути в paths.xml в корне игры. Однако, проблема такого кода в том, что скрипт, в котором он прописан, можно переопределить. И данный механизм (переопределение файла через res_mods) обычно используется для отладки, либо изменения файлов в пакете без редактирования самого пакета (иногда конфига не хватает и грамотный народ начинает патчить файлы). 1 Quote Share this post Link to post Short link Share on other sites
Mixaill 1,740 #406979 Posted October 15, 2017 2 часа назад, GPCracker сказал: Не совсем понятно, о чем именно речь идет. Раньше если перепаковывал ангар в .wotmod, то результат был НЕОЧЕНЬ. Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #406980 Posted October 15, 2017 (edited) 14 minutes ago, Mixaill said: Раньше если перепаковывал ангар в .wotmod, то результат был НЕОЧЕНЬ. Значит под локациями подразумеваются игровые локации, а не локации в плане файловой системы... Ассоциативное восприятие. Теперь понятно, спасибо. Edited October 15, 2017 by GPCracker Quote Share this post Link to post Short link Share on other sites
Armagomen_UA 158 #407039 Posted October 16, 2017 16 часов назад, GPCracker сказал: Приоритет загрузки, ты не поверишь, прописан в paths.xml в корне игры. Ну в принципе, я не сомневался что у res_mods приоритет будет больше чем у пакетов. В этом и есть вся суть проблемы конечных юзеров когда у него одинаковый мод разных версий и там и там лежат. Да еще и некоторые умники думают что они умнее разработчика и распаковывают пакет после чего ложат файлы в res_mods потом забывают что они это сделали, обновляют пакет а старые то файлы никуда не делись которые они извлекли, тут то и начинаются танцы с бубном. <root> <Paths> <Path>./res_mods/0.9.20.0</Path> <Path mode="recursive" mask="*.wotmod" root="res">./mods/0.9.20.0</Path> Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #407040 Posted October 16, 2017 1 minute ago, Armagomen_dev said: В этом и есть вся суть проблемы конечных юзеров когда у него одинаковый мод разных версий и там и там лежат. Да еще и некоторые умники думают что они умнее разработчика и распаковывают пакет после чего ложат файлы в res_mods потом забывают что они это сделали, обновляют пакет а старые то файлы никуда не делись которые они извлекли, тут то и начинаются танцы с бубном. Вот это точно проблемы этих самых "умников". Если кто-то не умеет читать инструкции, это точно не проблемы того, кто эти инструкции пишет. 2 Quote Share this post Link to post Short link Share on other sites
ribbed 505 #407208 Posted October 17, 2017 Attached v0.5 of mod packages documentation to the first post. 2 Quote Share this post Link to post Short link Share on other sites
jhakonen 0 #407549 Posted October 18, 2017 The document is under CC BY-SA 4.0 license. Does that mean that the code examples at chapter 8 are also under that license? According to Creative Commons's compatible license page that license is compatible with itself, Free Art license and GPLv3. Can I use some other open source license instead, like MIT license or LGPL 2.1 and still use the code in my mod? Quote Share this post Link to post Short link Share on other sites
spoter 1,402 #407552 Posted October 18, 2017 22 минуты назад, jhakonen сказал: The document is under CC BY-SA 4.0 license. Does that mean that the code examples at chapter 8 are also under that license? According to Creative Commons's compatible license page that license is compatible with itself, Free Art license and GPLv3. Can I use some other open source license instead, like MIT license or LGPL 2.1 and still use the code in my mod? Im use WTFPL open license and its ok :) Quote Share this post Link to post Short link Share on other sites