实战用法
gain_xp 常用于事件奖励场景,例如将领完成特定任务(赢得战役、完成训练事件)后给予经验奖励,使其更快升级。也可在焦点树或决策中奖励玩家培养的精英将领,配合其他 buff 强化角色成长感。
# 某将领完成战役任务事件后获得经验
country_event = {
id = my_mod.1
option = {
name = my_mod.1.a
# 令该国的某位将领获得经验
random_army_leader = {
limit = { is_corps_commander = yes }
gain_xp = 10
}
}
}
配合关系
[skill](/wiki/trigger/skill) — 在给予经验前用于检查将领当前技能等级,避免对已满级将领浪费事件触发条件。
[add_skill_level](/wiki/effect/add_skill_level) — 当需要直接跨越多个等级时与 gain_xp 分工:前者精确控制经验积累,后者直接拔升等级,两者目的相近但机制不同,按需搭配。
[add_trait](/wiki/effect/add_trait) — 经验增长触发升级后,同步添加特质来模拟将领因战功获得技能专长的叙事效果。
[is_corps_commander](/wiki/trigger/is_corps_commander) / [is_field_marshal](/wiki/trigger/is_field_marshal) — 用于 limit 块筛选正确的将领 scope,确保经验只授予预期角色类型。
常见坑
- 不能用于扣除经验:该指令只能增加经验值,传入负数并不会按预期减少经验,若需降低将领能力应改用
[add_skill_level](/wiki/effect/add_skill_level) 配合负值或直接替换特质。
- scope 必须是 CHARACTER:在国家 scope 下直接调用
gain_xp 会导致脚本报错或静默失效,必须先通过 random_army_leader、specific_character 等方式进入正确的角色 scope 后再调用。