- 好友
- 0
- 在线时间
- 0 小时
- 最后登录
- 2024-3-23
随仆
- UID
- 3008173
- 第纳尔
- 122
- 精华
- 0
- 互助
- 3
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 40
- 注册时间
- 2018-6-18
鲜花( 2) 鸡蛋( 0)
|
本帖最后由 5ThYL 于 2021-8-22 14:13 编辑
闲来无事...我也试试手拆代码
目的就是让亲卫可以稳定的带两袋箭
此处参考的是TW论坛上别人发的一个给潘德的调整https://forums.taleworlds.com/index.php?threads/tutorial-custom-knighthood-order.267392/page-47#post-8820816
t1
-25.000000 0.000000 0.000000 0 45 2071 1 1224979098644774912 1718 2 1224979098644774913 1224979098644774912 4 0 31 2 1224979098644774913 360287970189640019 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640019 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640835 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 5 0 31 2 1224979098644774913 360287970189640075 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640075 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640836 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 3 0
众所皆知... 这些txt实际上就是数字化的python代码, 可以直接对着战团的modulesys来一个个对手拆... 所以可以运用ctrlF大法来不停的对比 看看这个要怎么改才适用法亚了
战团modulesys官方下载: http://download.taleworlds.com/mb_warband_module_system_1171.zip
然后编译后的modulesys可以直接在Native的模组文件夹里面找到
原文主要要改的是missiontemplate所以我们打开这两个文件
也合理, 毕竟给装备是进了场景后才给的, 所以改这两个文件也合理
t2
记住, 理论上左右是相互对应的, 只不过一个是单词, 一个是数字
然后我们找到我们最常用的场景来熟悉下怎么拆, 冲压!
然后可以看到左边的 4 1 4160 0 16 12 0 那一列对应的是 (1,mtef_defenders|mtef_team_0,0,aif_start_alarmed,12,[]), 的那几列
很明显, 这些数字都是一一对应的, 什么1对1, 12对12什么的, 只不过里面混了点单词 我也不知道是啥就是了
往下走, 原文说要把低一个 -25.000之前的数字+1, 这个应该是编译后数这个场景有多少个函数的一个数字, 到也是可以在右边没编译的版本看到这个是没对应的, 所以应该是编译后加上去的
而这个
-25, 应该也是生成某个单位触发的事件, ti_on_agent_spawn, 后面0 0一一对应
我们原文也是-25, 而生成部队给装备也应该是生成单位触发的, 合理
然后下面的 15 又是怎么回事呢?
我以为他是啥奇奇怪怪的东西, 找了半天, 原来是这个函数下面有多少行代码的意思...
后面的也好对应了, 2071, 2072 2073可以从下面的几行代码看到是对应的store_trigger_param_1 2 3
而2071后面的1貌似就是这个函数里面有几个变量的意思
而这个1224979098644774912应该是啥呢?
通过多次的尝试后...发现, 应该是第一个变量
就是不管右边他叫啥, 只要是第一个, 都会被编译成1224979098644774912
第二个叫1224979098644774913
实际上就是最后两个数, 第一个是12, 2是13, 3 14
也挺简单的
好了, 拆代码基础搞懂了, 我们就来拆一下这位论坛大佬提供的这段把, 来看看具体要改啥才能适用到法亚上
-25.000000 0.000000 0.000000 0 - 对应ti_on_agent_spawn, 0, 0, []
45 - 个函数
2071 1 1224979098644774912 - store_trigger_param_1, ":变量1 - 把某个东西存到第一个变量里,
1718 2 1224979098644774913 1224979098644774912
这个1718跟之前一样, 可以在MS对代码处找出是啥意思, 也就是agent_get_troop_id, 这里也就是agent_get_troop_id, 变量2, 变量1
这段意思应该是把变量1的兵种号, 也就是魔球里面可以看到的, 每个兵种的序列, 存到变量2里面
4 0 31 2 1224979098644774913 360287970189640019
4 0 这段找了下 应该是try begin, 也就是开启某个那啥循环
而31 2应该是(eq, "$g_battle_won", 1)的确认后面两个参数是否相等
也就是确认第二个变量是否跟这个... 360287970189640019 鬼东西是否相等
然后...抱着这应该是跟变量一样的起始编号 我搜了下36028797018964, 结果找了半天 终于找到了
360287970189640522指向的是trp_fugitive
所以理论上这个就是某个特定的兵种了, 有这个也就是我们给法亚适配这个代码的核心!
魔球找了下, 是842 [说起来这货竟然有6强击...]
所以理论上360287970189640523就应该是指向原版的酒鬼了, 确认了下, 无误
意思就是360,287,970,189,639,680 + 兵的序号就是编译后的兵的序号
那接下来我们就去法亚确认下我们的想法, 搜一下360287970189639680 + 478, 360287970189640158
理论上这个序号应该会在conversation里面出现, 因为亲卫是用对话雇佣的
设想很成立, 一大堆跟亲卫有关的对话都有360287970189640158, 所以我们这里替换下就好了
源代码里还有另一个36028797018964开头的, 应该是潘德的军士, 我这里就不管了[理论上bug会爆炸不过谁管呢
所以关键点已经找到, 其他的也不用看了, 不过考虑到法亚有两个亲卫, 所以军士那份我就用来替换第二个亲卫, 也就是479的360287970189640158
走起!
...
不过庆祝之前还发现代码里有另一个
360287970189640835
这个鬼东西我跑到潘德里去看1155, 结果找到的是个商人...
不过还好我机智, 往下一看发现1164就有自建骑士团, 所以应该是版本偏移导致序列不对
不过看起来貌似潘德也有两个亲卫...所以...处理方式是...
用478替换第一个, 用479替换第二个亲卫?
去试试好了
-25.000000 0.000000 0.000000 0 45 2071 1 1224979098644774912 1718 2 1224979098644774913 1224979098644774912 4 0 31 2 1224979098644774913 360287970189640158 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640158 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640159 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 5 0 31 2 1224979098644774913 360287970189640158 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640158 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640159 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 3 0
结论就这个
然后...再把这个加到各个战斗场景就完工了
理论上
missiontemplate搜索charge
然后用这一段
39
-25.000000 0.000000 0.000000 0 45 2071 1 1224979098644774912 1718 2 1224979098644774913 1224979098644774912 4 0 31 2 1224979098644774913 360287970189640158 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640158 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640159 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 5 0 31 2 1224979098644774913 360287970189640158 1540 2 1224979098644774914 1224979098644774913 6 3 1224979098644774915 0 1224979098644774914 1541 3 1224979098644774916 360287970189640158 1224979098644774915 32 2 1224979098644774916 0 1570 2 1224979098644774917 1224979098644774916 4 0 33 3 1224979098644774917 2 11 1729 2 1224979098644774912 1224979098644774916 1774 2 1224979098644774912 1224979098644774916 3 0 3 0 6 3 1224979098644774918 0 4 1541 3 1224979098644774919 360287970189640159 1224979098644774918 4 0 32 2 1224979098644774919 0 2120 3 1224979098644774920 1224979098644774918 1 1779 3 1224979098644774912 1224979098644774919 1224979098644774920 3 0 3 0 3 0
代替原来的38
就可行了
如下
然后野战的时候, 应该就生效了
就能保证亲卫有两袋箭了
两小时搞定...实际上花的时间也不多, 这还是第一次手拆代码, 也不算太难
至于其他的战斗场景...你自己摸索去吧, 我这已经写得...很乱但是还算详细了, 都算是个手拆代码的教程了
|
-
评分
-
查看全部评分
|