Перейти к контенту

[CoP] Ковыряемся в файлах


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

и без этой строчки вылет тот же....

А hello_dialog что приводить? Он как был,так и остался родным

<dialog id="hello_dialog">

<init_func>dialog_manager.init_hello_dialogs</init_func>

<phrase id="0" />

</dialog>

 

Ссылка на dialog_manager в котором генерятся рандомные приветствия одно из полутора десятков.

А в dialog_manager.ltx они прописываются группировкам. :unsure: ( ну чтоб сталкеры или бандиты не кричали: Здравия желаю,товарищ майор! :D )

Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

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

<dont_has_info>quest_af_dummy_dummy_done</dont_has_info>

<dont_has_info>quest_af_dummy_dummy_give</dont_has_info>

перенеси из условий диалога в условия какой-то ветки. <start_dialog> должен быть активен в ЛЮБОМ СЛУЧАЕ.

Изменено пользователем KD87
Ссылка на комментарий

Хм...спасибо,помогло... но.

Я сделал проверку попозже и перед ней разветвление диалога.

<dialog id="esc_trader_meet">

<phrase_list>

<phrase id="1111111">

<text>esc_trader_meet_1111111</text>

<next>11111111</next>

</phrase>

<phrase id="11111111">

<text>esc_trader_meet_11111111</text>

<next>111111111</next>

</phrase>

<phrase id="111111">

<text>esc_trader_meet_111111</text>

<next>1111111</next>

</phrase>

<phrase id="11111">

<text>esc_trader_meet_11111</text>

<next>111111</next>

</phrase>

<phrase id="1111">

<text>esc_trader_meet_1111</text>

<next>11111</next>

</phrase>

<phrase id="111">

<dont_has_info>quest_af_dummy_dummy_done</dont_has_info>

<dont_has_info>quest_af_dummy_dummy_give</dont_has_info>

<text>esc_trader_meet_111</text>

<next>1111</next>

</phrase>

<phrase id="1">

<text>esc_trader_meet_1</text>

<next>11</next>

</phrase>

<phrase id="11">

<text>esc_trader_meet_11</text>

<next>111</next>

<next>777</next>

</phrase>

<phrase id="777">

<text>Пока</text>

<action>dialogs.break_dialog</action>

 

</phrase>

<phrase id="111111111">

<text>esc_trader_meet_111111111</text>

<give_info>quest_af_dummy_dummy_give</give_info>

<action>dialogs_escape.give_af_dummy_dummy_quest</action>

</phrase>

<phrase id="22">

<text>esc_trader_meet_22</text>

 

<next>222</next>

</phrase>

<phrase id="2">

<text />

 

<next>22</next>

</phrase>

<phrase id="222">

<text>esc_trader_meet_222</text>

<next>2222</next>

</phrase>

<phrase id="2222">

<text>esc_trader_meet_2222</text>

 

</phrase>

<phrase id="0">

<text />

<next>1</next>

<next>2</next>

<next>4</next>

<next>5</next>

</phrase>

<phrase id="44">

<text>esc_trader_meet_44</text>

</phrase>

<phrase id="55">

<text>esc_trader_meet_55</text>

</phrase>

<phrase id="4">

<text />

 

<next>44</next>

</phrase>

<phrase id="5">

<text />

 

<next>55</next>

</phrase>

</phrase_list>

</dialog>

 

Но теперь у меня почему-то не срабатывает инфопоршень <give_info>quest_af_dummy_dummy_give</give_info>

Т.е. задание принести арт висит,но в диалоге фраза "вот твой артефакт" не появляется..... :unsure:

Что-то я по ходу перемудрил......

Пока арт не взял,вся ветка диалогов esc_trader_meet прокручивается до конца.

Но если беру задание уже имея на руках арт,эта фраза в диалог добавляется.

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Larry76, а с чего ты взял, что не срабатывает? это же инфопоршень на взятие квеста. Инфопоршень на взятие арта ( и на открытие диалога) у тебя такой:

<has_info>quest_has_af_dummy_dummy</has_info>. Ты ж его нигде не выдаешь.

 

А причем тут этот диалог? у тебя диалог на взятие арта такой:<dialog id="af_dummy_dummy_quest_prines">

 

has_af_dummy_dummy_sidr - это что за функция?

 

Да не надо совмещать. Ты вот что. Возьми бумагу и нарисуй свое дерево диалогов, с разветвлениями, прекондишнами, одним словом, разберись хорошенько, когда какой диалог и ветки активны. Сразу все понятно станет.

 

Larry76, ты за сообщениями следишь? на следующую страницу глянь

 

dialogs_escape.is_has_af_dummy_dummy_sidr - это значит, что тут запускается функция is_has_af_dummy_dummy_sidr в файле dialogs_escape.script. Покажи ее.

