实战用法
get_highest_scored_country 常用于 AI 决策或事件脚本中,需要动态找出"得分最高"的国家并对其执行后续效果,例如选出外交压力最大的对手、最具影响力的派系成员等场景。使用时需先在 country_scorer 文件中定义好对应的 scorer 逻辑,再在 effect 块中引用。
# 找出当前得分最高的国家并存入临时变量,然后对其发出警告
country_event = {
id = my_mod.1
immediate = {
get_highest_scored_country = {
scorer = my_threat_scorer
var = top_threat_country
}
var:top_threat_country = {
country_event = { id = my_mod.2 }
}
}
}
配合关系
[get_highest_scored_country_temp](/wiki/trigger/get_highest_scored_country_temp):执行完本 effect 后,可用该 trigger 检查临时变量是否已被成功赋值(即是否存在符合条件的国家),避免对空变量操作。
[get_sorted_scored_countries](/wiki/effect/get_sorted_scored_countries):若需要的不只是第一名而是完整排名列表,可改用此 effect;两者底层依赖同一套 scorer 体系,逻辑上互为补充。
[every_other_country](/wiki/effect/every_other_country):在 scorer 难以精确筛选时,可先用此遍历所有国家配合条件累积得分数据,再由本 effect 取出最高者。
[add_opinion_modifier](/wiki/effect/add_opinion_modifier):取出得分最高的国家后,常立即对该国施加外交修正、宣战目标等后续效果,此命令是最典型的下游操作之一。
常见坑
- scorer 未正确注册就引用:
scorer = scorer_id 填写的 id 必须与 common/country_scores/ 下定义的 scorer 文件中的 key 完全一致,拼写错误或文件未加载会导致临时变量为空,后续所有对该变量的 scope 操作静默失败且不报错,极难排查。
- 误把临时变量当普通变量持久化:存储结果的
var 是 temp variable(临时变量),仅在当前 effect 执行链中有效,不能在事件结束后通过 check_variable 之类的触发器跨事件读取,若需持久保存需另行用 set_variable 将其转存到普通变量。