骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 2969|回复: 29

[原创] 【魔改系列】战场人数调大,千人团战时切换武器卡顿优化

[复制链接]

16

主题

13

回帖

9

积分

平民

Rank: 1

UID
650235
第纳尔
228
精华
0
互助
0
荣誉
0
贡献
0
魅力
2
注册时间
2012-2-7
鲜花(2) 鸡蛋(0)
发表于 2025-8-3 11:06:08 | 显示全部楼层 |阅读模式
本帖最后由 aliang227 于 2025-9-15 02:42 编辑
版主提示:此修改仅适用于16th北半球,其他MOD并不通用,请谨慎修改


【魔改系列】八个帖子收尾,后会有期


【魔改系列】内置的npc跑路?让更多npc加入队伍
https://bbs.mountblade.com.cn/thread-2112291-1-1.html



【魔改系列】领主带兵能力提升
https://bbs.mountblade.com.cn/thread-2111976-1-1.html



【魔改系列】君主自动花钱买关系
https://bbs.mountblade.com.cn/thread-2111973-1-1.html




【魔改系列】每个城堡刷出巡逻队
https://bbs.mountblade.com.cn/thread-2111925-1-1.html




【魔改系列】分封制变为封建制的税收制度补丁
https://bbs.mountblade.com.cn/thread-2102924-1-1.html




【魔改系列】战斗结束重新计算领主声望
https://bbs.mountblade.com.cn/thread-2102923-1-1.html




【魔改系列】战场人数调大,千人团战时切换武器卡顿优化
https://bbs.mountblade.com.cn/thread-2112284-1-1.html


【魔改系列】战场人数调大,千人团战时匹配敌人的卡顿优化
https://bbs.mountblade.com.cn/thread-2112275-1-1.html




【魔改系列】加了不少功能,能比较方便大家使用的,也放到论坛的,其他的改造量太大,就没办法了

战场人数,经过这段时间优化 现在也开到千人团战,用上wse2 dx9渲染  也不卡顿了

目前战团的优化就接近尾声了,后面玩玩其他游戏(骑砍还是很经典游戏,还会回来的)

所有把上一个帖子的提到的ai切换武器的优化也贴出来,有始有终了。。

【魔改系列】战场人数调大,千人团战时匹配敌人的卡顿优化

这个就只放源码了,我本地的mod,经过大量改造,各种txt已经和原版差距不小了,没办法提供txt版本了



module_mission_templates.py 中 agent_weapons_fix 方法,有一段是关于是战斗时切换武器

每秒遍历所有单位,判断该单位周围是否有敌人

这就是一个agents嵌套,改造思路,会有一定程度失真,

将所有单位划分到一个个 500×500的网格内  (网格越小,越精确,我选的500,16th北半球的坐标范围应该是100w×100w ?)

每秒遍历所有单位,获取该单位在哪个网格内,直接读取该网格是否有敌人

这样1k*1k 就变成了 1k+1k

下面放源码,回复可见防止沉贴。。


module_scripts.py 最后面增加以下几个函数


("ll_init_battle_pos",
    [
     # reset
      (try_for_range, ":index", 1000, 3000),
        (troop_set_slot,"trp_castle_1_seneschal",":index",0),
        (troop_set_slot,"trp_castle_2_seneschal",":index",0),
        (troop_set_slot,"trp_castle_3_seneschal",":index",0),
        (troop_set_slot,"trp_castle_4_seneschal",":index",0),
      (try_end),

      (try_for_agents, ":agent_no"),
        (agent_is_alive, ":agent_no"),
        (agent_is_human, ":agent_no"),
        (agent_get_position, pos63, ":agent_no"),
        (position_get_x, ":valuex", pos63),
        (position_get_y, ":valuey", pos63),
        # (assign, reg91,":valuex"),
        # (assign, reg92,":valuey"),
        # (assign, reg93,inspect.currentframe().f_lineno),
        # (display_message, "str_zlp_debug"),
        (val_div, ":valuex", 500),
        (val_div, ":valuey", 500),

        (val_add, ":valuex", 1000),
        (val_add, ":valuey", 1000),
      
        (try_begin),
          (agent_is_ally, ":agent_no"),
          (troop_set_slot,"trp_castle_1_seneschal",":valuex",1),
          (troop_set_slot,"trp_castle_2_seneschal",":valuey",1),
        (else_try),
          (troop_set_slot,"trp_castle_3_seneschal",":valuex",1),
          (troop_set_slot,"trp_castle_4_seneschal",":valuey",1),
        (try_end),
      
        # (assign, reg91,":valuex"),
        # (assign, reg92,":valuey"),
        # (assign, reg93,inspect.currentframe().f_lineno),
        # (display_message, "str_zlp_debug"),
      (try_end),
  
  ]),

   ("cf_ll_cf_agent_check_no_enemies_nearby",
    [
     (store_script_param, ":agent_no", 1),


      (agent_get_position, pos63, ":agent_no"),
      (position_get_x, ":valuex", pos63),
      (position_get_y, ":valuey", pos63),

      (val_div, ":valuex", 500),
      (val_div, ":valuey", 500),

      (val_add, ":valuex", 1000),
      (val_add, ":valuey", 1000),
      
      (try_begin),
        (neg|agent_is_ally, ":agent_no"),
        (troop_get_slot,":has_enemy_x","trp_castle_1_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_2_seneschal",":valuey"),
      (else_try),
        (troop_get_slot,":has_enemy_x","trp_castle_3_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_4_seneschal",":valuey"),
      (try_end),

      (eq, ":has_enemy_y", 0),
      (eq, ":has_enemy_x", 0),
  ]),
  ("cf_ll_cf_agent_check_enemies_nearby",
    [
     (store_script_param, ":agent_no", 1),

      (agent_get_position, pos63, ":agent_no"),
      (position_get_x, ":valuex", pos63),
      (position_get_y, ":valuey", pos63),
      
      (val_div, ":valuex", 500),
      (val_div, ":valuey", 500),

      (val_add, ":valuex", 1000),
      (val_add, ":valuey", 1000),
      
      (try_begin),
        (neg|agent_is_ally, ":agent_no"),
        (troop_get_slot,":has_enemy_x","trp_castle_1_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_2_seneschal",":valuey"),
      (else_try),
        (troop_get_slot,":has_enemy_x","trp_castle_3_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_4_seneschal",":valuey"),
      (try_end),

      (eq, ":has_enemy_y", 1),
      (eq, ":has_enemy_x", 1),
  ]),

  ("ll_agent_get_num_enemies_nearby",
    [
     (store_script_param, ":agent_no", 1),

      (agent_get_position, pos63, ":agent_no"),
      (position_get_x, ":valuex", pos63),
      (position_get_y, ":valuey", pos63),
      
      (val_div, ":valuex", 500),
      (val_div, ":valuey", 500),

      (val_add, ":valuex", 1000),
      (val_add, ":valuey", 1000),
      
      (try_begin),
        (neg|agent_is_ally, ":agent_no"),
        (troop_get_slot,":has_enemy_x","trp_castle_1_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_2_seneschal",":valuey"),
      (else_try),
        (troop_get_slot,":has_enemy_x","trp_castle_3_seneschal",":valuex"),
        (troop_get_slot,":has_enemy_y","trp_castle_4_seneschal",":valuey"),
      (try_end),

      (try_begin),
        (eq, ":has_enemy_y", 1),
        (eq, ":has_enemy_x", 1),
        (assign, reg0, 1),
      (else_try),
        (assign, reg0, 0),
      (try_end),
  ]),



module_mission_templates.py 中找到 agent_weapons_fix
第一行代码先调用一次
  1. (call_script, "script_ll_init_battle_pos"),
复制代码


然后把修改调用的方法
cf_agent_check_no_enemies_nearby => cf_ll_cf_agent_check_no_enemies_nearby
cf_agent_check_enemies_nearby => cf_ll_cf_agent_check_enemies_nearby
agent_get_num_enemies_nearby => ll_agent_get_num_enemies_nearby





还是那句话,,不会编译源码的,,可以把定时时间拉长,,,效果咋样。。不太清楚,不过哪怕卡一点,也想开大团,总比1s好点。。
我觉得1s切,和10s 切,感官上,可能没那么大,毕竟都千人战场了,很少会再去关心士兵的武器切换了。。。







