骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 4223|回复: 9

[求助] 酒馆战斗场景

[复制链接]

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
发表于 2020-4-21 23:11:04 | 显示全部楼层 |阅读模式
本帖最后由 wxj2057605650 于 2020-4-21 23:15 编辑

求大佬帮忙分析一下酒馆和酒鬼战斗场景的原理
这个是酒馆战斗对话
  1. #TAVERN DRUNK DIALOGS酒鬼
  2.    [anyone, "start",
  3.    [
  4.         (eq, "$g_talk_troop", "trp_belligerent_drunk"),
  5.         ],
  6.    "What are you looking at?", "drunk_response", #你在看什么
  7.    [
  8.      (try_begin),
  9.        (eq, "$g_main_attacker_agent", 0),
  10.        (call_script, "script_activate_tavern_attackers"),      
  11.      (try_end),
  12.      (mission_disable_talk),
  13.    ]],









  14.    [anyone, "start",
  15.    [
  16.         (eq, "$g_talk_troop", "trp_hired_assassin"),
  17.         ],
  18.    "Are you looking at me?", "drunk_response", #你在看我??
  19.    [
  20.      (try_begin),
  21.        (eq, "$g_main_attacker_agent", 0),
  22.        (call_script, "script_activate_tavern_attackers"),      
  23.      (try_end),
  24.      (mission_disable_talk),
  25.    ]],













  26.    [anyone, "start",
  27.    [
  28.         (eq, "$g_talk_troop", "trp_hired_assassin"),
  29.                 (eq,1,0),
  30.         ],
  31.    "{!}Added to match dialog ids with translations.", "close_window",
  32.    []],

  33.    
  34.    
  35.    
  36.    
  37.    
  38.    
  39.    
  40.    
  41.    
  42.    
  43.    
  44.    
  45.   [anyone, "start", [
  46.   (is_between, "$g_talk_troop", tavernkeepers_begin, tavernkeepers_end),
  47.   (gt, "$g_main_attacker_agent", 0),
  48.   (neg|agent_is_alive, "$g_main_attacker_agent"),
  49.   
  50.   (try_begin),
  51.          (neg|agent_is_alive, "$g_main_attacker_agent"),
  52.         (agent_get_troop_id, ":type", "$g_main_attacker_agent"),
  53.         (eq, ":type", "trp_hired_assassin"),
  54.         
  55.         (str_store_string, s9, "str_strange_that_one_didnt_seem_like_your_ordenary_troublemaker_he_didnt_drink_all_that_much__he_just_stood_there_quietly_and_watched_the_door_you_may_wish_to_consider_whether_you_have_any_enemies_who_know_you_are_in_town_a_pity_that_blood_had_to_be_spilled_in_my_establishment"),

  56.     (assign, "$g_main_attacker_agent", 0),
  57.         (troop_add_gold, "trp_player", 50),
  58.         (troop_add_item, "trp_player", "itm_sword_viking_1", 0),
  59.         
  60.   (else_try),
  61.         #(display_message, "str_wielded_item_reg3"),
  62.         
  63.         (lt, "$g_attacker_drawn_weapon", "itm_tutorial_spear"),
  64.         (str_store_string, s9, "str_you_never_let_him_draw_his_weapon_still_it_looked_like_he_was_going_to_kill_you_take_his_sword_and_purse_i_suppose_he_was_trouble_but_its_not_good_for_an_establishment_to_get_a_name_as_a_place_where_men_are_killed"),

  65.     (assign, "$g_main_attacker_agent", 0),
  66.         (troop_add_gold, "trp_player", 50),
  67.         (troop_add_item, "trp_player", "itm_sword_viking_1", 0),
  68.         (call_script, "script_troop_change_relation_with_troop", "trp_player", "$g_talk_troop", -1),
  69.   (else_try),
  70.         (neg|agent_is_alive, "$g_main_attacker_agent"),
  71.         (str_store_string, s9, "str_well_id_say_that_he_started_it_that_entitles_you_to_his_sword_and_purse_i_suppose_have_a_drink_on_the_house_as_i_daresay_youve_saved_a_patron_or_two_a_broken_skull_still_i_hope_he_still_has_a_pulse_its_not_good_for_an_establishment_to_get_a_name_as_a_place_where_men_are_killed"),
  72.     (assign, "$g_main_attacker_agent", 0),
  73.         (troop_add_gold, "trp_player", 50),
  74.         (troop_add_item, "trp_player", "itm_sword_viking_1", 0),
  75.         (call_script, "script_troop_change_relation_with_troop", "trp_player", "$g_talk_troop", 1),
  76.   (try_end),        
  77.   (troop_set_slot, "trp_hired_assassin", slot_troop_cur_center, -1),
  78.   ],
  79.    "{!}{s9}", "player_duel_response", [
  80.    ]],

  81.    
  82.    
  83.    
  84.    
  85.    
  86.    
  87.    
  88.    
  89.    
  90.    
  91.   [anyone, "start", [
  92.   (is_between, "$g_talk_troop", tavernkeepers_begin, tavernkeepers_end),
  93.   (gt, "$g_main_attacker_agent", 0),
  94.   (try_begin),
  95.         (get_player_agent_no, ":player_agent"),
  96.         (agent_get_wielded_item, ":wielded_item", ":player_agent", 0),
  97.         (is_between, ":wielded_item", "itm_darts", "itm_torch"),
  98.         (neq, ":wielded_item", "itm_javelin_melee"),
  99.         (neq, ":wielded_item", "itm_throwing_spear_melee"),
  100.         (neq, ":wielded_item", "itm_jarid_melee"),
  101.         (neq, ":wielded_item", "itm_light_throwing_axes_melee"),
  102.         (neq, ":wielded_item", "itm_throwing_axes_melee"),
  103.         (neq, ":wielded_item", "itm_heavy_throwing_axes_melee"),
  104.         (str_store_string, s9, "str_stop_no_shooting_no_shooting"),

  105.     (assign, ":default_item", -1),
  106.         (troop_get_inventory_capacity, ":end_cond", "trp_player"),
  107.         (try_for_range, ":i_slot", 0, ":end_cond"),
  108.       (troop_get_inventory_slot, ":item_id", "trp_player", ":i_slot"),
  109.       
  110.       (is_between, ":item_id", weapons_begin, weapons_end),
  111.       (neg|is_between, ":item_id", ranged_weapons_begin, ranged_weapons_end),
  112.       
  113.       (assign, ":default_item", ":item_id"),
  114.       (assign, ":end_cond", 0), #break
  115.     (try_end),
  116.         
  117.         (agent_set_wielded_item, ":player_agent", ":default_item"),
  118.   (else_try),
  119.         (str_store_string, s9, "str_em_ill_stay_out_of_this"),
  120.   (try_end),
  121.   ],
  122.    "{!}{s9}", "close_window", [
  123.    ]],


  124.    
  125.    
  126.    
  127.    
  128.    
  129.    
  130.    
  131.   [anyone, "drunk_fight_start", [],
  132.    "I'll wipe that smirk right off your face!", "close_window", [
  133.         (troop_set_slot, "trp_belligerent_drunk", slot_troop_cur_center, 0),        
  134.    ]],
  135.       
  136.       
  137.       
  138.       
  139.       
  140.       
  141.       
  142.       
  143.       
  144.       
  145.   [anyone|plyr, "drunk_response",
  146.   [
  147.     (troop_slot_ge, "trp_player", slot_troop_renown, 150),
  148.   ],
  149.    "Do you have any idea who I am?", "drunk_player_high_renown", [
  150.    ]],












  151.   [anyone, "drunk_player_high_renown", [
  152.   (eq, "$g_talk_troop", "trp_hired_assassin"),
  153.   ],
  154.    "Do I care?", "drunk_fight_start", [
  155.    ]],










  156.   [anyone|plyr, "drunk_player_high_renown", [],
  157.    "I thought as much. Now, remove yourself from here", "close_window",
  158.    [
  159.      (assign, "$drunks_dont_pick_fights", 1),
  160.      (troop_set_slot, "trp_belligerent_drunk", slot_troop_cur_center, 0),
  161.          
  162.      (call_script, "script_deactivate_tavern_attackers"),
  163.      
  164.      (assign, "$g_belligerent_drunk_leaving", "$g_main_attacker_agent"),
  165.      
  166.      (mission_enable_talk),
  167.      
  168.      (try_for_agents, ":agent"),
  169.        (agent_is_alive, ":agent"),
  170.        (agent_get_position, pos4, ":agent"),
  171.        (agent_set_scripted_destination, ":agent", pos4),
  172.      (try_end),
  173.      
  174.      (entry_point_get_position, pos1, 0),
  175.      (agent_set_scripted_destination, "$g_main_attacker_agent", pos1),
  176.      
  177.      (assign, "$g_main_attacker_agent", 0),
  178.    ]],
  179.    
  180.    
