skylancer-3441 0 Опубликовано 24 Августа 2009 Поделиться Опубликовано 24 Августа 2009 Здравствуйте! Помогите мне пожалуйста. Дело в том, что я пытался заспаунить NPC, как в уроках по модостроению, но чуть-чуть в другой ситуации. Т.Е. диалог вида Меченый - textA NPC - textB Меченый - textC NPC - textD Меченый - textE NPC - textF причем после реплики textF спаунится NPC на другой локации. Но в результате у меня получился текст вида Меченый - textA NPC - textB Меченый - textC Меченый - textD Меченый - textE Меченый - textF причём никто по указанным координатам не спаунится. Скажите пожалуйста, как сделать диалог вида №1, и заспаунить в рез-те NPC. Ссылка на комментарий
Push85 4 Опубликовано 24 Августа 2009 Поделиться Опубликовано 24 Августа 2009 skylancer-3441, покажи что уже сделал, чтоб легче было найти ошибку. Возможно всё, ну или почти всё. Ссылка на комментарий
skylancer-3441 0 Опубликовано 24 Августа 2009 Поделиться Опубликовано 24 Августа 2009 (изменено) В области скриптописания я , фактически, нуб, поэтому прошу ногами сильно не пинать. Для того, чтобы проверить факт спавна NPC, я сначала решил заспавнить его около ангара на Свалке. вот это я добавил в dialogs_amk Ворону <dialog id="test_dialog"> <phrase_list> <phrase id="0"> <text>test_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>test_dialog_1</text> <next>2</next> <next>3</next> <next>4</next> <next>5</next> </phrase> <phrase id="2"> <text>test_dialog_2</text> </phrase> <phrase id="3"> <text>test_dialog_3</text> </phrase> <phrase id="4"> <text>test_dialog_4</text> </phrase> <phrase id="5"> <text>test_dialog_5</text> </phrase> <action>test.spawn_item_stalker</action> </phrase_list> </dialog> вот это - в stable_dialogs_amk (слова про агропром - потому что я там хотел изначально NPC спаунить) <string id="test_dialog_0"> <text>Привет. Я тестю функции.</text> </string> <string id="test_dialog_1"> <text>Ок, какую?</text> </string> <string id="test_dialog_2"> <text>Да вот, что-то у ваших соседей на Агропроме людей маловато...</text> </string> <string id="test_dialog_3"> <text>Да, это точно. Сколько наших в Зоне полегло, и сколько ещё поляжет...</text> </string> <string id="test_dialog_4"> <text>Вот поэтому я и пытаюсь это сделать.</text> </string> <string id="test_dialog_5"> <text>Ну, давай. Удачи тебе.</text> </string> а вот - сам скрипт спавна в test.script function spawn_item_stalker() alife():create("agr_stalker_general_default4",vector():set(-50.17,0.42,28.92),141823,325) end Правда, в результате последней попытки спавна у меня был вылет без лога. Изменено 24 Августа 2009 пользователем skylancer-3441 Ссылка на комментарий
Push85 4 Опубликовано 24 Августа 2009 Поделиться Опубликовано 24 Августа 2009 (изменено) skylancer-3441, ну с диалогом ты сам накосячил, ты в эту фразу: <phrase id="1"> <text>test_dialog_1</text> <next>2</next> <next>3</next> <next>4</next> <next>5</next> </phrase> прописал вызов всех следующих реплик. <next>n</next>, это вызов реплики с номером n после окончания фразы, а по спавну, у тебя вызов спавна вообще непонятно где висит, если тебе надо, чтоб спаунилось после определенной фразы, надо вызов спавна заключать внутри этой фразы, то есть между тегом <phrase id="n"> и тегом </phrase>. Да и еще, левел вертеккс и гейм вертекс у тебя верные? Изменено 24 Августа 2009 пользователем 8push5 Возможно всё, ну или почти всё. Ссылка на комментарий
skylancer-3441 0 Опубликовано 24 Августа 2009 Поделиться Опубликовано 24 Августа 2009 По поводу диалога - это я всё-таки понял, но как сделать, чтобы реплики шли по очереди - я не знаю. Координаты я брал из Position informer'a , так что там всё вроде верно. Но я хотел ещё спросить - как сделать так, чтобы в в результате заспаунился NPC с характеристиками из одного из файлов charcter_desc_название локации - например agr_stalker_general_default2 из секции stalker general в файле character_desc_agroprom? Ссылка на комментарий
Kirag 39 Опубликовано 25 Августа 2009 Поделиться Опубликовано 25 Августа 2009 skylancer-3441 С диалогом должно быть примерно так: <dialog id="test_dialog"> <phrase_list> <phrase id="0"> <text>test_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>test_dialog_1</text> <next>2</next> </phrase> <phrase id="2"> <text>test_dialog_2</text> <next>3</next> </phrase> <phrase id="3"> <text>test_dialog_3</text> <next>4</next> </phrase> <phrase id="4"> <text>test_dialog_4</text> <next>5</next> </phrase> <phrase id="5"> <text>test_dialog_5</text> <action>test.spawn_item_stalker</action> </phrase> </phrase_list> </dialog> Обрати внимание, как расставлены теги next и на положение тега action. Сам спавн не проверял. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
KDit 3 Опубликовано 25 Августа 2009 Поделиться Опубликовано 25 Августа 2009 У меня такой вопрос, заранее буду благодарен: Я хочу карту "Заброшена деревня" из мультиплейера добавить до основных лок... 1)Что нужно сделать в all.spawn чтоб она там отображалась как все остальние??? 2)И как сделать переходы в том же all.spawn на ету локацию, только не ЧЕРЕЗ ТЕЛЕПОРТЫ??? Ссылка на комментарий
Министр 3 Опубликовано 25 Августа 2009 Поделиться Опубликовано 25 Августа 2009 Killer-44, через all.spawn локацию из мп в сингл никак не добавишь. Ссылка на комментарий
Виталий Зверь 7 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 Если заспавнить НПС не входящего в гулаг, eсть ли вероятность что он будет затянут в какой нибудь гулаг. Ссылка на комментарий
Kolmogor 5 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 Вообще по идее должно затягивать, но для надежности можешь вызвать после спавна: obj:brain():update() local smart_terrain_id = obj:smart_terrain_id() if smart_terrain_id ~= 65535 then --затянуло в гулаг else --не затянуло end Так сделано в респавнерах(se_respawn.script) Ссылка на комментарий
Виталий Зверь 7 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 Создаю "smart_terrain" возникло несколько вопросов: 1. Как высщитать радиус смарта "shape0:radius" 2."cond" что это? и как правильно записать. Ссылка на комментарий
AKKK1 6 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 1. нафиг не нужно вернее ни на что не влияет лиш бы была цифра отличная от нуля например 0.00000001 2. Настройка логики 3ч cond = список условий, которые необходимы для создания гулага {+info –info =func !func} – если условие не выполняется, то гулаг распускается, а все его подопечные начинают управляться прописанной в custom_data логикой. Ссылка на комментарий
Виталий Зверь 7 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 А можно ли обйтись без "cond", вроде в "smart_terrain" деревни новичков нет её? Ссылка на комментарий
AKKK1 6 Опубликовано 26 Августа 2009 Поделиться Опубликовано 26 Августа 2009 cond = Нужно только если гулаг должен образоватся после неких действий или событий В остальных случаях можно без него Ссылка на комментарий
DiXares 1 Опубликовано 27 Августа 2009 Поделиться Опубликовано 27 Августа 2009 Сталкеры, а есть скрипт, который отлавливает из консоли строчку(текст)? Ссылка на комментарий
ray-seven 0 Опубликовано 27 Августа 2009 Поделиться Опубликовано 27 Августа 2009 (изменено) Сталкеры, помогите! Пытаюсь сделать нескольких неписей с логикой kamp, но столкнулся с такой проблемой: логика таких сталкеров задаётся, если они в каком либо гулаге(как я понял), а в файлах логики есть не совсем понятная мне строчка center_point = gar_seryi_kamp(например). Так вот, можно ли задать неписям логику Kamp, не используя гулаг, чтоб получилось примерно как с логикой walker т.е. примерно как [logic@amk_mini_bar_stalker11] active = walker@amk_mini_bar_stalker11 [walker@amk_mini_bar_stalker11] path_walk = stalker11_walk path_look = stalker11_look? Изменено 27 Августа 2009 пользователем ray-seven ХалаДильНИК TV-интересно и вкусно! Ссылка на комментарий
Nazgool 250 Опубликовано 28 Августа 2009 Поделиться Опубликовано 28 Августа 2009 ...можно ли задать неписям логику Kamp, не используя гулаг... Можно. Сначала нужно исключить возможность попадания в гулаг. Для этого в логике пишется секция : [smart_terrains] none = true Далее логика пишется таким образом : [logic] active = kamp [kamp] center_point = *** (***-это имя точки, вокруг которой НПС садятся. Располагать её можно где угодно, не только у костра. Название этой точки должно быть уникальным, т.к. она прописывается в way_"уровень".ltх) radius = * (*-радиус в метрах от точки center_point, в пределах которого НПС будут садится. Можно не указывать. По умолчанию 2 метра) path_walk = ***_task (Можно не прописывать, если точка center_point находится не в центре костра. *** - то же название, что и указано в center_point, с добавлением _task. Эта точка тоже прописывается в way_"уровень".ltх, но координаты указываются на некотором расстоянии от center_point. Эта строка нужна для того, чтобы при переходе из оффлайн НПС не попадали в костер и не получали хит, а выходили в этой точке) Ссылка на комментарий
ClearSky 0 Опубликовано 27 Сентября 2009 Поделиться Опубликовано 27 Сентября 2009 ray-seven, Легко! Я всегда пишу логику так: [logic] active = kamp centr_point = имя точки вокруг которой сидят сталкеры radius = 2 Вот и все Ссылка на комментарий
KDit 3 Опубликовано 29 Сентября 2009 Поделиться Опубликовано 29 Сентября 2009 Кто разбираетса в респавне, подскажите??? Я создал екологов на Янтаре в all.spawn - короче все работаэт, а с респавном немогу разобратса: Сделал так в spawn_sections.ltx [yan_ecolog_guardsy_respawn_2]:stalker $spawn = "respawn\yan_ecolog_guardsy_respawn_2" character_profile = yan_ecolog_guardsy spec_rank = veteran community = ecolog и в all.spawn так: [6422] ; cse_abstract properties section_name = respawn name = yantar_respawn_ecology_1 position = 51.1563148498535,-11.880274772644,-276.611328125 direction = 0.0667107999324799,-0.00660163350403309,0.0987119972705841 ; cse_alife_object properties game_vertex_id = 1480 distance = 16.7999992370605 level_vertex_id = 65493 object_flags = 0xffffff3e custom_data = <<END [respawn] respawn_section = yan_ecolog_guardsy_respawn_2, 3 ;max_count = 10 ;min_count = 5 max_spawn = 3 idle_spawn = medium ;conditions = {+yan_kill_brain_done} 70, 0 END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 1.85860002040863 ; cse_alife_space_restrictor properties restrictor_type = 0 ; se_respawn properties А они всеравно нереспавнятса, помогите сделать нормальний респавн?? Ссылка на комментарий
Костя.н.ы.ч 0 Опубликовано 29 Сентября 2009 Поделиться Опубликовано 29 Сентября 2009 (изменено) Killer-44, а строка name = yantar_respawn_ecology_1 не должна быть идентична названию твоего респавна?(я не знаю!Это только предположение) врубим МОСК))).Строка из "spawn_sections.ltx": $spawn = "respawn\yan_ecolog_guardsy_respawn_2" явно для чего то нужна))) и как мне кажется: [6422] ; cse_abstract properties section_name = respawn name = yan_ecolog_guardsy_respawn_2 -тут и должно быть это название,или я не прав? Изменено 29 Сентября 2009 пользователем Костя.н.ы.ч Иду по болоту,темно и гроза+туман...играет страшная музыка...черт аномалия...ф7...странные звуки в кустах...очередь и бежать...догоняет...чертова экза наемников...слышу его вой,сомнений нет-кровосос...на ходу вставляю батарейки в фонарик,включаю...передо мной стоит ОН!...как же он красив при освещении молнии...черт с ним,ф7...как бы до бара добраться?...удается модик... Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти