Все заявки на возврат вещей оформляются в этом разделе, и по данным правилам. Кто не будет соблюдать правила будет забанен на форуме.

Замена файлов в архивах Dota2

Тема в разделе "Гайды для потенциальных Редакторов", создана пользователем aaa4xu, 12 май 2012.

  1. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Уважаемые мододелы. Предлагаю вам утилиту, для запаковки ваших файлов (с заменой) внутрь vpk архивов Dota 2.

    Запаковка своих файлов
    Для начала распаковываем архивы. Можно использовать например GCFScape (Теперь для этого можно использовать и сам Dota2Slasher. Инструкция по распаковке смотри ниже.)

    Я распаковал в папку D:unpacked
    Создаем отдельную папку, куда будем ложить файлы, которые требуется вшить в архивы. У меня D:replaced

    Теперь ложим файлы, которые требуется заменить, в D:replaced с тамим же путём, с которым они лежат в D:unpacked. К примеру чтобы заменить файл:
    D:unpackedsoundmusicgamestartup1.wav
    Ложим:
    D:replacedsoundmusicgamestartup1.wav

    После того, как все файлы подготовленны, запускаем Dota2Slasher:
    Код:
    Dota2Slasher.exe -p -dir  -vpk 
    Для данного случая будет так:
    Код:
    Dota2Slasher.exe -p -dir "D:replaced" -vpk "D:Steamsteamappscommondota 2 betadotapak01_dir.vpk"
    UPD от 22.05.2012 Появилась возможность вшивать свои файлы, а не заменять уже прерыдущие!

    Удаление файла из архива
    Удаление файла из архива заставляет игру искать файл в папке dota (подобный алгоритм используется для Загрузочного экрана). Помогает ускорить процесс тестирования вносимых в игру изменений и не захламлять .vpk одном и тем же файлом разных версий.

    Для удаления файла выполняем:
    Код:
    Dota2Slasher.exe -r -file  -vpk 
    Например:
    Код:
    Dota2Slasher.exe -r -file "soundmusicgamestartup1.wav" -vpk "D:Steamsteamappscommondota 2 betadotapak01_dir.vpk"
    Теперь файл soundmusicgamestartup1.wav будет загружатся из папки игры а не архива. К примеру, теперь можно настроить аудиоредактор на сохранение файла в папку и запускать игру сразу после сохранения результата в редакторе.

    Распаковка архивов
    Распаковывает архивы Dota 2 в целевую директорию. Выполняем:
    Код:
    Dota2Slasher.exe -e -dir  -vpk 
    Например:
    Код:
    Dota2Slasher.exe -e -dir "D:UD2" -vpk "D:Steamsteamappscommondota 2 betadotapak01_dir.vpk"
    Стоит отметить, что целевая директория (в данном случае D:UD2) должна быть создана заранее, до запуска Dota2Slasher, в противном случае, вы получите ошибку.

    Сопроводительная документация
    Алгоритм работы флага -auto (развернуть)

    Данный флаг пытается обнаружить файл pak01_dir.vpk автоматически.
    ROOT - папка в которой лежит Dota2Slasher.exe
    PROGRAMFILES - папка Program Files на вашем компьютере
    Порядок поиска следующий:
    • Первым делом Slasher пытается прочитать путь до Steam из реестра (HLMSOFTWAREValveSteamInstallPath)
    • ROOTsteamappscommondota 2 betadotapak01_dir.vpk
    • ROOTdotapak01_dir.vpk
    • pak01_dir.vpk
    • PROGRAMFILESSteamsteamappscommondota 2 betadotapak01_dir.vpk
    Так же следует отметить, что в случае запуска Slasher'а таким образом:
    Код:
    Dota2Slasher -action pack -auto
    Программа будет брать файлы для запаковки из папки ROOTfiles, однако это поведение можно переопределить, указав параметр dir:
    Код:
    Dota2Slasher -action pack -auto -dir "C:Dota2am-skincompiled"


    Алгоритм работы с файлом конфигурации (развернуть)

    Для замены .bat файла файлом конфигурации требуется создать в папке с Slasher'ом файл config.ini, содержащий настройки запуска. Например, было:
    Код:
    Dota2Slasher -action pack -dir "C:Dota2am-skincompiled" -vpk "C:Steamsteamappscommondota 2 betadotapak01_dir.vpk" -debug
    Эквивалентный файл конфигурации будет выглядеть так:
    Код:
    action=pack
    dir=C:Dota2am-skincompiled
    vpk=C:Steamsteamappscommondota 2 betadotapak01_dir.vpk
    debug=true
    Если вы предпочитаете использовать сокращенную запись, например, было:
    Код:
    Dota2Slasher -p -dir "C:Dota2am-skincompiled" -vpk "C:Steamsteamappscommondota 2 betadotapak01_dir.vpk" -debug
    То config.ini будет выглядуть:
    Код:
    p=true
    dir=C:Dota2am-skincompiled
    vpk=C:Steamsteamappscommondota 2 betadotapak01_dir.vpk
    debug=true
    Для автоматической запаковки папки files в pak01_dir.vpk используйте следующий config.ini:
    Код:
    action=pack
    auto=true


    UPD от 27.05.2012:
    • Временный фикс бага с кривой записью файлов внутрь pak01_dir.vpk
    UPD от 25.05.2012:
    • Новый синтаксис параметров
    • Поддержка флага -auto, который пытается автоматически обнаружить pak01_dir.vpk
    • Возможность использования файла конфигурации вместо параметров (альтернатива bat файлов, решающая проблему с правами Администратора)
    • Динамический подсчет размера файла, что искореняет проблему убивания vpk из-за особо хитрых файлов (PNG Bug fix)
    • Автоматическое создание резервной копии pak01_dir.vpk перед его изменением (pak01_dir.vpk.bak в папке доты)
    UPD от 22.05.2012:
    • Dota2Slasher теперь умеет распаковывать архивы
    • Фикс критического бага из-за которого при добавлении нового файла (не находщегося до этого архивах) на выходе получался битый pak01_dir.vpk
    UPD от 16.05.2012:
    • Поддержка удаления файлов из архива
    • Понижение требуемой версии .NET Framework до 2.0
    • Программа больше не ожидает нажатия Enter по окончании работы, что позволяет использовать ее в сценариях
    Ссылка на скачивание Dota 2 Slasher
     
    TeSaK_d.s.r, Tiadec, SuperFlick и ещё 1-му нравится это.
  2. SuperFlick

    SuperFlick Courier

    Регистрация:
    28 мар 2012
    Сообщения:
    48
    Симпатии:
    37
    божественная тема=)) может курей на автоматическую установку смогу поставить. а то больно нудный алгоритм каждую неделю.
    где взял софтину?
     
    Jet_Shark нравится это.
  3. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    где взял софтину?

    Написал сам на C#
     
    Tiadec нравится это.
  4. SuperFlick

    SuperFlick Courier

    Регистрация:
    28 мар 2012
    Сообщения:
    48
    Симпатии:
    37
    Написал сам на C#

    планируешь улучшать? например, чтоб не указывать путь на реплэйсд, а брать его от туда, где лежит утилита.
    пс. можешь сделать, чтоб он net framework 4 не просил?)
     
  5. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Может буду, может нет, время покажет, сессия на носу.
    Полностью избавится он .net framework не получится - C# изначально его использует. А вот попробовать понизить требуемую версию - попробую.
     
    Tiadec и SuperFlick нравится это.
  6. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Обновил утилиту. Добавилась пара плюшек для автоматизации тестирования изменений:
    • Поддержка удаления файлов из архива
    • Программа больше не ожидает нажатия Enter по окончании работы, что позволяет использовать ее в сценариях
    • Понижение требуемой версии .NET Framework до 2.0

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

    Думаю в следующей версии реализую соответствующий флаг
     
    Tiadec и SuperFlick нравится это.
  7. SuperFlick

    SuperFlick Courier

    Регистрация:
    28 мар 2012
    Сообщения:
    48
    Симпатии:
    37
    Спасибо, что просьбу выполнил и понизил до 2.0.
    Но вот чтобы в сценариях юзать, было бы здорово, если б было определение местонахождения доты и архивов, но при условии, что не был указан путь руками.
    тогда если я меняю левый архив(не из доты или в другом клиенте - тесте), то указываю сам место. Просто стим можно хоть куда положить, а у тебя частный случай.
     
  8. Mechbgum

    Mechbgum First Blood

    Регистрация:
    21 май 2012
    Сообщения:
    13
    Симпатии:
    6
    Новая версия почему-то не запаковывает png иконки, замена экзешника на старый проблему решает.
     
  9. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Новая версия почему-то не запаковывает png иконки, замена экзешника на старый проблему решает.


    Всмысле не запаковывает? Запаковывает ТОЛЬКО png а все остальные запаковывает?
    Еще раз сверьяся с шапкой, все ли правильно указано. Хочу отдельно заметить, что файлы из корня папки и без расширения не будут вшиты (не позволяет формат)

    UPD: Выявлена проблема с запаковкой файлов в 0.2 версии. Исправляю. Ближайшие пару часов появится обновление.
     
    Tiadec нравится это.
  10. Tiadec

    Tiadec First Blood

    Регистрация:
    20 май 2012
    Сообщения:
    10
    Симпатии:
    0
    Наконец-то появилось программа, спасибо тебе за труд.
     
  11. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Свеженькое обновление Dota2Slasher:
    • Dota2Slasher теперь умеет распаковывать архивы
    • Фикс критического бага из-за которого при добавлении нового файла (не находщегося до этого архивах) на выходе получался битый pak01_dir.vpk

    Сейчас полным ходом идет разработка второго режима распаковки: распаковка изменившихся файлов. Полезно для выявления изменившихся файлов в обновлениях.
     
    SuperFlick и Jet_Shark нравится это.
  12. SuperFlick

    SuperFlick Courier

    Регистрация:
    28 мар 2012
    Сообщения:
    48
    Симпатии:
    37
    текущая версия не заменяет vtf файлы(на примере orca skin пробовал). зато та, что в курьерах заменяет, но ругается крахом доты, хотя все работает.
    и черт с ним, я бы и той пользовался, но она жестко тырит файлы из files, не смотря на путь в батнике и приходится делать замороченную систему установки/удаления.
     
  13. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Насчет того, что она не заменяет - проверю.
    С курицами там вообще целая история, как из меня нестабильную версию выжали, ради -auto мода, для определения пути до pak01_dir.vpk

    Сейчас активно занимаюсь новым обновлением с -auto модом и искоренением проблемы убивания vpk файлов, которая на данный момент все равно остается. Надеюсь в течение пары часов смогу выложить обновление
     
    SuperFlick и Jet_Shark нравится это.
  14. SuperFlick

    SuperFlick Courier

    Регистрация:
    28 мар 2012
    Сообщения:
    48
    Симпатии:
    37
    Насчет того, что она не заменяет - проверю.
    С курицами там вообще целая история, как из меня нестабильную версию выжали, ради -auto мода, для определения пути до pak01_dir.vpk

    Сейчас активно занимаюсь новым обновлением с -auto модом и искоренением проблемы убивания vpk файлов, которая на данный момент все равно остается. Надеюсь в течение пары часов смогу выложить обновление


    а дак вот че делает -ауто=)) а я сижу, батники учу блин=)
    ты бы описал модификаторы эти... их сейчас 4 пока?
     
  15. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    ты бы описал модификаторы эти... их сейчас 4 пока?

    Я всегда описываю параметры, просто пока 0.4 версия не вышла и не выложена в шапку темы не вижу смысла описывать.
     
  16. aaa4xu

    aaa4xu Администратор Команда форума

    Регистрация:
    12 май 2012
    Сообщения:
    139
    Симпатии:
    31
    Свеженький апдейт. Список изменений следующий:
    • Новый синтаксис параметров
    • Поддержка флага -auto, который пытается автоматически обнаружить pak01_dir.vpk
    • Возможность использования файла конфигурации вместо параметров (альтернатива bat файлов, решающая проблему с правами Администратора)
    • Динамический подсчет размера файла, что искореняет проблему убивания vpk из-за особо хитрых файлов (PNG Bug fix)
    • Автоматическое создание резервной копии pak01_dir.vpk перед его изменением (pak01_dir.vpk.bak в папке доты)

    Нового режима распаковки пока нету. Надеюсь, хоть к следующему апдейту он будет готов. Большая часть изменений направлена на облегчение процесса интеграции модов в игру + фиксы уже доставшего меня бага.
    Документация уже торт, надо переписывать, разобраться конечно можно, но все равно, черт ногу сломит. Пока думаю как переоформить.
     
    TeSaK_d.s.r, Jet_Shark и SuperFlick нравится это.
  17. thunderbird19932

    thunderbird19932 Новичок

    Регистрация:
    13 авг 2013
    Сообщения:
    1
    Симпатии:
    0
    s
     
    Последнее редактирование: 23 май 2015

Поделиться этой страницей