41

主题

734

回帖

238

积分

见习骑士

Rank: 3

UID
1717081
第纳尔
4132
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-12-13
鲜花(28) 鸡蛋(0)
发表于 2025-8-3 12:30:10 | 显示全部楼层
哦看看***********

14

主题

83

回帖

49

积分

扈从

Rank: 2Rank: 2

UID
3476407
第纳尔
9
精华
0
互助
4
荣誉
0
贡献
0
魅力
12
注册时间
2023-1-17
鲜花(7) 鸡蛋(0)
发表于 2025-8-3 20:42:27 | 显示全部楼层
好东西
我要一直听同花顺,直到我的人生一帆风顺

0

主题

23

回帖

7

积分

平民

Rank: 1

UID
92176
第纳尔
69
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2008-9-16
鲜花(0) 鸡蛋(0)
发表于 2025-8-4 11:21:03 | 显示全部楼层
SADADA                      .

0

主题

27

回帖

8

积分

平民

Rank: 1

UID
3342743
第纳尔
97
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2022-3-29
鲜花(0) 鸡蛋(0)
发表于 2025-8-4 23:46:48 来自手机 | 显示全部楼层
什么配置砍1能千人大战,全骑兵大多数mod300人左右就差不多了,再多人群就猛掉帧。来自: Android客户端

0

主题

192

回帖

58

积分

扈从

Rank: 2Rank: 2

UID
2729626
第纳尔
1094
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-3-11
鲜花(0) 鸡蛋(0)
发表于 2025-8-5 11:26:19 | 显示全部楼层
谢谢楼主的分享,谢谢啦。

28

主题

828

回帖

407

积分

骑士

民间工匠

Rank: 4Rank: 4

UID
1115705
第纳尔
4077
精华
0
互助
26
荣誉
2
贡献
0
魅力
30
注册时间
2012-12-13
鲜花(236) 鸡蛋(10)
发表于 2025-8-5 13:13:50 | 显示全部楼层
谢谢楼主的分享,谢谢啦。

0

主题

21

回帖

6

积分

平民

Rank: 1

UID
2983493
第纳尔
28
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2018-2-18
鲜花(0) 鸡蛋(0)
发表于 2025-8-5 15:22:57 | 显示全部楼层
6666666666666666

25

主题

67

回帖

28

积分

随仆

Rank: 1

UID
1089191
第纳尔
448
精华
0
互助
0
荣誉
0
贡献
0
魅力
1
注册时间
2012-11-23
鲜花(3) 鸡蛋(0)
发表于 2025-8-5 21:49:52 | 显示全部楼层
谢谢楼主的分享,谢谢啦

0

主题

5

回帖

2

积分

平民

Rank: 1

UID
3786814
第纳尔
0
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2025-8-8
鲜花(0) 鸡蛋(0)
发表于 2025-8-8 17:41:29 | 显示全部楼层
6666666666666666666666

0

主题

209

回帖

63

积分

扈从

Rank: 2Rank: 2

UID
2718764
第纳尔
2429
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-1-18
鲜花(5) 鸡蛋(0)
发表于 2025-8-10 09:24:28 | 显示全部楼层
666666666666666

0

主题

31

回帖

14

积分

随仆

Rank: 1

UID
3713195
第纳尔
4
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2024-11-9
鲜花(0) 鸡蛋(0)
发表于 2025-8-10 20:04:17 | 显示全部楼层
...................

5

主题

3030

回帖

946

积分

骑士

Rank: 4Rank: 4

UID
86936
第纳尔
12687
精华
0
互助
5
荣誉
1
贡献
0
魅力
71
注册时间
2008-8-10

原版正版勋章战团正版勋章元老骑士勋章汉匈决战正版勋章维京征服正版勋章霸主正版勋章

鲜花(65) 鸡蛋(1)
发表于 2025-8-11 11:20:11 | 显示全部楼层
感谢LZ大佬分享,这么大的量,改txt也很困难……

0

主题

8

回帖

2

积分

平民

Rank: 1

UID
3261343
第纳尔
95
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2021-8-11
鲜花(0) 鸡蛋(0)
发表于 2025-8-15 15:42:04 | 显示全部楼层
试试咸淡

0

主题

26

回帖

8

积分

平民

Rank: 1

UID
2745532
第纳尔
4
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-5-14
鲜花(0) 鸡蛋(0)
发表于 2025-8-15 19:02:03 | 显示全部楼层
6666666666666666

0

主题

1

回帖

5

积分

平民

Rank: 1

UID
3791159
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-8-18
鲜花(0) 鸡蛋(0)
发表于 2025-8-18 18:38:01 | 显示全部楼层
66666666666666

0

主题

38

回帖

16

积分

随仆

Rank: 1

UID
3223690
第纳尔
139
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2021-2-27
鲜花(0) 鸡蛋(0)
发表于 2025-8-22 14:02:05 | 显示全部楼层
谢谢楼主的分享

22

主题

123

回帖

59

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
68
精华
0
互助
3
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(8) 鸡蛋(0)
发表于 2025-8-22 14:59:41 | 显示全部楼层
蟹蟹楼主

0

主题

7

回帖

7

积分

平民

Rank: 1

UID
3648162
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2024-4-23
鲜花(0) 鸡蛋(0)
发表于 2025-8-24 20:39:00 | 显示全部楼层
111111111111111111111

0

主题

9

回帖

8

积分

平民

Rank: 1

UID
3355795
第纳尔
63
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2022-5-3
鲜花(0) 鸡蛋(0)
发表于 2025-8-25 00:48:54 | 显示全部楼层
6666666666666666

0

主题

12

回帖

9

积分

平民

Rank: 1

UID
3783640
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-7-29
鲜花(0) 鸡蛋(0)
发表于 2025-8-27 12:07:51 | 显示全部楼层

1

主题

41

回帖

13

积分

随仆

Rank: 1

UID
3115211
第纳尔
399
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2019-10-31
鲜花(0) 鸡蛋(0)
发表于 2025-8-28 10:08:54 | 显示全部楼层
谢谢楼主的分享

1

主题

16

回帖

5

积分

平民

Rank: 1

UID
2731951
第纳尔
271
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-3-25
鲜花(0) 鸡蛋(0)
发表于 2025-8-28 17:25:17 | 显示全部楼层
研究下研究下

0

主题

3

回帖

6

积分

平民

Rank: 1

UID
3552705
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2023-8-19
鲜花(0) 鸡蛋(0)
发表于 2025-8-31 08:37:41 | 显示全部楼层
支持一下

0

主题

2

回帖

1

积分

平民

Rank: 1

UID
3186951
第纳尔
6
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2020-5-26
鲜花(0) 鸡蛋(0)
发表于 2025-9-3 19:48:23 | 显示全部楼层
11111111111111

4

主题

2046

回帖

650

积分

骑士

Rank: 4Rank: 4

UID
1198946
第纳尔
12061
精华
0
互助
1
荣誉
3
贡献
0
魅力
2
注册时间
2013-2-18

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

鲜花(25) 鸡蛋(0)
发表于 2025-9-3 19:55:34 | 显示全部楼层
谢谢分享

0

主题

31

回帖

14

积分

随仆

Rank: 1

UID
3713195
第纳尔
4
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2024-11-9
鲜花(0) 鸡蛋(0)
发表于 2025-9-5 13:21:53 | 显示全部楼层
...............

1

主题

11

回帖

9

积分

平民

Rank: 1

UID
3794303
第纳尔
5
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2025-8-24
鲜花(0) 鸡蛋(0)
发表于 2025-9-5 16:30:28 来自手机 | 显示全部楼层
让我看看看看看

2

主题

42

回帖

13

积分

随仆

Rank: 1

UID
3000261
第纳尔
603
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2018-5-7
鲜花(1) 鸡蛋(0)
发表于 2025-9-6 16:15:48 | 显示全部楼层
谢谢分享

1

主题

24

回帖

8

积分

平民

Rank: 1

UID
2790684
第纳尔
139
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2016-12-31
鲜花(0) 鸡蛋(0)
发表于 6 天前 | 显示全部楼层
骑射ai关掉   阵型关掉   就不卡了
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-9-15 03:07 , Processed in 0.106435 second(s), 75 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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