骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 678|回复: 13

[求助] py如何修改领主之间的亲戚关系

[复制链接]

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
发表于 2024-6-8 20:59:03 | 显示全部楼层 |阅读模式
各位大佬们,本人是刚刚接触骑砍的PY修改新手,我在16TH中想新增一个阵营,增加完之后发现一个BUG,就是新增的领主家族关系是乱的,我是复制的10号王国的代码新增34号阵营的,但是领主却和33号阵营还有32号阵营是亲戚关系其他阵营的关系正常请问如何改成同一阵营的人是亲戚关系。还有一个不知道是不是BUG的问题33号阵营开局就和我新增的这个34号阵营宣战(阵营关系没做修改)。还有就是如何添加旗帜呢?我想把自己制作的图片给新阵营当旗帜。


游戏界面,家族的人都是另一个阵营的

游戏界面,家族的人都是另一个阵营的

游戏界面,家族的人都是另一个阵营的

2.png
module_troops文件,我只在这里找到了关于领主的代码。

25

主题

193

回帖

200

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1457
精华
0
互助
27
荣誉
0
贡献
0
魅力
206
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
发表于 2024-6-9 02:56:39 | 显示全部楼层
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的父亲 儿子 女儿等等,

评分

参与人数 1第纳尔 +5 互助 +1 收起 理由
Aomine Daiki + 5 + 1 乐于助人!

查看全部评分

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 2024-6-9 09:55:39 | 显示全部楼层
本帖最后由 dadad543455345 于 2024-6-9 10:45 编辑
快乐风猫 发表于 2024-6-9 02:56
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的 ...

