poget 3 Posted September 30, 2013 (edited) Здравствуйте. Возникла пара проблем с размещением файлов мода XVM. 1) Мне понадобилось разместить все файлы мода в своей альтернативной папке (к примеру "/res_mods/my-xvm/") Я делал так: есть стандартная папка "/res_mods/xvm/" и в ней "xvm.xc", а в этом файле уже прописан путь к папке, где лежат все файлы конфигурации и ресурсы (строкой вида - ${"../my-xvm/configs/xvm.xc":"."} ). Конфиги заработали, так же прописал путь для клановых иконок. Но вот для папок: "l10n, mods, res", свой путь задать не удалось, мод ищет их в основной папке "/xvm/". Особенно хотелось задать путь для папки "res", чтобы использовать пути вида - "xvmres://", а также подгружать изображение для "шестого чувства" из нужной папки. Может все-таки есть возможность задать свой путь для ресурсных файлов? 2) Вторая проблема возникла вследствие решения первой. Обнаружил что мод ищет все нужные файлы не только в стандартной папке "/world_of_tanks/res_mods/xvm/", но и в корне игры, то есть - "/world_of_tanks/xvm/". Такая альтернатива меня устроила и я перенёс все файлы мода в последнюю папку. После этого почти все заработало, кроме экрана загрузки боя. Выяснил что происходит это из-за отстутсвия файла "/xvm/mods/xvm-hangar.swf" именно по стандартному адресу. В папке "/xvm/mods/" три файла (xvm.swf, xvm-autologin.swf, xvm-hangar.swf). Так вот, файл "xvm.swf" грузится как и все другие файлы - то есть сначала мод ищет его в стандартной "/world_of_tanks/res_mods/xvm/", а если не находит, то в "/world_of_tanks/xvm/". А вот с двумя другими файлами ("xvm-autologin.swf" и "xvm-hangar.swf") такого не происходит. То есть они ищутся по дефолтному адресу и все, в случае отстутвия просто не загружаются. Есть ли способ побороть данную проблему? П.С. Исползьую ночной билд мода "latest_xvm_flex4.10.zip" от 28.09.13 Edited September 30, 2013 by poget Quote Share this post Link to post Short link Share on other sites
Art_NRG 503 #108078 Posted September 30, 2013 Можно помудрить с символьными ссылками Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #108086 Posted September 30, 2013 Здравствуйте. Возникла пара проблем с размещением файлов мода XVM. 1. можно использовать <img src='img://../../../...'> 2. Тут ограничения накладывает система пакетов игры. Попробуй поиграться с paths.xml Quote Share this post Link to post Short link Share on other sites
poget 3 #108185 Posted September 30, 2013 Можно помудрить с символьными ссылками Кстати неплохая идея. Попробовал, все работает. Но этот вариант я оставлю прозапас, все-таки это костыль, а не полноценное решение. 1. можно использовать <img src='img://../../../...'> 2. Тут ограничения накладывает система пакетов игры. Попробуй поиграться с paths.xml 1. Ну я везде так и делал, но как указать путь к лампочке (SixthSense.png), я не нашел 2. Если не ошибаюсь, paths.xml указывает пути, по которым игра проходится в поисках нужных файлов. Но чем мне это поможет? Ведь файлы (xvm-hangar.swf) и (xvm-autologin.swf) вызываются из кода xvm (как я понял) и ищутся они имено в папке "/res_mods/xvm/mods/" и нигде больше (с помощью файл-монитора мне удалось обнаружить запросы на эти два файла только по данному адресу), в то время как файл "xvm.swf", из той же папки, прекрасно берется и из корня игры - "world_of_tanks/xvm/mods/". Странно что все файлы для XVM прекрасно работают из одноименной папки в корне игры, кроме этих двух файлов. Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #108236 Posted September 30, 2013 Кстати неплохая идея. Попробовал, все работает. Но этот вариант я оставлю прозапас, все-таки это костыль, а не полноценное решение. 1. Ну я везде так и делал, но как указать путь к лампочке (SixthSense.png), я не нашел 2. Если не ошибаюсь, paths.xml указывает пути, по которым игра проходится в поисках нужных файлов. Но чем мне это поможет? Ведь файлы (xvm-hangar.swf) и (xvm-autologin.swf) вызываются из кода xvm (как я понял) и ищутся они имено в папке "/res_mods/xvm/mods/" и нигде больше (с помощью файл-монитора мне удалось обнаружить запросы на эти два файла только по данному адресу), в то время как файл "xvm.swf", из той же папки, прекрасно берется и из корня игры - "world_of_tanks/xvm/mods/". Странно что все файлы для XVM прекрасно работают из одноименной папки в корне игры, кроме этих двух файлов. 1. Да, путь к лампе не меняется в конфиге, но все равно управляется через paths.xml 2. Если хочешь глубоко копать - разбирайся в исходниках. Quote Share this post Link to post Short link Share on other sites
poget 3 #108304 Posted September 30, 2013 1. Да, путь к лампе не меняется в конфиге, но все равно управляется через paths.xml 2. Если хочешь глубоко копать - разбирайся в исходниках. 1) Может я жестко туплю, но что-то мне кажется через paths.xml проблему с лампой не решить. К примеру я добавляю в файл запись <Path>./res_mods/my-xvm</Path> И закладываю в папку "my-xvm/SixthSense.png", или даже, по аналогии с дефолтом - "my-xvm/res/SixthSense.png". Но она не грузится, оно и логично, иначе бы можно было кинуть файл SixthSense.png в любую папку прописанную в paths.xml, например в "res_mods/0.8.8/". Я так понимаю лампа как и другие файлы грузятся по пути вида: "../../../xvm/", тогда единственная возможность изменить путь к файлу, это правка кода и добавление возможности изменять этот путь через конфиг. Но важность и приоритет такой задачи, конечно, крайне низки. 2) ну а по поводу файлов из папки mods, покопался по исходникам, вроде нашел почему так происходит. Видимо xvm.swf грузится строкой "../../../xvm/mods/xvm.swf" (нашел такое в application.patch). То есть путь вычисляется относительно какой-то исходной папки и, в зависимости от исходной точки, сюда попадают как "WOT/res_mods/xvm/mods/", так и "WOT/xvm/mods/". (таким же образом, видимо, грузятся и почти все остальные файлы для XVM) А вот все остальные файлы дополнительных модов, в числе которых - "xvm-hangar.swf" и "xvm-autologin.swf", грузятся похоже в (XvmStat.py) кодом: mods_dir = "res_mods/xvm/mods" if not os.path.isdir(mods_dir): return None mods = [] for m in glob.iglob(mods_dir + "/*.swf"): m = m.replace('\\', '/') if not m.lower().endswith("/xvm.swf"): mods.append(m) return json.dumps(mods) if mods else None И тут уже путь задан более жестко, относительно корневой папки WOT - "res_mods/xvm/mods". Отсюда и те нестыковки, которые меня заинтересовали. Так вот хотелось бы спросить: то, что папка XVM грузится не только по дефотному пути - "wot/res_mods/xvm/", но и из корня - "wot/xvm/", это так было задумано, или просто это погрешность, возникшая вследтвие использования путей вида - "../../../xvm/", на которую, ввиду малой значимости, было решено закрыть глаза? Просто в первом случае желательно исправлять метод вызова файлов доп. модов, а во втором случае ничего исправлять не нужно, и все ок )) Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #108321 Posted September 30, 2013 да, ты полностью разобрался во всех нюансах, даже нечего добавить. :) Quote Share this post Link to post Short link Share on other sites
poget 3 #108323 Posted September 30, 2013 Ок. Спасибо за уделенное время. Прояснил, все что хотел ) Quote Share this post Link to post Short link Share on other sites