в файле gamedata\config\gameplay\
game_tasks.xml пишешь:
<game_task id="Fagot_chasti_mutantov_PDA">
<title>Принести части мутантов</title>
<objective>
<text>Найти части мутантов.</text>
<icon>ui_iconsTotal_find_item</icon>
<infoportion_complete>
Fagot_chasti_mutantov_peredal</infoportion_complete>
</objective>
<objective>
<text>Добыть 4 хвоста слепых псов, 2 хвоста псевдособак, 3 глаза плоти и 2 стопы снорка.</text>
<icon height="50" width="50" x="100" y="50">ui\ui_icons_task</icon>
<function_complete>Moi_kvestj.chasti_mutantov</function_complete>
<infoportion_set_complete>
chasti_mutantov</infoportion_set_complete>
</objective>
<objective>
<text>Принести части мутантов Сане М.</text>
<map_location_type hint="Саня М.">blue_location</map_location_type>
<object_story_id>esc_unik_npc</object_story_id>
<infoportion_complete>
Fagot_chasti_mutantov_peredal</infoportion_complete>
</objective>
</game_task>
Это то,что будет отображаться в ПДА, ну, естественно тексты меняешь на свои. Обрати внимание, то,что выделенно зелёным - это инфопоршни, к этому мы ещё вернёмся позже.
Далее, в той же папке заходишь в dialogs_название_локации.xml и создаешь диалог, вернее даже два - один для выдачи задания, второй для завершения(сдал заказ). Надеюсь, умеешь диалоги делать?..
Вот мой диалог:
<dialog id="Fagot_chasti_mutantov">
<dont_has_info>Fagot_chasti_mutantov</dont_has_info>
<phrase_list>
<phrase id="0">
<text>Привет!</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>А-а, ты во-время. Здоров! Подзаработать есть желание? Буду краток: нужно четыре хвоста слепых псов, два хвоста псевдособак, три глаза плоти и пару башмаков снорка.</text>
<next>2</next>
<next>3</next>
</phrase>
<phrase id="2">
<text>Да,деньги нужны. Я согласен.</text>
<action>Moi_mutantj.psevdosobaki_sobaki_snork</action>
<next>4</next>
</phrase>
<phrase id="3">
<text>Чего-о-о??? Нет уж,я расчленёнкой не занимаюсь.</text>
<action>dialogs.break_dialog</action>
</phrase>
<phrase id="4">
<text>Вот и ладушки,вот и хорошо.</text>
<give_info>Fagot_chasti_mutantov</give_info>
</phrase>
</phrase_list>
</dialog>
и второй диалог:
<dialog id="Fagot_chasti_mutantov_prines">
<dont_has_info>Fagot_chasti_mutantov_prines</dont_has_info>
<has_info>Fagot_chasti_mutantov</has_info>
<precondition>
Moi_kvestj.chasti_mutantov</precondition>
<phrase_list>
<phrase id="0">
<text>Вот,как договаривались, мясо принёс...</text>
<action>Moi_kvestj.chasti_mutantov_peredal</action>
<give_info>logika_sanya_m</give_info>
<next>1</next>
</phrase>
<phrase id="1">
<text>Благодарствую. Получи и распишись.</text>
<action>Moi_kvestj.chasti_mutantov_nagrada</action>
<give_info>Fagot_chasti_mutantov_prines</give_info>
<give_info>Fagot_chasti_mutantov_peredal</give_info>
</phrase>
</phrase_list>
</dialog>
Синим цветом выделено предусловие - если есть необходимое количество хвостов и прочего, тогда диалог появляется. Сам этот прекондишн(функция) нах-ся в моём файле
Moi_kvestj. Ты можешь создать новый скрипт, назвать его как тебе угодно и в нём писать функции для квестов, об этом чуть позже.
Далее в файле
info_l01escape.xml (у меня другой файл,свой) создаёшь инфопоршни:
<info_portion id="Fagot_chasti_mutantov"><task>Fagot_chasti_mutantov_PDA</task></info_portion> <info_portion id="Fagot_chasti_mutantov_peredal"></info_portion> <info_portion id="Fagot_chasti_mutantov_prines"></info_portion> <info_portion id="chasti_mutantov"></info_portion>
После чего идём в gamedata\scripts, там создаёшь файл с расширением .script , название любое и в нём пишем:
--проверка наличия нескольких разных предметов,с разным количеством:function chasti_mutantov(task, objective) return new_dialog.item_much("mutant_dog_tail",4) ~= false and new_dialog.item_much("mutant_flesh_eye",3) ~= false and new_dialog.item_much("mutant_psevdodog_tail",2) ~= false and new_dialog.item_much("mutant_snork_leg",2) ~= false end-- отдаём хвосты,получаем награду и повышаем репутацию:function chasti_mutantov_peredal(first_speaker, second_speaker) flamethrower.relocate_n_items_section(second_speaker, "mutant_dog_tail", "out", 4) flamethrower.relocate_n_items_section(second_speaker, "mutant_flesh_eye", "out", 3) flamethrower.relocate_n_items_section(second_speaker, "mutant_psevdodog_tail", "out", 2) flamethrower.relocate_n_items_section(second_speaker, "mutant_snork_leg", "out", 2)endfunction chasti_mutantov_nagrada (first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 800, "in")-- dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_ap", "in") dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_ap", "in") dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_ap", "in") dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_ap", "in") dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in") dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in") dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in") dialogs.relocate_item_section(second_speaker, "ammo_12x70_buck", "in") dialogs.relocate_item_section(second_speaker, "ammo_12x70_buck", "in") dialogs.relocate_item_section(second_speaker, "medkit_army", "in")-- dialogs.relocate_item_section(second_speaker, "medkit_army", "in") dialogs.relocate_item_section(second_speaker, "medkit_army", "in") dialogs.relocate_item_section(second_speaker, "grenade_f1", "in") dialogs.relocate_item_section(second_speaker, "grenade_f1", "in") second_speaker:set_relation(game_object.friend, first_speaker)db.actor:change_character_reputation(db.actor:character_reputation() + 25)end
Вроде бы всё... Будут вопросы - спрашивай.
И ещё, чтобы функции в твоем скрипте сработали у тебя должен быть файл
flamethrower.script . Не знаю во что ты играешь, в чистой ТЧ его нет, но в Нар.Солянке он есть. И в модах на основе АМК он тоже должен быть.
Вот, если надо flamethrower:
http://narod.ru/disk....pt.html