介绍从分析ModuleSystem系统的Python代码入手,了解TXT文件的格式,从而开展修改。
下面是纯理论分析结果,现在实在没有时间测试。但是应该就是这里。
【目标】
修改MOD中在酒馆里面招募的雇佣兵的数量,希望能招募更多的雇佣兵。
【过程】
**关键** 1,在ModuleSystem下面搜索有关的关键字
D:\dev_ws\ws\M&B_mod\ModuleSystem\header_operations.py
header_operations.py是ModuleSystem最重要的一个文件,对它的了解是必要的。
查看这个文件的目的有两个:
i)了解是否有看着像是和我们要修改的内容有关的操作符号。(参见后面的参考信息部分)
ii)了解我们要修改的对象,在ModuleSystem中的叫法。
浏览一遍这个文件的内容之后,可以得到如下认识:
i)因为雇佣兵的数量是不是固定不变的,参照该文件中有关的操作符号的命名方式,应该有“random”。
ii)我们要修改的对象雇佣兵,在ModuleSystem中的叫法是mercenary。
2,搜索关键字,查找有关的内容

01-UE_search_key_word.JPG
3,通过肉眼查看搜索结果,参照前面的假设,找到如下有关代码。
D:\dev_ws\ws\M&B_mod\ModuleSystem\module_scripts.py
#script_update_mercenary_units_of_towns
# INPUT: none
# OUTPUT: none
("update_mercenary_units_of_towns",
[(try_for_range, ":town_no", towns_begin, towns_end),
(store_random_in_range, ":troop_no", mercenary_troops_begin, mercenary_troops_end),
(party_set_slot, ":town_no", slot_center_mercenary_troop_type, ":troop_no"),
(store_random_in_range, ":amount", 3, 8),
(party_set_slot, ":town_no", slot_center_mercenary_troop_amount, ":amount"),
(try_end),
]),
对应上面的代码,在
***D:\dev_ws\ws\M&B_mod\v903Native\scripts.txt
找到对应的TXT数据
update_mercenary_units_of_towns -1
6 6 3 1224979098644774912 648518346341351458 648518346341351472 2136 3 1224979098644774913 360287970189639695 360287970189639699 501 3 1224979098644774912 90 1224979098644774913 2136 3 1224979098644774914 3 8 501 3 1224979098644774912 91 1224979098644774914 3 0
参照PY代码,分解TXT数据
update_mercenary_units_of_towns -1
6 _(6个语句)
6(操作ID) 3(3个参数) 1224979098644774912(参数1) 648518346341351458(参数2) 648518346341351472(参数3) _
2136(操作ID) 3 1224979098644774913 360287970189639695 360287970189639699 _
501 3 1224979098644774912 90 1224979098644774913 _
2136(store_random_in_range的操作ID) 3 1224979098644774914 3(*) 8(*) _
501 3 1224979098644774912 91 1224979098644774914 _
3 0
(*)这里可能是你想要修改的数字
也就是,原版中是有3~8个雇佣兵可以招募;
那么你想要变成一次可以招募多少个就在这里改改试试吧!
比如,我想一次招20个(那么最小值和最大值都是20)
update_mercenary_units_of_towns -1
6 6 3 1224979098644774912 648518346341351458 648518346341351472 2136 3 1224979098644774913 360287970189639695 360287970189639699 501 3 1224979098644774912 90 1224979098644774913 2136 3 1224979098644774914 20 20 501 3 1224979098644774912 91 1224979098644774914 3 0
【参考信息】
最好是一些-参考信息-,这些都是从ModuleSystem系统的header_operations.py文件中找到的。
前面的英文字符串就是PY代码中的操作指令,后面的数字就是TXT数据中对应的数字。
try_for_range = 6 # Works like a for loop from lower-bound up to (upper-bound - 1)
# (try_for_range,<destination>,<lower_bound>,<upper_bound>),
end_try = 3 # deprecated, use try_end instead
try_end = 3 # (try_end),
try_begin = 4 # (try_begin),
store_random_in_range = 2136 # gets random number in range [range_low,range_high] excluding range_high
# (store_random_in_range,<destination>,<range_low>,<range_high>),
party_set_slot = 501 # (party_set_slot,<party_id>,<slot_no>,<value>),
slot_center_mercenary_troop_type = 90
slot_center_mercenary_troop_amount= 91
查看全部评论(1) 最新评论