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

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


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

@Stalker Nest, изучаем "Создание квестов" с начала этой темы. Можно здесь ещё http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%BE%D0%B2_(%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D1%83%D1%80%D0%BE%D0%B2%D0%B5%D0%BD%D1%8C)Вскрываем необходимый мод и ищем в файлах нужные строчки. Да, это муторно, но по-другому никак. В разных модах своя структура и нужно искать по файлам необходимое.

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

Сейчас прохожу: GWENT: The Witcher card game

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

Люди, помогите, я запарился искать инфу нассчет инфопоршней.

Кто знает, как выдать инфопоршень, тогда когда ГГ будет в определенном месте, например: ГГ с Волком идет к тоннелю за АТП, и на дороге ведущей к тоннелю активируется инфопоршень и по этому инфопорншю спавнятся мутанты в тоннеле и идут себе гулять, а мы зачищаем их.

 

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

 

Добавочка: как сделать сообщение как в солянке

(ну это типо:

"Бармен: Стрелок, подойти ко мне в бар.

Стрелок: хорошо бармен скоро буду

Бармен: жду")

 

И вот  как раз ты проходишь мимо АТП и активируется инфопоршень который дает команду  функции(или как там это фигня вызывается) на сообщение.

Ковырялся в моде Апокалипсис, нашел тип этого

function sidor_msg1(first_speaker, second_speaker)



local snd_obj = xr_sound.get_safe_sound_object( [[msgs\sidor]] )
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)

news_manager.send_tip(db.actor, "%c[255,200,0,0]Сидорыч:\n%c[default] Сталкер! У тебя ПДА моего покойного друга, Меченного. Зайди, я хорошо заплачу.", nil, nil, 35000)
end

 

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

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

[5066]



; cse_abstract properties
section_name = space_restrictor   --не изменять
name = sgm_kvest     --имя(изменять на любое)
position = -209.579498291016, -20.438346862793, -153.762054443359     --позиция(брать через команду rs_stats on)
direction = 0, 0, 0    --хз че, но ставьте примерно на ноль
version = 119     -- тоже самое
script_version = 6   ---....
spawn_id = 2788   --вроде нужен свой(вроде)

; cse_alife_object properties
game_vertex_id = 50      --брать через скрипты 
distance = 3     -- любое значение
level_vertex_id = 43937    --брать тоже через скрипты
object_flags = 0xffffffbe       --донт чендж
custom_data = <[logic]     --логика
active = sr_idle     --логика

[sr_idle]      --логика
on_actor_inside = %+msg_sidor1%    --инфопоршень (вот для этого мне нужен был рестриктор)
END        --конец(обязательно)

; cse_shape properties
shapes = 1                                                                             __________       
shape_0:type = box                                                              |                           лучше
shape_0:axis_x = 14.8584299087524,0,0                           |                                       не
shape_0:axis_y = 0,4.67763805389404,0                         <                
shape_0:axis_z = 0,0,4.59808111190796                            |                                              менять

shape_0:offset = 0,0,0                                                         |___________

; cse_alife_space_restrictor properties
restrictor_type = 3                      --ставим 3(это лучше)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


 

А начсет сообщения на PDA, Перепробовал многие способы, но при всех способах текст искаженный, всегда, ток не английский он нормальный.

function new_sms (actor, npc)
news_manager.send_tip(db.actor, "new_sms_text", 10000, "ecolog", 18000, 902)
end
Автор: LaRento

 

 

Еще был получше вариант, но я увы его удалил, потом найду, как исправить карявый текст в сообщении?

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

Это снова я, разобрался и с PDA сообщениями, также расскажу как я это сделал.

[spoiler=файл news_manager.script]news = {
tips_esc_trader_about_anomalies = xr_sound.get_safe_sound_object([[characters_voice\scenario\trader\trader_tutorial_anomalies_1]]),
...

...

...
new_sms_text = xr_sound.get_safe_sound_object([[msgs\shustryi]]),

 

То что синим = это ссылка на текст и ссылка на выдачу, потом скажу где надо. А перевод на русский в файле: string_table_tips_escape.xml

То что оранжевым = это ссылка на звуковой файл, в моей случае msgs\shustryi

 

 

 


<string id="new_sms_text">       --ссылка
          <text>Стрелок, зайди ко мне, я на кардоне.</text>    --текст
</string> 

 

 

 

[spoiler=Алл.спавн]Дальше сложней, нам нужно создать рестриктор, и в логику написать вот это:

[logic] 
active = sr_idle
 
[sr_idle] 
on_actor_inside = sr_tip     --переход на логику
 
[sr_tip] 
name = new_sms_text     -- тот текст
type = tips     -- либо tips, либо news
sender = trader     --от кого(картинка сидоровича)
on_actor_inside = nil     --если актор в зоне, если хотите чтобы вне рестриктора было не видно сообщения
showtime = 15000         --время 15 сек(вроде)
END          --и обязательно конец

 

 

 

 

И все, теперь при входе в рестриктор выполняется функция сообщения на пда со звуком без корявого текста.

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

@PP TeaM изучи файлы talk.xml и talk_16.xml

Также будет очень полезно познакомиться с этой темой http://www.amk-team.ru/forum/topic/8013-hud/

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

@Marafon6540 Спасибо, Я просто недавно модингом начал заниматься, вот и вопросик возник) 

