В этом уроке я научу вас спавнить НПС через скрипт. Открываем файл \configs\creatures\spawn_sections_zaton В самое начало добавляем это: ;------------------------MINOR410 -------------------- [my_stalker]:stalker $spawn = "respawn\my_stalker" character_profile = my_stalker spec_rank = master community = stalker custom_data = scripts\zaton\my_stalker_npc_logic.ltx
Сохраняем… Далее… Идем в папку
\configs\gameplay
Открываем character_desc_zaton В самый конец добавляем, но перед <\xml>! <specific_character id="my_stalker" team_default = "1"> <name>Minor</name> <icon>ui_inGame2_neutral_4</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
Сохраняем… открываем файл в этой же папке dialogs_zaton
Вставляем это но перед </game_dialogs>! <dialog id="hello_dialog_my_stalker"> <phrase_list> <phrase id="0"> <text>Привет</text> </phrase> </phrase_list> </dialog> <dialog id="actor_dialog_my_stalker"> <phrase_list> <phrase id="0"> <text>Пока.</text> <action>dialogs.break_dialog</action> </phrase> </phrase_list> </dialog>
И открываем все в этой же папке: npc_profile После строчки <!-- НОВЫЕ ПРОФИЛЯ --> добавляем <character id="my_stalker"> <class>my_stalker</class> </character>
Создадим логику для него \configs\scripts\zaton а там файл my_stalker_npc_logic И пишим там Логика для бессмертного: Вставляем это: [logic] active = remark1 danger = danger_ignore invulnerable = true
gamedata\scripts И создаем скрипт sniper_add.script И пишем там :
function start_add_spawn()--\\ --\\ -- spawn_sniper_one() end
function spawn_sniper_one() local x= 111.75521087646 local y= -3.9362425804138 local z= 185.2212677022 local level_vertex= 1158851 local game_vertex_id= 316 alife():create("my_stalker",vector():set(x,y,z),level_vertex,game_vertex_id) end
function save_variable(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end
И открываем скрипт : bind_stalker.script
Ищим строку
function actor_binder:update(delta) object_binder.update(self, delta)
if string.find(command_line(), "-designer") then return end
И после неё пишим это if sniper_add.load_variable("spawn_sniper",false)==false then sniper_add.start_add_spawn() sniper_add.save_variable("spawn_sniper",true) end
Всё мы заспаунили НПС он появится около Сыча если всё правильно Сделали… Удачи!
ЕСЛИ ВЫ ХОТИТЕ СОЗДАТЬ ВТОРОГО НПС ПО ЭТОЙ ЖЕ СХЕМЕ ТО НЕ ЗАБЫВАЙТЕ МЕНЯТЬ ИМЕНА НПС, ИМЕНА СЕКЙЦИЙ И СКРИПТА!! А ТАК ЖЕ НАЗВАНИЕ ЛОГИКИ!! ТАК ЖЕ НЕ ЗАБУДЬТЕ СНЯТЬ НОВЫЕ КООРДИНАТЫ ДЛЯ НОВОГО НПС!!!!
Автора статьи не знаю
Сообщение отредактировал Salem - Воскресенье, 22.07.2012, 03:02
Salem, Сколько раз уже обсасывалось, что схему remark использовать в качестве основной - нельзя, ибо эта схема предназначена только для переходов между схемами