请选择 进入手机版 | 继续访问电脑版

骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY
查看: 1038|回复: 5

[综合] 战场延续功能

[复制链接]

53

主题

484

帖子

315

积分

见习骑士

Rank: 3

UID
2741644
第纳尔
4817
精华
0
互助
30
荣誉
2
贡献
0
魅力
269
注册时间
2016-4-23

骑砍中文站APP会员勋章霸主正版勋章

鲜花(142) 鸡蛋(0)
发表于 2021-8-13 23:38:53 | 显示全部楼层 |阅读模式
本帖最后由 野蛮人y 于 2021-8-14 21:46 编辑

战场延续功能:原战团主角倒下即败退出战场,更改胜负条件,直到最后一个友军倒下才败;

1.添加死亡视角摄像   by MadVader http://forums.taleworlds.com/index.php/topic,134460.0.html中文站转载地址http://bbs.mountblade.com.cn/thread-485769-1-1.html 转载者Brotherdragon
在mission_templates.py前面定义4个摄像功能触发器
      common_init_deathcam=()
      common_start_deathcam= ()
      common_move_deathcam= ()
      common_rotate_deathcam= ()

2.主角倒下即退出战场部分更改成如下battle_continuate=(),在mission_templates.py前面定义触发器,
battle_continuate =(
      1, 4, ti_once, [(main_hero_fallen)],  
          [
                    (assign, "$pin_player_fallen", 1),
                        ##通过检测受伤人数判断是否战场继续,会出现全死受伤有急救还能再进战场一轮的情况
                        ##通过检测战场agent数来定
                (assign, ":allynum", 0),
                (assign, ":enemynum", 0),
                (get_player_agent_no, ":playagent"),
                (agent_get_team, ":ally_team", ":playagent"),
        (try_for_agents,":cur_agent"),
             (agent_is_alive, ":cur_agent"),
             (agent_is_human, ":cur_agent"),
             (agent_get_team, ":agent_team", ":cur_agent"),
                         (try_begin),
                                (teams_are_enemies, ":agent_team", ":ally_team"),
                                (val_add, ":enemynum", 1),
             (else_try),
                                (val_add, ":allynum", 1),
                         (try_end),
        (try_end),
                                                  
            (try_begin),
                      (eq,":allynum",0),                #all death or wounded
                      (gt,":enemynum",0),              
                      (assign,"$g_battle_continuation",0),                #all death or wounded
                      (assign,"$g_battle_result",-1),                ##战场友军为零输
                          (set_mission_result,-1),
                          (call_script, "script_count_mission_casualties_from_agents"),
                          (call_script, "script_custom_battle_end"),
                          (finish_mission),
                        (else_try),                        
                          (ge,":allynum",1), ##还有友军
                          (gt,":enemynum",0),
                          (assign, "$g_battle_continuation", 1),                #战场继续
              (question_box,"str_do_you_want_to_retreat"),
                          (store_trigger_param_1,":answer"),
              (eq,":answer",0),
                          
                          (str_store_string, s5, "str_retreat"),
              (call_script, "script_simulate_retreat", 10, 20, 1),
                      (assign, "$g_battle_result", 0),
                          (set_mission_result,-1),
              (call_script, "script_count_mission_casualties_from_agents"),
                          (finish_mission),
                        (else_try),        
                      (gt,":allynum",0),                #all death or wounded
                      (eq,":enemynum",0),  
                          (assign,"$g_battle_result",1),                ##战场敌军为零胜
                        (try_end),
              ]
        )

3.把原判败条件注释掉custom_battle_check_defeat_condition更改为如下,每5秒检测一次
#################Yeoman##################
custom_battle_check_defeat_condition = (
  5, 0, 0,
  [
    (main_hero_fallen),        
                (assign, ":allynum", 0),
                (assign, ":enemynum", 0),
                (get_player_agent_no, ":playagent"),
                (agent_get_team, ":ally_team", ":playagent"),
        (try_for_agents,":cur_agent"),
             (agent_is_alive, ":cur_agent"),
             (agent_is_human, ":cur_agent"),
             (agent_get_team, ":agent_team", ":cur_agent"),
                         (try_begin),
                                (teams_are_enemies, ":agent_team", ":ally_team"),
                                (val_add, ":enemynum", 1),
             (else_try),
                                (val_add, ":allynum", 1),
                         (try_end),
        (try_end),
                  (try_begin),
                        (eq, ":allynum", 0),##友军全死伤
                        (assign,"$g_battle_continuation",0),##结束战场 输
                        (assign,"$g_battle_result",-1),
        (else_try),
                        (ge, ":allynum", 1),##还有存活友军
                        (ge, ":enemynum", 1),##还有存活敌军
                        (assign,"$g_battle_continuation",1),# 战场继续
                        (assign,"$g_battle_result",0),                #胜负未定               
                (else_try),        
                        (ge, ":allynum", 1),
                        (eq, ":enemynum", 0),##敌军全死伤 胜
                        (assign, "$g_battle_won",1),
                        (assign, "$g_battle_result", 1),               
                        (display_message,"str_msg_battle_won"),
                        (set_mission_result,1),
                (try_end),        
        
        
    ],
  [
                (neq,"$g_battle_result",0),                     
                (call_script, "script_count_mission_casualties_from_agents"),
                (call_script, "script_custom_battle_end"),
                (finish_mission,0),               
    ])
