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

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


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

Вообще еще сильно хочется что-то даже в отдельной теме, про "как найти, как исправить".

Для совсем полных, гм, в общем... э-эээ... Кто про создание не осиливает.

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


Ссылка на сообщение

Тот chm бы кто перегнал обратно в html. И тоже куда-нибудь повесить...

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


Ссылка на сообщение

Вот честно, +1 ко всему, что пишет Struck. Даже к тому, что сам удаляю.
 

То есть, то, что предлагают/делают остальные - законом, конечно, не запрещено. Но посмотрите, как это все отрабатывается в соответствующих скриптах, и ужаснитесь.

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


Ссылка на сообщение

tasks_escape.xml:

<objective>

<text>esc_dinamit_to_volk_1</text>

<map_location_type hint="wolfs_rangers">green_location</map_location_type>

<object_story_id>Escape_bridge_stalkers</object_story_id>

<map_location_hidden>1</map_location_hidden>

<function_complete>escape_tasks.petruha_talk</function_complete>

<infoportion_fail>esc_petruha_die</infoportion_fail>

</objective>

 

Не оно, случайно ?

Находится по файлам "встретится с людьми Волка", а оттуда, собственно, esc_dinamit_to_volk_1

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


Ссылка на сообщение

Что-то торможу... Снимите меня с ручника, кто-нибудь, плиз !

Имеется диалог:

 

 

<dialog id="escape_shustryi_story2">
<phrase_list>

<phrase id="0">
<text>escape_shustryi_story2_0</text>
<has_info>info_artmod_cristall_flower_mincer</has_info>
<dont_has_info>shustriy_outfit_start</dont_has_info>
<next>1</next>
</phrase>

<phrase id="1">
<text>escape_shustryi_story2_1</text>
<next>2</next>
</phrase>

<phrase id="2">
<text>escape_shustryi_story2_2</text>
<next>3</next>
</phrase>

<phrase id="3">
<text>escape_shustryi_story2_3</text>
<next>4</next>
</phrase>

<phrase id="4">
<text>escape_shustryi_story2_4</text>
<next>5</next>
</phrase>

<phrase id="5">
<text>escape_shustryi_story2_5</text>
<next>6</next>
</phrase>

<phrase id="6">
<text>escape_shustryi_story2_6</text>
<next>7</next>
</phrase>

<phrase id="7">
<text>shustriy_find_item_text</text>
<next>8</next>
<next>9</next>
</phrase>

<phrase id="8">
<text>escape_shustryi_story2_8</text>
<action>escape_dialog.shustriy_outfit_start</action>
</phrase>

<phrase id="9">
<text>escape_shustryi_story2_9</text>
</phrase>

</phrase_list>
</dialog>

Первоначально там был только текст с последней фразой phrase id="6". Работало. Добавил проверки <has_info>info_artmod_cristall_flower_mincer</has_info> и <dont_has_info>shustriy_outfit_start</dont_has_info>, а также строки начиная с <phrase id="7">.

Появились добавленные строки. Но, при этом, оно работает при ОТСУТСТВИИ info_artmod_cristall_flower_mincer и не вызывается escape_dialog.shustriy_outfit_start(). То есть, текст есть, а action в этой фразе не выполняется.

Что ему надо, чтобы оно начало проверять наличие/отсутствие info и вызывать функцию ?

 

upd: вопрос про функцию снимается, точнее изменяется на "почему оно НЕ ВЫЛЕТАЕТ при опечатке в имени функции ?"

По проверке условий я так и не понял, чем ему не нравятся условия в первой фразе, а не перед первой фразой ?

Изменено пользователем Dennis_Chikin

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


Ссылка на сообщение

Если переделывать, так это надо сразу и конвертер во что-то более вменяемое, чем кучи xml со странным.

 

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

Увы, дальше легкой чистки, так, чтобы не трогалась структура xml, не пошел. Испугался. 8(

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


Ссылка на сообщение

"Речь о ТЧ. Неужто нет тех кто там на квестах собаку съел?" - во-первых, начнем с того, что это - плохая, негодная система, изначально. Сконструирована для некоего гипотетического робота-квестописца, но не для человека.

Прожорливая и тормозная.

 

Чтобы понять, что ее НЕ нужно использовать - достаточно повыполнять заданий "подай-принеси", а потом открыть в ПДА раздел выполненных, и наслаждаться тормозами...

Далее, переименовывая, вводя нового, или убирая старого непися, надо сразу идти в скрипт, и прописывать там этого непися, включая тупые повторы строк вида
function init_trader_task_dialog(dlg)
    get_random_task():init_task_dialog(dlg, "trader")
end


function init_trader_reward_dialog(dlg)
    get_random_task():init_reward_dialog(dlg, "trader")
end

и т.д. на пол скрипта.

 

Затем, вспоминаем о разных форматах хранения id диалогов - как u32 или как string...

Далее, понимаем, что нет практически ни одного мода, где не потрогали бы condition и init_condition, а заодно, естественно, и xr_conditions/xr_effects.

Далее, медитируем на info, и на то, что прописанное там, должно также быть прописано в xml...

 

Короче, Меченый, оно надо ?

А еще эта дивная система инициализации, и регистрации всех смартов/монстров/неписей, создающихся в игре...

 

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

local kuz_a1, kuz_a2

function kuznetsov_art_choice()
    local max = #esc_art_part3
    local kuz_a1 = math.random( max )    -- случайный номер позиции
    kuz_a2 = kuz_a1
    while kuz_a2 == kuz_a1 do kuz_a2 = math.random( max ) end    -- любой, кроме уже выданного

    db.storage[0].pstor.kuznetsov_art = kuz_a1 .. kuz_a2
    db.actor:give_talk_message( 'Нужны арты ' .. esc_art_name3[kuz_a1] .. ' и '
        .. esc_art_name3[kuz_a2], "ui\\ui_iconstotal", Frect():set(0,0,10,10),
        "simple_answer_item" )
end


function kuznetsov_art_start()
    local s = db.storage[0].pstor.kuznetsov_art
    if s then
        kuz_a1 = string.sub( s, 1, 1 ) + 0
        kuz_a2 = string.sub( s, 2, 2 ) + 0
        local task = CGameTask()
        task:load( "esc_kuznetsov_art" )
        local objective = task:get_objective( 1 )
        objective:set_description( 'Нужны два артефакта: ' .. esc_art_name3[kuz_a1]
            .. ' и ' .. esc_art_name3[kuz_a2] )

        db.actor:give_task( task, nil, false )
    end
end[/spoler]

А если добавить еще столько же - знай, прописывай нужным персонажам строчки вызова в диалог.

  • Полезно 2

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


Ссылка на сообщение

Прогулка на расстояния типа от ДН до элеватора - это плохая идея.

Хорошая, на стандартной кодовой базе - сделать отдельный смарт с работами в ДН и на элеваторе, и переключаться между ними. Либо, используя 2 существующих смарта, прописать в оба работы с проверкой имени непися, и гонять его из одного смарта в другой.

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


Ссылка на сообщение

Ну, если непись должен гулять строго за актором, то включается ли схема из работы под смартом, или иным образом - без разницы. Просто, да, если непись прибит гвоздями к конкретно актору и актор далеко от него не убегает - у непися проблем с поиском пути быть не должно.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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