复制代码

我摸索了一下,猜测是给他们分组然后实现战斗,但具体添加到游戏就报错了,麻烦大佬们注释几个重要的语句,谢谢啦
求大佬们分析一下这个代码
万分感谢

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2020-4-21 23:22:58 | 显示全部楼层
感觉和抓捕任务的那个有点像,这个是抓捕任务的代码,重合部分没看懂。。。求大佬们赐教
  1. # Village traitor


  2.   [trp_fugitive|plyr,"fugitive_1", [
  3.      (quest_get_slot, ":quest_target_dna", "qst_hunt_down_fugitive", slot_quest_target_dna),
  4.      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
  5.      (str_store_string, s4, s50),
  6.       ], "I am looking for a murderer by the name of {s4}. You fit his description.", "fugitive_2",[]],
  7.   
  8.   
  9.   

  10.   [anyone,"fugitive_fight_start", [], "Die, dog!", "close_window",
  11.    [
  12.         (set_party_battle_mode),
  13.     (quest_set_slot, "qst_hunt_down_fugitive", slot_quest_current_state, 1),
  14.     (call_script, "script_activate_tavern_attackers"),
  15.    ]],
  16.        
  17.        
  18.   [anyone,"member_chat", [(check_quest_active, "qst_incriminate_loyal_commander"),
  19.                           (quest_slot_eq, "qst_incriminate_loyal_commander", slot_quest_current_state, 0),
  20.                           (store_conversation_troop, "$g_talk_troop"),
  21.                           (eq, "$g_talk_troop", "$incriminate_quest_sacrificed_troop"),
  22.                           (quest_get_slot, ":quest_target_center", "qst_incriminate_loyal_commander", slot_quest_target_center),
  23.                           (store_distance_to_party_from_party, ":distance", "p_main_party", ":quest_target_center"),
  24.                           (lt, ":distance", 10),
  25.                           ], "Yes {sir/madam}?", "sacrificed_messenger_1",[]],




  26.   [anyone|plyr,"sacrificed_messenger_1", [(quest_get_slot, ":quest_target_center", "qst_incriminate_loyal_commander", slot_quest_target_center),
  27.                                           (str_store_party_name, s1, ":quest_target_center"),
  28.                                           (quest_get_slot, ":quest_object_troop", "qst_incriminate_loyal_commander", slot_quest_object_troop),
  29.                                           (str_store_troop_name, s2, ":quest_object_troop"),],
  30.    "Take this letter to {s1} and give it to {s2}.", "sacrificed_messenger_2",[]],
  31.   
  32.   
  33.   
  34.   
  35.   
  36.   
  37.   
  38.   [anyone|plyr,"sacrificed_messenger_3", [],
  39.    "Good. I will not forget your service. You will be rewarded when you return.", "close_window",[(party_remove_members, "p_main_party", "$g_talk_troop", 1),
  40.                                      (set_spawn_radius, 0),
  41.                                      (spawn_around_party, "p_main_party", "pt_sacrificed_messenger"),
  42.                                      (assign, ":new_party", reg0),
  43.                                      (party_add_members, ":new_party", "$g_talk_troop", 1),
  44.                                      (party_set_ai_behavior, ":new_party", ai_bhvr_travel_to_party),
  45.                                      (quest_get_slot, ":quest_target_center", "qst_incriminate_loyal_commander", slot_quest_target_center),
  46.                                      (party_set_ai_object, ":new_party", ":quest_target_center"),
  47.                                      (party_set_flags, ":new_party", pf_default_behavior, 0),
  48.                                      (quest_set_slot, "qst_incriminate_loyal_commander", slot_quest_current_state, 2),
  49.                                      (quest_set_slot, "qst_incriminate_loyal_commander", slot_quest_target_party, ":new_party")]],








  50. [anyone|plyr,"sacrificed_messenger_cancel_2",
  51.                   [(quest_get_slot, ":quest_giver", "qst_incriminate_loyal_commander", slot_quest_giver_troop),
  52.                                                  (str_store_troop_name, s3, ":quest_giver"),
  53.                                                              ], "There's a trap set up for you in the town.\
  54. {s3} ordered me to sacrifice one of my chosen warriors to fool the enemy,\
  55. but he will just need to find another way.", "sacrificed_messenger_cancel_3",[
  56.      (quest_get_slot, ":quest_giver", "qst_incriminate_loyal_commander", slot_quest_giver_troop),
  57.      (quest_set_slot, "qst_incriminate_loyal_commander", slot_quest_current_state, 1),
  58.      (call_script, "script_change_player_relation_with_troop",":quest_giver",-5),
  59.      (call_script, "script_change_player_honor", 3),
  60.      (call_script, "script_fail_quest", "qst_incriminate_loyal_commander"),
  61.      ]],
  62.   
  63.   
  64.   
  65.   
  66.   
  67.   

  68.   [party_tpl|pt_sacrificed_messenger,"start", [],
  69.    "Don't worry, {sir/madam}, I'm on my way.", "close_window",[(assign, "$g_leave_encounter",1)]],
复制代码

0

主题

4

回帖

1

积分

平民

Rank: 1

UID
3172856
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-4-20
鲜花(0) 鸡蛋(0)
发表于 2020-4-21 23:32:29 | 显示全部楼层
看得我头皮都发麻,不过应该是分组,然后战斗

17

主题

3706

回帖

2142

积分

贵族[MOD作者]

世纪风云制作组[主程序]
《以耶路撒冷之名》MOD发布帖

锻造宗师

Rank: 7Rank: 7Rank: 7

UID
297953
第纳尔
12878
精华
0
互助
87
荣誉
59
贡献
185
魅力
659
注册时间
2010-8-16

有生之年勋章战团正版勋章火与剑正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之正义勋章[杰出会员荣誉勋章]霸主美术大奖赛第一届战团中国联赛季军勋章

鲜花(260) 鸡蛋(0)
发表于 2020-4-22 14:47:41 | 显示全部楼层
就是把会攻击人的agent设置到一个不同的队伍就行了 你看见老板他们跑路是因为用了另一个脚本让他们惊慌起来

评分

参与人数 1第纳尔 +10 收起 理由
幼稚园殺手 + 10 乐于助人!

查看全部评分

http://i4.bvimg.com/664741/d461bdb2e4c3004c.jpg 以耶路撒冷之名

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2020-4-22 14:50:06 | 显示全部楼层
埃里斯修士 发表于 2020-4-22 14:47
就是把会攻击人的agent设置到一个不同的队伍就行了 你看见老板他们跑路是因为用了另一个脚本让他们惊慌起来

感谢大佬,但判断胜利是不是检测兵种是否存活

17

主题

3706

回帖

2142

积分

贵族[MOD作者]

世纪风云制作组[主程序]
《以耶路撒冷之名》MOD发布帖

锻造宗师

Rank: 7Rank: 7Rank: 7

UID
297953
第纳尔
12878
精华
0
互助
87
荣誉
59
贡献
185
魅力
659
注册时间
2010-8-16

有生之年勋章战团正版勋章火与剑正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之正义勋章[杰出会员荣誉勋章]霸主美术大奖赛第一届战团中国联赛季军勋章

鲜花(260) 鸡蛋(0)
发表于 2020-4-22 15:19:05 | 显示全部楼层
wxj2057605650 发表于 2020-4-22 14:50
感谢大佬,但判断胜利是不是检测兵种是否存活

是的 你倒了就是你输了 他死了 就是你赢了 所以有时候你击杀了酒鬼会有短暂一下的延迟才弹老板对话
http://i4.bvimg.com/664741/d461bdb2e4c3004c.jpg 以耶路撒冷之名

58

主题

960

回帖

545

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
81513
第纳尔
5223
精华
1
互助
18
荣誉
5
贡献
100
魅力
124
注册时间
2008-6-26
QQ
鲜花(120) 鸡蛋(0)
发表于 2020-4-22 16:11:52 | 显示全部楼层
埃里斯修士 发表于 2020-4-22 14:47
就是把会攻击人的agent设置到一个不同的队伍就行了 你看见老板他们跑路是因为用了另一个脚本让他们惊慌起来

我对那个让人惊慌起来的逻辑很有兴趣,之前无意中调出来过,但后来不知道怎么没了。这位老兄清楚是哪个逻辑让他们惊慌的吗?

14

主题

81

回帖

54

积分

扈从

Rank: 2Rank: 2

UID
3133967
第纳尔
604
精华
0
互助
5
荣誉
0
贡献
0
魅力
23
注册时间
2020-2-5
鲜花(13) 鸡蛋(0)
 楼主| 发表于 2020-4-22 16:23:07 | 显示全部楼层
埃里斯修士 发表于 2020-4-22 15:19
是的 你倒了就是你输了 他死了 就是你赢了 所以有时候你击杀了酒鬼会有短暂一下的延迟才弹老板对话

好的好的,谢谢大佬指点

0

主题

4

回帖

1

积分

平民

Rank: 1

UID
3172856
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-4-20
鲜花(0) 鸡蛋(0)
发表于 2020-4-22 23:07:16 | 显示全部楼层
求分组代码是什么,那个agent??

0

主题

3

回帖

1

积分

平民

Rank: 1

UID
3173845
第纳尔
7
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-4-21
鲜花(0) 鸡蛋(0)
发表于 2020-4-23 23:06:03 | 显示全部楼层
埃里斯修士 发表于 2020-4-22 15:19
是的 你倒了就是你输了 他死了 就是你赢了 所以有时候你击杀了酒鬼会有短暂一下的延迟才弹老板对话

想问一下,这个判断条件是在场景触发器添加吗,但里面一堆东西,根本看不懂,和心中飞翔的说明不太一样,怎么搞
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-11-19 10:26 , Processed in 0.136956 second(s), 27 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表