####################Y#################        

4.在战斗场景引用前面定义好的摄像功能、主角倒下胜负判定(这个不要应该也可以,就为了弹出个菜单要不要继续观战)、5秒胜负判定条件,
以野战场景为例, "lead_charge",mtf_battle_mode|mtf_synch_inventory,charge,  注释掉主角倒下即退出战场
      # (1, 4, ti_once, [(main_hero_fallen)],
          # [
              # (assign, "$pin_player_fallen", 1),
              # (str_store_string, s5, "str_retreat"),
              # (call_script, "script_simulate_retreat", 10, 20, 1),
              # (assign, "$g_battle_result", -1),
              # (set_mission_result,-1),
              # (call_script, "script_count_mission_casualties_from_agents"),
              # (finish_mission,0)]),

更改为如下:
        ##############Yeoman#############
      common_init_deathcam,
      common_start_deathcam,
      common_move_deathcam,
      common_rotate_deathcam,
      battle_continuate,         
      custom_battle_check_defeat_condition,

    ################Y################        




评分

参与人数 1魅力 +5 收起 理由
15653910782 + 5 感谢您对骑砍中文站的支持!

查看全部评分

鲜花鸡蛋

NEW_SHIT  在2021-8-14 11:03  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
★★★【三国群英赋】★★★

23

主题

2887

帖子

871

积分

骑士

Rank: 4Rank: 4

UID
2781503
第纳尔
7186
精华
0
互助
1
荣誉
0
贡献
0
魅力
39
注册时间
2016-11-27

骑砍中文站APP会员勋章骑士美德之英勇勋章[杰出会员活跃勋章]霸主正版勋章元老骑士勋章战团正版勋章

鲜花(83) 鸡蛋(1)
发表于 2021-8-14 09:36:08 来自手机 | 显示全部楼层
本帖最后由 15653910782 于 2021-8-14 13:19 编辑

奈何本人没文化,一句卧槽行天下,大佬nb

45

主题

744

帖子

263

积分

见习骑士

Rank: 3

UID
3218444
第纳尔
4
精华
0
互助
8
荣誉
0
贡献
0
魅力
6
注册时间
2021-1-30

霸主正版勋章拿破仑正版勋章

鲜花(80) 鸡蛋(0)
发表于 2021-8-14 11:03:39 | 显示全部楼层
本帖最后由 NEW_SHIT 于 2021-8-14 16:20 编辑

前排~
苹果派真好吃嘿嘿嘿

45

主题

744

帖子

263

积分

见习骑士

Rank: 3

UID
3218444
第纳尔
4
精华
0
互助
8
荣誉
0
贡献
0
魅力
6
注册时间
2021-1-30

霸主正版勋章拿破仑正版勋章

鲜花(80) 鸡蛋(0)
发表于 2021-8-14 17:55:45 | 显示全部楼层
呼叫楼主,编译时他说不认识:allynum与:enemynum这两个词。。

1

主题

9

帖子

3

积分

平民

Rank: 1

UID
3093914
第纳尔
110
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2019-8-7
鲜花(0) 鸡蛋(0)
发表于 2022-4-27 14:11:13 | 显示全部楼层
大佬能给个战团原版的补丁吗,加进去以后一直没生效,求求了

1

主题

9

帖子

3

积分

平民

Rank: 1

UID
3093914
第纳尔
110
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2019-8-7
鲜花(0) 鸡蛋(0)
发表于 2022-4-28 16:42:34 | 显示全部楼层
西岸丰 发表于 2022-4-27 14:11
大佬能给个战团原版的补丁吗,加进去以后一直没生效,求求了

解决了(凑字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。)
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

6月30日0点—7月1日24点全论坛禁言48小时

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

GMT+8, 2022-6-29 21:00 , Processed in 0.116427 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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