Перейти к содержанию
Авторизация  
Hardtmuth

[CS] Создание квестов

Рекомендуемые сообщения

 

CS.jpg

Так как во всем интернете нет достойного урока, статьи по созданию квестов и диалогов для Чистого Неба. Я решил создать эту тему здесь. Так что пишем, делимся всем тем, что разобрали самостоятельно или нашли в просторах интернета.

Вообщем создаем и пишем совместными усилиями статью по созданию квестов в Чистом Небе.

Создаём квест:

Спойлер

Создаём в папке gamedata\scripts файл ваше_название_скрипта.script, в него пишем:


function ваше_название_функции()
xr_effects.give_inited_task(nil, nil, {"storyline", "name_of_your_quest", "bandit"})
end

endname_of_your_quest - будет название квеста из tm_***.ltx
bandit - группировка (при наведении на точку в ПДА (т.е. которая "Весит" на рестрикторе например.) будет высвечиваться описание квеста и какая группировка её дала.)

Далее берём файл 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 = true
name = 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу