骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[功能与代码] 战场延续功能

[复制链接]

61

主题

450

回帖

363

积分

见习骑士

Rank: 3

UID
2741644
第纳尔
5753
精华
0
互助
38
荣誉
2
贡献
15
魅力
411
注册时间
2016-4-23

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

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

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

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),
                (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#################   
上面还有个判胜条件把玩家倒下那句注释掉:
custom_battle_check_victory_condition = (
  1, 60, ti_once,
  [
    (store_mission_timer_a,reg(1)),
    (ge,reg(1),10),
    (all_enemies_defeated, 2),
    # (neg|main_hero_fallen, 0), ##战场延续主角伤敌全死也是胜     

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################        





评分

参与人数 2第纳尔 +20 互助 +2 魅力 +25 收起 理由
Aomine Daiki + 20 + 2 + 20 文章不错,继续努力!
15653910782 + 5 感谢您对骑砍中文站的支持!

查看全部评分

鲜花鸡蛋

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

24

主题

3788

回帖

1164

积分

骑士

Rank: 4Rank: 4

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

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

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

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

54

主题

899

回帖

341

积分

见习骑士

游骑士战队[YQS]
联机ID:Apple_PAI

Rank: 3

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

战团正版勋章2022国庆青训杯冠军勋章第一届拿破仑中国刺刀联赛近卫勋章霸主正版勋章拿破仑正版勋章

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

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

54

主题

899

回帖

341

积分

见习骑士

游骑士战队[YQS]
联机ID:Apple_PAI

Rank: 3

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

战团正版勋章2022国庆青训杯冠军勋章第一届拿破仑中国刺刀联赛近卫勋章霸主正版勋章拿破仑正版勋章

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

1

主题

10

回帖

3

积分

平民

Rank: 1

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

1

主题

10

回帖

3

积分

平民

Rank: 1

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

解决了(凑字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。)

46

主题

628

回帖

492

积分

骑士

Rank: 4Rank: 4

UID
3398051
第纳尔
1845
精华
0
互助
48
荣誉
5
贡献
10
魅力
341
注册时间
2022-8-13
鲜花(57) 鸡蛋(0)
发表于 2022-8-29 21:10:13 | 显示全部楼层
可以延续,但是不能操控摄像机。。。

46

主题

628

回帖

492

积分

骑士

Rank: 4Rank: 4

UID
3398051
第纳尔
1845
精华
0
互助
48
荣誉
5
贡献
10
魅力
341
注册时间
2022-8-13
鲜花(57) 鸡蛋(0)
发表于 2022-10-2 12:10:50 | 显示全部楼层
本帖最后由 ggfgfgf 于 2024-7-30 12:06 编辑
ggfgfgf 发表于 2022-8-29 21:10
可以延续,但是不能操控摄像机。。。

可以了,个鸡毛,代码逻辑有问题

0

主题

32

回帖

10

积分

随仆

Rank: 1

UID
3055742
第纳尔
193
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2019-1-28
鲜花(0) 鸡蛋(0)
发表于 2023-9-13 10:49:18 | 显示全部楼层
火钳刘明

5

主题

38

回帖

23

积分

随仆

Rank: 1

UID
3561673
第纳尔
70
精华
0
互助
2
荣誉
0
贡献
0
魅力
2
注册时间
2023-9-14
鲜花(1) 鸡蛋(0)
发表于 2023-9-15 13:49:48 | 显示全部楼层
显示warning g_battle_contiu........是怎么回事

4

主题

13

回帖

5

积分

平民

Rank: 1

UID
3148062
第纳尔
28
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-3-19
鲜花(0) 鸡蛋(0)
发表于 2024-7-29 16:57:14 | 显示全部楼层
大佬要是能做个补丁就太好了

46

主题

628

回帖

492

积分

骑士

Rank: 4Rank: 4

UID
3398051
第纳尔
1845
精华
0
互助
48
荣誉
5
贡献
10
魅力
341
注册时间
2022-8-13
鲜花(57) 鸡蛋(0)
发表于 2024-7-30 12:07:48 | 显示全部楼层
你这逻辑有问题,输的时候不能结束战斗,卡死在mission里了
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-12-27 12:54 , Processed in 0.137946 second(s), 33 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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