Изменено пользователем KD87
Ссылка на комментарий

Он у меня в другом диалоге....

<dialog id="af_dummy_dummy_quest_prines">

<has_info>quest_af_dummy_dummy_give</has_info>

<precondition>dialogs_escape.is_has_af_dummy_dummy_sidr</precondition>

<phrase_list>

<phrase id="1">

<text>Спасибо, чувак. Выручил</text>

<give_info>quest_af_dummy_dummy_done</give_info>

</phrase>

<phrase id="0">

<has_info>quest_has_af_dummy_dummy</has_info>

<text>Вот твоя водяра</text>

<action>dialogs_escape.transfer_af_dummy_dummy_to_sidr</action>

<next>1</next>

</phrase>

</phrase_list>

 

получается их в один совместить надо,что ли?

 

Вот мне и надо,чтоб сработал другой диалог.Он срабатывает,если (опять повторюсь) я беру квест заведомо имея на руках арт.Т.е. не выходя из окна текущего диалога.

если выйду,при повторном открытии окна этой фразы(вот твой арт) уже нету.

Где-то я запутался,ткни носом пожалуйста, где?

Блин...какое-то условие должно быть что-то типа if has_info или что-то в этом роде...

По идее оно и есть,это проверка инфопоршня и при его наличии фраза должна быть..а её нету....

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий
Larry76, Функцию покажи has_af_dummy_dummy_sidr. А лучше все используемые. С диалогами на первый взгляд теперь нормально стало. Изменено пользователем KD87
Ссылка на комментарий

Сорри ступил,завис на предыдущей странице. ^_^

Вот квест

;--//рюкзак пропавшего курьера--------------------------------------------------------------------------------

[quest_af_dummy_dummy_give]

icon = ui_inGame2_PD_Svoy_paren

prior = 2

storyline = false

title = {=actor_has_item(af_dummy_dummy)}af_dummy_dummy_sidr_prinesti_name, af_dummy_dummy_sidr_naiti_name

descr = quest_af_dummy_dummy_descr

target = {=actor_has_item(af_dummy_dummy)}escape_trader

condlist_0 = {+quest_af_dummy_dummy_done} complete

 

 

А вот скрипт

function give_af_dummy_dummy_quest()

task_manager.get_task_manager():give_task("quest_af_dummy_dummy_give")

end

function is_has_af_dummy_dummy_sidr()

if db.actor:object("af_dummy_dummy") then

return true

end

return false

end

function transfer_af_dummy_dummy_to_sidr(first_speaker, second_speaker)

dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "af_dummy_dummy")

end

 

Кстати,при взятии арта метка на Сидоре не появляется,на вояке при подобном квесте появляется,а на сидоре нет.

Сидора спавнил аллспавном,а вояку скриптом.

Квест от вояки отличается лишь названием того,что надо принести.

 

ок. Сегодня попозже попробую.Спасибо.

 

 

