骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[原创] 【风云三国修改】武将/将领逃脱/抓捕——必定俘虏修改!

[复制链接]

27

主题

65

回帖

103

积分

见习骑士

Rank: 3

UID
3174756
第纳尔
332
精华
0
互助
15
荣誉
0
贡献
0
魅力
191
注册时间
2020-4-23
鲜花(4) 鸡蛋(0)
发表于 2024-2-16 13:07:25 | 显示全部楼层 |阅读模式
本帖最后由 nmsnb111 于 2024-2-21 13:00 编辑

引路总结贴,更多修改:【风云三国修改】TXT修改总结



推翻了风云三国版区长期以来不能修改俘虏几率的定论

这次用到\Mount&Blade Warband\Modules\【MOD副本】风云三国司马奉先版(2021.11.9)\conversation.txt文件辣,第895和896行,大家也可以搜索cf_check_hero_can_escape_from_player -1
cf_check_hero_can_escape_from_player -1
39 21 1 1224979098644774912 2133 2 1224979098644774913 0 4 0 200 1 504403158265495588 1073742370 3 504403158265495588 2 1224979098644774912 546 3 504403158265495588 4 1224979098644774912 2133 2 1224979098644774913 1 5 0 30 2 1224979098644774912 360287970189641424 2147483678 2 1224979098644774912 360287970189641425 4 0 200 1 504403158265495642 2133 2 1224979098644774913 1 5 0 2133 2 1224979098644774913 -1 3 0 3 0 4 0 540 3 1224979098644774912 311 1 500 3 1224979098644774912 311 0 3 0 2133 2 1224979098644774914 0 4 0 31 2 1224979098644774913 0 31 2 144115188075856193 864691128455135317 2136 3 1224979098644774915 75 100 520 3 1224979098644774916 1224979098644774912 312 30 2 1224979098644774915 1224979098644774916 5 0 31 2 1224979098644774913 0 2136 3 1224979098644774915 0 100 520 3 1224979098644774916 1224979098644774912 312 2147483678 2 1224979098644774915 1224979098644774916 2133 2 1224979098644774914 1 5 0 31 2 1224979098644774913 -1 2133 2 1224979098644774914 1 3 0 31 2 1224979098644774914 1

750都改为99,即:
39 21 1 1224979098644774912 2133 2 1224979098644774913 0 4 0 200 1 504403158265495588 1073742370 3 504403158265495588 2 1224979098644774912 546 3 504403158265495588 4 1224979098644774912 2133 2 1224979098644774913 1 5 0 30 2 1224979098644774912 360287970189641424 2147483678 2 1224979098644774912 360287970189641425 4 0 200 1 504403158265495642 2133 2 1224979098644774913 1 5 0 2133 2 1224979098644774913 -1 3 0 3 0 4 0 540 3 1224979098644774912 311 1 500 3 1224979098644774912 311 0 3 0 2133 2 1224979098644774914 0 4 0 31 2 1224979098644774913 0 31 2 144115188075856193 864691128455135317 2136 3 1224979098644774915 75 100 520 3 1224979098644774916 1224979098644774912 312 30 2 1224979098644774915 1224979098644774916 5 0 31 2 1224979098644774913 0 2136 3 1224979098644774915 0 100 520 3 1224979098644774916 1224979098644774912 312 2147483678 2 1224979098644774915 1224979098644774916 2133 2 1224979098644774914 1 5 0 31 2 1224979098644774913 -1 2133 2 1224979098644774914 1 3 0 31 2 1224979098644774914 1


这样就能保证不论攻城还是野战都是100%俘虏敌将,我们不必SL了!
mb32.jpg mb29.jpg

mb30.jpg mb31.jpg

评分

参与人数 1第纳尔 +20 互助 +1 魅力 +20 收起 理由
Aomine Daiki + 20 + 1 + 20 文章不错,继续努力!

查看全部评分

贴吧:就是xD  感觉大家好像都不太看主页啊,我把总结都贴在每一贴顶端好了

27

主题

65

回帖

103

积分

见习骑士

Rank: 3

UID
3174756
第纳尔
332
精华
0
互助
15
荣誉
0
贡献
0
魅力
191
注册时间
2020-4-23
鲜花(4) 鸡蛋(0)
 楼主| 发表于 2024-2-16 13:44:58 | 显示全部楼层
本帖最后由 nmsnb111 于 2024-2-16 13:46 编辑

这次修改因为w跟网上根据原版文件给出的修改方法偏差实在太大,而且代码我确实也看不懂,所以昨天晚上和今天上午一直在研究站里大佬们发的反编译教学贴
还好电脑里py charm都没卸载,万万没想到玩个童年回忆的游戏能用上
接下来我也从代码上给大家解释一下:

  1. <font color="#000000">("cf_check_hero_can_escape_from_player",
  2. [
  3.     (store_script_param_1, ":var_0"),</font>
  4.     # 读取第一个参数,储存为局部变量0;结合下文。局部变量0第一个参数/是敌方领袖(没有特殊兵种的部队也会有以一个常规兵种作为领袖,就像野怪会有一个单位与我们对话)
  5. <font color="#000000">    (assign, ":var_1", 0),</font>
  6.     # 将局部变量1赋值为0,以表示胜利的战斗是一场常规的交战
  7.     # 下方开始的分支为判断是否非领主但有特殊领袖(指特殊存在和任务请求生成的单位)的部队
  8. <font color="#000000">    (try_begin),
  9.         (check_quest_active, "qst_persuade_lords_to_make_peace"),</font>
  10.         # 检测我们是否有请求求和的任务
  11. <font color="#000000">        (this_or_next|quest_slot_eq, "qst_persuade_lords_to_make_peace", 2, ":var_0"),</font>
  12.         # 判断求和任务的对象是否是击败的敌方部队,这里进行了两次判断
  13. <font color="#000000">        (quest_slot_eq, "qst_persuade_lords_to_make_peace", 4, ":var_0"),</font>
  14.         # 同样是判断求和任务的对象是否是这个敌方部队,似乎在这个变量槽中第2个和第4个值都可以进行检定
  15. <font color="#000000">        (assign, ":var_1", 1),</font>
  16.         # 将局部变量1赋值为1,所以这场战斗将会有其他涉及,不再是常规战斗,不会进行后续的
  17. <font color="#000000">    (else_try),
  18.         (ge, ":var_0", "trp_sea_raider_leader"),</font>
  19.         # 这两个应该是任务触发的兵种?
  20. <font color="#000000">        (neg|ge, ":var_0", "trp_bandit_leaders_end"),</font>
  21.         # 他们两个的兵种编号实际上是相邻的,这两行即是判断对方部队是否是这两个部队
  22. <font color="#000000">        (try_begin),
  23.             (check_quest_active, "qst_learn_where_merchant_brother_is"),</font>
  24.             # 判断寻找商人的任务是否触发
  25. <font color="#000000">            (assign, ":var_1", 1),</font>
  26.             # 若触发,则给局部变量1赋值为1,在原版的module_scripts.py文件里看到将此值赋为1的后面有注释#always catched即总是抓捕
  27. <font color="#000000">        (else_try),
  28.             (assign, ":var_1", -1),</font>
  29.             # 若没有触发,则给局部变量1赋值为1,在原版的module_scripts.py文件里看到将此值赋为-1的后面有注释#always run.即总是逃脱
  30. <font color="#000000">        (try_end),</font>
  31.         #总之这个分支是一个任务请求的判断,对我们需要的武将/将领俘虏基本没有影响
  32. <font color="#000000">    (try_end),</font>
  33.     # 到此为止的分支为判断是否非领主但有特殊领袖的部队;如果是,局部变量1的值将会改变,则说明战斗是特殊的
  34.     # 下方开始的分支为判断交战部队是否有领主;若有领主,以局部变量0的值为id的部队(即对方部队)变量槽中的第311个值应为1
  35. <font color="#000000">    (try_begin),
  36.         (troop_slot_eq, ":var_0", 311, 1),
  37.         (troop_set_slot, ":var_0", 311, 0),
  38.     (try_end),</font>
  39.     # 到此为止的分支为判断交战部队是否有领主;如果有,则会将以局部变量0的值为id的部队变量槽中的第311个值;我怀疑是与领主有关的变量)从1变为0,即移除对方部队中的领主,可能用于生成战斗结束后的溃军
  40. <font color="#000000">    (assign, ":var_2", 0),</font>
  41.     # 将局部变量2赋值为0——我观察代码然后与游戏实测结合,如果在这个脚本操作列表运行完成后,这个局部变量2的值最终为1最终就能抓捕成功了
  42.     # 以下是我们想要的武将捕获/逃脱概率的内容
  43. <font color="#000000">    (try_begin),
  44.         (eq, ":var_1", 0),</font>
  45.         # 若局部变量1的值仍为0,即是一场常规的交战
  46. <font color="#000000">        (eq, "$g_next_menu", "mnu_castle_taken"),</font>
  47.         # 判断下一个界面是否是攻城,即确定这场战斗是否是攻城战
  48. <font color="#000000">        (store_random_in_range, ":var_3", <b><font color="#ff0000">75</font></b>, 100),</font>
  49.         # 将局部变量3赋值为75到99中的随机数;将<font color="#ff0000"><b>75</b></font>改为<b><font color="#ff0000">99</font></b>,即可实现<b>攻城战必定俘虏</b>
  50. <font color="#000000">        (troop_get_slot, ":var_4", ":var_0", 312),</font>
  51.         # 将局部变量0的值为id的部队变量槽中的第312个值赋值为局部变量4的值;由于module_constants.py里根本没有311和312号,可能是MOD制作时定义在某个文件里的,所以实在不能确定局部变量4是什么
  52. <font color="#000000">        (ge, ":var_3", ":var_4"),</font>
  53.         # 判断局部变量3的值是否大于等于局部变量4的值;这里还有一个问题就是这里攻城战的代码分支根本就没有给局部变量2赋值啊,那应该是怎么样都抓不到的;不过游戏实测也是更容易抓到的,这段代码的结构还是不够理解
  54. <font color="#000000">    (else_try),
  55.         (eq, ":var_1", 0),</font>
  56.         # 若局部变量1的值仍为0,即是一场常规的交战
  57. <font color="#000000">        (store_random_in_range, ":var_3", <b><font color="#ff0000">0</font></b>, 100),</font>
  58.         # 将局部变量3赋值为0到99中的随机数,这里就可以确定这个局部变量3就是与俘获相关的概率了,而且是<b>成功的概率</b>,所以越大越好,我们把
  59. <font color="#000000">        (troop_get_slot, ":var_4", ":var_0", 312),</font>
  60.         # 将局部变量0的值为id的部队变量槽中的第312个值赋值为局部变量4的值;我怀疑这个局部变量4的值是这些武将本身的逃脱概率,可能是共用这一个值,所以实际上每个人逃脱的几率都一样
  61. <font color="#000000">        (neg|ge, ":var_3", ":var_4"),</font>
  62.         # 判断局部变量3的值是否小于局部变量4的值;我不明白这里为什么要用neg反过来判断大小,总之实测之后应该把0改成99而不是改100改成1,就能实现野战必定俘虏了
  63. <font color="#000000">        (assign, ":var_2", 1),</font>
  64.         # 将局部变量2赋值为1,赋值为1实际上就代表抓捕成功
  65. <font color="#000000">    (else_try),
  66.         (eq, ":var_1", -1),</font>
  67.         # 如果局部变量1的值为-1
  68. <font color="#000000">        (assign, ":var_2", 1),</font>
  69.         # 将局部变量2赋值为1;看到这里其实我还是很疑惑的,可能局部变量2的值有别的含义,或者风云三国MOD去除了那个任务必定逃脱的设定
  70. <font color="#000000">    (try_end),
  71.     (eq, ":var_2", 1),</font>
  72.     # 这一行在try_end之后啊,应该根本就不触发才对;但是看代码结构,似乎跟攻城战的代码是接续的
  73.    
  74. <font color="#000000">]),</font>
复制代码
这里要鸣谢站里留贴的大大们,虽然他们可能很久没有再玩这款游戏了,但是实在是启迪后生了,大有裨益
header_operations.py命令翻译20121226
大型伪技术文档:txt修改究竟是什么?(8.11 暂时完结)

贴吧:就是xD  感觉大家好像都不太看主页啊,我把总结都贴在每一贴顶端好了

13

主题

776

回帖

277

积分

见习骑士

Rank: 3

UID
2628517
第纳尔
3821
精华
0
互助
8
荣誉
0
贡献
0
魅力
3
注册时间
2015-11-1
鲜花(74) 鸡蛋(0)
发表于 2024-2-16 14:58:38 来自手机 | 显示全部楼层
留个眼,之前我玩2.76是可以按照常规方式修改的

0

主题

2

回帖

6

积分

平民

Rank: 1

UID
3633210
第纳尔
2
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2024-3-12
鲜花(0) 鸡蛋(0)
发表于 2024-3-17 17:15:26 | 显示全部楼层
2024.2.10  的版本怎么修改啊?

0

主题

27

回帖

8

积分

平民

Rank: 1

UID
414346
第纳尔
100
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2011-4-21
鲜花(0) 鸡蛋(0)
发表于 2024-5-11 21:09:54 | 显示全部楼层
0.0.0.0a 发表于 2024-3-17 17:15
2024.2.10  的版本怎么修改啊?

同问,这代码完成不对

0

主题

1

回帖

5

积分

平民

Rank: 1

UID
3709497
第纳尔
0
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2024-10-26
鲜花(0) 鸡蛋(0)
发表于 2024-10-26 22:39:25 | 显示全部楼层
0.0.0.0a 发表于 2024-3-17 17:15
2024.2.10  的版本怎么修改啊?

同问,没有看到这行

19

主题

135

回帖

51

积分

扈从

Rank: 2Rank: 2

UID
1496800
第纳尔
1017
精华
0
互助
1
荣誉
0
贡献
0
魅力
2
注册时间
2013-8-20
鲜花(0) 鸡蛋(0)
发表于 2024-11-8 04:20:02 | 显示全部楼层
是另一个文件的这个代码,文件错了
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-11-21 17:51 , Processed in 0.124518 second(s), 30 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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