Кстате, можешь помочь, с худом. Ну типо миникарта, патроны, полосы хп и брони. Ну и тому подобное. Хочу сделать индивидуальные. Только найти не могу как...

 

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

Описывал кто task_manager.ltx ? Точнее его параметры, ток так чтобы подробно?

Скрытый текст

type
community

init_condition
text
description
parent 
target
reward_reputation
reward_relation
reward_rank
reward_item
time
prior

 

Описание этих параметров, какие они могут иметь значения, описание этих значений. И вообще, какие параметры обязательны, а какие нет.

Добавлено Dennis_Chikin,

Зависит исключительно от одноименного скрипта.

Добавлено aka_sektor,

Речь о ТЧ. Неужто нет тех кто там на квестах собаку съел?

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

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

Создал маленькую локацию "test" в котором после интро появляется квест про разговор со степаном. НПС Степана пока что не поставил, просто хотел проверить работоспособность квеста, и тут такая проблема, что при запуске новой игры квест появляется, но вместо моего написанного названия, написано "talk_stepan_name". Вот https://yadi.sk/d/dWVme6oJ3Qgwn4, качайте геймдату с этим квестом, может быть вы разберётесь, что не так. Если что, файле game_tutuorials что-бы вы не искали, я поменял это: оставил только 3 слайда из интро оригинального сталкера в районе 720 строки и поменял в них функцию на sripts_test.talk_stepan.

Добавлено  Murarius,

Перемещено.

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

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

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

 

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

Далее, переименовывая, вводя нового, или убирая старого непися, надо сразу идти в скрипт, и прописывать там этого непися, включая тупые повторы строк вида
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
Ссылка на комментарий

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

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

@Rietmon есть способ проще:

Есть ещё один способ выдачи инфо - из объекта, класс которому в конфиге задан как II_DOC


В LevelEditor в свойствах у него есть поле Info portion.
В него пишется инфо, которое будет выдано при взятии объекта в инвентарь.

 

Проверил, всё пашет. Инфо выдаётся.

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

Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB

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

Доброго времени суток товарищи комрады! В недавнем времени у меня возник вопрос в процессе создания сюжета на платформе ТЧ, дело в том что не работает storyline. т.е. к квесту я не могу прописать его описание т.е при нажатии TAB или в ПДА. Если у кого есть описание как это делается правильно, и с чем его "кушать" то милости прошу рассказать подробно как это делается ибо старые туторы в помощь не идут.

Спасибо за внимание.

NL-Vincenz.gif

Ссылка на комментарий
В 05.01.2018 в 12:00, $TRELOK45 сказал:

Расскажите пожалуйста подробно как сделать, 

http://stalkerin.gameru.net/wiki/index.php?title=SoC._Однотипные_квесты

  • Спасибо 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

Доброго времени суток, у меня недавно назрел вопрос. Имеется скелет квеста:

Скрытый текст

<game_task id="start_pes_kvest">
            <title>start_pes_kvest_0</title>
            <objective>
                    <text>start_pes_kvest</text>
            <icon>ui_iconsTotal_tutorial_find_artefact</icon>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete> </objective>
            <article>start_pes_kvest</article>
            <objective>
                    <text>start_pes_kvest_1</text>
                        <function_complete>acz_quest_function.start_pes_quest</function_complete>
            </objective>
            <objective>
                    <text>start_pes_kvest_2</text>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete>
            </objective>
</game_task>

Квест работает но меня смутило другое, должно быть правильнее вот так:

Скрытый текст

 

<game_task id="start_pes_kvest">
            <title>start_pes_kvest_0</title>
            <objective>
                    <text>start_pes_kvest</text>
            <icon>ui_iconsTotal_tutorial_find_artefact</icon>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete> </objective>
            <article>start_pes_kvest</article>

            </objective> -- ПЕРЕХОД?
            <objective>
                    <text>start_pes_kvest_1</text>
                        <function_complete>acz_quest_function.start_pes_quest</function_complete>
            </objective>
            <objective>
                    <text>start_pes_kvest_2</text>
                    <infoportion_complete>start_pes_quest_complete_0</infoportion_complete>
            </objective>
</game_task>

 

Но когда поставил "</objective>" квест вылетает ссылкой на теги, хотя другие квесты в оригинале пишутся именно так.

С чем может быть связана эта проблема? Ах да еще не работает: <article>start_pes_kvest</article> хоть головой об матрас но не работает.

NL-Vincenz.gif

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

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

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

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

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

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

Войти

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

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

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