Тот, кто занимался спавном через скрипт наверняка задумывался, как можно сделать такой файл инфопоршеней, который будет запускать ваши функции сразу в начале игры как в XRspawne
Начнем
Програмная часть.
В начале зайдем в файл bind_stalker (В папке scripts) и найдем там строчки:
function actor_binder:update(delta) bind_zone_tele.actor_update(delta) object_binder.update(self, delta) -- DEBUG slowdown --slowdown.update() local time = time_global() game_stats.update (delta, self.object) -- апдейт погоды self.weather_manager:update() -- апдейт схемы детектора self.actor_detector:update() -- апдейт звуковой схемы актера xr_sound.update_actor() Под ними пишем: Код: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if not has_alife_info("spawn") then self.object:give_info_portion("spawn") end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Точки с запятыми помогут вам быстро найти эти строки, если в вашем моде будут несколько файлов с инфопоршнями. Редактируемая часть. Так, теперь зайдем в файл : config/gameplay. Там создадим файл, ну к примеру назовем его "spawn.xml" - обязательно оканчиваем название форматом XML. Открываем его и пишем: Код:
Это сохраняем и закрываем, теперь надо зарегистрировать наш файл инфопоршней. Открываем файл system.ltx (config) и найем строки:
[info_portions]
;список xml файлов, содержащих info_portions Записываем имя нашего XML, например: files = spawn, info_portions, info_portions_light, info_portions_test, info_lchanger_ico, info_level_tips, info_known_objects, info_l01escape, info_l02garbage, info_l03agroprom, info_l04agroprom_u, info_l05dark_valley, info_l06dark_valley_u, info_l07rostok, info_l08yantar, info_l08deadcity, info_l08rostok_bar, info_l09marshes, info_l09rostok_dolg, info_l10military, info_l11pripyat, info_l11yantar, info_l12yantar_u, info_l13deadcity, info_l14swamp, info_l10radar, info_l16radar_antena, info_l17monolith_control, info_l19stanciya, info_l12u_sarcofag, info_l21generators, info_l22warlab, info_stories Инфопоршень создан.
Как испытать творение?
Например заспавним старую добрую Медузку.
Создаем скрипт в папке scripts и назовем его my_spawn
Там пишем лог:
Код:
function my_spawn()
alife():create("af_medusa",vector():set(-221,-20,-143),32212,47)
---------------------------------------------------------------------------------Для новичков-------------------------------------------------------------------------------------------------------------------
Level Vertex
Game Vertex
X
Y
Z
Ваш предмет
Функция, которую надо написать в инфопоршне
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Открываем ранее созданый инфопоршень spawn.XML.
И вписываем в него:
Код:
my_spawn.my_spawn
-----------------------------------------------Для новичков-----------------------------------------
Это название скрипта, который будет работать
Это название функции, которая будет включена
---------------------------------------------------------------------------------------------------------
Так, должно быть так:
my_spawn.my_spawn
Ну все после запуска игры в деревне новичков у забора будет стоять медузка.
О вылетах немедленно сообщить.
Для того, чтобы узнать координаты, откроем файл ui_main_menu
и в самый конец прямо в самый конец вписываем:
Код:
function main_menu:OnButton_credits_clicked() local text local vid local gvid local a = vector() local text a = db.actor:position() vid = db.actor:level_vertex_id() gvid = db.actor:game_vertex_id() text = "Позиция:nX= "..a.x.."nY= "..a.y.."nZ= "..a.z.."nlevel_vertex= "..vid.."ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end теперь при нажатии в меню кнопку титры будет выходить информация о местоположении Меченого. Только не нажимать эту кнопку когда вы еще не начали игру.
Проблема одна: в скриптах нельзя использовать точку с запятой(вылетает игра), поэтому лучше использовать тире.
Разжованый материал
Внимание: множественные орфографические ошибки допускаются - у меня клавиатура старая и клавиши залипают
Класс 10000+