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

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


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

Кто подскажет в чем фигня? Я после взятия квеста, отношу предмет Бармену, но задание не обновляется, как исправить?

 

<game_task id="walk_to_barmen_quest">

<title>Посыльный</title>

<objective>

                       <text>Передать флеш-диск</text>

                       <icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon>

                <infoportion_set_complete>quest_walktobarman_done</infoportion_set_complete>

                </objective>

                <objective>

                       <text>Передать Бармену флешку</text>

                       <map_location_type hint="bar_barman">blue_location</map_location_type>

                       <object_story_id>bar_Barman</object_story_id>

                <infoportion_complete>quest_walktobarman_one</infoportion_complete>

                </objective>

                <objective>

                       <text>Принести документ Сидоровичу</text>

                       <map_location_type hint="escape_trader">blue_location</map_location_type>

                       <object_story_id>Escape_Trader</object_story_id>

                <infoportion_complete>quest_walktobarman_done</infoportion_complete>

                </objective>

        </game_task>

 

В info_l01escape вот эти инфопоршни

 

 

        <info_portion id="quest_walktobarman_started">

                <task>walk_to_barmen_quest</task>

        </info_portion>

        <info_portion id="quest_walktobarman_one"></info_portion>

        <info_portion id="quest_walktobarman_done"></info_portion>

 

вот Диалог Сидора

 

 

    <dialog id="walk_to_barman">

        <has_info>tutorial_end</has_info>

        <dont_has_info>quest_walktobarman_started</dont_has_info>

        <phrase_list>

            <phrase id="5">

                <text>walk_to_barman_5</text>

            </phrase>

            <phrase id="1">

                <text>walk_to_barman_1</text>

                <next>2</next>

            </phrase>

            <phrase id="2">

                <text>walk_to_barman_2</text>

                <next>3</next>

            </phrase>

            <phrase id="3">

                <text>walk_to_barman_3</text>

                <next>4</next>

                <next>5</next>

            </phrase>

            <phrase id="0">

                <text>walk_to_barman_0</text>

                <next>1</next>

            </phrase>

            <phrase id="4">

                <text>walk_to_barman_4</text>

                <give_info>quest_walktobarman_started</give_info>

                <next>6</next>

            </phrase>

            <phrase id="6">

                <text>walk_to_barman_6</text>

                <action>quest_escape.quest_flash_walktobarman</action>

            </phrase>

        </phrase_list>

    </dialog>

    <dialog id="walk_to_barman_done">

        <has_info>quest_walktobarman_one</has_info>

        <dont_has_info>quest_walktobarman_done</dont_has_info>

        <phrase_list>

            <phrase id="7">

                <text>walk_to_barman_done_7</text>

                <next>8</next>

            </phrase>

            <phrase id="8">

                <text>walk_to_barman_done_8</text>

            </phrase>

            <phrase id="5">

                <text>walk_to_barman_done_5</text>

                <next>6</next>

            </phrase>

            <phrase id="1">

                <text>walk_to_barman_done_1</text>

                <next>2</next>

            </phrase>

            <phrase id="2">

                <text>walk_to_barman_done_2</text>

                <next>3</next>

            </phrase>

            <phrase id="3">

                <text>walk_to_barman_done_3</text>

                <next>4</next>

            </phrase>

            <phrase id="0">

                <text>walk_to_barman_done_0</text>

                <next>1</next>

            </phrase>

            <phrase id="6">

                <text>walk_to_barman_done_6</text>

                <next>7</next>

            </phrase>

            <phrase id="4">

                <text>walk_to_barman_done_4</text>

                <action>quest_escape.quest_doc_walktobarman_dat_item</action>

                <give_info>quest_walktobarman_done</give_info>

                <next>5</next>

            </phrase>

        </phrase_list>

    </dialog>

 

 

 

И Бармена

 

    <dialog id="bar_quest_walk_to_barmen_one">

        <has_info>quest_walktobarman_started</has_info>

        <dont_has_info>quest_walktobarman_one</dont_has_info>

        <phrase_list>

            <phrase id="2">

                <text>bar_quest_walk_to_barmen_one_2</text>

                <next>3</next>

            </phrase>

            <phrase id="1">

                <text>bar_quest_walk_to_barmen_one_1</text>

                <next>2</next>

            </phrase>

            <phrase id="3">

                <text>bar_quest_walk_to_barmen_one_3</text>

                <action>quest_escape.quest_doc_walktobarman</action>

                <next>4</next>

            </phrase>

            <phrase id="0">

                <text>bar_quest_walk_to_barmen_one_0</text>

                <action>quest_escape.quest_flash_walktobarman_dat_item</action>

                <give_info>quest_walktobarman_one</give_info>

                <next>1</next>

            </phrase>

            <phrase id="4">

                <text>bar_quest_walk_to_barmen_one_4</text>

            </phrase>

        </phrase_list>

    </dialog>

 

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

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


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

Парни, подайте идей для квестов.

Квестодатель: Ридер 

  Группировка: Долг

  Месторасположение: Кордон

Любые квесты, но первые на кордоне.


Вот история:

 

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

 


Вот квест, правильно ли все написал?

Скрипты:

 

function add_dolg ()

alife():create("esc_quest_rider",vector():set(-192.22,-17.96,-137.801),244704,111)
end
 
function artefact_mayatnik_have()
    if db.actor:object("af_medusa") then
        return true
    end
    return false
end
 
