Nie wyjaśniłem dokładnie na czym polegają te hooki dlatego trochę się nie rozumiemy. XML jest własnie po to by zdefiniować pojazdy, budynki i zbudować interfejs. Dodatkowo jest to 'wrapper' na funkcje Lua tak więc to bez różnicy w czym ktoś będzie pisał.
Każda misja będzie posiadać plik XML z utworzonymi hookami dla czytelności oraz plik Lua z funkcjami z których chcemy korzystać.
Mamy taka własną funkcje lua i chcemy żeby była wykonana jak naciśniemy przycisk:
Code: Select all
function Zamknij()
if a == 1 then
GameExit()
end
end
Teraz otwieramy plik xml i definiujemy przycisk:
Code: Select all
<button id="ZamknijGre" function="Zamknij">
<position x="100" y="100"/>
</button>
albo jeśli funkcja jest krótka to razu piszemy jej definicje:
Code: Select all
<button id="ZamknijGre" function="if a == 1 then GameExit() end end">
<position x="100" y="100"/>
</button>
albo jeszcze inaczej, napisać wszystko w lua:
Code: Select all
ZamknijGre = Interface:CreateButton("ZamknijGre")
ZamknijGre:SetPosition(100,100)
ZamknijGre:SetFunction("if a == 1 then Function::GameExit() end")
Lua ma dostęp do tego co jest w XML i na odwrót. To co można zrobić w XML da się 'ręcznie' w Lua ale wtedy kod niepotrzebnie rośnie i jest mało czytelny.