Hardtmuth 5 653 Опубликовано 18 июля, 2020 Так как во всем интернете нет достойного урока, статьи по созданию квестов и диалогов для Чистого Неба. Я решил создать эту тему здесь. Так что пишем, делимся всем тем, что разобрали самостоятельно или нашли в просторах интернета. Вообщем создаем и пишем совместными усилиями статью по созданию квестов в Чистом Небе. Создаём квест: Спойлер Создаём в папке gamedata\scripts файл ваше_название_скрипта.script, в него пишем: function ваше_название_функции() xr_effects.give_inited_task(nil, nil, {"storyline", "name_of_your_quest", "bandit"}) end endname_of_your_quest - будет название квеста из tm_***.ltxbandit - группировка (при наведении на точку в ПДА (т.е. которая "Весит" на рестрикторе например.) будет высвечиваться описание квеста и какая группировка её дала.) Далее берём файл gamedata\configs\misc\tm_***.ltx от соотв. локации и пишем в начале под строчку [list_tm_***]: name_of_your_quest И далее внизу аналогично существующим: [name_of_your_quest] type = storyline task_type = additional prior = 10 icon = ui_mt_image_attack_tower target_cond = true name = youself_quest_name text = youself_quest_text condlist_0 = {+info_for_done} complete target_story_ids = 724 auto_name = false auto_faction = true type = storyline - тип: сюжетная линия (тут можно указать "Принести предметы, уничтожить смарт" итд...)task_type = additional - тип: дополнительный (если напишете storyline, то будет отображаться, как сюжетка)prior = 10 - приоритет (значение того, что при появлении квеста он автоматически будет активным)icon = ui_mt_image_attack_tower - иконка, хотя я что только не писал, получается стандартнаяtarget_cond = truename = youself_quest_name - имя из xml-массиваtext = youself_quest_text - описаниеcondlist_0 = {+info_for_done} complete - при получении (+) инфопрошня info_for_done считать выполненнымtarget_story_ids = 724 - стори ИД на которого вешается метка (может быть тайник, труп, НПС, рестриктор, неважно...)auto_name = false auto_faction = true Прописываем описания в файлы из gamedata\configs\text\rus Также прописываем инфопрошни в игру (у нас это info_for_done) P.S. target_story_ids = 724 - ID Йоги, лидера бандитов В диалоги: <action>ваше_название_скрипта.ваше_название_функции</action> -активируем <give_info>info_for_done</give_info> - завершение Для квеста "найти и принести": Спойлер [mar_find_instruments_1a] ; Инструменты механику чистого неба найти type = storyline ;просто квест, есть еще recover_item, bring_item и тд. но как с ними работать непонял task_type = additional ;будет обозначатся в дополнительных квестах| storyline будет отображатся как главное prior = 1 ;приоретет думаю понятно чем менше тем важнее квест target_story_ids = 314 ;На кого ставим маркер(просмотреть номера можно в файле game_story_ids.ltx, вродебы если убрать вобще эту строку то вылет target_cond = {=actor_on_level(marsh)} true ;при каком условии будет маркер, если убрать эту строчку вылет! on_init = %+instrumenti_ishem% ;при старте квеста выдать инфопоршень. Не обязательно name = mar_find_instrument ;название квеста из файлов с текстами text = mar_find_instrument_text ;описание квеста из файлов с текстами condlist_0 = {=actor_has_item(instruments)} complete ;условия выполнения и тд. здесь проверка на предмет "instruments" on_complete = %=give_inited_task(storyline:mar_find_instruments_1b:csky)% ;По выполнению квеста запускаем следующий auto_name = false ; непонял что за! [mar_find_instruments_1b] ;Инструменты механику чистого неба отнести type = storyline task_type = additional prior = 1 target_story_ids = 314 target_cond = {=actor_on_level(marsh)} true name = mar_find_instrument_ver text = mar_find_instrument_ver_text condlist_0 = {+hashli_instrumenti} complete ;по получению инфопоршня выполнить квест! reward_money = {~20} 1500, {~50} 1000, 750 ;по выполнению получаем квест забрать награду! auto_name = false Создание квеста на убийство кого либо (одного): Спойлер [mar_kill_chimera] ;Убить химеру type = storyline task_type = additional prior = 1 target_story_ids = 316 ;стори ид химеры из файла game_story_ids.ltx target_cond = {=actor_on_level(marsh)} true name = mar_kill_chimera_name text = mar_kill_chimera_text condlist_0 = {+himera_zavernulas} complete ;по получению инфопоршня выполнить квест condlist_1 = {+hashli_pda} reversed ;по получению отложить reward_money = {~20} 1500, {~50} 1000, 750 ;награда у торговца auto_name = false Чтоб это работало нужно прописать сами инфопорции в файле gameplay\info_** ну и заспавнить саму химеру (можно сталкера или монстра). В логику дописать: [logic] on_death = death [death] on_info = %+himera_zavernulas% Вот еще простейший квест, его можно сделать тоже из нескольких частей как и предыдущий! 1 Как оформить тему Правила форума Вопросы по сайту Личное пространство на Trello Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты