БоБеР 1 Опубликовано 3 Декабря 2008 Поделиться Опубликовано 3 Декабря 2008 Вопрос - как зделать так, чтоб диалог активировался только при наличии предмета? The srp 0.3 is a lie! The AMK 2.0 is a lie! In NLC 6.0 we trust Ссылка на комментарий
Wawka 5 Опубликовано 3 Декабря 2008 Поделиться Опубликовано 3 Декабря 2008 Вопрос - как зделать так, чтоб диалог активировался только при наличии предмета?В скрипте делаешь функцию, проверяющую наличие и в диалоге ставишь precondition. Допустим, есть скрипт wawka_dialog, в нём функция: function chemodan_have(first_speaker, second_speaker) return first_speaker:object("chemodan") ~= nil end Где - chemodan - нужный предмет. Тогда в диалоге этот прекондишн будет выглядеть: <precondition>wawka_dialog.chemodan_have</precondition> Вставляй его в самое начало (для примера - кусок диалога): <dialog id="chemodan_dialog"> <precondition>wawka_dialog.chemodan_have</precondition> <phrase_list> <phrase id="0"> <text>chemodan_dialog_0</text> <next>1</next> </phrase> Геныч, для этого нужно создать task - как пример, загляни в game_task.xml. Строки, которые отвечают за отметку: <map_location_type hint="Волк">blue_location</map_location_type> <object_story_id>Escape_novice_lager_volk</object_story_id> В первой - пишешь имя\название, во второй имя объекта из all.spawnа или файла game_story_ids.ltx blue_location - значит, что отметка будет бледно голубой, green_location - зелёной. Геныч, по поводу вопроса в "Ковыряемся", загляни в xr_effects.script (чтоб сон сделать), а чтоб его активировать и чтоб заставить непися стоять на месте, почитай Wiki, статьи "настройка логики". Так долго объяснять - но нужно для непися создавать логику, да и для активации сна при нажатии на ворота, нужно редактировать логику этих ворот. Сон, ролик - разницы никакой. Ссылка на комментарий
Геныч 1 Опубликовано 3 Декабря 2008 Поделиться Опубликовано 3 Декабря 2008 мне ненужен сон, мне надо что бы после ролика были титры и выход в меню. И помимо логики, как создать непися и заспавнить? Ссылка на комментарий
БоБеР 1 Опубликовано 3 Декабря 2008 Поделиться Опубликовано 3 Декабря 2008 WAWKA, спасибо Еще вопрос - как (через action, чтоли?) сделать, ну например когда диалог заканчивается игроку дали деньги (например, 1) и забрали предмет (например, чемодан) на примере этого диалога (тоисть - проверяем наличие предмета, после забераем предмет и даем деньги) <dialog id="chemodan_dialog"> <precondition>wawka_dialog.chemodan_have</precondition> <phrase_list> <phrase id="0"> <text>chemodan_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>chemodan_dialog_1</text> </phrase> </phrase_list> The srp 0.3 is a lie! The AMK 2.0 is a lie! In NLC 6.0 we trust Ссылка на комментарий
Wawka 5 Опубликовано 3 Декабря 2008 Поделиться Опубликовано 3 Декабря 2008 как создать непися и заспавнить?Вот пример самого простого и на тот же момент, правильного спавна (ну на мой взгляд из всех вариантов спавна через скрипт). Здесь заспавнится обычный сталкер новичок, секцию которого взял из spawn_sections.ltx. Заспавнится он как раз в домике на болоте: function spawn_npc() local obj=alife():create("esc_stalker_respawn_1",vector():set(101.435539245605,-8.38547039031982,164.284591674805),396523,1643) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg = scripts\\mil_npc.ltx" amk.write_stalker_params(params,obj) end Добавляй её куда-нибудь в диалог, в виде <action>имя_скрипта.spawn_npc</action> и всё. Но сначала, создай файл логики (здесь, как пример, файл mil_npc.ltx, который находится в gamedata\config\scripts\) и заполни его нужной тебе логикой (Wiki, Настройка логики, ч.1). Как самый простой пример: [logic] active = walker [walker] path_walk = mil_zomb_stalker_walk1 path_look = mil_zomb_stalker_look1 mil_zomb_stalker_walk1 и mil_zomb_stalker_look1 - это пути сумасшедшего сталкера (взял из алл.спавна),который в доме на болоте тусуется. То есть, это готовый, работающий пример - только для полного счастья, доработать надо - а именно, доделать логику (поставить игнорирование врагов, дополнительные пути, диалог, фразы приветствия и т.п.), ну и профиль создать отдельный для непися. БоБеР, да, через action - для примера функции сдачи\получения денег, загляни в любой *_dialog скрипт (к примеру, в escape_dialog.script) Ссылка на комментарий
БоБеР 1 Опубликовано 4 Декабря 2008 Поделиться Опубликовано 4 Декабря 2008 WAWKA, посмотрел escape_dialog.script написал в например в том же wawka_dialog.script function otday_chemodan (first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "chemodan", "out") end function dengi_chemodan(first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 3000, "in") end так как нужно в соответствии с этим екшн написать чтоб забрал итем дал деньги (так понимаю - какие 2 екшна) <dialog id="chemodan_dialog"> <precondition>wawka_dialog.chemodan_have</precondition> <phrase_list> <phrase id="0"> <text>chemodan_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>chemodan_dialog_1</text> <action>???</action> <action>???</action> </phrase> </phrase_list> The srp 0.3 is a lie! The AMK 2.0 is a lie! In NLC 6.0 we trust Ссылка на комментарий
Wawka 5 Опубликовано 5 Декабря 2008 Поделиться Опубликовано 5 Декабря 2008 БоБеР: <action>имя_скрипта.otday_chemodan</action> <action>имя_скрипта.dengi_chemodan</action> Только вот я не знаю, эти экшены вешать надо на строку ответа ГГ или на строку ответа непися-квестодателя (и туда и туда попробуй). Ссылка на комментарий
Stalker1977 1 Опубликовано 9 Декабря 2008 Поделиться Опубликовано 9 Декабря 2008 Еще когда в ТЧ играл с разными модами, была мысль насчет нелинейного квеста на базе квеста "убить сталкера". Допустим, нпс дает контракт, я его принимаю, но здесь неплохо бы ввести свободу выбора, например подойти к заказаному, сказать так мол и так (первое задание автоматически провалено с изменением репы, а то и статуса перед заказчиком), с последующим получением в знак благодарности денег или хабара, либо глобальным изменением репы у группировки заказанного с вытекающими, которые тоже можно придумать. Такое технически возможно? Ссылка на рабочий acdc и сочинение на тему "Как я распаковал оллспавн" Ссылка на комментарий
WLAD 1 Опубликовано 11 Декабря 2008 Поделиться Опубликовано 11 Декабря 2008 Expression : start_node && path Function : CXml::NavigateToNode File : D:\xray-svn\xrXMLParser\xrXMLParser.cpp Line : 97 Description : NavigateToNode failed in XML file Arguments : gameplay\game_tasks.xml пытался реализовать в игре тот квест, что на Wiki описан - сделал всё как там описано и при попытке поговорить с Сидоровичем происходит вылет!что делать ? Ссылка на комментарий
vitamin15 0 Опубликовано 11 Декабря 2008 Поделиться Опубликовано 11 Декабря 2008 Даров всем. Извините за тупой вопрос: как сделать в диалоге у Бармена(новый диалог) пронумерованный список,скажем так "услуг",чтобы они отображались столбцом, а не в строчку,например: 1.А 2.Б и т.д. Всё уже перепробовал,всё равно отображает одной строкой... Ссылка на комментарий
Kostya V 31 Опубликовано 11 Декабря 2008 Поделиться Опубликовано 11 Декабря 2008 Даров всем. Извините за тупой вопрос: как сделать в диалоге у Бармена(новый диалог) пронумерованный список,скажем так "услуг",чтобы они отображались столбцом, а не в строчку,например: 1.А 2.Б и т.д. Всё уже перепробовал,всё равно отображает одной строкой... Вот это вставляешь перед строкой, которую надо перенести и она начнется с другой строки \n Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет! Ссылка на комментарий
Stalker1977 1 Опубликовано 12 Декабря 2008 Поделиться Опубликовано 12 Декабря 2008 (изменено) Пробую создать простой диалог на обмен вещей. Вот функция на проверку наличия в созданом мной weapons_barter: function_have_af_baloon () return weapons_barter. have_item_namber ("af_baloon",1) ~= false end Вылет: Argument: ... scripts/weapons_barter. script: 6: attempt to call field 'have_item_namber' (a nil value) Грамматических ошибок в скрипте нет, посмотрел у других - все пользуются этой функцией. С ошибкой справился, скопировав часть чужого скрипта, но понимания то не прибавилось. Так что если кто то сможет, обьясните, отчего она возникала. Изменено 12 Декабря 2008 пользователем Stalker1977 Ссылка на рабочий acdc и сочинение на тему "Как я распаковал оллспавн" Ссылка на комментарий
vitamin15 0 Опубликовано 12 Декабря 2008 Поделиться Опубликовано 12 Декабря 2008 Доброго всем... Какую функцию использовать для воспроизведения звук. файла при каком либо действии? Ссылка на комментарий
Kostya V 31 Опубликовано 12 Декабря 2008 Поделиться Опубликовано 12 Декабря 2008 Доброго всем... Какую функцию использовать для воспроизведения звук. файла при каком либо действии? -- Звуковое сопровождение local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\human_03\stalker\talk\leave\leave_5]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет! Ссылка на комментарий
Stalker1977 1 Опубликовано 15 Декабря 2008 Поделиться Опубликовано 15 Декабря 2008 Подскажите функцию на проверку у гг нужного кол-ва патронов. Вставляю в стандартный ammo_5.45, вылет без определенного лога, проверка выдает ошибку что то вроде .45 скриптом не распознается, и ругается на то, что количество я определяю как ,5 т.е. пять коробок. Со скриптами это первые опыты. Ссылка на рабочий acdc и сочинение на тему "Как я распаковал оллспавн" Ссылка на комментарий
БоБеР 1 Опубликовано 25 Декабря 2008 Поделиться Опубликовано 25 Декабря 2008 Есть ли какой скрипт чтоль, чтоб ГГ после диалога (ну или посое выбора строки) вылечивался? The srp 0.3 is a lie! The AMK 2.0 is a lie! In NLC 6.0 we trust Ссылка на комментарий
Зеусс 0 Опубликовано 28 Декабря 2008 Поделиться Опубликовано 28 Декабря 2008 Здрасте всем. Никак не могу понять как надо прописывать чтобы после не большого диалога у ГГ появился какой либо предмет? допустим пример такоц: - Слушай, Сидорович а где моя бутылка водки? - Водка? А ну да - водка. Вот она держи. P.S. Стоит у меня мод АМК 1.4.1 Ссылка на комментарий
Kostya V 31 Опубликовано 28 Декабря 2008 Поделиться Опубликовано 28 Декабря 2008 Здрасте всем. Никак не могу понять как надо прописывать чтобы после не большого диалога у ГГ появился какой либо предмет? допустим пример такоц: - Слушай, Сидорович а где моя бутылка водки? - Водка? А ну да - водка. Вот она держи. P.S. Стоит у меня мод АМК 1.4.1 Надо после разговора активировать вот такую функцию: function esc_kostya_ammo() local obj = alife():create("ammo_12x70_buck", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end И тогда у ГГ в рюкзаке появится то, что ты пропишешь. Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет! Ссылка на комментарий
Зеусс 0 Опубликовано 28 Декабря 2008 Поделиться Опубликовано 28 Декабря 2008 Надо после разговора активировать вот такую функцию: function esc_kostya_ammo() local obj = alife():create("ammo_12x70_buck", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end И тогда у ГГ в рюкзаке появится то, что ты пропишешь. А для этой функции нужно создавать новый скриптовый файл или можно его вставить, то в какой? Ссылка на комментарий
Kostya V 31 Опубликовано 28 Декабря 2008 Поделиться Опубликовано 28 Декабря 2008 А для этой функции нужно создавать новый скриптовый файл или можно его вставить, то в какой? Скрипты можно вставлять в любой скриптовый файл. Главное потом ссылку на него дать. Но можешь и свой создать. Его нигде прописывать не придется. Создаешь файл название.script в папке gamedata/scripts. И пишешь в него свои функции. А потом по ссылкам задействуешь их. Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти