跳转到内容
输入关键词开始搜索。

剧情事件与触发器

剧情事件是游戏中组织剧情脚本的基本单位。触发器负责在合适的时机找到并调用事件,事件中的命令会进入剧情事件队列,并按顺序执行。

脚本中使用的特殊符号建议全部使用英文半角符号,例如 *#:;|[]$。剧情文本和配置表里也应避免把这些符号误当成普通文字使用。

一个剧情事件主要由事件 ID、命令内容和结果三部分组成。

组成说明
剧情事件 ID唯一标识一段剧情事件,供触发器或 EVENTSUB_EVENT 等指令调用。
命令内容事件触发后执行的命令条目,多行命令按顺序进入执行队列。
结果根据命令返回结果进行条件判定,并跳转到其他事件或结束当前事件。

触发器用于把游戏中的交互、地图进入、任务完成、战斗结果等时机连接到剧情事件。触发器被命中后,并不是直接打断所有流程立即运行,而是把对应事件放入剧情事件队列,再由事件执行器依次处理。

接口类型触发时机对象参数
passive被动触发,常用于地图编辑器触发器或 TRIGGER 指令直接执行。
talk与 NPC 交互时触发。
first_in第一次进入游戏时触发。
encounter与沙盒地图上的单位交互时触发。目标单位控制 ID
before_enter_map进入目标地图前触发;有事件响应时会中断当前进入地图行为。目标地图 ID
enter_map进入地图时触发。目标地图 ID
before_leave_map离开当前地图前触发;有事件响应时会中断当前离开地图行为。当前地图 ID
leave_map离开当前地图时触发。当前地图 ID
enter_place进入地点时触发。目标地点 ID
reach_place大地图上进入地点前触发;有事件响应时会中断进入地点行为。目标地点 ID
leave_place离开地点时触发。当前地点 ID
before_leave_place离开地点前触发;有事件响应时会中断离开地点行为。当前地点 ID
reach_building进入设施前触发;有事件响应时会中断进入设施行为。目标设施 ID
set_lordAI 任命或解除玩家城主时触发。触发类型与对象 ID
job_cmd对玩家下达工作指令时触发。
see_warband大地图遭遇其他队伍战斗时触发。
curplace_inwar玩家所在地点被攻击时触发。
quest_done任务所有条件达成但尚未交付时触发。任务 ID
on_end_work结束在某地点的任务时触发。
occupy_place玩家成功占领地点时触发。目标地点 ID
new_day新的一天到来时触发。目标天数
reward_follower奖赏玩家手下时触发。
reward_player玩家受到奖赏时触发。
dip_event玩家势力遇到外交事件时触发。外交事件类型与对方势力 ID
dip_ret_success玩家势力请求的外交活动返回成功时触发。外交事件类型与对方势力 ID
dip_ret_fail玩家势力请求的外交活动返回失败时触发。外交事件类型与对方势力 ID
player_failed玩家遭遇战失败时触发。
reinforce_request与玩家相关的支援事件触发。
is_fall势力垮台时触发。势力 ID
is_to_fall势力失去所有据点、即将垮台时触发。势力 ID
before_cash_present褒奖前触发,可用于打断褒奖。
before_present送礼前触发,可用于打断送礼。
on_present送礼时触发。
encounter_role遇到角色并进入通用对话前触发。目标角色 ID
helped_camp遭遇双方战斗时帮助其中一方后触发。对方队伍领队所属阵营
on_saodang扫荡完野外地点后触发。
on_place_rep_up地点贡献度提升时触发,最新贡献度可从 arg_int_val1 读取。
on_place_rep_down地点贡献度下降时触发,最新贡献度可从 arg_int_val1 读取。
team_dismiss队伍解散时触发。队伍类型
team_into_place队伍进入地点时触发。队伍类型与地点 ID
in_game创建或载入游戏后触发。
bar_challenge玩家在酒馆发起挑战时触发。
tournament_start玩家参加当地搏击武斗会时触发。
be_promoted玩家爵位等级提升时触发,tagrole 为势力领主。
be_demoted玩家爵位等级下降时触发,tagrole 为势力领主。
space_move玩家在城内区域切换时触发。enter 或 leave;区域 ID
on_diplomacy_strategy按下情报界面的外交按钮时触发,tagcamp 为目标势力。
on_diplomacy_quit按下情报界面的退出按钮时触发,tagcamp 为目标势力。
after_generate_role生成角色后触发,tagrole 为生成出的角色。生成模板 ID
match_prepare比武大会开始准备时触发。比武大会 ID
match_start比武大会正式举办时触发。比武大会 ID
match_end比武大会结束时触发。结束类型与比武大会 ID
match_fight比武大会开始战斗时触发。比武大会 ID
match_watch_fight比武大会观战时触发。比武大会 ID
match_fast_fight比武大会快速战斗时触发。比武大会 ID
match_join_team比武大会加入队伍时触发,arg_int_val1 为申请加入的队伍 ID。比武大会 ID
match_end_talk比武大会结束对话时触发。结果类型与对话人物

