Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Создание и редактирование квестов
denis2000Дата: Пн, 10.10.2011, 21:25 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Создание и редактирование квестов

Создание новых квестов и редактирование существующих

Если у вас появились вопросы по созданию и редактированию квестов, изменению существующих и добавлению новых в игру. Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                       local reason = string.format(fmt, ...)
                       error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Code
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
maaz-1Дата: Вс, 13.11.2011, 14:19 | Сообщение # 16
Удаленные



XOBAH, ты не смог бы мне скинуть файл info_zaton.xml. Просто не хочу из за одного фала расспаковать весь архив. Памяти не так уж и много на компе. А с Total Commander не открывает почему то.
 
KoshaДата: Вс, 13.11.2011, 14:41 | Сообщение # 17
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

XOBAH можешь сделать пример квеста для чн ? плиз (желательно квест типо принести предмет)

Добавлено (13.11.2011, 14:41)
---------------------------------------------
и скинуть его мне

 
XOBAHДата: Вс, 13.11.2011, 15:33 | Сообщение # 18
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]

maaz-1, Держи
Kosha, Нет, не могу


 
KoshaДата: Чт, 01.12.2011, 23:08 | Сообщение # 19
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

как же тогда исправить?

Самому подумать. XOBAH

Добавлено (13.11.2011, 16:29)
---------------------------------------------
если бы я знал я бы уже сделал...

Добавлено (20.11.2011, 01:17)
---------------------------------------------
[cut=gamedata\scripts\my_quest.script]function my_quest()
xr_effects.give_inited_task(nil, nil, {"recover_item", "name_of_your_quest", "stalker"})
xr_effects.give_inited_task(actor, npc, {task_type, target_name, faction_name}[/cut]
[cut=gamedata\configs\misc\tm_escape.ltx]
name_of_your_quest

[name_of_your_quest]
type = recover_item
task_type = additional
prior = 2
target_cond = true
name = youself_quest_name
text = youself_quest_text
condlist_0 = {+info_for_done} complete
target_story_ids = 438
auto_name = false
requested_items = wpn_ak74
reward_money = 500
auto_faction = true[/cut]

[cut=gamedata\configs\gameplay\dialogs_escape.xml] <dialog id="esc_leader_join_stalker1234">
<phrase_list>
<phrase id="0">
<text>My_Quest</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>My_Quest2</text>
<action>my_quest.my_quest</action> -активируем
<next>2</next>
</phrase>
<phrase id="2">
<text>My_Quest3</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>My_Quest4</text>
<give_info>info_for_done</give_info> - завершение
</phrase>
</phrase_list>
</dialog>
</game_dialogs>[/cut]
[cut=gamedata\configs\gameplay\info_escape.xml]<info_portion id="name_of_your_quest"></info_portion>[/cut]

и добавлен в диалоги сидоровичу (подскажи где тут ошибка?)

Выделил, дальше не вникал. XOBAH

Добавлено (20.11.2011, 21:24)
---------------------------------------------
а в чем ошибка ?

В том что лишняя строка я приводил ее тебе просто как пример с аргументами. XOBAH

Добавлено (24.11.2011, 23:38)
---------------------------------------------
строку убрал и все равно ничего нет

Переписывай полностью диалог, ибо твой квест никогда никто нормально не сдаст. Как я понимаю структура диалога такая: Есть работа? - Да, сгоняй за водкой (выдача квеста) - Вот держи - Ух ты! Спасибо (выдача инфопоршня)
Нету никаких проверок перед взятием квеста (взят-ли этот квест или нет, или он уже пройден), сдать квест невозможно (будет сдаваться только тот квест, который выдается при попытке сдать квест)
В info_escape у тебя зареган не тот поршень, который используется в диалоге\кондлисте
XOBAH

Добавлено (27.11.2011, 00:49)
---------------------------------------------
можешь мне написать диалог? а то переписываю его уже наверное раз 10 но ничего кроме ошибок не получаю....

Добавлено (01.12.2011, 23:08)
---------------------------------------------
XOBAH можешь помочь с диалогом? (переписываю его уже какой раз но ничего не получается)

 
Exo_G@merДата: Чт, 29.12.2011, 11:06 | Сообщение # 20
Удаленные



Добрый день.У меня вопрос.Какой файл отвечает за награды за квесты в зове припяте(SGM2.0)Хочу прописать чтоб мне награды патронами дабавли.

Разные файлы отвечают, уточняйте вопрос. denis2000


Сообщение отредактировал Exo_G@mer - Чт, 29.12.2011, 11:07
 
razor_mdДата: Вс, 22.01.2012, 11:52 | Сообщение # 21
Разработчик «Путь в Припять»
Свобода
Сообщений: 21
Награды: 1
Репутация: [ 93 ]

Всем привет. Заспавнил нпс (через all.spawn) в Зов Припяти на подключенной локации Милитари, и решил прописать ему квест. Квест простой на поиск водки. Но после разговора с нпс вылет с логом

В скриптах прописал

Раньше на затоне такой квест делал и все нормально было. Может с локацией надо что нибудь сделать? В скриптах регистрировал

Причем здесь локация!? Ищи ошибку в описателе задания. denis2000

Вот что я прописал в dialog_military

Это в tm_zaton

И в скриптах

Это НПСу

Вроде все правильно. Почему вылет, понять немогу




Сообщение отредактировал razor_md - Вс, 22.01.2012, 16:14
 
denis2000Дата: Вт, 24.01.2012, 12:25 | Сообщение # 22
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

razor_md, Измените координаты спавна НПС на Затоновские - если вылета нет, то возможна проблемма с лоацией.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
stalexДата: Пт, 03.02.2012, 13:10 | Сообщение # 23
Гражданский
Пользователи
Сообщений: 15
Награды: 0
Репутация: [ 0 ]

Подскажите пожалуйста как ставить метку на пустое место? Что и где нужно создавать?

Метку на пустое место поставить нельзя! Только на объект, например на рестриктор. denis2000

Создал рестриктор по урокам от Хована, не получается:(
[cut=all.spawn]
[1871]
; cse_abstract properties
section_name = space_restrictor
name = spot_docs
position = 404.85687255859,36.262756347656,-11.836292266846
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 293
distance = 0
level_vertex_id = 1631364
object_flags = 0xffffff3e
custom_data = <<END
[logic]
cfg = scripts\zaton\zat_a1_spawner.ltx
END
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1
; cse_alife_space_restrictor properties
restrictor_type = 3
[/cut]
В самом квесте ставлю target
Code
target = {=actor_has_item(dokuments_chertezh)} stalker_vovka, spot_docs


story_id опять забыл?! denis2000

Вот добавил стори и all spawn не хочет запаковываться
Что не так?
[cut noguest=спавн][1871]
; cse_abstract properties
section_name = space_restrictor
name = spot_docs
position = 404.85687255859,36.262756347656,-11.836292266846
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 293
distance = 0
level_vertex_id = 1631364
object_flags = 0xffffff3e
custom_data = <<END
[story_object]
story_id = spot_docs
END

[logic]
cfg = scripts\zaton\zat_a1_spawner.ltx
END
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1
; cse_alife_space_restrictor properties
restrictor_type = 3
[/cut]

Лишний END перед [logic]. denis2000


Сообщение отредактировал stalex - Сб, 04.02.2012, 09:52
 
GrandMoffDimaДата: Пт, 03.02.2012, 21:55 | Сообщение # 24
Гражданский
Пользователи
Сообщений: 11
Награды: 0
Репутация: [ 0 ]

Хочу добавить квест в сигероус 2.1 на нахождение оружия... Как мне ето сделать ?

Начать с чтения раздела КМБ. denis2000
 
razor_mdДата: Пт, 02.03.2012, 12:27 | Сообщение # 25
Разработчик «Путь в Припять»
Свобода
Сообщений: 21
Награды: 1
Репутация: [ 93 ]

Подскажите как сделать чтобы на новой локации работали квесты и некоторые скриптовые функции в диалогах, все время вылетает...(локация милитари из ЧН)...Может где её зарегистрировать нужно или прописать ?

В Урок 8 в подробной инструкции от tracker описан необходимый минимум для подключения локации и ответьте на мой предыдущий вопрос. denis2000

Сделал этот квест на Затоне бороде - все отлично работает...На новой подключенной локе - вылет с тем же логом что писал в первом посте...Урок смотрел, все сделал так же, вылет как был так и есть.


Все проблему решил.
В скрипте task_objects.script была допущена ошибка...Удалил - все пошло поехало...

Добавлено (02.03.2012, 12:27)
---------------------------------------------
Еще вопросик, из за чего происходит вылет с логом stack trace: ? В основном происходит если я создаю новый квест на основе другого. Да и другие новые созданные квесты тоже перестают работать. Раньше как то методом тыка исправил, сейчас уже не помню как....
Надеюсь на помощь




Сообщение отредактировал razor_md - Вс, 26.02.2012, 14:20
 
GeonezisДата: Пт, 02.03.2012, 13:13 | Сообщение # 26
Разработчик «Смерти вопреки»
Свобода
Сообщений: 2360
Награды: 30
Репутация: [ 71 ]

Quote (razor_md)
stack trace:

razor_md, это не полный лог ошибки, а лишь его окончание. практически любая ошибка им завершается. нужно приводть последние сторочки лога чтобы точно определить причину.


Смерти Вопреки
Spectrum Project
AP_Prodaction
 
razor_mdДата: Пт, 02.03.2012, 15:14 | Сообщение # 27
Разработчик «Путь в Припять»
Свобода
Сообщений: 21
Награды: 1
Репутация: [ 93 ]

Quote (GEONEZIS)
это не полный лог ошибки, а лишь его окончание. практически любая ошибка им завершается. нужно приводть последние сторочки лога чтобы точно определить причину.

Я лог вылета вывожу комбинацией ctrl+v в блокноте после вылета игры, как по-другому вывести я незнаю. Видел еще в папке STALKER CALL OF PRIPYAT\users\logs файлы с логами, но там сплошная абракадабра в них...
-----------------------------
Лог stack trace: он на что ссылается вообще? На незакрытый тег, на скрипт какой нибудь или ???
-------------
P.S это не проблема, просто хочу расширить знания в моддинге...




Сообщение отредактировал razor_md - Пт, 02.03.2012, 15:16
 
denis2000Дата: Пт, 02.03.2012, 16:11 | Сообщение # 28
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

razor_md, stack trace - это трассировка стека (тоесть сдержимое верхушки стека с адресом возврата и дополнительно отображается текущий модуль при исполнении которого произошла ошибка).
Например:
Code
001B:02A6F7E7 xrRender_R1.dll
Строка stack trace будет в каждом логе! Просто не всегда будет иметь дополнительную информацию.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
АазДата: Сб, 24.03.2012, 14:23 | Сообщение # 29
Хозяин Зоны
Зомби
Награды: 30
Репутация: [ 0 ]

Такой вопрос: мне нужно сделать квест на исследование точки (в конкретном случае цехов подстанции), где и что нужно изменить из урока 34?

Координаты рестрикторов. XOBAH


 
МыкДата: Сб, 24.03.2012, 23:36 | Сообщение # 30
Отмычка
Пользователи
Сообщений: 35
Награды: 0
Репутация: [ 0 ]

Моё почтение всем!
Не знаю, по адресу ли попал, но всё же...

SGM_CoP_2.2
От изъятия ермаковского девайса при переходе на Затон остался неприятный осадок. Ведь сцену можно поправить, на честный обмен: связник изымает миноискатель и георадар, но что-то предлагает взамен.
"Майор, у вас есть интересные штучки для нашей конторы, которые Вам без особой надобности. Я их изымаю для общего блага. Вот вам координаты нашего тайника на Затоне в качестве материальной и моральной компенсаций, отмечены на флешке". Флешка прилагается.
Как вариант: "А Вы неплохо экипировались, майор. Кстати, не одолжите на время миноискатель, а то бандиты столько мин расставили в последнее время, что возникает вопрос, откуда у них столько этого добра?[cut noguest]А действительно, откуда? Или я пропустил какой-то квест? smile [/cut] Я-то пришёл налегке, а Вы уже пообтёрлись... Да и георадар наши спецы с удовольствием изучат. Обещаю вернуть при оказии"
Оказия - это возможность смастерить нечто подобное у Новикова (при наличии запчастей, за которыми придётся побегать smile
Ну, и разные комбинации на базе этих вариантов.

Кстати, возвращаясь к теме под спойлером...
Когда игрок (по первому разу smile ) начинает колесить по мех.двору с георадаром в безуспешных поисках "клада", можно добавить квест от командира группы (их там, вроде бы, двое) "Разминировать проходы. СРОЧНО". А в диалоге при получении награды можно бросить намёк на северную стоянку бандитов: "Ну, друг, спасибо, выручил ты нас с этими минами. А я всё голову ломал над донесениями разведчиков, что это за "движение" в последнее время от "железки" на мех.двор и обратно у бандитов... Причём тянули они туда что-то большое и под усиленной охраной".
Как вариант попроще: задание от любого ком.группы - "На севере заминирован проход. Ваша помощь миноискателем была бы очень кстати". ГГ по-любому "зацепит" груз в составе, проходя мимо...
Конечно, играя второй раз, игрок сразу же "ломанётся" на север, но помня свой первый поиск груза... smile

C такими предложениями Вам к Николаю, или же, сюда. XOBAH

Добавлено (24.03.2012, 23:36)
---------------------------------------------
XOBAH,
Благодарю.
К Николаю, думаю, рановато, а второй вариант задействую.
[cut noguest]И эт-та... Я же не майор, я только учусь smile К чему такие вежливости между сталкерами?[/cut]

Сообщение отредактировал Мык - Сб, 24.03.2012, 19:21
 
Поиск: