Подключение другого *.spawn
Подключение другого *.spawn | |
Автор | FantomICW |
Дополнил | Wookie |
Тип статьи | справка |
Актуальность | ТЧ, ЧН, ЗП |
Необходимый софт | Текстовый редактор |
Необходимые файлы | ui_main_menu.script |
В этой статье вы узнаете, как подключить к игре другой файл *.spawn, без замены стандартного all.spawn[1].
Вступление
Как известно, большинство данных игрового спавна всех игровых локаций синглплеера хранятся в файле gamedata/spawns/all.spawn. Однако, довольно часто бывает так, что модмейкеры собирают спавн отдельных локаций для отладки. Обычно в этом случае оригинальный all.spawn переименовывается во что-то другое, а файл имя_уровня.spawn, в свою очередь, переименовывается в all.spawn.
Попробуйте иной, более удобный способ: правка скрипта, который подключает файл *.spawn к игре.
Теория
gamedata/scripts/ui_main_menu.script - именно тот файл, в котором спавн привязывается к игре. Правильнее будет сказать, что в ui_main_menu.script игра запускает синглплеер с указанным в функции файлом *.spawn.
Исправьте функцию под свой файл.
Практика
Предположим, что вы хотите опробовать новый *.spawn уровня "Затон".
1. Скопируйте в gamedata/spawns свой файл *.spawn (zaton.spawn).
2. Откройте ui_main_menu.script, найдите там функцию main_menu:StartGame(), которая запускает новую игру после нажатия на соответствующую кнопку в главном меню и выбора уровня сложности:
function main_menu:StartGame()
local console = get_console()
if (alife() ~= nil) then
console:execute ("disconnect")
end
device():pause(false)
console:execute("start server(all/single/alife/new) client(localhost)")
console:execute("main_menu off")
end
В данном случае это следующая строка:
console:execute("start server(all/single/alife/new) client(localhost)")
all - название файла спавна без расширения (*.spawn).
3. Теперь пропишите в функцию свой файл, заменив all на zaton:
console:execute("start server(zaton/single/alife/new) client(localhost)")
В целом функция будет выглядеть так:
function main_menu:StartGame()
local console = get_console()
if (alife() ~= nil) then
console:execute ("disconnect")
end
device():pause(false)
console:execute("start server(zaton/single/alife/new) client(localhost)")
console:execute("main_menu off")
end
4. Сохраните измененный скрипт. Тестируйте.