Автор:Chester (взял со http://stalker.by/forum )
Вечером,как всегда,мне делать нечего.Вот и решил написать небольшой урок по диалогам.
Code
<dialog id = "volk_new_quest">
<has_info>new_task_started</has_info> ---Если нет этого поршня,то диалог не появится
<dont_has_info>player_talked_with_wolf</dont_has_info> --- Если есть этот поршень,то диалог не появится
<dont_has_info>player_complete_new_task</dont_has_info>
<dont_has_info>esc_trader_new_quest_complete</dont_has_info>
<phrase_list>
<phrase id ="0">
<text>esc_volk_new_quest_0</text>
<precondition>test.has_item</precondition>
<action>escape_dialog.otday_vodku</action>
<next>1</next>
</phrase>
<phrase id ="1">
<text>esc_volk_new_quest_1</text>
<give_info>player_talked_with_wolf</give_info>
<give_info>esc_trader_new_quest_complete</give_info>
<next>2</next>
</phrase>
<phrase id ="2">
<text>esc_volk_new_quest_2</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
<dialog id ="esc_trader_new_quest">
<dont_has_info>player_complete_new_task</dont_has_info>
<dont_has_info>player_talked_with_wolf</dont_has_info>
<phrase_list>
<phrase id = "0">
<text>esc_trader_new_quest_0</text>
<next>1</next>
</phrase>
<phrase id = "1">
<text>esc_trader_new_quest_1</text>
<give_info>new_task_started </give_info>
<next>2</next>
</phrase>
<phrase id = "2">
<text>esc_trader_new_quest_2</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
<dialog id ="esc_trader_new_quest_complete">
<dont_has_info>player_complete_new_task</dont_has_info>
<phrase_list>
<phrase id = "0">
<text>esc_trader_new_quest_complete_0</text>
<next>1</next>
</phrase>
<phrase id ="1">
<text>esc_trader_new_quest_complete_1</text>
<give_info>player_complete_new_task</give_info>
<next>2</next>
</phrase>
<phrase id = "2">
<text>esc_trader_new_quest_complete_2</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
Из этого мы видим,что тег:
Code
<dont_has_info>поршень</dont_has_info>
Делает проверку на поршень,и в том случае,если этот поршень у нас есть,он не появится.
Тег:
Code
<has_info>поршень</has_info>
Тоже делает проверку на поршень,но теперь он не появится только тогда, когда у нас этого инфопоршня нет.
Тег:
Code
<give_info>поршень</give_info>
Выдает поршень во время диалога.
Тег:
Code
<action>скриптовый_файл.название_функции</action>
Это выполнение какой-нибудь функции во время диалога.Пример:
Code
Засовываем функцию в файл test_1.
function test (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "wpn_ak74", "in")
end
В диалог:
<action>test_1.test</action>
Тут мы выдали предмет актору.
Тег:
Code
<precondition>скриптовый_файл.имя функции</precondition>
Проверка,но уже функцией.Проверять можно много чего,вот пример:
Code
Засовываем функции в файл test_2
function test()
if db.actor:object("wpn_ak74") then
return true
end
return false
end
В диалог:
<precondition>test_2.test</precondition>
Тут мы проверяем,есть ли у актора предмет.Если нет - диалог не появится.