Создадим квест по поиску АК74У. 
 Для начала нужно создать диалог, сделаем его у Волка: 
 Заходим в gamedata\config\gameplay\dialogs_escape.xml и в самом конце до строчки  пишем:  
Код
<dialog id="escape_volk_ak74u_quest">   
 <has_info>esc_kill_bandits_quest_done</has_info>   
 <dont_has_info>escape_volk_ak74u_start</dont_has_info>   
 <phrase_list>   
 <phrase id="0">   
 <text>escape_volk_ak74u_quest_0</text>   
 <next>1</next>   
 </phrase>   
 <phrase id="1">   
 <text>escape_volk_ak74u_quest_1</text>   
 <next>2</next>   
 <next>3</next>   
 </phrase>   
 <phrase id="2">   
 <text>escape_volk_ak74u_quest_2</text>   
 <give_info>escape_volk_ak74u_start</give_info>   
 <action>new_life.spawn_ak74u</action>   
 </phrase>   
 <phrase id="3">   
 <text>escape_volk_ak74u_quest_3</text>   
 <action>dialogs.break_dialog</action>   
 </phrase>   
 </phrase_list>   
 </dialog>   
 <dialog id="escape_volk_ak74u_quest_completed">   
 <precondition>new_life.escape_volk_ak74u_have</precondition>   
 <has_info>escape_volk_ak74u_have</has_info>   
 <dont_has_info>escape_volk_ак74u_done</dont_has_info>   
 <phrase_list>   
 <phrase id="0">   
 <text>escape_volk_ak74u_quest_completed_0</text>   
 <next>1</next>   
 </phrase>   
 <phrase id="1">   
 <text>escape_volk_ak74u_quest_completed_1</text>   
 <next>2</next>   
 </phrase>   
 <phrase id="2">   
 <text>escape_volk_ak74u_quest_completed_2</text>   
 <give_info>escape_volk_ak74u_done</give_info>   
 <action>new_life.give_volk_ak74u</action>   
 <next>3</next>   
 </phrase>   
 <phrase id="3">   
 <text>escape_volk_ak74u_quest_completed_3</text>   
 <action>new_life.complete_volk_quest</action>   
 </phrase>   
 </phrase_list>   
 </dialog> 
 Теперь нужно прописать эти диалоги Волку, для этого заходим в gamedata\config\gameplay\character_desc_escape.xml и находим профиль Волка(он называется esc_wolf), перед строкой  пишем:  
Код
<actor_dialog>escape_volk_ak74u_quest</actor_dialog> 
 <actor_dialog>escape_volk_ak74u_quest_completed</actor_dialog>
 Нам понадобятся два диалога: 1 для получения квеста, 2 для передачи автомата.  
Код
<dialog id="escape_volk_ak74u_quest">
Это название диалога  
Код
<has_info>esc_kill_bandits_quest_done</has_info>
эта строка означает что квест появится только если получен инфопоршень esc_kill_bandits_quest_done  
Код
<dont_has_info>escape_volk_ak74u_start</dont_has_info>
эта строка означает что если получен инфопоршень escape_volk_ak74u_start , то этот диалог больше не появится.  
Код
<text>escape_volk_ak74u_quest_0</text>
это ссылка на текст фразы меченого  
 - это ссылка на текст с id=1 , а id=1 это
Код
<text>escape_volk_ak74u_quest_1</text>
ссылка на текст Волка  
Код
<next>2</next> 
 <next>3</next>
эти две строчки означают что идет разветвление диалога  
Код
<give_info>escape_volk_ak74u_start</give_info>
выдача инфопоршня, после которого начинается квест  
Код
<action>new_life.spawn_ak74u</action>
функция вызываемая из скрипта new_life, в данном случае спаунится предмет AK74У  
Код
<action>dialogs.break_dialog</action>
функция отвечающая за выход из диалога 
 Во втором диалоге есть строка
Код
<precondition>new_life.escape_volk_ak74u_have</precondition>
она отвечает за появление диалога если выполняется функция  
Код
escape_volk_ak74u_have
 Теперь нужно сделать текст диалога на русском языке, для этого заходим в gamedata\config\tex\rus\stable_dialogs_escape.xml и в нём пишем следующее(в конце перед ):  