function artefact_mayatnik_give(first_speaker, second_speaker)
    dialogs.relocate_item_section(second_speaker, "af_medusa", "out")

end

 

Песронаж:

 

character_desc_escape

<!---------------------------------------esc_quest_rider----------------------------------------------------->
<specific_character id="esc_quest_rider" team_default = "1">
<name>esc_quest_rider_name</name>
<icon>ui_npc_u_stalker_do_antigas</icon>
<bio>esc_fanat_bio</bio>
 
<class>esc_rider</class>
<community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect>
 
<rank>678</rank>
<reputation>10</reputation>
<money min="12000" max="20000" infinitive="0"/>
 
<snd_config>characters_voice\human_01\stalker\</snd_config>
<crouch_type>-1</crouch_type>
<panic_treshold>0</panic_treshold>
 
<visual>actors\dolg\stalker_do_antigas</visual>
<supplies>
[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
wpn_ak74 \n
ammo_5.45x39_fmj \n
</supplies>
 
#include "gameplay\character_criticals_4.xml"
 
<start_dialog>escape_quest_rider_startdialog</start_dialog>
<start_dialog>dm_hello_dialog</start_dialog>
<actor_dialog>dm_cool_info_dialog</actor_dialog>
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
<actor_dialog>quest_ot_ridera_let1</actor_dialog>
<actor_dialog>quest_ot_ridera_let1_done</actor_dialog>

</specific_character>

npc_profile

<character id="esc_quest_rider">
<class>esc_rider</class>

</character>

spawn_section

[esc_quest_rider]:stalker

$spawn =  "respawn\esc_quest_rider"
character_profile = esc_quest_rider
spec_rank = veteran
community = dolg

custom_data = scripts\esc_questriders_log.ltx

Логика в esc_questriders_log 

[logic]

active = remark@base
danger = danger_condition
meet = meet
 
[remark@base]
anim = wait
no_move = true
target = nil 
meet = meet
 
[meet]
meet_state = 10|hello@hail| 10|wait@wait
meet_state_wpn = 10| hello@talk_hello| 10| threat@threat_weap
victim_wpn = 5|actor
use = true

use_wpn = false

 

Квест

 

tasks_escape.ltx

<game_task id="quest_mayatnik_on_ac">
<title>quest_mayatnik</title>
<objective>
<icon>ui_iconsTotal_tutorial_find_artefact</icon>
<article>find_artefact_mayatnik</article>
<infoportion_complete>esc_quest_for_AC_done</infoportion_complete>
</objective>
<objective>
<text>finded_artefact_mayatnik</text>
<function_complete>escape.artefact_mayatnik_have</function_complete>
<infoportion_complete>esc_quest_for_AC_have</infoportion_complete>
<infoportion_set_complete>esc_quest_for_AC_have</infoportion_set_complete>
</objective>
<objective>
<text>finded_artefact_mayatnik_1</text>
<infoportion_complete>esc_quest_for_AC_done</infoportion_complete>
</objective>

</game_task>

Диалоги

    <dialog id="quest_ot_ridera_let1">

        <has_info>startdialog_with_rider</has_info>
        <dont_has_info>esc_quest_for_AC</dont_has_info>
        <phrase_list>
            <phrase id="1">
                <text>quest_ot_ridera_let1_1</text>
                <next>2</next>
            </phrase>
            <phrase id="2">
                <text>quest_ot_ridera_let1_2</text>
                <next>3</next>
            </phrase>
            <phrase id="3">
                <text>quest_ot_ridera_let1_3</text>
                <next>4</next>
            </phrase>
            <phrase id="4">
                <text>quest_ot_ridera_let1_4</text>
                <next>5</next>
            </phrase>
            <phrase id="5">
                <text>quest_ot_ridera_let1_5</text>
                <next>6</next>
            </phrase>
            <phrase id="6">
                <text>quest_ot_ridera_let1_6</text>
                <give_info>esc_quest_for_AC</give_info>
            </phrase>
            <phrase id="0">
                <text>quest_ot_ridera_let1_0</text>
                <next>1</next>
            </phrase>
        </phrase_list>
    </dialog>
    <dialog id="quest_ot_ridera_let1_done">
        <has_info>esc_quest_for_AC_have</has_info>
        <dont_has_info>esc_quest_for_AC_done</dont_has_info>
        <phrase_list>
            <phrase id="4">
                <text>quest_ot_ridera_let1_done_4</text>
            </phrase>
            <phrase id="1">
                <text>quest_ot_ridera_let1_done_1</text>
                <next>2</next>
            </phrase>
            <phrase id="0">
                <text>quest_ot_ridera_let1_done_0</text>
                <next>1</next>
            </phrase>
            <phrase id="3">
                <text>quest_ot_ridera_let1_done_3</text>
                <next>4</next>
            </phrase>
            <phrase id="2">
                <text>quest_ot_ridera_let1_done_2</text>
                <action>escape.artefact_mayatnik_give</action>
                <give_info>esc_quest_for_AC_done</give_info>
                <next>3</next>
            </phrase>
        </phrase_list>

    </dialog>

 

И инфопоршни

 

 

<info_portion id="esc_quest_for_AC">
   <task>quest_mayatnik_on_ac</task>
</info_portion>
<info_portion id="esc_quest_for_AC_have"></info_portion>
<info_portion id="esc_quest_for_AC_done"></info_portion>

Изменено пользователем QuestRider
  • Нравится 1

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


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

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

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

 

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

 

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

(ну это типо:

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

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

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

 

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

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

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

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


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

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