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

aaa4xu
  • Уважаемые мододелы. Предлагаю вам утилиту, для запаковки ваших файлов (с заменой) внутрь vpk архивов Dota 2.

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

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

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

    После того, как все файлы подготовленны, запускаем Dota2Slasher:
    Dota2Slasher.exe -p -dir <Папка с измененными файлами> -vpk <Путь до адреса pak01_dir.vpk>

    Для данного случая будет так:
    Dota2Slasher.exe -p -dir "D:\replaced\" -vpk "D:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"

    UPD от 22.05.2012 Появилась возможность вшивать свои файлы, а не заменять уже прерыдущие!

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

    Для удаления файла выполняем:
    Dota2Slasher.exe -r -file <имя файла для удаления> -vpk <Путь до адреса pak01_dir.vpk>
    Например:
    Dota2Slasher.exe -r -file "sound\music\gamestartup1.wav" -vpk "D:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"

    Теперь файл sound\music\gamestartup1.wav будет загружатся из папки игры а не архива. К примеру, теперь можно настроить аудиоредактор на сохранение файла в папку и запускать игру сразу после сохранения результата в редакторе.

    Распаковка архивов
    Распаковывает архивы Dota 2 в целевую директорию. Выполняем:
    Dota2Slasher.exe -e -dir <Директория для распаковки> -vpk <Путь до файла pak01_dir.vpk>
    Например:
    Dota2Slasher.exe -e -dir "D:\UD2\" -vpk "D:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"
    Стоит отметить, что целевая директория (в данном случае D:\UD2\) должна быть создана заранее, до запуска Dota2Slasher, в противном случае, вы получите ошибку.

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


    Данный флаг пытается обнаружить файл pak01_dir.vpk автоматически.
    ROOT - папка в которой лежит Dota2Slasher.exe
    PROGRAMFILES - папка Program Files на вашем компьютере
    Порядок поиска следующий:

    • Первым делом Slasher пытается прочитать путь до Steam из реестра (HLM\SOFTWARE\Valve\Steam\InstallPath)
    • ROOT\steamapps\common\dota 2 beta\dota\pak01_dir.vpk
    • ROOT\dota\pak01_dir.vpk
    • pak01_dir.vpk
    • PROGRAMFILES\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk


    Так же следует отметить, что в случае запуска Slasher'а таким образом:
    Dota2Slasher -action pack -auto
    Программа будет брать файлы для запаковки из папки ROOT\files\, однако это поведение можно переопределить, указав параметр dir:
    Dota2Slasher -action pack -auto -dir "C:\Dota2\am-skin\compiled\"



    Спойлер: "Алгоритм работы с файлом конфигурации"


    Для замены .bat файла файлом конфигурации требуется создать в папке с Slasher'ом файл config.ini, содержащий настройки запуска. Например, было:
    Dota2Slasher -action pack -dir "C:\Dota2\am-skin\compiled\" -vpk "C:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk" -debug

    Эквивалентный файл конфигурации будет выглядеть так:
    action=pack
    dir=C:\Dota2\am-skin\compiled\
    vpk=C:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk
    debug=true

    Если вы предпочитаете использовать сокращенную запись, например, было:
    Dota2Slasher -p -dir "C:\Dota2\am-skin\compiled\" -vpk "C:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk" -debug

    То config.ini будет выглядуть:
    p=true
    dir=C:\Dota2\am-skin\compiled\
    vpk=C:\Steam\steamapps\common\dota 2 beta\dota\pak01_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
  • А игра точно будет его читать? Наюх не пошлет если хоть на байт больше?
    ------
    Все, ты мой герой, яж два месяца нуждался в такой проге.
  • Свершилось чудо, спасибо тебе, нуждался в этой программе.
  • Автор темы
    Обновил шапку в связи с выходом новой версии
  • oO
  • Сегодня (19.11.2012) возникли проблемы...
    В общем еще вчера юзал Слэшер и все отлично работало  *изменял текстуры деревьев. Сегодня же сам слэшер то вносит новые файлы в pak01_dir.vpk, но ничего не меняется в игре. Открыл pak01_dir.vpk и там по 2 одинаковых файла, т.е. 1-й тот который я заливаю, 2-й оригинальный. Не знаю было ли так раньше или он удалял оригинал, но сейчас Дота читает оригинал, хотя в списке он стоит 2-м, но под таким же именем !

    Спойлер: 'Скрины'







    Подскажите мб что то можно прописать в конфиге для замены файлов, а не копирования.
  • Подтверждаю такой баг, тоже не могу одну модель заменить никак. Но автор похоже перегорел и пропал куда-то...
  • Мехжвачка сказал(а):

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


    Привет, короче просто мороки прибавилось((
    Теперь нужно в конфиге прописывать сначало все файлы которые нужно удалить, а потом уже папку с которой заливать...
  • И то не получается сразу несколько файлов удалить((
    По одному чтоли удалять? Отпишитесь кто разобрался, либо удалять чтоб пачкой, либо заменять, а не копировать...
  • Ну я сделал батник как ты сказал удалил, работает.

    Спойлер:

    Dota2Slasher.exe -r -file "models\heroes\windrunner\windrunner.dx90.vtx" -vpk "C:\Program Files\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"
    Dota2Slasher.exe -r -file "models\heroes\windrunner\windrunner.mdl" -vpk "C:\Program Files\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"
    Dota2Slasher.exe -r -file "models\heroes\windrunner\windrunner.vvd" -vpk "C:\Program Files\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"
    pause

  • 1)  один файл батник  ? ? ?
    2)  чет я удалил, поставил свои файлы, вчера работали, сегодня нет ((

    у тя твоя модель работает ??

    Спойлер: 'скрин'


    прикол в том, что вчера все работало  !
    а сегодня вот я удалил, засунул свои текстуры, пытаюсь опять их же удалить, а оно пишет что их нет, хотя они есть, если GCFScape-м смотреть..
  • Ну я батником удалил, а чере екзе паковал.
  • Мехжвачка сказал(а):

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


    1) паковал через Dota2Slasher.exe + config.ini ???
    2) так у тебя получилось увидеть в игре то что ты туда всунул ??

    зы: я батником и удаляю и пакую, и Dota2Slasher.exe + config.ini паковал, 1 хрен в игре нету нихера, а вот GCFScape показывает что файлы есть...




    Кароче у меня знаеш как получилось увидеть то что я хочу ? ))
    Удалил из pak01_dir.vpk все что раньше заменял, а то что сувал, засунул в папку c Дотой в соответствующие подпапки...
    Т.е. в pak01_dir.vpk этих файлов сейчас нет вообще и все работает !
  • Тоже вариант.
  • Как им пользоваться? *DASH*   Я дота2 слашер запускаю, быстро появляется и пропадает чёрный экран :(
  • Kozhin2012 сказал(а):

    Как им пользоваться? *DASH*   Я дота2 слашер запускаю, быстро появляется и пропадает чёрный экран :(
    Нажмите, чтобы раскрыть...


    скачай например осенние или зимние текстуры для Доты, и там config.ini уже настроен, а папку files очисти и суй в нее то что хочеш заменить в соответствующие подпапки )
  • *DASH* Незаменяется ничего. Компилировал через доту модель головы антимага без текстур. Вышли 3 файла. Куда ещё надо это прописывать?

    aaa4xu сказал(а):


    После того, как все файлы подготовленны, запускаем Dota2Slasher:
    Dota2Slasher.exe -p -dir <Папка с измененными файлами> -vpk <Путь до адреса pak01_dir.vpk>

    Для данного случая будет так:
    Dota2Slasher.exe -p -dir "D:\replaced\" -vpk "D:\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk"

    Нажмите, чтобы раскрыть...



  • никуда не надо ничего бля прописывать, нужно чтоб у тебя в в папке files/models/heroes/antimage/  лежали твои 3 файла, переименованные в оригинальное название его стандартной части тела ! ! !

    пример:
    берем уже готовое оружие из pack01_dir.vpk, лежит в папке models/items/antimage/ , например 3 файла:

    antimage_slasher_weapon.dx90.vtx
    antimage_slasher_weapon.mdl
    antimage_slasher_weapon.vvd

    ПЕРЕИМЕНОВЫВАЕМ ИХ В

    antimage_weapon.dx90.vtx
    antimage_weapon.mdl
    antimage_weapon.vvd

    и ложим их в files/models/heroes/antimage/

    запускаем слэшер и все !

    Спойлер: 'скриншот'




    при чем сейчас в левой руке у него стандарт, т.к. оффхэнд я не заменял ...
  • Нашёл я свою ошибку. Компиляция быстро шла я не успевал прочитать красное предупреждение. Надо тушить GCFScape когда заменяешь файлы =)

    Вот получилось. Только я заменил просто модель головы, а текстуры её откуда подгрузились?
  • угадай с 3-х раз))  из доты бля и подгрузились, в этой бошке же прописанны пути к текстурам + в доте они уже есть . . .
Кто смотрит тему (Пользователи: 0, Гости: 0)