请问这段代码是不是分配家族关系的,如果我自己给每个NPC定义是否要注释掉这些代码,我发现我在没修改之前家族关系就是乱的,只有前20多个国家是正常的,我给大明添加了新的领主之后这些领主家族关系都是和自己国家的人是一个家族,而30之后的国家家族关系全是乱的。我想把这些国家同一阵营的人改成亲戚关系,


                (try_begin),
                        (lt, ":npc_seed", 6), #NPC seed is the order in the faction ## yifeng change from 8 to 6
                        (assign, ":reputation", ":npc_seed"),
                        (store_random_in_range, ":age", 45, 64),
                       
                        (store_random_in_range, ":father", 0, 6), #six possible fathers
                        (val_add, ":father", ":ancestor_seed"),
                        (troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
                       
                        #wife
                        (troop_set_slot, ":cur_troop", slot_troop_spouse, ":cur_lady"),
                        (troop_set_slot, ":cur_lady", slot_troop_spouse, ":cur_troop"),
                        (store_random_in_range, ":wife_reputation", 20, 26),
                        (try_begin),
                                (eq, ":wife_reputation", 20),
                                (assign, ":wife_reputation", lrep_conventional),
                        (try_end),
                        (troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":wife_reputation"),
                       
                       
                        (call_script, "script_init_troop_age", ":cur_lady", 49),
                        (call_script, "script_add_lady_items", ":cur_lady"),
                       
                        (val_add, ":cur_lady", 1),

                        #daughter

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 2024-6-9 10:46:22 | 显示全部楼层
快乐风猫 发表于 2024-6-9 02:56
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的 ...

请问这段代码是不是分配家族关系的,我发现我在没修改之前家族关系就是乱的,只有前20多个国家是正常的,我给大明添加了新的领主之后这些领主家族关系都是和自己国家的人是一个家族,而30之后的国家家族关系全是乱的。我想把这些国家同一阵营的人改成亲戚关系,
                (try_begin),
                        (lt, ":npc_seed", 6), #NPC seed is the order in the faction ## yifeng change from 8 to 6
                        (assign, ":reputation", ":npc_seed"),
                        (store_random_in_range, ":age", 45, 64),
                        (store_random_in_range, ":father", 0, 6), #six possible fathers
                        (val_add, ":father", ":ancestor_seed"),
                        (troop_set_slot, ":cur_troop", slot_troop_father, ":father"),
                        #wife
                        (troop_set_slot, ":cur_troop", slot_troop_spouse, ":cur_lady"),
                        (troop_set_slot, ":cur_lady", slot_troop_spouse, ":cur_troop"),
                        (store_random_in_range, ":wife_reputation", 20, 26),
                        (try_begin),
                                (eq, ":wife_reputation", 20),
                                (assign, ":wife_reputation", lrep_conventional),
                        (try_end),
                        (troop_set_slot, ":cur_lady", slot_lord_reputation_type, ":wife_reputation"),
                        (call_script, "script_init_troop_age", ":cur_lady", 49),
                        (call_script, "script_add_lady_items", ":cur_lady"),
                        (val_add, ":cur_lady", 1),

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 2024-6-9 12:19:37 | 显示全部楼层
快乐风猫 发表于 2024-6-9 02:56
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的 ...

直接在script里添加就可以吗?需要注释掉原来随机分配的代码吗?

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 2024-6-9 12:21:58 | 显示全部楼层
快乐风猫 发表于 2024-6-9 02:56
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的 ...

我发现16TH的源码大概是25之后的阵营,领主的家族关系就是乱的。但是之前的关系都是正常的一个阵营的人互为亲戚关系。

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 2024-6-9 14:39:47 | 显示全部楼层
快乐风猫 发表于 2024-6-9 02:56
新的NPC如果你没有设置家族关系的话 就是在脚本里随机的,你要自己用slot_troop_father这些槽给它设置新的 ...

大佬这段代码是不是设置同一阵营领主关系的?
          #Warband changes continue -  sets relations in the same faction
      (try_for_range, ":lord", original_kingdom_heroes_begin, active_npcs_end),
                (troop_slot_eq, ":lord", slot_troop_occupation, slto_kingdom_hero),
                (troop_get_slot, ":lord_faction", ":lord", slot_troop_original_faction),
                               
                (try_for_range, ":other_hero", original_kingdom_heroes_begin, active_npcs_end),
                        (this_or_next|troop_slot_eq, ":other_hero", slot_troop_occupation, slto_kingdom_hero),
                                (troop_slot_eq, ":other_hero", slot_troop_occupation, slto_inactive_pretender),
                        (troop_get_slot, ":other_hero_faction", ":other_hero", slot_troop_original_faction),
                        (eq, ":other_hero_faction", ":lord_faction"),
                        (call_script, "script_troop_get_family_relation_to_troop", ":lord", ":other_hero"),
                        (call_script, "script_troop_change_relation_with_troop", ":lord", ":other_hero", reg0),
                       
                        (store_random_in_range, ":random", 0, 11), #this will be scored twice between two kingdom heroes, so starting relation will average 10. Between lords and pretenders it will average 7.5
                        (call_script, "script_troop_change_relation_with_troop", ":lord", ":other_hero", ":random"),
                (try_end),               
          (try_end),

25

主题

193

回帖

200

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1457
精华
0
互助
27
荣誉
0
贡献
0
魅力
206
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
发表于 2024-6-9 18:12:09 | 显示全部楼层
dadad543455345 发表于 2024-6-9 14:39
大佬这段代码是不是设置同一阵营领主关系的?
          #Warband changes continue -  sets relations in the s ...

你不用去管原有的分配脚本,你只需要自己新加你需要的 它自己会覆盖

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 7 天前 | 显示全部楼层
快乐风猫 发表于 2024-6-9 18:12
你不用去管原有的分配脚本,你只需要自己新加你需要的 它自己会覆盖

大佬我加在game_start之后编译报错,
ERROR: Usage of unassigned local variable: :cur_troop
ERROR: Usage of unassigned local variable: :cur_troop
ERROR: Usage of unassigned local variable: :cur_troop
ERROR: Usage of unassigned local variable: :age

加在"initialize_aristocracy"之后不报错了
但是没效果

19

主题

59

回帖

23

积分

随仆

Rank: 1

UID
2806395
第纳尔
150
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-11
鲜花(0) 鸡蛋(0)
 楼主| 发表于 7 天前 | 显示全部楼层
快乐风猫 发表于 2024-6-9 18:12
你不用去管原有的分配脚本,你只需要自己新加你需要的 它自己会覆盖

代码我用的这个     
(try_begin),
       (eq, ":cur_troop", "trp_knight_33_1"),
       (call_script, "script_init_troop_age", ":cur_troop", 23),
       (troop_set_slot, "trp_knight_33_1", slot_troop_father, "trp_knight_33_6"),
       (troop_set_slot, "trp_knight_33_3", slot_troop_father, "trp_knight_33_1"),
      (else_try),
       (call_script, "script_init_troop_age", ":cur_troop", ":age"),
      (try_end),

25

主题

193

回帖

200

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1457
精华
0
互助
27
荣誉
0
贡献
0
魅力
206
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
发表于 7 天前 | 显示全部楼层
dadad543455345 发表于 2024-6-11 18:58
代码我用的这个     
(try_begin),
       (eq, ":cur_troop", "trp_knight_33_1"),

最简单的

(troop_set_slot, "trp_knight_1_1", slot_troop_age, 23),设置trp_knight_1_1年龄为23岁
(troop_set_slot, "trp_knight_1_1", slot_troop_father, "trp_knight_1_2"),#设置trp_knight_1_2是trp_knight_1_1他爹

就这两句  你那些变量是干啥的 当然报错了  你直接新加一条脚本开始设置 然后在新游戏的时候运行一次就行了

25

主题

193

回帖

200

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1457
精华
0
互助
27
荣誉
0
贡献
0
魅力
206
注册时间
2021-3-14
鲜花(46) 鸡蛋(0)
发表于 7 天前 | 显示全部楼层
dadad543455345 发表于 2024-6-11 18:57
大佬我加在game_start之后编译报错,
ERROR: Usage of unassigned local variable: :cur_troop
ERROR: Us ...

你新加脚本 其他的不要去动  最简单的办法,开始游戏的时候运行一次就完事儿了,不影响旧的

5

主题

20

回帖

8

积分

平民

Rank: 1

UID
3395634
第纳尔
83
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2022-8-8
鲜花(0) 鸡蛋(0)
发表于 4 天前 | 显示全部楼层
快乐风猫 发表于 2024-6-11 23:16
你新加脚本 其他的不要去动  最简单的办法,开始游戏的时候运行一次就完事儿了,不影响旧的  ...

大佬,方便+vx请教问题吗

5

主题

20

回帖

8

积分

平民

Rank: 1

UID
3395634
第纳尔
83
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2022-8-8
鲜花(0) 鸡蛋(0)
发表于 4 天前 | 显示全部楼层
13623017520 发表于 2024-6-14 18:05
大佬,方便+vx请教问题吗

名字就是VX
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-6-18 21:14 , Processed in 0.135305 second(s), 24 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表