Код
<string id="escape_volk_ak74u_quest_0">   
 <text>Здорова Волк, для меня есть какая-нибудь работа?</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_1">   
 <text>Да, есть одно дело: вобщем шёл сюда в лагерь к Сидырычу, решил пройти через тоннель чтоб воякам денег не платить, а там собак было штук десять. Ну я начал отстреливаться, где-то шестерых убил и патроны кончились, пришлось АКСУ выкинуть, чтоб от стаи собак убежать. Таки лежит там наверно АКСУ. \nНу как, возьмёшься? Только осторожней там, после последнего выброса появились в тоннеле перещающиеся аномалии электра.</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_2">   
 <text>Да, я как раз буду рядом проходить, конечно принесу...</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_3">   
 <text>Нет, Волк, сам туда иди...</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_completed_0">   
 <text>Привет, Волк, ну как оно?...</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_completed_1">   
 <text>Сидор водку не даёт, хе хе, а так всё хорошо.</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_completed_2">   
 <text>Вот, нашел я твой АКСУ.</text>   
 </string>   
 <string id="escape_volk_ak74u_quest_completed_3">   
 <text>Эх спасибо тебе Меченый, вот держи, может на что-нибудь хватит.</text>   
 </string>
 Итак, диалог готов, теперь нужно сделать сам квест, для этого заходим в gamedata\config\gameplay\tasks_escape.xml и в самом конце пишем:  
Код
<game_task id="escape_volk_ak74u">   
 <title>Найти потерянный АКСУ</title>   
 <objective>   
 <text>Найти потерянный АКСУ</text>   
 <icon>ui_iconsTotal_weapons</icon>   
 <infoportion_complete>escape_volk_ak74u_done</infoportion_complete>   
 <article>tex_escape_volk_ak74u</article>   
 </objective>   
 <objective>   
 <text>Найти АКСУ</text>   
 <function_complete>new_life.escape_volk_ak74u_have</function_complete>   
 <infoportion_set_complete>escape_volk_ak74u_have</infoportion_set_complete>   
 </objective>   
 <objective>   
 <text>Принести АКСУ Волку</text>   
 <map_location_type hint="Волк">blue_location</map_location_type>   
 <object_story_id>Escape_novice_lager_volk</object_story_id>   
 <infoportion_complete>escape_volk_ak74u_done</infoportion_complete>   
 </objective> 
 </game_task>
Код
<game_task id="escape_volk_ak74u">
id квеста  
Код
<title>Найти потерянный АКСУ</title>
название квеста  
Код
<text>Найти потерянный АКСУ</text>
тоже название квеста))  
Код
<icon>ui_iconsTotal_weapons</icon>
иконка задания  
Код
<infoportion_complete>escape_volk_ak74u_done</infoportion_complete>
квест будет выполнен, если был получен инфопоршень escape_volk_ak74u_done  
Код
<article>tex_escape_volk_ak74u</article>
ссылка на текстовый файл с описанием задания  
Код
<text>Найти АКСУ</text>
название подзадачи  
Код
<function_complete>new_life.escape_volk_ak74u_have</function_complete>
проверка на наличие предмета  
Код
<infoportion_set_complete>escape_volk_ak74u_have</infoportion_set_complete>
если функция new_life.escape_volk_ak74u_have выполнилась, то выдаётся инфопоршень escape_volk_ak74u_have и выполняется подзадача  
Код
<text>Принести АКСУ Волку</text>
название второй подзадачи  
Код
<map_location_type hint="Волк">blue_location</map_location_type>
указатель на Волка  
Код
<object_story_id>Escape_novice_lager_volk</object_story_id>
id Волка в Файле gamedata\config\game_story_ids.ltx  
Код
<infoportion_complete>escape_volk_ak74u_done</infoportion_complete>
если будет получен этот инфопоршень, то выполнится подзадача и соответственно сам квест. 
 Нужно сделать инфопоршни, заходим в gamedata\config\gameplay\info_l01escape.xml и в нём в конце до строчки  пишем:  
Код
<info_portion id="escape_volk_ak74u_start">   
 <task>escape_volk_ak74u</task>   
 </info_portion>   
 <info_portion id="escape_volk_ak74u_have">   
 </info_portion>   
 <info_portion id="escape_volk_ak74u_done">   
 </info_portion> 
 Теперь нужно сделать описание квеста, заходим в gamedata\config\gameplay\storyline_info_escape.xml и пишем в конце:  
