修改MOD中在酒馆里面招募的雇佣兵的数量

字体:        | 上一篇 下一篇 | 打印

【前言】
介绍从分析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) 最新评论

  • 删除 14.41 (2008-3-01 19:42:07, 评 0 分)

    额滴神呐

查看全部评论(1)我来说两句

-5 -3 -1 - +1 +3 +5