| 
 | 
 
 本帖最后由 rubik 于 2016-10-16 01:42 编辑  
 
答案是:年龄。  游戏开始的时候,游戏的家族系统就会随机分配领主,夫人之间的关系,比如父子,配偶,子女,亲戚之类的关系,然后自动设定领主(包括夫人)的年龄。 问题就出在领主的年龄上。 
 
先打开module_scripts.py,找到“init_troop_age”,这个就是设定年龄的。 
 
        ("init_troop_age", 
        [ 
        (store_script_param, ":troop_no", 1), 
        (store_script_param, ":age", 2), #minimum 20 
         
        (try_begin), 
                (gt, ":age", 20), 
                (troop_set_slot, ":troop_no", slot_troop_age, 20), 
        (else_try), 
                (troop_set_slot, ":troop_no", slot_troop_age, ":age"), 
        (try_end), 
         
        (store_sub, ":years_to_age", ":age", 20), 
    (troop_set_age, ":troop_no", 0), 
         
        (try_begin), 
                (gt, ":years_to_age", 0), 
                (try_for_range, ":unused", 0, ":years_to_age"), 
                        (call_script, "script_age_troop_one_year", ":troop_no"), 
                (try_end), 
        (try_end),         
                 
        ]),  
看下来,也没有发现什么问题。那就继续看它引用的script,即age_troop_one_year。 
        #This is probably unnecessarily complicated, but can support a multi-generational mod 
        ("age_troop_one_year", 
    [ 
        (store_script_param, ":troop_no", 1), 
 
        (troop_get_type, ":is_female", ":troop_no"), 
         
        (troop_get_slot, ":age", ":troop_no", slot_troop_age), 
        (troop_get_slot, ":appearance", ":troop_no", slot_troop_age_appearance), 
         
        (val_add, ":age", 1), 
        (store_random_in_range, ":addition", 1, 5), 
 
        (try_begin), 
                (eq, ":is_female", 1), 
#                (val_add, ":addition", 2), #the women's age slider seems to produce less change than the male one - commented out: makes women look too old. 
        (try_end), 
         
        (val_add, ":appearance", ":addition"), 
        (try_begin), 
                (gt, ":age", 45), 
                (store_attribute_level, ":strength", ":troop_no", ca_strength), 
                (store_attribute_level, ":agility", ":troop_no", ca_agility), 
                (store_random_in_range, ":random", 0, 50), #2% loss brings it down to about 36% by age 90, but of course can be counteracted by new level gain 
                (try_begin), 
                        (lt, ":random", ":strength"), 
                        (troop_raise_attribute, ":troop_no", ca_strength, -1), 
                (try_end), 
                (try_begin), 
                        (lt, ":random", ":agility"), 
                        (troop_raise_attribute, ":troop_no", ca_agility, -1), 
                (try_end), 
        (try_end), 
 
        (val_clamp, ":appearance", 1, 100), 
         
        (troop_set_slot, ":troop_no", slot_troop_age, ":age"),  
        (troop_set_slot, ":troop_no", slot_troop_age_appearance, ":appearance"),  
        (troop_set_age, ":troop_no", ":appearance"), 
        ]),  
问题的症结已经很明显展现出来了,领主的岁数大于45的时候,力量和敏捷可能会随机-1,具体的看代码里的条件。关键问题在于,age_troop_one_year不止执行一次,而是(领主年龄-20)次。 领主年龄小于等于45岁的时候,没什么问题。 大于45岁的时候,每执行一次age_troop_one_year,力量和敏捷就有可能会-1。比如某个领主50岁,则有5次机会使得力量和敏捷-1。  
 
力量和敏捷是分开判定的,可能每次两者都-1,可能只有一者-1,也有可能两者都不-1。 
 
总体来说,只有力量和敏捷受了影响,智力和魅力不受影响。 敏捷降低,影响不大,而力量降低则影响很大,很多盔甲和武器都是要求力量的,力量小了领主就装备不上。 于是就会看到有的领主上了战场,盔甲穿不上,就穿便装。武器拿不了,就空手上阵的。 
 
 |   
 
评分
- 
|  参与人数 1 | 第纳尔 +100 | 
互助 +1 | 
贡献 +5 | 
收起
理由
 | 
 
  蛋清
 |  + 100 | 
 + 1 | 
 + 5 | 
感谢发表经验文章! | 
 
 
查看全部评分
 
 
 
鲜花鸡蛋古月一江  在2016-11-1 09:09   送朵鲜花  并说:原来领主五十年退休啊。  蛋清  在2016-10-15 23:01   送朵鲜花  并说:交学费  达尔克内斯  在2016-10-15 19:59   送朵鲜花  并说:引以为鉴。   
 
 |