tricsi 1,144 #388709 Posted May 3, 2017 (edited) и paths.xml доступен, можно хоть 10 своих папок добавить какой же ты оптимист !! да и не только ты... но это плюс посвящу сегодня ночь (на работе) , ознакомлению возможных схем типа "рейдерский захват" :)) а чтобы у народа, не было не нужных мыслей, вот вам плюшка (пока), элементарно (психология однако) Edited May 3, 2017 by tricsi Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #388720 Posted May 3, 2017 (edited) При этом если внутри пакетов были одноименные файлы, больший приоритет будет иметь тот, который лежит в последнем подгруженном пакете. Подробней это расписано в пункте 6.2 в доке.Так в том-то и прикол, что пакеты, согласно доке, сортируются по значению id, если оно одинаковое - то как понять, в каком порядке (между собой) будут загружены пакеты? Ведь в данный момент все по сути упирается в реализацию сортировки? Данный момент имеет довольно-таки важное значение, поскольку пакетом с тем же id может идти обновление/микропатч для какого-то тяжелого мода (например, пакета шкурок), где в целях экономии места присутствуют только измененные этим патчем файлы. И в таком случае именно от порядка загрузки зависит конечный результат. В идеале конечно было бы неплохо, если бы подобный конфликт с порядком загрузки решался внутри пакета, к примеру пакет объявляет некоторый интерфейс для сравнения версий (питоновская функция, например), и если обнаруживается такая ситуация (несколько пакетов с одинаковыми id), загрузчик вызывает эту функцию, передает ей список имеющихся версий, функция возвращает необходимую последовательность загрузки (тот же список версий, но упорядоченный), в принципе может даже что-то выкинуть из загрузки вообще. Edited May 3, 2017 by GPCracker Quote Share this post Link to post Short link Share on other sites
POLIROID 210 #388725 Posted May 3, 2017 (edited) В идеале конечно было бы неплохо, если бы подобный конфликт с порядком загрузки решался внутри пакета, к примеру пакет объявляет некоторый интерфейс для сравнения версий (питоновская функция, например), и если обнаруживается такая ситуация (несколько пакетов с одинаковыми id), загрузчик вызывает эту функцию, передает ей список имеющихся версий, функция возвращает необходимую последовательность загрузки (тот же список версий, но упорядоченный), в принципе может даже что-то выкинуть из загрузки вообще. VFS формируется еще задолго до выполнения какого либо python кода. На данный момент конфликты разрешать проще всего с помощью meta.xml. У нас есть N пакетов с одинаковым id и разными version, конфликтные ресурсы забираются у тех у кого версия побольше. * при одинаковом ID пакеты монтируются в возрастании относительно VERSION, а проверка конфликтов опускается * как себя поведёт этот алгоритм если в версии кроме цифр и точек будут еще буквы я не знаю * блин, там тупой strcmp =( Edited May 3, 2017 by POLIROID Quote Share this post Link to post Short link Share on other sites
angelsoft 52 #388751 Posted May 3, 2017 народ есть конфликт, net.openwg.vfsgettext_1.0.0.wotmod не работает с i18n_Loader.wotmod автор Polyacov_Yury, то есть \res\text\lc_messages в запакованном виде wotmod 1 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #388755 Posted May 3, 2017 (edited) народ есть конфликтУ Юры устаревший фикс, я не знаю какого ******** он его не удалил при релизе пакетов. Я ему уже написал в соответствующую тему. VFS формируется еще задолго до выполнения какого либо python кода.Печалька однако. Как-бы понятно, что оно грузится в самом начале, я просто описал идею. В лоб реализовать не получится, понятное дело, м.б. есть какие-то красивые способы, например как-то обозначить алгоритм приведения авторской версии к сравниваемому типу (к тому же int, например) внутри пакета. Или еще как-то реализовать возможность обозначить, как сравнивать версии для однотипных пакетов. Потому как написать универсальный алгоритм сравнения, применимый для всех схем нумерации версий, вряд ли получится, а принимать какую-то одну - это серьезное ограничение для мододелов, если учитывать что даже в "точечном" варианте версия может иметь вид v0.2.7-8-gdee9a3b (git describe), или подобный в других сиcтемах контроля версий. Не говоря уже про схемы с датой в качестве версии и т.д. На данный момент конфликты разрешать проще всего с помощью meta.xml.Ну как-бы тут да, вполне логично, для этого этот файлик в общем-то и нужен. У нас есть N пакетов с одинаковым id и разными version, конфликтные ресурсы забираются у тех у кого версия побольше.Проблема в том, как сравнивать версии. Универсального компаратора написать не получится. Сравнивать строки некорректно, ибо 0.10.0 явно не меньше 0.9.0, а строки сравниваются посимвольно. Т.е. 1 < 9. Edited May 3, 2017 by GPCracker Quote Share this post Link to post Short link Share on other sites
tricsi 1,144 #388773 Posted May 3, 2017 обновление/микропатч для какого-то тяжелого мода (например, пакета шкурок) микропатч смысла нет, городить огород ? , только обновление, полная замена, усложнять не имеет смысла :) Quote Share this post Link to post Short link Share on other sites
ribbed 505 #388780 Posted May 3, 2017 Прикрепил обновленную доку v0.3, обновлены пункты 2, 5, 6.3. 4 1 Quote Share this post Link to post Short link Share on other sites
Tomas 11 #388790 Posted May 3, 2017 А мне одно непонятно: во имя чего весь этот геморрой? Все анонимные жополизы отметились? Наминусовали-то. А ответить не могут. Импотенты. Рабы системы. 9 Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #388798 Posted May 3, 2017 (edited) On 03.05.2017 at 7:57 PM, ribbed said: Прикрепил обновленную доку v0.3, обновлены пункты 2, 5, 6.3. Дочитал до 6.3, ржу не могу просто. Quote Версии пакетов сравниваются посимвольно согласно таблице ASCII. Поведение совпадает с функцией strcmp(): On 03.05.2017 at 6:11 PM, GPCracker said: Сравнивать строки некорректно, ибо 0.10.0 явно не меньше 0.9.0, а строки сравниваются посимвольно. Т.е. 1 < 9. <face-palm> Тут либо кучу лидирующих нулей писать... либо хэш какой-то упорядоченный. Edited October 5, 2017 by GPCracker Зачистка старых аттачей 1 Quote Share this post Link to post Short link Share on other sites
Mixaill 1,745 #388799 Posted May 3, 2017 Используйте ведущие нули :) Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #388804 Posted May 3, 2017 @Tomas, мне кажется или @Mr 13 не прочь прописать кому-то если и не бан, то РО точно? Quote Share this post Link to post Short link Share on other sites
StranikS_Scan 4,212 #388805 Posted May 3, 2017 Используйте ведущие нули :) Молодцы менеджеры из ВГ - делают разработку модов всё доступнее и доступнее танковым обывателям, я валяюсь 2 Quote Share this post Link to post Short link Share on other sites
Tomas 11 #388808 Posted May 3, 2017 @Tomas, мне кажется или @Mr 13 не прочь прописать кому-то если и не бан, то РО точно? Как он решит, так тому и быть. Я своё слово сказал, ответа не увидел. 4 Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,148 #388809 Posted May 3, 2017 (edited) Тут либо кучу лидирующих нулей писать... либо хэш какой-то упорядоченный. Вставлю сюда пару джуниорских копеек, не пинайте сильно. Если сравнивать строки версий в питоне - лучше просто разделить строку на несколько int'ов с помощью list(map(int, version.split('.'))) А потом уже поочередно сравнивать int'ы из полученного списка с int'ами из сравниваемого списка. Если я правильно понял, о чем вы. Edited May 3, 2017 by Pavel3333 Quote Share this post Link to post Short link Share on other sites
Polyacov_Yury 1,667 #388832 Posted May 3, 2017 (edited) Алгоритм сравнения версий есть уже в клиенте. Готовый. Вызывается при попытке логина на сервер и сравнивает версию в Account.def с версией, которую сервер пришлет. Вполне можно взять общую идею оттуда и перенести в код сравнения версий на этапе создания vfs. Что касается "какого многазвездочек Юра не забрал себе новый код в моды" - во-первых, я немного занят учебой (*когда осознал, что сессия через месяц*), и особо не следил за происходящим. Скайп на куски не рвуть - и ладно) А во-вторых, тот же самый GPCracker, который задал сей вопрос, немногим ранее обфыркал написанный в vfs.gettext код, и я все жду от него исправленную "нормальную" версию :D Edited May 3, 2017 by Polyacov_Yury Quote Share this post Link to post Short link Share on other sites
tricsi 1,144 #388845 Posted May 4, 2017 Молодцы менеджеры из ВГ - делают разработку модов всё доступнее и доступнее танковым обывателям, я валяюсь конечно молодцы, и заметь, делают руками уважаемого сообщества...не привлекая так сказать спецов, т.е бесплатно так как не обладаю достаточными знаниями и навыками в этом направлении, придётся уйти на покой )) Quote Share this post Link to post Short link Share on other sites
GPCracker 2,088 #388850 Posted May 4, 2017 (edited) Если я правильно понял, о чем вы.Не совсем. Речь идет об учете версии пакета при упорядочивании пакетов. Там нельзя запустить питон. И твой вариант ограничен только правильной версией. Версии с данными билдов, хэшами и т.д. парсить не так уж и просто, и без регулярки уже никак. А во-вторых, тот же самый GPCracker, который задал сей вопрос, немногим ранее обфыркал написанный в vfs.gettext код, и я все жду от него исправленную "нормальную" версию :DГы, так не обязательно втягивать код, можно просто на время притянуть пакет, пока код не появится. Хотя интуиция мне подсказывает что данный патч скоро выйдет на основу и пакет будет не нужен. Правда насколько скоро - пока не ясно. В доках он тоже обозначен временным решением, если что. Edited May 4, 2017 by GPCracker Quote Share this post Link to post Short link Share on other sites
Mixaill 1,745 #388894 Posted May 4, 2017 данный патч скоро выйдет на основу Ха-ха, лол. 1 Quote Share this post Link to post Short link Share on other sites
ribbed 505 #388924 Posted May 4, 2017 Прикрепил обновленную доку v0.4, обновлены пункты 6.1, 6.3, удален 9.4. Еще раз большое спасибо @Mixaill за работу над документом. 2 Quote Share this post Link to post Short link Share on other sites
KOT_LUIS 0 #389094 Posted May 5, 2017 (edited) Проблема в том, как сравнивать версии. Универсального компаратора написать не получится. Сравнивать строки некорректно, ибо 0.10.0 явно не меньше 0.9.0, а строки сравниваются посимвольно. Т.е. 1 < 9. Я конечно не гуру, но как насчёт пошагового сравнения разделов номера патча то есть разделитель точка ведь. Пример 0.9.17.1 0.9.18.0 - видно что сначала сравнить 1 и 0 после сравнивать 17 и 18 после сравнить 9 и 9 после сравнить 0 и 0 иметь временную переменную которая будет получать значение 0 или 1 после сравнения, в данном случае на сравнение 17 и 18 она получит 1 что соответствует что номер патча2 больше чем номер патча 1 и после при сравнение 9 и 9 не поменяется =) Ну и тогда в выше указанном примере 10 больше 9 будет получатся =) Второй вариант преобразовывать номер патча в цифровой эквивалент 0.10.0 превратиться в 0100 а 0.9..0 превратиться в 090 видно что 100 больше 90 =) вопрос- в net.openwg.vfsgettext_1.0.0.wotmod есть код который Позволяет ставить локализационные моды в res_mods \ mods без копирования файлов из res/text. и как локализационные моды перенести в в папку mods ? по инструкций я не чего не понял, и не чего не работает побывал тут не уверен или это нужно, - я сейчас делаю так =) русский клиент, ( можно любой другой и на форуме попросить папку text из русского закинутьв рес модс) - после беру файлик ХМЛ который прописывает доп сервера в лобби выбора серверов и могу заходить таким образом на любой сервер =) ХМЛ файл взял из темы на танковом форуме "помагатор" мод называется =) А раньше помнится тоже мучался с локалз и через батники запускал разные сервера =) Собственно сам ХМЛ приложил можете скачать глянуть =) это именно то что стандартно в клиенте должно быть =) просто и понятно =) scripts_config.xml Edited May 5, 2017 by KOT_LUIS 2 1 Quote Share this post Link to post Short link Share on other sites