预设字段可以在脚本中代替当前上下文里的对象,适合编写可复用的通用事件。

字段说明
CUR_ROLE当前遭遇人物模板的 ID,常用于对话框和选择框。
CUR_BATTLE当前遭遇的大地图刷新单位对应的战斗 ID。

特定战斗表的限制条件字段,以及 BATTLE 等指令的战斗参数,都可以使用战斗参数覆盖原本的战斗设置。

参数1ID:参数1;参数2ID:参数2;...
参数说明
player覆盖玩家方出战英雄单位。格式:角色ID|角色ID2,例如 主角|曲玉
units覆盖玩家方出战编队。格式:兵卡ID,数量,等级|兵卡ID2,数量,等级;等级不填时使用卡牌初始等级。
add_stat为初始部署角色附加属性。格式:角色ID或兵卡ID=属性字段ID,字段数值|属性字段ID2,字段数值2
place_stat为战斗地点附加属性字段。格式:属性字段ID,字段数值|属性字段ID2,字段数值2
can_capture本次战斗是否可以俘虏战败方。1 为可以,0 为不可以。
can_loot_equip本次战斗是否可以掉落敌人装备。1 为可以,0 为不可以。

结果脚本用于根据条件把事件导向不同后续命令。游戏会从第一行开始判断,命中第一条成立的条件后执行对应命令。

条件表达式组1:执行命令1
条件表达式组2:执行命令2
...
条件表达式组N:执行命令N
写法说明
[%global_int:ID%]返回全局整形字段 ID 的值。
[$global_str:ID$]返回全局字符串字段 ID 的值。
字段说明
save_max_hard_level已经解锁过的最高难度,默认值为 0
字段说明
system_沙盒模式标记当前是否是沙盒模式。
system_探索地图点数记录探索地图点数。
system_星星记录星星数目。
system_敌方角色血量百分比玩家与敌方角色对战时,对方血量的额外附加倍率。
system_敌方角色攻击百分比玩家与敌方角色对战时,对方攻击力、魔法攻击力的额外附加倍率。
config_ai_level当前 AI 强度等级:0 简单,1 普通,2 困难。
config_roll_limit是否开启战斗翻滚限制。0 关闭,1 开启。
config_hunger_penalty是否开启饥饿惩罚。0 关闭,1 开启。
config_upgrade_cost_reduce当前升级单位花费经验与材料的折扣率,百分比。
config_soldier_dead_scale当前小兵阵亡概率倍率,百分比。

初始设定字段通常用于角色创建、出生地图、默认时间速度和战斗默认公式等基础配置。

字段说明
init_pos默认出生点位置信息。
init_statu玩家出生时默认的属性状态信息。
init_money默认初始财产。
home_place默认初始地点 ID。
init_skillpages初始点亮的技能页。
init_skills主角初始拥有的技能表。
init_equip主角初始装备表信息。
init_camp_rl初始阵营关系表。格式:阵营A,阵营B,关系状态,友好度|...。
gametime_scale大地图中游戏时间进行的缩放系数。
battletime_scale战斗中游戏时间进行的缩放系数;为 0 时遭遇战或攻城战中游戏时间静止。
custom_intval_watcher默认监视自定义变量字段,格式同 ADD_INTVAL_WATCHER。
def_dropitem_model战斗中默认道具掉落在地上的模型及特效信息。
default_role_model_male / default_role_model_female未指定角色模型时使用的默认男女角色模型。
default_role_act_male / default_role_act_female未能根据武器类型映射动作时使用的默认男女动作 ID。
default_weapons_speed所有武器类型对应的默认攻击速度。
def_formula_phy_x / def_formula_mag_x物理防御与巫术防御计算公式因子。