Код
<article id="tex_escape_volk_ak74u" name="Найти потерянный ак74u" article_type="task">   
 <texture x="0" y="800" width="200" height="100">ui\ui_icon_equipment</texture>   
 <text>tex_escape_volk_ak74u</text>   
 </article> 
 Сделаем описание на русском, заходим в stable_dialogs_escape.xml и в конце до строки  пишем:  
Код
<string id="tex_escape_volk_ak74u">   
 <text>Волк попросил принести потерянный в туннеле АКСУ</text>   
 </string> 
 Теперь создадим скриптовый файл new_life в gamedata\scripts\new_life.script и пишем:  
Код
function spawn_ak74u()   
 amk.spawn_item("wpn_ak74u",vector():set(-78.85,-1.29,154.74),163,189935) -- спавн ak74u в тоннеле на кордоне   
 end   
 function escape_volk_ak74u_have()   
 return sak.have_item_namber("wpn_ak74u",1) ~= false -- проверка на нахождение предмета в рюкзаке   
 end   
 function give_volk_ak74u(first_speaker, second_speaker) -- передача предмета   
 sak.out_item_namber("wpn_ak74u", 1)   
 end 
 function complete_volk_quest(first_speaker, second_speaker) -- получение награды   
 dialogs.relocate_money(second_speaker, 1500, "in")   
 end 
 Чтобы эти скрипты заработали, нужно создать файлы amk.script и sak.script, в аmk.script пишем  
Код
function spawn_item(spawn_item, pos, gv,lv)   
 if gv==nil then gv=db.actor:game_vertex_id() end   
 if lv==nil then lv=db.actor:level_vertex_id() end   
 return alife():create(spawn_item, pos, lv, gv)   
 end   
 function remove_item_from_inventory(remove_item,npc)   
 if npc==nil then npc=db.actor end   
 if remove_item~=nil then   
 -- npc:mark_item_dropped(remove_item)   
 alife():release(alife():object(remove_item:id()), true)   
 return true   
 end   
 return false   
 end 
 В sak.script пишем  
Код
local items_count=0   
 local itemin=nil   
 function have_item_namber(itm,need_namber)   
 local actor=db.actor   
 items_count=0   
 itemin=itm   
 actor:iterate_inventory(cheking_item,actor)   
 if items_count>=need_namber then   
 return true   
 else   
 return false   
 end   
 end   
 function cheking_item(actor,item)   
 local items=item:section()   
 if items==itemin then   
 items_count=items_count+1   
 end   
 end   
 function create_items(npc,section,number)   
 for i=1,number do   
 alife():create(section,   
 npc:position(),   
 npc:level_vertex_id(),   
 npc:game_vertex_id(),   
 npc:id())   
 end   
 end   
 local reloc_params={}   
 local stalk   
 function out_item_namber(itm_section,need_number)   
 reloc_params.itm_section=itm_section   
 reloc_params.itm_cnt=need_number   
 reloc_params.itm_cnt_found =0   
 db.actor:iterate_inventory(checkout_items_count,db.actor)   
 reloc_params.itm_cnt_found=0   
 if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then   
 db.actor:iterate_inventory(out_items_count,db.actor)   
 end   
 news_manager.relocate_item(db.actor, "out", itm_section)   
 reloc_params={}   
 end   
 function relocate_item_namber(stalker,itm_section,need_number)   
 stalk=stalker   
 reloc_params.itm_section=itm_section   
 reloc_params.itm_cnt=need_number   
 reloc_params.itm_cnt_found=0   
 db.actor:iterate_inventory(checkout_items_count,db.actor)   
 reloc_params.itm_cnt_found=0   
 if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then   
 db.actor:iterate_inventory(reloc_items_count,db.actor)   
 end   
 news_manager.relocate_item(db.actor, "out", itm_section)   
 reloc_params={}   
 end   
 function checkout_items_count(actor,item)   
 if item.section and item:section()==reloc_params.itm_section then   
 reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1   
 end   
 end   
 function reloc_items_count(actor,item)   
 if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then   
 db.actor:transfer_item(item, stalk)   
 reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1   
 end   
 end   
 function out_items_count(actor,item)   
 if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then   
 amk.remove_item_from_inventory(item, actor)   
 reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1   
 end 
 end
 Всё! Можно тестировать. 
 ПРИМЕЧАНИЕ!!!Если вы делаете такой квест на оригинальном сталкере, то ОБЯЗАТЕЛЬНО нужно создать файлы amk.script и sak.script 
 Если вы делаете квест на amk моде, то нужно создать только файл sak.script