游戏之家 > 游戏库 > 骑马与砍杀

《骑马与砍杀》村庄招募player的bug修复

村庄招募player的bug修复

以liberty or death为例,打开scripts.txt,查找cf_village_recruit_volunteers_cond,得到

cf_village_recruit_volunteers_cond -1

12 2147484189 3 144115188075855974 35 2 2147484189 3 144115188075855974 35 1 2147484209 3 144115188075855974 39 1 2204 2 1224979098644774912 144115188075855974 521 3 1224979098644774913 144115188075855974 26 30 2 1224979098644774913 0 1073741854 2 1224979098644774913 5 1073741855 2 1224979098644774912 144115188075856219 31 2 144115188075856219 0 561 3 144115188075855974 93 0 1633 2 1224979098644774914 648518346341351424 30 2 1224979098644774914 1

修改为

cf_village_recruit_volunteers_cond -1

13 2147484189 3 144115188075855972 35 2 2147484189 3 144115188075855972 35 1 2147484209 3 144115188075855972 39 1 2204 2 1224979098644774912 144115188075855972 521 3 1224979098644774913 144115188075855972 26 30 2 1224979098644774913 0 1073741854 2 1224979098644774913 5 1073741855 2 1224979098644774912 144115188075856217 31 2 144115188075856217 0 561 3 144115188075855972 93 0 561 3 144115188075855972 92 1 1633 2 1224979098644774914 648518346341351424 30 2 1224979098644774914 1

原理:

在原版module_scripts.py中,有如下代码:

  ("cf_village_recruit_volunteers_cond", #村庄征募志愿兵条件

    [(neg|party_slot_eq, "$current_town", slot_village_state, svs_looted),

     (neg|party_slot_eq, "$current_town", slot_village_state, svs_being_raided),

     (neg|party_slot_ge, "$current_town", slot_village_infested_by_bandits, 1),

     (store_faction_of_party, ":village_faction", "$current_town"),

     (party_get_slot, ":center_relation", "$current_town", slot_center_player_relation),

     (ge, ":center_relation", 0),

     (this_or_next|ge, ":center_relation", 5),

     (this_or_next|eq, ":village_faction", "$players_kingdom"),

     (eq, "$players_kingdom", 0),

     (party_slot_ge, "$current_town", slot_center_volunteer_troop_amount, 0),

     (party_slot_ge, "$current_town", slot_center_volunteer_troop_type, 1), #控制可征兵种类

     (party_get_free_companions_capacity, ":free_capacity", "p_main_party"),

     (ge, ":free_capacity", 1),

     ]),

若缺少红色的语句,则出现招募到player的bug,原理不详;

把加粗的1改为2,则可招募到2级兵,估计是控制可征兵种数目,未经严格测试

这样修改后征募2级兵的价格与1级兵相同,问能不能写一段代码,根据等级计算志愿兵价格?