Спавн обьектов через db.script — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Практика) |
(→Авторы) |
||
Строка 49: | Строка 49: | ||
===Авторы=== | ===Авторы=== | ||
* Шатров Дмитрий (Fim@n) | * Шатров Дмитрий (Fim@n) | ||
− | + | * PriZraK_2018 (Немного поправил) | |
[[Категория:Скрипты]] | [[Категория:Скрипты]] |
Версия 17:11, 28 июня 2015
Спавн обьектов через db.script
Теория
Сегодня я расскажу вам как заспавнить, например, AK-74 в самом начале игры, без использования диалогов! Но, прежде чем учиться запускать функции без использования диалогов - сначала научитесь их вызывать общепринятым методом.
Практика
Для начала нам надо распаковать db.script и там находим функцию:
function add_actor( obj ) actor = obj actor_proxy:net_spawn( obj ) add_obj( obj ) end
Изменим эту функцию. У нас должно получиться так:
function add_actor( obj ) actor = obj actor_proxy:net_spawn( obj ) add_obj( obj ) new_spawn.give_ak74() end
new_spawn.script - это название скрипта, в котором будет находиться наша функция спавна калаша.
Создаем скрипт new_spawn.script и пишем там функцию:
function give_ak74() alife():create("wpn_ak74", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end
Все! Теперь после того, как мы появимся у нас в инвентаре будет AK-74 и без использования диалогов! Таким способом можно заспавнить не только калаш, но и другое оружие и патроны.
Если вы хотите, чтобы предмет заспавнился у вас только один раз, при начале новой игры то функцию в файле new_spawn.script нужно переделать таким образом:
function give_ak74() if db.actor:dont_has_info("start_game_spawn") then alife():create("wpn_ak74", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) db.actor:give_info_portion("start_game_spawn") end end
А так же не забудьте зарегистрировать новый инфопоршень!
Авторы
- Шатров Дмитрий (Fim@n)
- PriZraK_2018 (Немного поправил)