Rozbijanie drzewek vobów (pliki *.zen)
Pomysłodawca programu Caesum, autor ja.
Program służy do rozbijania vobów. Przykład jeśli mamy drzewko(vob) d, a ono ma kilka synów a, b, c (są poziom niżej), to program ustawi je na jednym poziomie a, b, c, d.
Uwaga! Program nie działa, gdy zen składa się z kilku zenów!
Przed uruchomieniem programu należy skopiować wszystko od [VobTree % 0 0] w dół (program nie radzi sobie z binarnymi danymi, które są wyżej).
Wymagania:
http://code.google.com/p/luaforwindows/Uruchomienie programu (o nazwie zen.lua):
1. Jak już zainstalujemy Luę, należy uruchomić skrót na pulpicie.
2. Plik *.zen (wycięty wcześniej z danych binarnych) umieścić również na pulpicie.
3. W konsoli Lua wpisujemy: dofile("zen.lua")
4. Następnie podmien_plik("nazwa_pliku_bez_rozszerzenia")
5.
Powinien się nam utworzyć plik nazwa_pliku_bez_rozszerzenia2 Powinien zostać zmieniony nasz plik oraz wyświetlić się informacja, ile zostało podmienionych vobów.
Poniżej kod, zapisać z rozszerzeniem *.lua.
--Adanos 2012-09-11
function podmien_plik(plik)
nazwa_pliku = plik..'.zen'
nazwa_pliku_tymczasowego = plik..'2.zen'
local f = assert(io.open(nazwa_pliku, "r+"))
local f2 = assert(io.open(nazwa_pliku_tymczasowego, "w+"))
local i = 0
for line in io.lines(nazwa_pliku) do
wiersz = {}
_, _, wiersz.id, _ = string.find(line, "childs(%d+)=int:(%d+)")
if wiersz.id ~= nil then --childs6=int:0
f2:write(" childs"..wiersz.id.."=int:0\n")
i=i+1
else f2:write(line.."\n")
end
end
print("Podmieniono "..i)
f:close()
f2:close()
f = assert(io.open(nazwa_pliku, "w+"))
for line in io.lines(nazwa_pliku_tymczasowego) do
wiersz = {}
_, _, wiersz.id, wiersz.liczba = string.find(line, "childs(%w+)=int:(%d+)")
if wiersz.id ~= nil then
if wiersz.id == '1' then f:write(" childs1=int:"..(i-1).."\n")
else f:write(" childs"..wiersz.id.."=int:"..wiersz.liczba.."\n")
end
else f:write(line.."\n")
end
end
f:close()
os.remove(nazwa_pliku_tymczasowego)
end
Mam nadzieję, że jest to w miarę dobra wersja

Program został napisany z rok temu do konkretnego celu i raczej dość dobrze się spisał. Testowano na zenie tworzonym do G2.