骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 430|回复: 0

[功能与代码] 【分享】【战团】【py】如何显示同阵营领主之间关系

[复制链接]

2

主题

12

回帖

4

积分

平民

Rank: 1

UID
3100875
第纳尔
76
精华
0
互助
0
荣誉
0
贡献
0
魅力
10
注册时间
2019-9-1

霸主正版勋章

鲜花(0) 鸡蛋(0)
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 魔球修改狂热者 于 2026-2-7 20:27 编辑

代码环境1.171

之前看元帅养成的帖子发现想要让领主a与其他领主之间的关系变好就要让a先撞上敌人,然后其他领主助战,结束后会加关系。
然后就有人提出问题,玩家加入会不会影响关系的变动,有的人说会有的人说加入不会,但是因为没有一个直观的方法查看领主间关系而不了了之。
然后有人说原版开作弊模式可以看家庭关系,这个代码就是在module_scripts.py的"game_get_money_text"脚本里:在那个#Family notes下面
  1.           (try_for_range, ":aristocrat", lords_begin, kingdom_ladies_end),#尝试”贵族“在领主到王国女士的兵种之间
  2.             (call_script, "script_troop_get_family_relation_to_troop", ":aristocrat", ":troop_no"),#获取当前角色与贵族的家庭关系
  3.             (gt, reg0, 0),
  4.             (try_begin),
  5.               (neg|is_between, ":aristocrat", kingdom_ladies_begin, kingdom_ladies_end),#然后把王国女士排除在外
  6.               (eq, "$cheat_mode", 1),#是作弊模式
  7.               (str_store_troop_name_link, s12, ":aristocrat"),#把名字存在s12并且附带超链接
  8.               (call_script, "script_troop_get_relation_with_troop", ":aristocrat", ":troop_no"),#这就是获取关系的脚本
  9.               (str_store_string, s49, "str_s49_s12_s11_rel_reg0"),#把数据存在这个字符串
  10.             (else_try),
复制代码

那么我就想弄个同阵营显示关系的功能,就在#Family notes循环整个结束后添加新的循环。
  1.         #show_relation#
  2.         (try_begin),
  3.             (neg|is_between,":troop_no",kings_begin,kings_end),#判断当前角色不是国王。我没有给国王介面加
  4.             (neg,":troop_no","trp_player"),#不是玩家,这个可以删掉,然后玩家界面也会显示关系,不过功能跟报告里的按关系查看已认识的领主重复了
  5.             (str_store_string, s49, "str__colleague_"),#新增字符串,colleague开头与家族开头分开
  6.             (this_or_next|is_between, ":troop_no", lords_begin, kingdom_ladies_begin),#尝试非女性领主
  7.             (eq, ":troop_no", "trp_player"),
  8.             (neg|is_between, ":troop_no", pretenders_begin, pretenders_end),#不是宣称者
  9.             (try_for_range, ":aristocrat", lords_begin, kingdom_ladies_begin),#尝试判断与其他领主的关系
  10.                 (try_begin),
  11.                     (assign,":num_rel",0),#设置数值,好对比是否是亲戚
  12.                     (call_script, "script_troop_get_family_relation_to_troop", ":aristocrat", ":troop_no"),#获取当前角色与贵族的家庭关系
  13.                     (gt, reg0, 0),#有关系
  14.                     (val_add,":num_rel", 1),#数值+1
  15.                 (try_end),  
  16.                 (try_begin),
  17.                     (store_troop_faction,":faction_num_1",":aristocrat"),#把贵族的阵营id存到":faction_num_1"
  18.                     (eq, ":num_rel", 0),#无亲戚关系
  19.                     (eq,":faction_num_1",":troop_faction"),#相同阵营id。这个":troop_faction"是在"game_get_money_text"脚本一开头就设置好的,直接调用
  20.                     (neq,":aristocrat",":troop_no"),#不判断自己与自己的关系
  21.                     (call_script, "script_troop_get_relation_with_troop", ":aristocrat", ":troop_no"),#获取关系
  22.                     (str_store_troop_name_link, s12, ":aristocrat"),#存储名字并附带超链接
  23.                     (str_store_string,s49,"str_s49_s12_rel_reg0"),#新增字符串显示关系
  24.                 (try_end),
  25.             (try_end),
  26.         (try_end),
  27.         #show_relation_end#
复制代码
记得把中文字删掉不然会报错。
接着在module_string.py文件里新增
  1.   #show_relation#
  2.   ("_colleague_","{s49}^Colleague:"),
  3.   ("s49_s12_rel_reg0", "{s49} ^{s12} (rel: {reg0})"), #^是换行字符,就会导致每个领主占一行,如果不喜欢删掉就好。
  4.   #show_relation_end#
复制代码
最后在汉化文件就是languages的cns里的game_strings.csv添加
  1. #show_relation#
  2. str__colleague_|{s49}^ 同 僚 :
  3. str_s49_s12_rel_reg0|{s49} ^{s12} (关 系 :{reg0}) ,#^是换行字符,就会导致每个领主占一行,如果不喜欢删掉就好。
  4. #show_relation_end#
复制代码
大家多多转发啊,记得修改前备份。
效果图


48700_3.jpg
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2026-2-13 11:44 , Processed in 0.085810 second(s), 19 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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