Advertisement
Guest User

escape_dialog.script

a guest
Jan 24th, 2015
498
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.69 KB | None | 0 0
  1. --------------------------------------------------------------------------------------------------------
  2. -- Dialog & InfoPortions Function
  3. --------------------------------------------------------------------------------------------------------
  4.  
  5. --------------------------------------------------------------------------------------------------------
  6. -- Trader
  7. --------------------------------------------------------------------------------------------------------
  8. function trader_alredy_give_job(trader, actor)
  9.     if (has_alife_info("agroprom_military_case") and not has_alife_info("agroprom_military_case_done")) or
  10.        (has_alife_info("escape_blockpost_case") and not has_alife_info("escape_blockpost_case_done")) or
  11.        (has_alife_info("tutorial_artefact_start") and not has_alife_info("tutorial_artefact_done")) or
  12.        (has_alife_info("tutorial_wounded_start") and not has_alife_info("esc_serious_talk"))
  13.     then
  14.         return true
  15.     end
  16.     return false
  17. end
  18.  
  19. function trader_give_extra_job(trader, actor)
  20.     local actor = db.actor
  21.     if has_alife_info("escape_blockpost_case") and not has_alife_info("escape_blockpost_case_done")
  22.     then
  23.         return true
  24.     end
  25.     return false
  26. end
  27.  
  28. function bandits_die(actor,npc)
  29.     local actor = db.actor
  30.     if has_alife_info("esc_kill_bandits_quest_kill") and not has_alife_info("esc_kill_bandits_noquest_kill")
  31.     then
  32.         return true
  33.     end
  34.     return false
  35. end
  36.  
  37. function trader_need_extra_job(trader, actor)
  38.     if not has_alife_info("escape_blockpost_case") and
  39.         has_alife_info("esc_return")
  40.     then
  41.         return true
  42.     end
  43.     return false
  44. end
  45.  
  46. function is_tutorial()
  47.     return not has_alife_info("tutorial_end")
  48. end
  49.  
  50. function is_not_tutorial()
  51.     return has_alife_info("tutorial_end")
  52. end
  53.  
  54. function is_not_tutorial_art(actor, trader)
  55.     local tutorial_artefact = db.actor:object("af_blood_tutorial")
  56.     if (has_alife_info("tutorial_artefact_start") and not has_alife_info("tutorial_artefact_done")
  57.         and  tutorial_artefact ~= nil) or has_alife_info("tutorial_artefact_done")
  58.     then
  59.         return true
  60.     end
  61.     return false
  62. end
  63.  
  64. function not_final_job(trader, actor)
  65.     local actor = db.actor
  66.     return not has_alife_info("escape_blockpost_case_done")
  67. end
  68.  
  69. function trader_test(actor, npc)
  70.     printf ("!!!!!")   
  71.     return true
  72. end
  73.  
  74.  
  75.  
  76. function trader_dont_give_job(first_speaker, second_speaker)
  77.     return not trader_alredy_give_job(first_speaker, second_speaker)
  78. end
  79.  
  80. function finalize_quests(first_speaker, second_speaker)
  81.     if tutorial_artefact_end(first_speaker, second_speaker) == true or
  82.        tutorial_wounded_end(first_speaker, second_speaker) == true
  83.     then
  84.         return true
  85.     end
  86.     return false
  87. end
  88.  
  89. function not_finalize_quests(first_speaker, second_speaker)
  90.     return not this.finalize_quests(first_speaker, second_speaker) 
  91. end
  92.  
  93. function tutorial_artefact_end(first_speaker, second_speaker)
  94.     local actor = db.actor
  95.     local tutorial_artefact = first_speaker:object("af_blood_tutorial")
  96.     if has_alife_info("tutorial_artefact_start") and
  97.        not has_alife_info("tutorial_artefact_done") and
  98.        tutorial_artefact ~= nil
  99.     then
  100.         return true
  101.     end
  102.     return false
  103. end
  104.  
  105. function tutorial_artefact_have_not(first_speaker, second_speaker)
  106.     local actor = db.actor
  107.     local tutorial_artefact = first_speaker:object("af_blood_tutorial")
  108.     if has_alife_info("tutorial_artefact_start") and
  109.        not has_alife_info("tutorial_artefact_done") and
  110.        tutorial_artefact == nil
  111.     then
  112.         return true
  113.     end
  114.     return false
  115. end
  116.  
  117. function tutorial_wounded_end(first_speaker, second_speaker)
  118.     local actor = db.actor
  119.     -- local wounded_flash = first_speaker:object("esc_wounded_flash")
  120.     if has_alife_info("tutorial_wounded_start") and
  121.         has_alife_info("tutorial_wounded_give_info")    and    
  122.        not has_alife_info("esc_serious_talk")
  123.  -- and   wounded_flash ~= nil
  124.     then
  125.         return true
  126.     end
  127.     return false
  128. end
  129.  
  130. function trader_dont_has_job(first_speaker, second_speaker)
  131.     if trader_need_military_case(first_speaker, second_speaker) == false and
  132.        trader_need_blockpost_box(first_speaker, second_speaker) == false
  133.     then
  134.         return true
  135.     end
  136.     return false
  137. end
  138.  
  139.  
  140. --' Escape tutorial artefact
  141. function have_tutorial_artefact(first_speaker, second_speaker)
  142.     return first_speaker:object("af_blood_tutorial") ~= nil
  143. end
  144. function give_medkit(first_speaker, second_speaker)
  145.     dialogs.relocate_item_section(first_speaker, "medkit", "in")
  146. end
  147. function give_tutorial_artefact(first_speaker, second_speaker)
  148.     dialogs.relocate_item_section(second_speaker, "af_blood_tutorial", "out")
  149. end
  150.  
  151.  
  152. --' Meet fox
  153. function have_fox_info(first_speaker, second_speaker)
  154.     return first_speaker:object("fox_flash") ~= nil
  155. end
  156.  
  157. --' fox help
  158.  
  159. function transfer_medikit_to_fox (player, wounded)
  160.     wounded:set_relation(game_object.friend, player)
  161.     db.actor:give_info_portion("escape_fox_heal")
  162. end
  163.  
  164. function give_weapon_to_actor (trader, actor)
  165.     dialogs.relocate_item_section(trader, "wpn_ak12", "in")
  166.     dialogs.relocate_item_section(trader, "wpn_ak74", "in")
  167.     dialogs.relocate_item_section(trader, "wpn_ak74u", "in")
  168.     dialogs.relocate_item_section(trader, "wpn_bm16", "in")
  169.     dialogs.relocate_item_section(trader, "wpn_bm16_full", "in")
  170.     dialogs.relocate_item_section(trader, "wpn_aek971", "in")
  171.     dialogs.relocate_item_section(trader, "wpn_svu", "in")
  172.     dialogs.relocate_item_section(trader, "wpn_usp_koma", "in")
  173.     dialogs.relocate_item_section(trader, "wpn_usp", "in")
  174.     dialogs.relocate_item_section(trader, "wpn_addon_scope", "in")
  175.     dialogs.relocate_item_section(trader, "wpn_addon_grenade_launcher", "in")
  176.     dialogs.relocate_item_section(trader, "wpn_addon_silencer", "in")
  177.     dialogs.relocate_item_section(trader, "wpn_addon_silencer", "in")
  178.     dialogs.relocate_item_section(trader, "wpn_mp443", "in")
  179.     dialogs.relocate_item_section(trader, "wpn_l96", "in")
  180.     dialogs.relocate_item_section(trader, "outfit_exo_m1", "in")
  181.     dialogs.relocate_item_section(trader, "wpn_vintorez_m1", "in")
  182.     dialogs.relocate_item_section(trader, "wpn_val", "in")
  183.     dialogs.relocate_item_section(trader, "wpn_colt1911", "in")
  184.     dialogs.relocate_item_section(trader, "wpn_sig220_m1", "in")
  185.     dialogs.relocate_item_section(trader, "wpn_python", "in")
  186.     dialogs.relocate_item_section(trader, "wpn_python_gold", "in")
  187.     dialogs.relocate_item_section(trader, "wpn_toz34", "in")
  188.     dialogs.relocate_item_section(trader, "wpn_spas12_m1", "in")
  189.     dialogs.relocate_item_section(trader, "wpn_knife", "in")    
  190. end
  191.  
  192.  
  193. --' Escape blockpost box
  194. function have_blockpost_case(first_speaker, second_speaker)
  195.     return first_speaker:object("quest_case_01") ~= nil
  196. end
  197.  
  198.  
  199. function give_blockpost_case(first_speaker, second_speaker)
  200.     dialogs.relocate_item_section(second_speaker, "quest_case_01", "out")
  201. end
  202.  
  203. function give_blockpost_case_reward(first_speaker, second_speaker)
  204.     dialogs.relocate_money(first_speaker, 25000, "in")
  205. end
  206.  
  207. --' Agroprom military case
  208. function trader_need_military_case(first_speaker, second_speaker)
  209.     if has_alife_info("esc_serious_talk") and
  210.        not has_alife_info("agroprom_military_case")
  211.     then
  212.         return true
  213.     end
  214.     return false
  215. end
  216.  
  217. --' Escape trader artefact
  218. function have_artefact_from_fleshes(first_speaker, second_speaker)
  219.     local actor = db.actor
  220.     if actor ~= nil and
  221.        (actor:object("af_vyvert") ~= nil or
  222.        actor:object("af_gravi") ~= nil or
  223.        actor:object("af_gold_fish") ~= nil)
  224.     then
  225.         return true
  226.     end
  227.     return false
  228. end
  229.  
  230.  
  231. --' ящик с блокпоста
  232. function trader_need_blockpost_box(first_speaker, second_speaker)
  233.     if has_alife_info("tutorial_end") and
  234.        has_alife_info("esc_trader_speak") and
  235.        not has_alife_info("escape_blockpost_case")
  236.     then
  237.         return true
  238.     end
  239.     return false
  240. end
  241.  
  242. --' tutorial wounded in vagon
  243. function wounded_need_help(first_speaker, second_speaker)
  244.     local actor = db.actor
  245.     return actor ~= nil and not has_alife_info( "tutorial_wounded_help" )
  246. end
  247.  
  248. --' trader needs military documents
  249. function trader_need_military_document(first_speaker, second_speaker)
  250.     if has_alife_info("escape_blockpost_case_done") and
  251.        not has_alife_info("agroprom_military_case")
  252.     then
  253.         return true
  254.     end
  255.     return false
  256. end
  257.  
  258. --' trader dialog about docs from labx18
  259. function actor_has_documents (actor, npc)
  260.     if actor:object("dar_document4") then
  261.         return true
  262.     else
  263.         return false
  264.     end
  265. end
  266.  
  267. --' Escape dynamite for Wolf
  268. function transfer_wolf_reward(first_speaker, second_speaker)
  269.     dialogs.relocate_item_section(first_speaker, "af_medusa", "in")
  270. end
  271.  
  272. function wolf_additional_reward(first_speaker, second_speaker)
  273.     dialogs.relocate_item_section(first_speaker, "medkit", "in")
  274.     dialogs.relocate_item_section(first_speaker, "bandage", "in")
  275.     dialogs.relocate_item_section(first_speaker, "wpn_fort", "in")
  276.     dialogs.relocate_item_section(first_speaker, "grenade_f1", "in")
  277.     dialogs.relocate_item_section(first_speaker, "ammo_9x18_fmj", "in")        
  278. end
  279.  
  280.  
  281. --' Escape Wounded's flash
  282. function wounded_give_flash(first_speaker, second_speaker)
  283.     dialogs.relocate_item_section(first_speaker, "esc_wounded_flash", "in")
  284. end
  285.  
  286. function have_wounded_flash(first_speaker, second_speaker)
  287.     return first_speaker:object("esc_wounded_flash") ~= nil
  288. end
  289. function dont_have_wounded_flash(first_speaker, second_speaker)
  290.     return not have_wounded_flash(first_speaker, second_speaker)
  291. end
  292.  
  293. function give_wounded_flash(first_speaker, second_speaker)
  294.     dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")
  295.     dialogs.relocate_money(second_speaker, 1500, "in")
  296. end
  297.  
  298. function give_knife_to_actor(first_speaker, second_speaker)
  299.     dialogs.relocate_item_section(first_speaker, "wpn_knife", "in")
  300. end
  301.  
  302. --' Escape bandits factory
  303. function give_factory_reward_trader(first_speaker, second_speaker)
  304.     dialogs.relocate_money(first_speaker, 500, "in")
  305. end
  306.  
  307. --' Give X-18 documents read
  308.  
  309. function give_documents_reward (first_speaker, second_speaker)
  310.     dialogs.relocate_money(first_speaker, 1000, "in")
  311. end
  312.  
  313.  
  314. --' Kill killers raid
  315. function give_reward_killers(first_speaker, second_speaker)
  316.     dialogs.relocate_money(first_speaker, 2500, "in")
  317. end
  318.  
  319.  
  320. --' Soldiers on bridge
  321. function has_soldiers_bribe(actor, npc)
  322.     return actor:money() >= 500
  323. end
  324.  
  325. function give_soldiers_bribe(actor, npc)
  326.     dialogs.relocate_money(npc, 500, "out")
  327. end
  328.  
  329. function fox_pay_money(actor, npc)
  330.     dialogs.relocate_money(npc, 1500, "in")
  331.     treasure_manager.get_treasure_manager():give_treasure("esc_secret_truck_goods")
  332. end
  333.  
  334. function run_tutorial_pda(first_speaker, second_speaker)
  335.     printf("!-!-!")
  336.     first_speaker:stop_talk()
  337.     second_speaker:stop_talk()
  338.     game.start_tutorial("part_1_pda")
  339. end
  340.  
  341. function wolf_precond_univ (actor, npc)
  342.     return has_alife_info("esc_kill_bandits_quest_done") or (has_alife_info("tutorial_wounded_give_info") and not has_alife_info("esc_kill_bandits_quest_have"))
  343. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement