Jump to content
Korean Random
poget

Проблемы с размещением файлов мода.

Recommended Posts

Здравствуйте. Возникла пара проблем с размещением файлов мода 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 by poget

Share this post


Link to post

Short link
Share on other sites

Здравствуйте. Возникла пара проблем с размещением файлов мода XVM.

1. можно использовать <img src='img://../../../...'>

2. Тут ограничения накладывает система пакетов игры. Попробуй поиграться с paths.xml

Share this post


Link to post

Short link
Share on other sites

Можно помудрить с символьными ссылками

Кстати неплохая идея. Попробовал, все работает. Но этот вариант я оставлю прозапас, все-таки это костыль, а не полноценное решение.

 

 

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 прекрасно работают из одноименной папки в корне игры, кроме этих двух файлов.

Share this post


Link to post

Short link
Share on other sites

Кстати неплохая идея. Попробовал, все работает. Но этот вариант я оставлю прозапас, все-таки это костыль, а не полноценное решение.

 

 

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. Если хочешь глубоко копать - разбирайся в исходниках.

Share this post


Link to post

Short link
Share on other sites

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/", на которую, ввиду малой значимости, было решено закрыть глаза?

Просто в первом случае желательно исправлять метод вызова файлов доп. модов, а во втором случае ничего исправлять не нужно, и все ок ))

Share this post


Link to post

Short link
Share on other sites

да, ты полностью разобрался во всех нюансах, даже нечего добавить. :)

Share this post


Link to post

Short link
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...