tricsi Posted May 3, 2017 Share Posted May 3, 2017 (edited) и paths.xml доступен, можно хоть 10 своих папок добавить какой же ты оптимист !! да и не только ты... но это плюс посвящу сегодня ночь (на работе) , ознакомлению возможных схем типа "рейдерский захват" :)) а чтобы у народа, не было не нужных мыслей, вот вам плюшка (пока), элементарно (психология однако) Edited May 3, 2017 by tricsi @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted May 3, 2017 Share Posted May 3, 2017 (edited) При этом если внутри пакетов были одноименные файлы, больший приоритет будет иметь тот, который лежит в последнем подгруженном пакете. Подробней это расписано в пункте 6.2 в доке.Так в том-то и прикол, что пакеты, согласно доке, сортируются по значению id, если оно одинаковое - то как понять, в каком порядке (между собой) будут загружены пакеты? Ведь в данный момент все по сути упирается в реализацию сортировки? Данный момент имеет довольно-таки важное значение, поскольку пакетом с тем же id может идти обновление/микропатч для какого-то тяжелого мода (например, пакета шкурок), где в целях экономии места присутствуют только измененные этим патчем файлы. И в таком случае именно от порядка загрузки зависит конечный результат. В идеале конечно было бы неплохо, если бы подобный конфликт с порядком загрузки решался внутри пакета, к примеру пакет объявляет некоторый интерфейс для сравнения версий (питоновская функция, например), и если обнаруживается такая ситуация (несколько пакетов с одинаковыми id), загрузчик вызывает эту функцию, передает ей список имеющихся версий, функция возвращает необходимую последовательность загрузки (тот же список версий, но упорядоченный), в принципе может даже что-то выкинуть из загрузки вообще. Edited May 3, 2017 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
POLIROID Posted May 3, 2017 Share Posted May 3, 2017 (edited) В идеале конечно было бы неплохо, если бы подобный конфликт с порядком загрузки решался внутри пакета, к примеру пакет объявляет некоторый интерфейс для сравнения версий (питоновская функция, например), и если обнаруживается такая ситуация (несколько пакетов с одинаковыми id), загрузчик вызывает эту функцию, передает ей список имеющихся версий, функция возвращает необходимую последовательность загрузки (тот же список версий, но упорядоченный), в принципе может даже что-то выкинуть из загрузки вообще. VFS формируется еще задолго до выполнения какого либо python кода. На данный момент конфликты разрешать проще всего с помощью meta.xml. У нас есть N пакетов с одинаковым id и разными version, конфликтные ресурсы забираются у тех у кого версия побольше. * при одинаковом ID пакеты монтируются в возрастании относительно VERSION, а проверка конфликтов опускается * как себя поведёт этот алгоритм если в версии кроме цифр и точек будут еще буквы я не знаю * блин, там тупой strcmp =( Edited May 3, 2017 by POLIROID @ Quote Link to comment Short link Share on other sites More sharing options...
angelsoft Posted May 3, 2017 Share Posted May 3, 2017 народ есть конфликт, net.openwg.vfsgettext_1.0.0.wotmod не работает с i18n_Loader.wotmod автор Polyacov_Yury, то есть \res\text\lc_messages в запакованном виде wotmod 1 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted May 3, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
tricsi Posted May 3, 2017 Share Posted May 3, 2017 обновление/микропатч для какого-то тяжелого мода (например, пакета шкурок) микропатч смысла нет, городить огород ? , только обновление, полная замена, усложнять не имеет смысла :) @ Quote Link to comment Short link Share on other sites More sharing options...
ribbed Posted May 3, 2017 Author Share Posted May 3, 2017 Прикрепил обновленную доку v0.3, обновлены пункты 2, 5, 6.3. 4 1 @ Quote Link to comment Short link Share on other sites More sharing options...
Tomas Posted May 3, 2017 Share Posted May 3, 2017 А мне одно непонятно: во имя чего весь этот геморрой? Все анонимные жополизы отметились? Наминусовали-то. А ответить не могут. Импотенты. Рабы системы. 9 @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted May 3, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
Mixaill Posted May 3, 2017 Share Posted May 3, 2017 Используйте ведущие нули :) @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted May 3, 2017 Share Posted May 3, 2017 @Tomas, мне кажется или @Mr 13 не прочь прописать кому-то если и не бан, то РО точно? @ Quote Link to comment Short link Share on other sites More sharing options...
StranikS_Scan Posted May 3, 2017 Share Posted May 3, 2017 Используйте ведущие нули :) Молодцы менеджеры из ВГ - делают разработку модов всё доступнее и доступнее танковым обывателям, я валяюсь 2 @ Quote Link to comment Short link Share on other sites More sharing options...
Tomas Posted May 3, 2017 Share Posted May 3, 2017 @Tomas, мне кажется или @Mr 13 не прочь прописать кому-то если и не бан, то РО точно? Как он решит, так тому и быть. Я своё слово сказал, ответа не увидел. 4 @ Quote Link to comment Short link Share on other sites More sharing options...
Pavel3333 Posted May 3, 2017 Share Posted May 3, 2017 (edited) Тут либо кучу лидирующих нулей писать... либо хэш какой-то упорядоченный. Вставлю сюда пару джуниорских копеек, не пинайте сильно. Если сравнивать строки версий в питоне - лучше просто разделить строку на несколько int'ов с помощью list(map(int, version.split('.'))) А потом уже поочередно сравнивать int'ы из полученного списка с int'ами из сравниваемого списка. Если я правильно понял, о чем вы. Edited May 3, 2017 by Pavel3333 @ Quote Link to comment Short link Share on other sites More sharing options...
Polyacov_Yury Posted May 3, 2017 Share Posted May 3, 2017 (edited) Алгоритм сравнения версий есть уже в клиенте. Готовый. Вызывается при попытке логина на сервер и сравнивает версию в Account.def с версией, которую сервер пришлет. Вполне можно взять общую идею оттуда и перенести в код сравнения версий на этапе создания vfs. Что касается "какого многазвездочек Юра не забрал себе новый код в моды" - во-первых, я немного занят учебой (*когда осознал, что сессия через месяц*), и особо не следил за происходящим. Скайп на куски не рвуть - и ладно) А во-вторых, тот же самый GPCracker, который задал сей вопрос, немногим ранее обфыркал написанный в vfs.gettext код, и я все жду от него исправленную "нормальную" версию :D Edited May 3, 2017 by Polyacov_Yury @ Quote Link to comment Short link Share on other sites More sharing options...
tricsi Posted May 4, 2017 Share Posted May 4, 2017 Молодцы менеджеры из ВГ - делают разработку модов всё доступнее и доступнее танковым обывателям, я валяюсь конечно молодцы, и заметь, делают руками уважаемого сообщества...не привлекая так сказать спецов, т.е бесплатно так как не обладаю достаточными знаниями и навыками в этом направлении, придётся уйти на покой )) @ Quote Link to comment Short link Share on other sites More sharing options...
GPCracker Posted May 4, 2017 Share Posted May 4, 2017 (edited) Если я правильно понял, о чем вы.Не совсем. Речь идет об учете версии пакета при упорядочивании пакетов. Там нельзя запустить питон. И твой вариант ограничен только правильной версией. Версии с данными билдов, хэшами и т.д. парсить не так уж и просто, и без регулярки уже никак. А во-вторых, тот же самый GPCracker, который задал сей вопрос, немногим ранее обфыркал написанный в vfs.gettext код, и я все жду от него исправленную "нормальную" версию :DГы, так не обязательно втягивать код, можно просто на время притянуть пакет, пока код не появится. Хотя интуиция мне подсказывает что данный патч скоро выйдет на основу и пакет будет не нужен. Правда насколько скоро - пока не ясно. В доках он тоже обозначен временным решением, если что. Edited May 4, 2017 by GPCracker @ Quote Link to comment Short link Share on other sites More sharing options...
Mixaill Posted May 4, 2017 Share Posted May 4, 2017 данный патч скоро выйдет на основу Ха-ха, лол. 1 @ Quote Link to comment Short link Share on other sites More sharing options...
ribbed Posted May 4, 2017 Author Share Posted May 4, 2017 Прикрепил обновленную доку v0.4, обновлены пункты 6.1, 6.3, удален 9.4. Еще раз большое спасибо @Mixaill за работу над документом. 2 @ Quote Link to comment Short link Share on other sites More sharing options...
KOT_LUIS Posted May 5, 2017 Share 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 Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.