Увы не помогло... :( Так же диалог не появляется.

Да и ещё,при попытке что-нить купить или продать ловлю вылет

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:622: attempt to call field '?' (a nil value)

 

 

stack trace:

 

 

 

621 else

622 if xr_conditions[infop.func](actor, npc) then

623 if not infop.expected then

624 infop_conditions_met = false -- инфопоршен есть, но не должен присутствовать

625 break

626 end

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Larry76, должно быть так:

function is_has_af_dummy_dummy_sidr()
if db.actor:object("af_dummy_dummy") then
db.actor:give_info_portion("quest_has_af_dummy_dummy")
return true
end
return false
end

пробуй. И поставь прекондишн до <has_info> в диалоге.

Изменено пользователем KD87
Ссылка на комментарий

Доброго всем времени суток.

Такой вопрос.

В алл.спавне спавнится ствол.

Каким параметром задается его техническое состояние?

Ну, то которое влияет на цену и отказ при стрельбе.

Спасибо.

Ссылка на комментарий

Pihan13 , анимации классные, я их уже видел, была идея сценку-прикол

сделать - чувак бродит в безделье скажем на том же баре Скадовска,

сует палец к выключателю, а его бьет током и еффект электры.

Да все руки не доходят.

Ссылка на комментарий

Не подскажите, на что ругается ACDC при попытке вставить в all.spawn некоторые предметы:

"Сan't use an undefined value as an ARRAY reference at stkutils/ini_file.pm line 156"?

Ссылка на комментарий

2 Scarabay

Дико извиняюсь, но нет такого параметра в секции оружия. :ny_sad:

 

andref

Об ошибки в структуре секций.

Доводилось встречать такое, но точную причину такого сообщения, увы не помню. :ny_sad:

 

Pihan13

Мне кажется, что 2-я анимка хорошо подошла бы для постэффекта попадания под Выброс.

Изменено пользователем AK74
Ссылка на комментарий

Проблема No available phrase to say, dialog[hello_dialog] действительно есть. Попробовал сделать небольшой смар_террейн экологов. Ни у одного из них не прописан никакой диалог в профиле. Вообще. При попытке заговорить - вылет с вышеуказанным логом.

Видимо действительно необходимо ковырять скрипты связанные с диалогами. Этот самый hello_dialog ссылается на dialog_manager.script и уже там он как то формируется. Но там для меня лес дремучий.

Larry76, решение проблемы найдено!

Добавил экологов и торговца в dialog_manager.script (везде, где добавлено в оригнале) + добавил в dialog_manager.ltx следующее:

В list, в самый конец списка:

[list]
...
...
...
...
dm_hello_18
dm_hello_19
dm_hello_20
dm_hello_21
dm_hello_22
dm_hello_23

 

В конце файла:

[dm_hello_18]
category = hello
npc_community = trader
level = all

[dm_hello_19]
category = hello
npc_community = trader
level = all

[dm_hello_20]
category = hello
npc_community = trader
level = all

[dm_hello_21]
category = hello
npc_community = ecolog
level = all

[dm_hello_22]
category = hello
npc_community = ecolog
level = all

[dm_hello_23]
category = hello
npc_community = ecolog
level = all

Ну и в text\rus\st_dialog_manager.xml прописал приветствия, по аналогии с имеющимися.

И всё заработало.

 

Изменено пользователем SanekKZN
Ссылка на комментарий

SanekKZNЯ добавлял.... но не помогало.Может не так добавлял?

Ок,спасибо за наводку,посмотрю,действительно как в оригинальной геймдате от НЕБА сделано.

А можно поподробнее что ты в Диалогс_менеджер_скрипт добавлял?

 

в Диалогс_менеджер_лтх я добавлял

[dm_hello_19]

category = hello

npc_community = hunter, trader

level = all

 

[dm_hello_20]

category = hello

npc_community = hunter, trader

level = all

 

а там где?

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Larry76, SanekKZN, ребят, вы, честное слово, делаете по методу индусского программирования. Вместо того, чтобы сделать нормальный <start_dialog>, имеющий активные ветки при любых наборах инфопоршней, вы лезете в скрипты. Ларчик-то просто открывается, зачем такие сложности?

 

Upd. Попробую еще так. У меня сейчас Сидор заспавнен на кордоне, доступна торговля, диалоги, квесты и все, что угодно - без всякой правки скриптов. Вылетов нет.

Изменено пользователем KD87
Ссылка на комментарий
Ларчик-то просто открывается, зачем такие сложности?

Костя,я с этим не спорю... но у меня же не открывается!!! :crazy:

Вот и пытаюсь,хоть как-то извернуться.

В принципе, мы с тобой уже подошли к завершающему этапу,но у меня почему-то инфопоршень так и не захотел срабатывать.

С твоими правками вообще,я могу сдать квест не беря арт!!НО... нельзя покидать текущего диалога,иначе строка о сдаче квеста больше не появится.

Изменено пользователем Larry76
Правильно заданный вопрос- уже половина ответа!
Ссылка на комментарий

Larry76, Потому что инфопоршень о том, что есть арт в инвентаре, по уму надо выдавать не в прекондишне диалога, а во внешней логике, в каком-нибудь рестрикторе. Например:

 

[sr_idle]
on_info = {=actor_has_item(af_dummy_dummy)} sr_idle@nil %+quest_has_af_dummy_dummy%

[sr_idle@nil]

 

Ну и избегай случаев, когда диалог по поршням доступен,а в нем нет доступных фраз. Вот так будет лучше:

 

<dialog id="af_dummy_dummy_quest_prines">
<has_info>quest_af_dummy_dummy_give</has_info>
<has_info>quest_has_af_dummy_dummy</has_info>
<precondition>dialogs_escape.is_has_af_dummy_dummy_sidr</precondition> --если делать с рестриктором, эта строчка не нужна!
<phrase_list>
<phrase id="1">
<text>Спасибо. Выручил</text>
<give_info>quest_af_dummy_dummy_done</give_info>
</phrase>
<phrase id="0">
<text>Вот твой артефакт</text>
<action>dialogs_escape.transfer_af_dummy_dummy_to_sidr</action>
<next>1</next>
</phrase>
</phrase_list>
</dialog>

Изменено пользователем KD87
Ссылка на комментарий

Блин, перерыл скрипты ЗП и что-то не нашел функцию, которая через диалог передает главному герою предмет...Не подскажете?...И еще не подскажете, как называется секция детектора "Велес", случайно не detector_elite?

Все, нашел.

Изменено пользователем Stalk15
Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...