NaslednikTutti 1 Опубликовано 16 Июля 2012 Добрый день! Не нашел я на форуме тему, где обсуждают непосредственно схему поведения/логику нпс. Ну а т.к. я пишу квест, и в процессе написания квеста, я застрял на этом моменте, то решил написать тут. Если не по теме, то прошу модераторов переместить туда, куда надо (Только мне сообщите пожалуйста=)) Работаю на ЗП. Написал я логику для нпс: [smart_terrains] none = true [logic] active = remark combat_ignore = combat_ignore [combat_ignore] [remark@wpn] anim = hello_wpn no_move = true target = actor on_actor_dist_le = 2| remark@wait [remark@wait] anim = wait no_move = true target = actor on_actor_dist_le = 5| remark@wpn on_info = {+esc_sniper_quest_give} walker@go [walker@go] path_walk = esc_quest_sniper_start_walk path_look = esc_quest_sniper_start_look Мне нужно сделать так, чтобы нпс из состояния "remark@wait", при получении инфопоршня "esc_sniper_quest_give", перешел в состояние "walker", но не получается, получаю вылет при старте игры: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...s.t.a.l.k.e.r. cop\gamedata\scripts\xr_remark.script:236: attempt to perform arithmetic on local 'pos' (a nil value) Помогите пожалуйста написать логику нпс правильно. Или этот вылет не связан с логикой нпс? Вообще сам квест заключается в чем. ГГ в месте с напарником, нужно зачистить блокпост. Значит, ГГ подходит к нпс, у них простой диалог. ГГ - Ну что, какии задания?, НПС - Нужно зачистить военный блокпост. Выдается квест "esc_sniper_quest_start", и при выдачи инфопоршня "esc_sniper_quest_give", нпс переходит в схему "walker@go" и бежит по заданным точкам "path_walk = esc_quest_sniper_start_walk" помогать ГГ. <dialog id="esc_sniper_start_dialog"> <dont_has_info>esc_sniper_quest_done</dont_has_info> <dont_has_info>esc_sniper_quest_give</dont_has_info> <phrase_list> <phrase id="1"> <text>Нужно зачистить военный блокпост.</text> <give_info>esc_sniper_quest_give</give_info> <action>dialogs_escape.esc_sniper_quest_start</action> </phrase> <phrase id="0"> <text>Ну что, какие задания?</text> <next>1</next> </phrase> </phrase_list> </dialog> <dialog id="esc_sniper_end_dialog"> <has_info>esc_sniper_quest_give</has_info> <dont_has_info>esc_sniper_quest_done</dont_has_info> <has_info>blokpost_killed</has_info> <phrase_list> <phrase id="1"> <text>Пошли проверим.</text> <give_info>esc_sniper_quest_done</give_info> </phrase> <phrase id="0"> <text>Вроде всех положили.</text> <next>1</next> </phrase> </phrase_list> </dialog> <info_portion id="esc_sniper_quest_done"></info_portion> <info_portion id="esc_sniper_quest_give"></info_portion> <info_portion id="blokpost_killed"></info_portion> function esc_sniper_quest_start() task_manager.get_task_manager():give_task("esc_sniper_give") end [esc_sniper_give] icon = ui_inGame2_Bezopasnoe_mesto prior = 2 storyline = false title = {+blokpost_killed}test_talk_strelok, test_killed_blokpost descr = test_mission target = {+blokpost_killed} new_nps_test, nps condlist_0 = {+esc_sniper_quest_done} complete reward_money = 1 <string id="test_killed_blokpost "> <text>Задание: Зачиска блокпоста.</text> </string> <string id="test_mission"> <text>Зачиска блокпоста.</text> </string> <string id="test_talk_strelok"> <text>Переговорить со стрелком.</text> </string> Помогите пожалуйста, где я ошибся? Не соответствует правилам. Поделиться этим сообщением Ссылка на сообщение