通用剧情事件指令说明
特别注意:脚本编辑时注意所有特殊符号必须为半角!!!同时在剧情和所有配置表里也要避免使用带有特殊符号的字符串,以防止和脚本配合使用时发生脚本注入错误!
目录
- 1 剧情事件
- 2 剧情事件触发器
- 3 脚本命令列表
- 4 全局存档相关的操作指令
- 5 内置指令列表
- 6 脚本预设字段及含义
- 7 剧情事件中的结果脚本指令格式
- 8 条件表达式组格式
- 9 游戏数据中运算值表达式系统说明
- 10 剧情事件中可用的嵌入式查询指令
- 11 全局存档查询指令字段
- 12 内置全局变量字段
- 13 内置自定义变量字段
- 14 初始设定表内置字段说明
- 15 对话框及一些通用UI中支持的字体颜色指定代码
- 16 人物角色位置指令格式
- 17 游戏内全局位置指令格式
- 18 特定战斗中的单位限制指令格式
- 19 大地图单位控制指令表
- 20 单位队伍默认运动指令格式
- 21 物品列表信息格式
- 22 天气效果信息格式
- 23 镜头滤镜效果信息格式
- 24 人物表中具有特殊含义的TAG
- 25 地点表中具有特殊含义的TAG
- 26 阵营表中具有特殊含义的TAG
- 27 物品表中具有特殊含义的TAG
- 28 地图表中探索地图信息字段中特殊字段说明
- 29 副本信息表中TAG特殊字段说明
- 30 物品道具词条信息格式
- 31 物品掉落信息格式
- 32 特效对象事件脚本指令格式
剧情事件
剧情事件是游戏过程中用来实现剧情脚本的基本元素。游戏中所有的剧情事件都是由触发器或者执行器调用并丢入指令队列中,然后在游戏中由世界事件管理器(GameWorldManager)在游戏世界时间运行时顺序执行的。 一个完整的剧情事件主要由以下部分组成:
- 剧情事件ID:用以唯一标识该剧情事件;
- 命令内容:包含该剧情事件触发后执行的命令条目;
- 结果:根据命令条目最后一条的返回结果,进行条件判定并跳转;
剧情事件触发器
目前游戏中所有的剧情及事件都是基于剧情事件触发器机制来建立的。触发器的设计原理为,通过在游戏中的各种关键位置预设事件接口,当程序访问这些程序位置时,就会调用这些事件接口并传入当前调用时的环境变量,程序会根据当前的环境变量去遍历该接口事件中定义的所有触发器,并返回其中优先级最高的一个触发器或者所有满足条件的触发器(根据接口的类型不同来决定是返回一个还是所有触发器)来执行对应的剧情事件。触发器调用事件时并不是立即执行的,而是把对应的事件放入剧情事件执行队列中依次执行,直到队列中所有的事件都执行结束。
目前游戏中定义的剧情事件接口列表为(加粗的为全部触发类型,既执行所有满足条件的触发器事件而非优先级最高的一个):
接口类型 | 接口说明 | 对象类型 | 对象ID |
---|---|---|---|
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_lord | AI设置玩家为城主时触发 | 触发类型:0=任命 1=解除 触发对象:对象ID | |
job_cmd | 对玩家下达工作指令时触发 | ||
see_warband | 大地图遭遇其他队伍战斗时 | ||
curplace_inwar | 当玩家所在地点被攻击时触发 | ||
quest_done | 任务所有条件达到时触发(还未交) | 任务ID | |
on_end_work | 结束在某地点的任务时触发 | ||
occupy_place | 玩家成功占领地点时触发 | 目标地点ID | |
new_day | 当新的一天时触发 | 目标天数 | |
reward_follower | 奖赏玩家手下时触发 | ||
reward_player | 玩家受到奖赏时触发 | ||
dip_event | 当玩家势力遇到外交事件时 | 外交事件类型
1:赎回 2:友善 3:宣战 4:结盟 5:解盟 6:停战 |
对方势力ID |
dip_ret_success | 当玩家势力请求的外交活动返回成功时 | 同上 | 同上 |
dip_ret_fail | 败时 | 同上 | 同上 |
player_failed | 当玩家遭遇战失败时触发 | ||
reinforce_request | 与玩家相关的支援事件 | ||
is_fall | 势力垮台的时候触发 | 势力ID | |
is_to_fall | 势力失去所有据点,即将垮台时触发 | 同上 | |
before_cash_present | 褒奖前触发(打断褒奖) | ||
before_present | 送礼物前触发(打断送礼) | ||
on_present | 送礼物时触发 | ||
encounter_role | 遇到一名character触发通用对话之前触发 | 目标角色ID | |
helped_camp | 遭遇双方战斗时帮助了其中一方时触发 | 对方队伍的leadrole的所在阵营 | |
on_saodang | 扫荡完野外地点后触发 | ||
on_place_rep_up | 当地点贡献度提升时触发,最新的贡献度存储在arg_int_val1中。 | ||
on_place_rep_down | 当地点贡献度下降时触发,最新的贡献度存储在arg_int_val1中。 | ||
team_dismiss | 队伍解散时触发 | 队伍类型:0:角色队伍 1:脚本创建队伍 2:商队 3:假人 4:农民 | |
team_into_place | 队伍进入地点时触发 | 队伍类型:(同上) | 进入的地点ID |
以下设置需要游戏版本高于0.8.0.1 | |||
in_game | 每次进入游戏时触发(创建或载入游戏) | ||
以下设置需要游戏版本高于1.0.0.1 | |||
bar_challenge | 玩家在酒馆发起挑战时触发。 | ||
tournament_start | 玩家参加当地的搏击武斗会时触发。 | ||
be_promoted | 玩家的爵位等级被提升时触发。环境变量中tagrole被设置为势力领主 | ||
be_demoted | 玩家的爵位等级被下降时触发。环境变量中tagrole被设置为势力领主 | ||
space_move | 玩家在城内区域切换时触发 | enter:进入此区域 leave:离开此区域 | 区域id:hall=城镇大厅;bar=酒馆;center=城镇中心 |
on_diplomacy_strategy | 按下情报界面的外交按钮触发,环境变量中tagcamp被设置为目标势力 | ||
on_diplomacy_quit | 按下情报界面的退出按钮触发,环境变量中tagcamp被设置为目标势力 | ||
以下触发器需要激活DLC《比武大会》 | |||
match_prepare | 比武大会开始准备时触发 | 比武大会ID 所有比武大会触发器中,当前比武大会都会作为环境变量 | |
match_start | 比武大会正式举办时触发 | 比武大会ID | |
match_end | 比武大会结束时触发 | player:玩家结束 overtime:超时结束 | 比武大会ID |
match_fight | 比武大会开始战斗 | 比武大会ID | |
match_watch_fight | 比武大会观战 | 比武大会ID | |
match_fast_fight | 比武大会快速战斗 | 比武大会ID | |
match_join_team | 比武大会加入队伍 | 比武大会ID,[$arg_int_val1$]为当前申请加入队伍的ID | |
match_end_talk | 比武大会结束对话 | 类型:-1:未参加 0:未拿奖 1:冠军 2:亚军 3:季军(有两个) | 对话人物 |
脚本命令列表
游戏事件中执行的脚本指令一般由: 指令类型*参数1#参数2#..#参数N 这样的格式组成,多行指令由换行符进行分隔。
目前支持的脚本命令条如下:
指令 | 说明 |
---|---|
(空) | 角色对话框
用途:以角色立绘+文字打印的方式显示一段对话文本 格式:*角色ID(@立绘显示位置)#对话段落1#对话段落2#对话段落3#...#对话段落N 备注: 当对话框某段文字需要绑定语音时,在该段文字之前加上<voice:语音ID>就可以在显示该段文字时播放对应声音文件,当点击跳过时自动关闭当前语音 每段对话文字可以以“|”分隔写出多组随机对话段落,调用时会在其中随机选出一段进行返回。 当对话内容以“inner:...”开头时,为用特殊信息替换内容; 以下为内置的特殊信息ID及含义: inner:set_player_job 给对象为玩家的角色设置工作指令时说的话 inner:set_player_lord 任命玩家为城主时说的话 inner:self_introduce 角色的自我介绍 inner:cur_doing 当前角色正在进行的工作内容 inner:cur_team_intent 当前队伍的目的 *立绘显示位置:可以是L或者R,默认为L,立绘显示在对话框左侧,R则显示在右侧 |
EVENT | 跳转事件
用途:跳转并执行指定的剧情事件ID 格式:EVENT*剧情事件ID#跳转至目标事件的子命令行index值(从0开始) |
SUB_EVENT | 跳转子事件
用途:跳转并执行指定的子事件,并可通过 SUB_EVENT_RETURN 指令跳转回来 格式:SUB_EVENT*剧情事件ID |
SUB_EVENT_RETURN | 返回子事件
用途:从当前子事件中返回上一次跳转来的事件位置 格式:SUB_EVENT_RETURN* |
SUB_EVENT_HALT | 挂起子事件
用途:结束当前子事件,并且不返回到跳转来的事件 格式:SUB_EVENT_HALT* |
IF | 条件分支
用途:根据条件表达式组判断是否执行下面的条件,否则跳到END_IF处 支持多个IF嵌套,但是需要正确添加对应的END_IF 格式: IF*条件表达式组(参考条件表达式组格式) 其他语句 END_IF* |
END_IF | 条件分支结束
用途:用于IF语句的结束判断,当IF条件不满足时,会跳转到匹配的END_IF处继续执行 格式:END_IF* |
SELECT | 角色对话选择框
用途:在角色对话框的基础上,当打印完对话内容后,弹出一个选项框让用户选择并返回结果(对应剧情事件中的结果命令中的[%result_code%]) 格式:SELECT*角色ID#对话内容#1:选项一*条件组一;2:选项二*条件组二;...;N:选项N*条件组N (只有当条件组满足或者为空时才会显示,否则隐藏该选项) 备注:当选项Key值以"+"开头时表示该选项选中后对话框不会关闭; |
SELECT_TALK | 插件式对话选择框
用途:可通过触发器表来扩展选项内容的选择框 格式:SELECT_TALK*角色ID#对话内容#[ADDON_SELECT];[固定选项(例如:0:取消)]#筛选标签(以"|"分隔,默认为any) 备注:前2个参数和SELECT相同,第4个参数为触发器type(不填写默认为any),不过会从触发器中选择触发类型为SELECT且满足条件的选项添加到选项中,显示的文字为触发器中的绑定选项,触发事件为触发事件ID对应的事件。 注意:使用时需要在结果中添加一行[%result_code%][>]99:EVENTPOJO_EVENT* 在触发器表中触发事件ID支持增加前缀“SUB_EVENT.”来标记该事件为一个子事件。 |
CMD_SELECT | 系统选择框
用途:弹出一个只有确定按钮的文字框 格式:CMD_SELECT*选择提示信息#选项组(同SELECT命令) |
CONFIRM | 文字确认框
用途:弹出一个只有确定按钮的文字框 格式:CONFIRM*确认文字内容 |
TOAST | 屏幕短消息提示
用途:在屏幕中弹出一段文字,隔一小段时间自动消失 格式:TOAST*弹出信息内容 |
BB | 角色头像提示对话框
用途:在屏幕指定UI区域弹出一个有角色头像的对话框,不会打扰当前的操作且不需要进行操作,对话结束后自动消失 格式:BB*角色ID#对话内容#等待额外延时(以秒为单位,按照文字长度自动停留时间再加上此项) |
GAME_MSG | 游戏内消息通知
用途:在UI中的消息框中显示一段文字消息,并且可以再消息记录中查阅 格式:GAME_MSG*消息内容#消息类型(0:普通 1:警告 2:系统) |
INPUT | 文字输入框
用途:弹出一个文字输入框,并将输入结果保存在可查询变量中([%input_str%]) 格式:INPUT*提示文字#Len限制字数#默认文字 |
DELAY | 延时等待
用途:延时等待一小段时间(以真实时间秒数为单位,期间不能进行任何操作) 格式:DELAY*等待时间(秒) |
SCREEN | 全屏字幕
用途:全屏显示一个屏幕字幕(默认背景为黑色,可设置背景透明度) 格式:SCREEN*字幕显示文字(支持“\n”表示换行)#字幕配全屏图资源名称(空为不配图)#背景透明度(可选,默认为1) |
BLACK_SCREEN | 屏幕黑幕
用途:给屏幕UI层覆盖一层黑色的幕布,仅可在其上显示全屏字幕等UI对象 格式:BLACK_SCREEN*是否开启(0:关闭 1:开启) |
SHAKE_SCREEN | 屏幕晃动
用途:执行一个屏幕晃动效果 格式:SHAKE_SCREEN*时间(秒)#烈度 (如:SHAKE_SCREEN*0.3#3) |
SET_WEATHER | 设置当前游戏天气
用途:设置并覆盖当前的游戏天气效果 格式:SET_WEATHER*天气效果命令 备注: 天气效果命令格式: 天气效果ID1,强度|天气效果ID2,强度|...|天气效果ID N,强度 如: 雪,60|雾,20 强度值范围0~100,当为0时表示关闭该效果 天气效果ID见 天气效果信息格式 |
ADD_GAME_HARD_LEVEL | 增加游戏难度等级
用途:增加游戏的难度等级,只能在传承指令中使用,在游戏内使用有部分效果无法生效(如角色初始等级提升)游戏难度等级可用[%game_hard_level%]查询 难度等级每增加1级, 兵种初始等级、等级上限、转职需要等级均+5 英雄等级上限+5,初始等级+2 装备的核心词条(武器默认为攻击力、魔法攻击力,防具默认为防御力、血量,饰品默认为生命恢复、气力恢复)数值增加10% 装备的随机词条数值增长10% 格式:ADD_GAME_HARD_LEVEL*增加难度等级 |
SET_ROLE_LEVEL_EXTEND | 设置角色等级上限扩展
用途:设置角色等级上限扩展,扩展等级上限可使用[%role_level_extend%]查询 角色等级上限 = 20 + 初始设定表上限 + 角色等级上限扩展 格式:SET_ROLE_LEVEL_EXTEND*扩展等级 |
SET_CARD_LEVEL_EXTEND | 设置兵种等级上限扩展
用途:设置兵种等级上限扩展,扩展等级上限可使用[%card_level_extend%]查询 兵种等级上限 = 20 + 兵种等级上限扩展 格式:SET_CARD_LEVEL_EXTEND*扩展等级 |
SET_ROLE_LEVEL_START_EXTEND | 设置角色额外初始等级
用途:设置角色额外初始等级,只在传承指令中生效(游戏开始后角色已经生成) 格式:SET_ROLE_LEVEL_START_EXTEND*额外初始等级 |
SET_CARD_LEVEL_START_EXTEND | 设置兵种额外初始等级
用途:设置兵种额外初始等级,只在传承指令中生效(游戏开始后角色已经生成) 格式:SET_CARD_LEVEL_START_EXTEND*额外初始等级 |
BATTLE | 执行战斗
用途:执行一个定义在特定战斗表或者当前遭遇战的战斗 格式:BATTLE*战斗ID (当不指定战斗ID或为"ENCOUNTER"则开启当前遭遇战)#指定BGM(可选,如存在指定战斗的BGM)#战斗参数(可选,对应特定战斗表中的“限制条件_Limitations”字段,不为空时覆盖该参数) |
BATTLE_WITH | 与指定单位目标进行战斗
用途:与指定的单位目标开始一场自定义战斗 格式:BATTLE_WITH*对方角色信息(可选)#对方兵牌信息(可选)#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)#战斗参数(可选,对应特定战斗表中的“限制条件_Limitations”字段)#暂停沙盒演算(0否,1是,默认0) |
BATTLE_WITH_TAGROLE | 与目标角色进行战斗
用途:立即与当前的目标角色开始一场特定战斗 格式:BATTLE_WITH_TAGROLE*战斗ID(战斗ID只是用来触发剧情事件)#指定BGM(可选,如存在指定战斗的BGM) |
BATTLE_OBSERVE | 使用自定义战斗数据进行观战
用途:使用自定义战斗数据开启一场战斗,并进行观战 格式:BATTLE_OBSERVE*A方角色信息#A方兵牌信息#B方角色信息#B方兵牌信息#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)#战斗参数(可选,对应特定战斗表中的“限制条件_Limitations”字段)#暂停沙盒演算(0否,1是,默认0) |
CHANGE_BGM | 更改当前游戏的背景音乐
用途:根据剧情需要更改当前游戏播放的背景音乐 格式:CHANGE_BGM*参数1#参数2
|
PLAY_SOUND | 播放游戏音效
用途:播放一段游戏音效 格式:PLAY_SOUND*音效ID#延迟播放时间(默认0秒) |
PLAY_ROLE_VOICE | 播放角色语音
用途:播放定义在角色tags中"Voice"项中的语音音频文件 格式:PLAY_ROLE_VOICE*角色ID,该处关联角色tags中“Voice”一栏设定。 |
DUNGEON | ```开始一场地城战斗```
用途:开始一场自定义的地城战斗 格式:DUNGEON*地城ID |
NUMSEL | 数值输入框
用途:弹出一个文字输入框,并将输入结果保存在可查询变量中([%result_code%]) 格式:NUMSEL*输入框显示文字#最小值#最大值#默认值#单价#单价计算显示信息(当单价为0时不显示单价信息,否则需要按照"每个单位{0}银两,共需{1}银两"这样的格式进行指定) |
CHANGE_MONEY | 更改主角所持的金钱数量
用途:按照变更值改变主角所持金钱数,可为负数代表减少 格式:CHANGE_MONEY*金钱变更数量 |
ROLE_CHANGE_MONEY | 更改指定英雄所持的金钱数量
用途:按照变更值改变指定角色所持金钱数,可为负数代表减少 格式:ROLE_CHANGE_MONEY*英雄ID#金钱变更数量 |
GETITEMS | 主角获得道具或资源
用途:主角直接获得指定的道具列表(注意:游戏中的金钱、经验等资源都可以通过此方法来获得,只要传入正确的映射ID即可) 格式:GETITEMS*道具列表信息(如GETITEMS*商会茶叶,3|面包,1) |
SILENCE_GETITEMS | 主角获得道具或资源
用途:与GETITEMS作用相同,但不会出现获得提示。 格式:SILENCE_GETITEMS*道具列表信息(如GETITEMS*商会茶叶,3|面包,1) |
GETEQUIPS | 获取装备道具并立即装备
用途:为指定角色获取装备道具并立即装备,当目标为队伍中的角色并且该角色无法装备此道具则将其加入背包中。(当不指定目标时默认为主角) 格式:GETEQUIPS*装备道具表(装备ID1|装备ID2|...)#目标角色ID(可选,默认为主角) |
GETEQUIPS_FORCE | 获取装备道具并立即装备(无视所有装备条件)
用途:同GETEQUIPS,但是会无视装备的装备条件 格式:GETEQUIPS_FORCE*装备道具表(装备ID1|装备ID2|...)#目标角色ID(可选,默认为主角) |
AI_CAMP_GETITEMS | 全势力获得道具或资源
用途:同GETITEMS指令,但是生效的主体从主角改为所有调用当前指令的势力实体 格式:AI_CAMP_GETITEMS*道具列表信息 |
TRANSFER_ITEMS | 转换道具
用途:按照比例将现有道具表中的指定道具转换为新的道具 格式:TRANSFER_ITEMS*原道具ID#新道具ID#原数额#新数额#转化次数 例如:TRANSFER_ITEMS*小麦#小麦粉#1#1#10,表示将小麦1:1转化为小麦粉,转化10次。如果任何一次转化过程中原道具数量不足,则停止转换。 |
GET_RND_ITEM | 随机抽取一组道具
用途:在几组道具之中随机选中并获取一组道具 格式:GET_RND_ITEM*对象道具列表(如GET_RND_ITEMS*茶叶,3|面包,1|牛奶,2 表示从此3种道具总随机取一种) |
REMOVE_ITEMS | 移除指定道具或资源
用途:根据指定的道具数量从主角道具表中移除指定数量的道具 格式:REMOVE_ITEMS*道具列表 |
REMOVE_SELECT_ITEMS | 移除选中的道具
用途:根据ITEMS_SELECTOR指令创建的UI选择道具列表后,从物品栏中移除指定数目的道具 格式:REMOVE_SELECT_ITEMS*最大指定组数(从选中对象中取最前面的指定对象组)#移除数量(可选,默认-1,当小于0或者大于对象堆叠的数量时为移除该组全部,否则对所有选中对象范围移除指定个数) |
REMOVE_PRESENT | 移除符合要求的指定礼物道具
用途:根据指定的礼物标签移除道具列表中一个礼物道具 格式:REMOVE_PRESENT*礼物筛选描述信息,礼物描述字符串格式参加任务列表中Tag栏中“Like”这个tag的格式 |
ITEMS_SELECTOR | 打开道具选择对话框
用途:弹出一个道具选择对话框,并将选择结果保存在可查询变量中([%last_seled_items%],[%last_seled_item_id%]等) 格式:ITEMS_SELECTOR*选择框标题#数量限制(小于0为不限制)#筛选条件表达式 |
LOOT | 执行掉落判定
用途:按照列表执行一次掉落检定(LOOT格式见 物品掉落信息格式) 格式:LOOT*Loot列表 |
TEAM_GAINEXP | 主角队伍获取经验值
用途:根据均分原则对主角队伍增加一次经验值 格式:TEAM_GAINEXP*获得的经验值(每张卡牌均有等量经验) |
TEST_ADD_ROLE_EXP | 指定英雄获取经验
用途:对一个指定的角色增加经验值 格式:TEST_ADD_ROLE_EXP*英雄ID#经验 |
CHANGE_ROLE_LV | 更改角色的等级
用途:更改一个指定的角色的等级 格式:CHANGE_ROLE_LV*英雄ID#指定等级 |
PLAYER_GUARDS_LEVELUP | 地点所有守军英雄升级
用途:直接把一个地点下所有的守军等级提升一级 格式:PLAYER_GUARDS_LEVELUP*地点ID |
PLAYER_TEAM_LEVELUP | 主角队伍中所有的英雄升级
用途:直接升级主角队伍里所有的英雄 格式:PLAYER_TEAM_LEVELUP* |
SETTRIGG | 设置触发器开关
用途:直接开启或关闭一个触发器 格式:SETTRIGG*触发器ID#状态值(0为开启,1为关闭) |
TRIGGER | 执行触发器
用途:直接执行一个指定的触发器 格式:TRIGGER*触发器ID |
CHECK_TRIGGER | 触发器检测
用途:按类型触发触发器,并执行对应事件 格式:CHECK_TRIGGER*触发器类型#触发对象类型#触发对象ID#是否触发全部触发器(0否,1是) 备注:用于按照触发器条件去检测所有的触发器,并触发对应的触发器事件。 |
SET_ES | 手动设置剧情事件状态
用途:手动设置一个剧情事件的执行状态(正常的事件执行逻辑执行后会以当前事件的ResultCode标记事件状态结果) 格式:SET_ES*剧情事件ID*状态值(-1未执行过 其他为该事件ResultCode) |
SETINTVAR | 设置自定义整形变量
用途:设置一个整形的自定义变量(会被存档所记录),其中一部分变量字段可对游戏中的一些逻辑参数进行关联(已在程序内部定义并关联的整形自定义变量见《自定义变量参数表》),并可通过内置查询参数进行查询([%int_val:ID%]) 格式:SETINTVAR*变量ID#当前int值 |
CHANGEINTVAR | 改变自定义整形变量
用途:通过改变值来根据当前自定义变量的值进行更改 格式:CHANGEINTVAR*变量ID#改变值(正负数皆可)#【可选:forceZero】,填写forceZero后,扣负只会扣到零,不会为负数。 |
SET_TEMP_ID | 设置临时ID变量
用途:设置一个临时的ID,不会被存档保存,通过特殊方式进行访问 格式:SET_TEMP_ID*ID |
SETSTRVAR | 设置自定义字符串变量
用途:设置一个字符串变量(会被存档记录),可通过内置查询参数进行查询([%str_val%]) 格式:SETSTRVAR*变量ID#string值 |
SETGAMETIMETAG | 标记自定义关键时间点
用途:标记并按ID记录当前的游戏时间点,之后可以通过[%tag_gametime_elapse%]读取该时间点ID的已流逝时间。【注意:该指令仅用于在一系列story中进行临时变量传递,该tag不会在存档中被保存,请勿用于需要持久化数据的场景】 格式:SETGAMETIMETAG*时间点ID |
SETGAMETIME | 标记自定义游戏时间点
用途:标记并按ID记录当前的游戏时间点(会被存档记录),可通过查询参数查询此时间相关的信息(见[%gametime_elapse%]、[%gametime_elapse_by_day%]等查询说明) 格式:SETGAMETIME*时间点ID |
SET_CUSTOM_CD | 设置一个自定义冷却时间
用途:设置一个自定义的冷却时间计时器,可通过[%is_custom_cd:ID%]是否为1来判断此CD当前是否可用 格式:SET_CUSTOM_CD*自定义ID#CD时间(≤0为关闭此CD,>0时设置指定时间,单位:天) |
GET_QUEST | 领取一个任务
用途:领取指定的任务 格式:GET_QUEST*任务ID |
ADD_QS | 增加任务子项计数器
用途:手动增加一个任务子项的计数器 格式:ADD_QS*任务ID#子项index(0开始)#增加数量 |
SETQUESTIEM | 设置任务子项的值
用途:设置指定任务子项的值 格式:SETQUESTIEM*任务ID#子项index#设置的值 |
DONE_QUEST | 完成一个任务
用途:标记并完成指定的任务 格式:DONE_QUEST*任务ID#是否给奖励(1是) |
SHOW_IMG | 显示一个立绘图片框
用途:显示一个预制资源图片(已废弃,推荐使用SHOW_CG指令) 格式:SHOW_IMG*图片资源名称*预设特效0*停留时间(秒) |
CLOSE_IMG | 关闭当前的立绘图片框
用途:关闭当前的立绘图片框 格式:CLOSE_IMG*预设特效0 |
JOIN_ROLE | 强制指定角色加入队伍
用途:强制一个指定角色加入队伍,如果当前队伍已满,会显示处置界面 格式:JOIN_ROLE*人物ID |
QUIT_ROLE | 强制指定角色离队
用途:强制一个指定的角色离开主角队伍 格式:QUIT_ROLE*人物ID |
SET_PLACE | 更改地点的状态
用途:设置一个地点的当前状态 格式:SET_PLACE*地点ID#状态值(0正常 1被摧毁 -1隐藏) |
SET_ROLEPOS | 设置角色位置
用途:强制设置一个角色的位置(人物位置信息格式见 人物位置信息说明 ) 格式:SET_ROLEPOS*人物ID#位置信息 |
LEAVE_PLACE | 【暂不可用】 |
TELEPORT | 主角传送至指定位置
用途:将主角队伍传送至指定世界位置 格式:TELEPORT*世界位置信息 |
TELEPORT_TO_PLACE | 主角传送至指定地点
用途:将主角队伍传送至指定地点的位置 格式:TELEPORT_TO_PLACE*地点ID |
TELEPORT_TO_ROLE | 主角传送至指定目标角色附近
用途:将主角队伍传送至指定角色所在的位置(只有目标角色位于队伍或者地点中时方可生效) 格式:TELEPORT_TO_ROLE*人物ID |
MAP_CMD | 沙盒地图单位控制专用指令集
用途:用于在沙盒地图上控制各种单位进行指定命令 格式:MAP_CMD*指令内容
|
RESTORE | 回复主角队伍卡牌耐久
用途:用于回复主角队伍所有卡牌的耐久度 格式:RESTORE*参数(<=0:回复队伍所有耐久 >0:仅指定点数的耐久) |
TIME_ELAPSE | 快速时间推进
用途:使用该指令可快速的推进游戏时间,期间会显示一个时间进度条 格式:TIME_ELAPSE*游戏时间#时间倍率#框体信息#允许取消(0[默认] 是 1否)#显示进度条(0[默认]否 1是)#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#UI是否跟随主角单位(0否 1是) |
WAIT_EXEC | 等待并执行一个脚本事件
用途:显示一个计时器,并等待指定的游戏时间,当时间到达时,会执行指定的脚本事件 格式:WAIT_EXEC*游戏时间#时间倍率#框体信息#允许取消(0[默认] 是 1否)#时间到达时执行的事件ID#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#是否跟随主角单位(0否 1是) |
OPENSEIGE | 打开围城处置界面
用途:显示一个围城处置界面,根据预设来操作增援部队 (需配合适当的指令触发环境,如:进城触发器) 格式:OPENSEIGE*界面模式( 0:攻城 1:守城)#目标地点ID(可选,默认为当前环境变量目标地点) |
OCCUPY | 执行攻城占领
用途:直接根据当前环境执行攻城占领判定 (需配合适当的指令触发环境,如:进城触发器) 格式:OCCUPY*0 |
JOIN_WARBAND | 加入战团
用途:加入一个已经创建的战团(战团ID一般通过[$tagwb:id$]来取得当前遭遇到的战团信息) 格式:JOIN_WARBAND*战团ID |
CHANGE_CAMP | 改变角色阵营
用途:直接改变一个目标角色的阵营 格式:CHANGE_CAMP*阵营ID#目标角色ID#招募者ID(如果指定此字段为主角则直接进入主角队伍) |
CREATE_OWN_CAMP | 创建主角自己的阵营势力
用途:创建并激活主角自己的势力。主角自己的势力势力拥有一个默认且固定的势力ID:自建势力 ,此势力游戏一开始就存在,只是出于非激活状态,调用此指令后主角自建势力将激活并处于可用状态,同时主角及其下属角色都将改变至此势力中 格式:CREATE_OWN_CAMP*自建阵营势力名称 |
SET_CAMP_ACTIVE | 改变阵营活跃状态
用途:改变势力的活跃状态。当势力处于非活跃状态时,不会进行各种决策或者势力行为 格式:SET_CAMP_ACTIVE*阵营ID#状态值(0不活跃 1活跃) |
SET_CAMP_NAME | 设置阵营的自定义名称
用途:设置阵营的自定义名称,当设置名称为空时,阵营恢复默认名称 格式:SET_CAMP_NAME*阵营ID#阵营名称 NPC叛乱部落的部落ID为:"camp_" + 角色ID |
SET_CAMP_RL | 改变阵营关系
用途:改变阵营势力之间的外交关系状态或友好值 格式:SET_CAMP_RL*阵营A#阵营B#关系状态(-1:不改变状态 0:中立 1: 敌对 2:友善)#友好度改变值#友好值目标值(如果存在该字段) |
SET_CAMP_WEIGHT | 设置阵营倾向
用途:为指定的阵营设置阵营倾向 格式:SET_CAMP_WEIGHT*阵营ID#倾向类型#倾向数值(1-100) 可设置的倾向类型:
|
CHG_CAMP_REP | 改变主角对阵营的声望值(贡献值)
用途:改变主角与阵营的声望值(贡献值) 格式:CHG_CAMP_REP*目标阵营ID#更改数值#目标值(当不为空时生效),阵营ID为空时表示当前所属阵营 |
CHG_PLACE_REP | 改变主角对地点的声望值(友好值)
用途:改变主角对地点的声望值(友好值) 格式:CHG_PLACE_REP*地点ID#更改数值#目标值(当不为空时生效) |
FAME | 修改主角全局声望值
用途:修改主角当前的全局声望值 格式:FAME*改变值 |
CHANGE_FAME | 修改指定角色的全局声望值
用途:修改一个指定角色当前的全局声望值 格式:CHANGE_FAME*目标人物ID#更改数值 |
CHG_PERSON_FV | 改变主角与游戏角色的好感度
用途:修改主角与指定游戏角色的友善度 格式:CHG_PERSON_FV*目标人物ID#更改数值#目标值(当不为空时生效) |
SET_ROLE_ACTIVE | 改变角色活跃状态
用途:改变一个非主角角色的活跃状态。当角色处于非活跃状态时,不会自动刷新在在野酒馆里,也不会进行迁移等AI操作 格式:SET_ROLE_ACTIVE*人物ID#状态值(-1不活跃 0活跃) |
CHG_PROSP_BY_CAMP | 改变势力下所有据点的繁荣度
用途:按照百分比改变一个势力下所有据点的繁荣度 格式:CHG_PROSP_BY_CAMP*势力ID#百分比(>-100) |
CHG_PLACE_PROSPERITY | 改变地点的繁荣度
用途:按照固定数值改变一个地点的繁荣度 格式:CHG_PLACE_PROSPERITY*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值) |
CHG_PLACE_PROSPERITY_BY_PCT | 按百分比改变地点的繁荣度
用途:按照百分比改变一个地点的繁荣度 格式:CHG_PLACE_PROSPERITY_BY_PCT*地点ID#更改数值百分比(>-100) |
CHG_PLACE_DEF | 改变地点的防御度
用途:按照固定数值改变一个地点的防御度 格式:CHG_PLACE_DEF*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值) |
CHG_PLACE_DEF_BY_PCT | 按百分比改变地点的防御度
用途:按照百分比改变一个地点的防御度 格式:CHG_PLACE_DEF_BY_PCT*地点ID#更改百分比 |
CHG_PLACE_SECURITY | 改变地点的治安值
用途:按照固定数值改变一个地点的治安值 格式:CHG_PLACE_SECURITY*地点ID#更改数值#目标值(0-100) |
PLACE_CUSTOM_INT | 指定地点的自定义字段值
用途:指定地点的指定自定义整形字段值 格式:PLACE_CUSTOM_INT*地点ID#标记ID#整型标记值 |
CHG_PLACE_CUSTOM_INT | 改变地点的自定义字段值
用途:改变地点的指定自定义整形字段值 格式:CHG_PLACE_CUSTOM_INT*地点ID#字段KEY#更改数值#目标值 |
PLACE_ADD_BUILDING | 增加地点的自定义设施
用途:给一个地点增加一个自定义设施 格式:PLACE_ADD_BUILDING*地点ID#设施ID(目标地点已存在该设施则无效) |
PLACE_REMOVE_BUILDING | 移除地点的指定自定义设施
用途:移除地点的指定自定义设施 格式:PLACE_REMOVE_BUILDING*地点ID#设施ID |
CREATE_CARAVAN | 创建商队
用途:指定一个地点创建出一个指定的商队 格式:CREATE_CARAVAN*出发城市ID#到达城市ID#TAG(用来标记的队伍TAG) |
CREATE_TEAM | 创建队伍
用途:创建一个队伍并使其根据指定指令进行行动 格式:CREATE_TEAM*地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID#等级,数目|卡牌ID2#等级2,数目2|.......)#指令方式(见说明)#指令参数#队伍TAG标签(用来查找特定的队伍) 目前指令方式支持以下几种:
|
DISMISS_TEAM | 解散队伍
用途:解散一个指定的队伍 格式:DISMISS_TEAM*地图单位识别ID |
TEAM_ORDER | 更改队伍指令
用途:更改队伍当前执行的指令列表 格式:TEAM_ORDER*地图单位识别ID#新的队伍指令内容 (指令格式见 队伍预置指令说明) |
INVASION_PLACE | 指定攻打地点
用途:指定一个地点开始攻打另外一个地点。发兵地点与目标地点必须分属两个敌对势力且发兵城内有同属于发兵城镇势力的英雄 格式:INVASION_PLACE*发兵地点ID#目标地点ID |
INVASION_CAMP | 指定攻打目标势力
用途:发动一个势力马上开始进攻另外一个势力。注意:这两个势力必须是敌对或中立状态的两个势力,当发起方因为兵力不足等原因时可能无法发起进攻 格式:IVASION_CAMP*进攻方势力ID#目标势力ID#选取目标方式(0距离优先 1城防优先)#入侵方式(0占领地点 1掠夺)#发动据点数量(0:全部发动 >0:发动距离最近的有限个据点)#入侵强度(0:保留有限实力 1:不顾一切(发动所有资源)) |
OPENSTORE | 打开交易界面
用途:打开与指定商人的交易界面 格式:OPENSTORE*商人ID(如为空则表示根据地点及当前NPC自动查询) |
RESET_STORE | 刷新商人所持商品表
用途:根据配置刷新商人所持的商品表 格式:RESET_STORE*商人ID |
ADD_LOCAL_PRODUCT | 增加地图特产
用途:向指定地图位置投放特产,投放后附近的商人中会刷新特产 格式:ADD_LOCAL_PRODUCT*特产ID#地图ID#中心坐标X#中心坐标Y |
TRADE_PERMISSION | 设置通商许可
用途:设置一个地点的通商许可 格式:TRADE_PERMISSION*地点ID*是否可以通商(0代表不能通商,1代表可以通商) |
TROOPS_ALLOC | 驻军界面
用途:打开一个地点的驻军界面 格式:TROOPS_ALLOC*地点ID(如为空则表示当前地点) |
GETSKILL | 学习技能
用途:给一个角色增加技能 格式:GETSKILL*人物ID#技能列表(单个技能格式为:“技能ID,等级(可选)”,多个技能以”|”分隔) |
LEARN_SKILL | 消耗技能点学习技能
用途:选择一个队伍中的角色,尝试使其学习一个技能,如果技能点不足,则无法学习 格式:LEARN_SKILL*技能ID#所需技能点(可不填,默认为1) |
REMOVESKILL | 遗忘技能
用途:移除指定角色的技能 格式:REMOVESKILL*人物ID#技能ID |
RESET_SP | 重置技能点数
用途:重置角色技能点数 格式:RESET_SP*人物ID |
ADD_UNUSEDSP | 改变可用技能点数(选择框)
用途:增加一个主角可用的技能点数并进行分配 格式:ADD_UNUSEDSP*点数 |
ADD_UNUSEDSP_TO | 改变可用技能点数
用途:直接为指定角色添加技能点 格式:ADD_UNUSEDSP_TO*点数#人物ID(不填默认为主角) |
SET_SKILLPAGE | 点亮或移除主角技能页
用途:点亮或者移除角色可用的技能页 格式:SET_SKILLPAGE*技能页ID表(以”,”分割)#0移除、1点亮、2静默点亮、3完全移除#目标角色ID(可选,默认为主角) 2静默点亮,不会发出提示信息 3完全移除,会移除技能页里所有学习的技能并返还技能点 |
SHOW_TEAMINFO | 显示当前队伍信息
用途:显示当前遭遇的队伍信息 格式:SHOW_TEAMINFO*1 |
SET_FLAG | 设置完成标记
用途:设置一个完成标记,一般用于重大剧情转折标记 格式:SET_FLAG*标记名称#标记值 |
UPDATE_MARKS | 更新地图上的标记
用途:更新地图上的标记 格式:UPDATE_MARKS*1 |
SET_DUMMY | 设置假人或野怪状态
用途:设置地图假人或野怪的状态。当控制野怪时ID为野怪ID 格式:SET_DUMMY*假人ID#状态(0:显示 -1:隐藏) |
SET_CAMERA | 设置沙盒地图的镜头跟随模式
用途:用来控制沙盒地图上镜头的跟随模式。 格式:SET_CAMERA*跟随模式#参数 目前支持的镜头跟随模式及参数含义: 0:跟随主角,无参数(默认) 1:跟随指定目标,参数为指定地图目标标识ID 2:指定地图位置,参数为地图坐标(地图ID:x,y)#镜头移动速度 |
SET_PLACE_CAMP | 设置地点归属阵营
用途:改变一个地点所归属的阵营势力。 格式:SET_PLACE_CAMP*目标地点ID#目标阵营ID#是否以攻城侵略方式占据(1为是,0为否) |
SET_MAP_CAMP | 设置一个地图所有的地点归属阵营
用途:改变一个地图板块下所有据点的阵营势力 格式:SET_MAP_CAMP*目标地图ID#from阵营ID#to阵营ID#是否为攻城侵略(1为是,0为否) |
TRY_RECRUIT_FREE_ROLE | 尝试进行一次在野英雄招募判定
用途:尝试进行一次在野英雄招募判定 成功返回1、内部错误返回0、队伍已满返回2 格式:TRY_RECRUIT_FREE_ROLE*角色ID |
CHK_RECRUIT_CAPTIVE | 【暂未开放】 |
RELEASE_CAP | 【暂未开放】 |
SEND_ENVOY | 派出外交信使
用途:派出一个执行特定外交任务的信使 格式:SEND_ENVOY*势力ID(为空时表示玩家势力)#外交行为(1:赎回 2:友善 3:宣战 4:同盟 5:破裂 6:停战)#目标ID(当赎回时为目标人物ID,其他为目标势力ID)#附带参数(一般为条件金钱数)#是否即刻到达的信使(1表示不需要等待时间,0表示需要等待时间) |
DIP_DECIDE | 执行外交事件判定
用途:对当前外交事件进行结果决定。只能用在特定的外交事件触发器环境中 格式:DIP_DECIDE*结果代码(1同意 0拒绝) |
EXPEL_ROLE | 驱逐角色
用途:将一个角色驱逐出阵营势力 格式:EXPEL_ROLE*势力ID#人物ID |
TRY_REWARD_ROLE | 尝试奖赏属下
用途:尝试奖赏一个属下 格式:TRY_REWARD_ROLE*人物ID(为空时表示当前对象) |
ADD_GLOBAL_BUFF | 增加队伍全局BUFF
用途:为当前队伍增加一个全局BUFF 格式:ADD_GLOBAL_BUFF*buffID#持续时间(游戏天数)#层数(默认为1)#最高层数限制(默认为-1,无限制) |
RM_GLOBAL_BUFF | 移除队伍全局BUFF
用途:为当前队伍移除一个全局BUFF 格式:RM_GLOBAL_BUFF*buffID |
RM_GLOBAL_BUFF_BYCLASS | 按类型移除队伍全局BUFF
用途:按照类型为当前队伍移除一个全局BUFF 格式:RM_GLOBAL_BUFF_BYCLASS*全局BUFF类型 |
RM_ALL_GLOBAL_BUFF | 移除队伍所有的全局BUFF
用途:为当前队伍移除所有全局BUFF 格式:RM_ALL_GLOBAL_BUFF*1 |
PLAYER_FAILED | 游戏失败
用途:玩家游戏失败时进行的通用处理 格式:PLAYER_FAILED*1 |
LOSE_INVENTORY | 玩家通用财物损失操作
用途:对玩家进行一次财物损失操作(只损失货物和金钱) 格式:LOSE_INVENTORY*比例(比例为整数,代表百分比) |
SET_TAGITEM | 变更当前脚本中的对象物品
用途:为当前脚本的环境变量设置默认的操作对象物品 格式:SET_TAGITEM*物品信息(参考物品列表信息格式) |
SET_TAGROLE | 变更当前脚本中的对象人物
用途:为当前脚本的环境变量设置默认的操作对象角色 格式:SET_TAGROLE*人物ID |
SET_TAGPLACE | 变更当前脚本中的对象地点
用途:为当前脚本的环境变量设置默认的操作对象地点 格式:SET_TAGPLACE*地点ID |
SET_TAGCAMP | 变更当前脚本中的对象阵营
用途:为当前脚本的环境变量设置默认的操作对象阵营 格式:SET_TAGCAMP*阵营ID |
SET_TAG_WANDERNPC | 变更当前脚本中的游荡NPC
用途:为当前脚本的环境变量设置默认的操作对象游荡NPC,可配合[$tag_wander_npc:INFO:ID$]指令进行查询 格式:SET_TAG_WANDERNPC*游荡NPCID |
REFRESH_WANDERNPC | 变更当前脚本中的游荡NPC
用途:刷新游荡NPC的状态,可能会使游荡NPC重新刷新位置。 格式:REFRESH_WANDERNPC*游荡NPCID(为空则默认为环境中的游荡NPC)#操作方式(0,刷新状态 1,推进1天 2,强制刷新位置) |
SURRENDER | 势力投降
用途:指定一个势力向另外一个势力投降(所有领地被受降方占领,所有人员根据忠诚度随机选择是否归顺) 格式:SURRENDER*投降方势力ID#受降方势力ID |
GEN_RND_PLACE | 选定随机地点以供查询
用途:生成一个随机地点,并可以用[%last_rnd_place_XX%]系列指令查询 格式:GEN_RND_PLACE*所属势力ID(如果所属势力为空,则为玩家势力中的一个地点) |
GEN_RND_ROLE | 选定随机人物以供查询
用途:在指定范围内选定一个随机人物角色,并可用[%last_rnd_role_XX%]系列指令查询 格式:GEN_RND_ROLE*所属势力ID(如果所属势力为空,则为玩家势力中的一个地点) |
HERO_UPGRADE | 英雄强化
用途:为指定的人物角色永久增加某项角色属性 格式:HERO_UPGRADE*英雄ID#属性ID#增加值#增加上限(必须指定,可以为-1,即没有上限) |
HERO_SET_STATU | 设置角色属性字段
用途:为指定的人物角色设置某一项属性字段值 格式:HERO_SET_STATU*角色ID#属性ID#新值(角色ID为空表示主角) |
ADD_CAMP_BUFF | 增加阵营BUFF
用途:为指定的阵营势力增加一个阵营BUFF 格式:ADD_CAMP_BUFF*阵营ID#buffID#持续时间(游戏天数,当该值小于等于0时表示永久生效除非强制移除该BUFF) |
RM_CAMP_BUFF | 移除阵营BUFF
用途:为指定的阵营势力移除一个阵营BUFF 格式:RM_CAMP_BUFF*阵营ID#buffID |
RM_CAMP_BUFF_BYCLASS | 按照类型移除阵营BUFF
用途:按照BUFF类型为指定的阵营势力移除一个阵营BUFF 格式:RM_CAMP_BUFF_BYCLASS*阵营ID#阵营BUFF类型 |
RM_ALL_GLOBAL_BUFF | 移除所有的阵营BUFF
用途:为指定的阵营势力移除所有的阵营BUFF 格式:RM_ALL_GLOBAL_BUFF*阵营ID |
ADD_CAMP_EXTRA_STATU | 增加阵营属性字段值
用途:增加阵营势力的某一项动态属性字段 格式:ADD_CAMP_EXTRA_STATU*阵营ID#动态属性字段表(见阵营表EXCEL势力初始属性格式) |
RESET_CAMP_EXTRA_STATU | 重置阵营属性字段值
用途:重置阵营势力的所有动态属性字段值 格式:RESET_CAMP_EXTRA_STATU*阵营ID |
WEAPON_DURABILITY_DOWN | 武器装备耐久度下降
用途:降低当前装备的武器装备的耐久度,当耐久度为0时自动损毁。如果武器本身耐久为-1(没有耐久度概念),则该语句什么也不会发生 格式:WEAPON_DURABILITY_DOWN*数值 |
ITEM_DURABILITY_DOWN | 特定道具耐久度下降
用途:降低背包中一把符合tag、等级条件(>=要求等级)的道具耐久度【数值】点,如果符合条件的道具耐久不足,将摧毁这件道具 格式:ITEM_DURABILITY_DOWN*装备tag筛选#装备等级筛选#数值 |
SET_SYNTH_STATE | 设置合成配方的状态
用途:设置指定合成配方状态 格式:SET_SYNTH_STATE*配方ID#新状态(0:未习得 1:已习得) |
OPEN_SYNTH_DLG | 开启道具合成界面
用途:开启道具合成界面UI 格式:OPEN_SYNTH_DLG*是否锁定(0:不锁定主分类 1:锁定显示分类)#默认显示的分类页(可为空默认,以“,”分隔多页,默认显示第一页;当锁定主分类时该字段可显示隐藏的分类)#关闭合成面板后执行的story key(可不填) |
OPEN_CARD_SYNTH_DLG | 开启卡牌合成界面
用途:开启卡牌合成界面UI 格式:OPEN_CARD_SYNTH_DLG*1 |
PLAY_EFT | 播放特效
用途:在当前地图上播放一个特效 格式:PLAY_EFT*特效路径(相对Asset目录,例如:Assets\BuildSource\battle_effects\SkillEffects\psLightingHit1.prefab)#地图坐标#初始旋转角度(可为3方向旋转向量或者一个Y轴的旋转角度)#缩放比例(可指定XYZ3轴上的比例向量或者整体的缩放比例)#持续时间(秒,超过此时间后自动移除)#播放延迟时间(默认为0秒) |
PLAY_MU_EFT | 播放大地图单位跟随特效
用途:在指定地图单位身上播放一个跟随该单位的特效 格式:PLAY_MU_EFT*特效路径(相对Asset目录,例如:Assets\BuildSource\battle_effects\HitEffects\psHealEft1.prefab)#地图单位ID#对象范围(0:仅英雄 1:全体)#初始旋转角度(可为3方向旋转向量或者一个Y轴的旋转角度)#缩放比例(可指定XYZ3轴上的比例向量或者整体的缩放比例)#持续时间(秒,超过此时间后自动移除) |
OPEN_MAPAREA_SELECTOR | 开启地图区域选择界面
用途:在当前沙盒地图上开启一个区域选择UI界面,在此界面上可为当前操作的对象在预先定义好的地图区域中选取一个地图位置并返回。result_code返回1标识位置设置成功,为0标识失败。位置信息记录在[$last_selpos$]中。 格式:OPEN_MAPAREA_SELECTOR*区域标识ID#显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息 |
OPEN_FREEAREA_SELECTOR | 开启自由地图位置选择界面
用途:效果同上,只不过不再限制可供选择的地图区域。 格式:OPEN_FREEAREA_SELECTOR*宽(整数)#高(整数)##显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息。 |
PLACE_SELECTOR | 开启地点选择界面
用途:开启一个建议的地点选择界面。选中的结果存在[$tagplace$]里,编号存在[%result_code%]里,如果[%result_code%]为9999则代表玩家取消选择。 格式:PLACE_SELECTOR*提示内容#选择条件(传入[%tagplace%]作为判断参数) |
SET_LORD | 设置城主
用途:为指定地点设置一个城主。 格式:SET_LORD*角色ID#地点ID |
ADD_CUSTOM_CHEST | 增加自定义宝箱
用途:根据设置信息在大地图上增加一个自定义宝箱。(宝箱的概念可扩展为所有大地图上有价值的可交互目标。如:材料、遗迹、征兵点等等) 格式:ADD_CUSTOM_CHEST*宝箱ID#对应的宝箱表中ID#位置信息#初始状态(>0表示可以开的次数,-1表示已经开过了)#默认方向(0-360) |
SET_CHEST | 设置宝箱状态
用途:设置一个地图上可控宝箱的状态 格式:SET_CHEST*地图ID#宝箱ID#状态。状态>0表示可开启次数,状态<=0表示已开启 |
SET_CURCHEST | 设置当前宝箱状态
用途:设置当前脚本中的对象宝箱的状态 格式:SET_CURCHEST*状态(同 SET_CHEST) |
CLOSE_SYSTEM_UI | 关闭系统UI
用途:关闭当前打开的系统UI 格式:CLOSE_SYSTEM_UI* |
CLOSE_ITEM_PANEL | 关闭当前背包UI
用途:关闭当前打开的背包UI(如果存在的话) 格式:CLOSE_ITEM_PANEL* |
ROLES_SELECTOR | 打开角色选择器
用途:打开一个角色选择器,并将选中的角色存储到[%last_seled_roles%]里。如果只有一个结果,则同时存在[%tagrole%]里 格式:ROLES_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:全局非模板人物 1:主角队伍中 2:指定人物表范围 3:指定势力范围(参数为势力ID) 4:指定地点城主候选人(参数为地点ID) 5:队伍中的俘虏(参数为队长ID)6:地点中的俘虏(参数为地点ID))#筛选条件表达式#参数(当选择范围为指定人物表时该参数为人物列表信息) 示例: ROLES_SELECTOR*选择目标阵营中的人物#1#0#[$tagrole:campid$][=][$player:campid$]&[$tagrole:campid$][<>][$null$]# ROLES_SELECTOR*几个目标对象中选择一个#1#2##人物1|人物2|人物3|人物4 选取后存在[%last_seled_roles%]里。如果只有一个结果,则同时存在[%tagrole%]里 |
ASK_ABOUT_SOMEBODY_SELECTOR | 打听人物选择器
用途:被打听人现在暂没参与逻辑运算,弹出人物选项框,结果存在[%arg_str_val1%]里,选择结果[%result_code%]为9999的时候是玩家取消 格式:ASK_ABOUT_SOMEBODY_SELECTOR#被打听人ID |
CARD_SELECTOR | 卡牌选择器
用途:弹出当前卡牌列表界面供选择 格式:CARD_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:主角队伍中的卡牌 1:指定单位表范围)#参数(当选择范围为指定单位表时该参数为单位列表信息)#筛选条件表达式(可选) |
ASSEMBLE_ARMY | 集结部队
用途:集结阵营势力下的部队跟随集结者 格式:ASSEMBLE_ARMY#集结者ID#集结角色ID列表(可为空,“|”分割,可以使用ROLES_SELECTOR的结果[%last_seled_roles%]。如果为空,则是默认选定阵营下所有的角色。) |
RELEASE_ALL_ASSEMBLE_ARMY | 解散所有集结部队
用途:解散所有当前已进行集结中的部队 格式:RELEASE_ALL_ASSEMBLE_ARMY#首领角色ID |
SET_ROLE_IN_PROJECT | 角色开始执行项目
用途:使一个角色开始执行指定项目 格式:SET_ROLE_IN_PROJECT*角色ID#项目ID |
SET_ROLE_FINISH_PROJECT | 角色结束当前执行的项目
用途:强制指定的角色结束当前进行的项目 格式:SET_ROLE_FINISH_PROJECT*角色ID1,角色ID2,... |
ROLE_PROJECT_ADMIN | 打开个人项目界面
用途:打开角色个人项目执行界面 格式:ROLE_PROJECT_ADMIN*项目ID#绑定地点(可选,默认当前地点) |
GROUP_PROJECT_ADMIN | 打开团体项目界面
用途:打开团体项目执行界面 格式:GROUP_PROJECT_ADMIN*项目标签#界面标题#项目绑定类型#项目绑定对象参数(可选,默认为当前对象) 目前支持的项目绑定类型有 place:地点建筑建设 对象参数为地点ID,如不指定为当前地点 world:自定义地点建设 对象参数格式为:自选区域控制ID;所属地点(当所属地点为空时表示建设一个非附属地点) |
SET_REVIVE_POS | 设置复活集结地点
用途:设置新的复活集结地点 格式:SET_REVIVE_POS*大地图位置(地图ID:x,y) |
SET_SILENCE_MODE | 设置静默模式
用途:开启或关闭消息静默模式 格式:SET_SILENCE_MODE*静默模式(0:不开启 1:不显示TOAST,仅显示消息,获得物品TOAST信息在消息中显示 2:不显示TOAST及消息) |
START_RAID_PLACE | 【已废除】 |
ADD_CUSTOM_PLACE | 增加自定义地点
用途:在大地图上的指定位置增加一个自定义地点 格式:ADD_CUSTOM_PLACE*自定义地点ID(全局唯一)#附属于地点(可为空,为空表示非附属地点)#地点信息模板ID#位置信息#默认所属势力 |
SET_PLACE_NAME | 修改地点名称
用途:修改一个指定地点的显示名称 格式:SET_PLACE_NAME*地点ID#自定义名称 |
OPEN_PLACE_BUILD_UI | 开启地点建筑建设界面
用途:开启地点建筑建设界面 格式:OPEN_PLACE_BUILD_UI*地点ID#建设成功后执行的剧本(可选)#建设取消后执行的剧本(可选 |
ADD_CARD | 获得新卡牌
用途:加入一张预制的卡牌 格式:ADD_CARD*卡牌ID#是否免费招募(1免费,0付费招募,默认为0) |
ADD_CARD_PIECE | 获得指定耐久的卡牌
用途:加入一张预制的卡牌,最大耐久为指定的残值 格式:ADD_CARD_PIECE*卡牌ID#最大耐久#是否免费招募(1免费,0付费招募,默认为0) |
SET_OBS_AREA | 设置阻挡区状态
用途:设置地图阻挡区域的状态 格式:SET_OBS_AREA*控制ID#状态(0:启用 -1:禁用) |
EXPLORE_AREA | 点亮地图区域
用途:点亮当前地图某一块区域(去除区域战争迷雾) 格式:EXPLORE_AREA*坐标x,坐标y#点亮半径 |
EXPLORE_MAP | 点亮整个地图
用途:点亮整个地图(去除整张地图的战争迷雾) 格式:EXPLORE_MAP*地图ID |
ADD_INTVAL_WATCHER | 增加自定义变量监视字段
用途:增加自定义变量监视字段,在屏幕指定UI区块显示当前监视的变量字段值 格式:ADD_INTVAL_WATCHER*变量监视信息格式 (格式如:字段Key1,显示名称1,枚举值1a=枚举名称1a|枚举值1b=枚举名称1b|...|枚举值1N=枚举名称1N,是否战斗中可见([可选,默认0] 0否1是);...;监视字段信息N) |
REMOVE_INTVAL_WATCHER | 移除自定义变量监视字段
用途:移除指定的自定义变量监视字段 格式:REMOVE_INTVAL_WATCHER*字段Key值 |
CLEAR_ALL_INTVAL_WATCHERS | 清除所有变量监视字段
用途:清除所有变量监视字段 格式:CLEAR_ALL_INTVAL_WATCHERS* |
SET_TIMER | 设置事件定时器
用途:设置一个游戏计时器事件,当时间到达后将执行指定的事件 格式:SET_TIMER*计时器ID(当ID重复时将覆盖重复的目标计时器信息)#时间参数(小于0时表示关闭该计时器, 其他当类型为指定时间型时该参数为指定的游戏事件(单位天), 当倒计时型时该参数为倒计时的天数)#计时器类型(0:指定时间触发型 1:倒计时型)#时间到达时执行的事件ID#是否强制更新(1表示强制更新,0表示非强制更新:即不会更改已有的计时器的数据。不填为1)#自定义字符串参数,可以在计时器执行的事件中使用[$arg_str_val1$]查询。 |
REMOVE_TIMER | 移除事件定时器
用途:移除一个游戏计时器事件 格式:REMOVE_TIMER*计时器ID |
CHANGE_TIMER_TIME | 更改事件定时器
用途:增加/缩减一个游戏计时器的时间 格式:CHANGE_TIMER_TIME*计时器ID#时间(以天为单位,可正可负,可以为小数) |
ADD_TIMER_WATCHER | 增加自定义事件定时器监视字段
用途:增加自定义计时器监视字段,同自定义变量监视器UI 格式:ADD_TIMER_WATCHER*计时器监视信息格式(格式如:计时器ID1,显示时间格式1,缩放参数1([可选,默认1]对时间参数(天)进行缩放的系数),是否战斗中可见([可选,默认0] 0否1是)|...|计时器ID N,显示时间格式N,缩放参数N |
REMOVE_TIMER_WATCHER | 移除自定义事件定时器监视字段
用途:移除一个自定义计时器监视字段 格式:REMOVE_TIMER_WATCHER*字段Key值 |
CLEAR_ALL_TIMER_WATCHERS | 清除自定义事件定时器监视字段
用途:清除所有自定义计时器监视字段 格式:CLEAR_ALL_TIMER_WATCHERS* |
PLAYER_RECRUIT_CARD_IN_PLACE | 打开玩家招募城镇内卡牌的面板
用途:打开玩家招募城镇内卡牌的面板 格式:PLAYER_RECRUIT_CARD_IN_PLACE*城镇ID#完成招募后执行的事件ID(可选)#取消招募后执行的事件ID(可选) |
STORY_CARD_START
STORY_CARD_LINE STORY_CARD_END |
打开剧情卡片界面
用途:打开剧情卡片界面。必须要有STORY_CARD_START和STORY_CARD_END,不然会报错。STORY_CARD_LINE为剧情段落,需要加在中间,可以加无数行 格式: STORY_CARD_START*卡片文件名 STORY_CARD_LINE*剧情段落1 STORY_CARD_LINE*剧情段落2 STORY_CARD_LINE*剧情段落3 ... STORY_CARD_END* |
AUTOSAVE | 执行自动存档
用途:立即执行自动存档 格式:AUTOSAVE*1 |
OPEN_SAVE_DLG | 打开存档界面
用途:打开存档界面 格式:OPEN_SAVE_DLG*1 |
OPEN_SAVE_DLG | 打开读取界面
用途:打开读取界面 格式:OPEN_LOAD_DLG*1 |
EXCHANGE_CARD | 打开卡牌交换界面
用途:打开卡牌交换界面 格式:EXCHANGE_CARD*对象类型(0:地点 1:队伍)#对象ID([可选,默认为当前地点] 当对象为地点时为地点ID,队伍时为队伍ID) |
LEVEL_FINISH | 关卡完成
用途:用于剧本模式描述一关结束 格式:LEVEL_FINISH* |
SET_CAMERA_FILTER | 设置镜头滤镜
用途:设置镜头滤镜效果 格式:SET_CAMERA_FILTER*滤镜参数(为空为关闭所有滤镜,参数代码见6.10节)测试代码:SET_CAMERA_FILTER*黑白,0|老旧,100|暗角,100 |
TLACTION | 播放Timeline动作
用途:让大地图上的指定单位播放TIMELINE动作 格式:TLACTION*地图角色ID#Timeline动作文件名#动作时长 |
SELECTION_VIEW | 全屏特殊剧情选择
用途:打开一个全屏特殊剧情选择界面 格式:SELECTION_VIEW*剧情图片文件名#剧情内容(支持“\n”表示换行)#选择项(参考SELECT*) |
DIALOG_BUBBLE | 地图单位气泡对话框
用途:在大地图上的单位头上弹出气泡对话框 格式:DIALOG_BUBBLE*地图角色ID#对话内容#显示时长 |
TEXT_EXPLORE_START
TEXT_EXPLORE_OVER TEXT_EXPLORE_FORCE_OVER_AND_CD |
文字探索相关
用途:特定的文字探索模式 格式: TEXT_EXPLORE_START*文字探索地图ID。开启一场文字冒险 TEXT_EXPLORE_OVER*。结束当前副本 TEXT_EXPLORE_FORCE_OVER_AND_CD*。强制结束当前副本并进入CD |
SHOW_CG | 显示CG图片
用途:用来展示一个CG图片界面(注意开了之后需要手动用HIDE_CG*关闭CG,不然会影响玩家操作) 格式:SHOW_CG*图片名称(不带后缀,可为空,空就只会显示黑色背景,对应目录为Assets\BuildSource\Backgrounds\,文件格式统一要求为png) |
HIDE_CG | 关闭CG图片
用途:关闭CG图片界面 格式:HIDE_CG* |
GENERATE_RANDOM_CARD | 随机选取一个卡牌
用途:随机抽取一张卡牌,并存放在当前变量的tagcard里 格式:GENERATE_RANDOM_CARD#1 |
VOICE_OVER | 旁白
用途:展现一句旁白界面 格式:VOICE_OVER*旁白内容 |
CREATE_STORYARMY | 创建剧情队伍
用途:创建一个用于剧情的队伍 格式:CREATE_STORYARMY*tagkey#地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID1,数量1,等级1|卡牌ID2,数目2,等级2|.......)#运动信息(例如:WANDER,2500) |
REMOVE_STORYARMY | 移除剧情队伍
用途:移除一个剧情队伍 格式:REMOVE_STORYARMY*tagkey |
BAZZAR_BUY_ITEM | 集市商人买入操作
用途:进行集市商人买入操作 格式:BAZZAR_BUY_ITEM*集市ID#商人ID#交换用物品的集市ID(可选)#交换用物品的商人ID(可选) 购买结果保存在[%result_code%]中(1 购买成功,0 购买失败) |
BAZZAR_SELL_ITEM | 集市商人卖出操作
用途:进行集市商人卖出操作 格式:BAZZAR_SELL_ITEM*集市ID#商人ID |
SHOWROLE | 对话显示角色立绘
用途:对话时显示角色立绘 格式:SHOWROLE*角色1ID@角色1立绘显示位置(#角色2ID@角色2立绘显示位置)(可选) *立绘显示位置:可以是L或者R,默认为L,立绘显示在对话框左侧,R则显示在右侧 |
HIDEROLE | 对话隐藏角色立绘
用途:对话时隐藏角色立绘 格式:HIDEROLE*角色1立绘显示位置(#角色2立绘显示位置)(可选) *立绘显示位置:可以是L或者R,L为隐藏左侧立绘,R为隐藏右侧立绘 |
SELECT_QUEST_ASK | 任务询问
用途:在普通的SELECT基础上添加满足条件的任务询问 格式:SELECT_QUEST_ASK* |
SELECT_TEAMROLE | 队伍角色选择
用途:选择队伍里的人物角色 格式:SELECT_TEAMROLE* |
ROLE_PLAYER_ACTIVE | 激活角色信息状态
用途:设置角色在“情报”界面中可见,传入角色ID(此方法一般用于剧情中,如酒吧女郎) 格式:ROLE_PLAYER_ACTIVE*角色ID |
ROLE_ORDER | 内置角色指令
用途:为一个角色下达一些内置指令并立即执行 格式:ROLE_ORDER*角色ID[为空表示当前目标角色]#指令代码:指令参数表
|
ADD_INTERACTIVE_MSG | 添加可交互消息
用途:添加一条自定义的可交互消息,并在对应的UI中显示 格式:ADD_INTERACTIVE_MSG*消息类型#标题#内容文本#参数文本#持续时间(<=0为永久持续,否则为天数)#发起者信息#TAG参数
当消息类型为非财务消息时,参数文本的格式为: 参数Key1:参数值1;参数Key2:参数值2;...;参数Key N:参数值 N 目前系统内置的参数KEY类型有:
例如:ask:是=Event1:否=Event2
账单字段1=账单明细表(格式为: 资源1,数目1|资源2,数目2|...|资源N,数目N);账单字段2=账单明细表;[...];账单字段N=账单明细表 发起者信息的格式为: 发起者类型代码:发起者ID 目前支持的发起者类型有:
|
REMOVE_INTERACTIVE_MSG | 移除可交互消息
用途:移除指定条件的可交互消息 格式:REMOVE_INTERACTIVE_MSG*消息类型#发起者信息#TAG参数
发起者信息格式见 ADD_INTERACTIVE_MSG |
REMOVE_THIS_INTERACTIVE_MSG | 移除当前可交互消息
用途:移除当前环境变量中的可交互消息 格式:REMOVE_THIS_INTERACTIVE_MSG*1 |
FORCE_CHANGE_HEADAVATA | 强制更换主角立绘
用途:改变主角立绘 格式:FORCE_CHANGE_HEADAVATA*立绘代码(使用$号替换#号) |
FORCE_CHANGE_MODEL | 强制更换主角模型
用途:改变主角模型 格式:FORCE_CHANGE_MODEL*模型ID(使用$号替换#号) |
FORCE_CHANGE_NAME | 强制更换主角名称
用途:改变主角名称 格式:FORCE_CHANGE_NAME*角色名称 |
SHOW_INTVAR_CONFIG | 显示游戏中可配置的自定义整形字段选项界面
用途:打开一个游戏内自定义字段配置界面 格式:SHOW_INTVAR_CONFIG*开启模式(0:创建游戏模式 1:游戏中模式) |
SET_MAP_MARKER | 增加或设置自定义地图标记
用途:在大地图上增加或者设置一个自定义的地图标记,当标记ID已存在时为覆盖此地图标记信息 格式:SET_MAP_MARKER*标记ID#标题#备注信息#地图位置信息#标记图标文件名(可为空,默认为"map_flag",此图标为位于“\BuildSource\map_res\MinimapMakers\” 资源目录下的一个PNG图片资源) |
REMOVE_MAP_MARKER | 移除一个自定义地图标记
用途:移除指定ID的自定义地图标记(如果存在的话) 格式:REMOVE_MAP_MARKER*标记ID |
| |
RUN_SCRIPT_FUNC | 运行指定Lua脚本中的方法
用途:运行指定的Lua脚本中的标准方法 格式:RUN_SCRIPT_FUNC*脚本相对路径文件名(同RUN_SCRIPT)#标准方法名称(脚本中的方法名,参数为传入的环境变量)#传入的参数字符串信息 对应LUA脚本调用的方法参数表,参数1默认为环境变量参数,参数2为传入字符串参数 LUA中实现的函数接口示例: function TestFunc(_contextArgVal, _StrArgs) _contextArgVal:调用指令中传入的环境变量 _StrArgs:传入的字符串型参数信息 |
OPEN_GUI | 打开自定义GUI
用途:打开一个自定义的GUI窗口 格式:OPEN_GUI*GUI包名#窗体组件名#脚本路径#窗体参数#阻塞指令队列(默认0阻塞)#模糊窗体(默认0否)#UI小组件 GUI包名:FGUI的包名 窗体组件名:FGUI中组件的名称 脚本路径:窗体的脚本路径(相对于脚本根目录“Asset\BuildSource\LuaScripts\” ,无文件扩展名) 窗体参数:参数格式为json格式,如:{"arg1":"val1","arg2":"val2"} 是否不阻塞指令队列:(默认0 阻塞, 当为1时不阻塞) 是否应用模糊窗体背景效果:(0否1是,默认为否) UI小组件:主动挂载的UI小组件,默认无,在窗体组件表中设置,多个组件之间用|分割,参考UI小组件 |
OPEN_CONTAINER_GUI | 打开容器界面
用途:打开一个已定义的容器界面 格式:OPEN_CONTAINER_GUI*容器ID(实例ID用于标识)#模板信息ID(定义在容器定义表中的信息ID) 当参数表为空或者为"THIS"时,表示直接打开当前环境变量中指定的容器(如果有传入的话),如:OPEN_CONTAINER_GUI*THIS |
SET_TAG_CONTAINER | 设置环境变量中的容器
用途:为当前环境变量设置一个容器 格式:SET_TAG_CONTAINER*容器ID(实例ID用于标识)#模板信息ID(定义在容器定义表中的信息ID)#是否不存在则创建(0否1是,默认1) |
CONTAINER_CMD | 容器指令
用途:为当前环境变量中指定的容器执行特定指令 格式:CONTAINER_CMD*容器指令类型#参数1#参数2#...#参数N 目前支持的集中内置指令类型: add_exp:对容器内所有卡牌增加经验,参数为经验数字 add_items:向容器内添加指定的元素。(如:物品类容器可为 CONTAINER_CMD*add_items#道具1,10|道具2,5 ;卡牌类容器为卡牌的ID表,以"|"分隔) remove_items:从容器内移除指定的元素。(如:物品类容器可为 CONTAINER_CMD*add_items#道具1,10|道具2,5 ;卡牌类容器为卡牌的ID表,以"|"分隔) clear:清空容器内的所有元素 set_capacity:设置容器大小,参数1为容器大小数字,该项会覆盖容器原本的大小设定。仅对容器表定义的容器有效,对地点容器无效。 change_capacity:修改容器大小,参数1为变动值,正数增加,负数减少。仅对容器表定义的容器有效,对地点容器无效。 |
PLACE_CONTAINER_CMD | 地点容器指令
用途:将地点视为容器对象,执行和容器相同的特定指令 格式:PLACE_CONTAINER_CMD*地点ID(为空或者THIS表示当前环境变量所指定的地点)#容器指令列表(同CONTAINER_CMD参数说明) |
SET_MAP | 设置地图的状态
用途:设置指定地图的可见状态 格式:SET_MAP*地图ID#状态值(0:正常 1:关闭) |
RESET_LUAENV | 重置当前LUA脚本运行环境
用途:重置当前LUA脚本运行环境并清除缓存,可用于调试LUA脚本时避免重新启动游戏 格式:RESET_LUAENV*1 |
SET_ARG_INT | 设置当前环境变量中的参数值
用途:设置存储在当前运行脚本环境变量中的整型参数值(对应 [%arg_int_val1%] [%arg_int_val2%] [%arg_int_val3%]) 格式:SET_ARG_INT*设置新的值#目标参数索引(可选,默认为0。0,1,2分别对应[%arg_int_val1%] ~ [%arg_int_val3%]) |
TEAM_JOIN_ROLE | 强制让角色加入主角队伍
用途:强制一个指定角色加入队伍,无视队伍上限限制(不会弹出处置UI) 格式:TEAM_JOIN_ROLE*人物ID1|人物ID2|人物ID3|... |
SET_ROLE_INTVAR | 设置角色的自定义可存储整形字段
用途:设置角色身上的可存储整形字段 格式:SET_ROLE_INTVAR*角色ID(为空为主角)#字段ID#设置值#设置模式(可选 1为增加模式(原值加上设置值) 其他为直接赋值模式) |
SET_ROLE_STRVAR | 设置角色的自定义可存储字符串字段
用途:设置角色身上的可存储字符串字段 格式:SET_ROLE_STRVAR*角色ID(为空为主角)#字段ID#字符串信息 |
SET_MU_BBINFO | 设置大地图单位气泡对话框文字
用途:对一个大地图单位设置气泡对话框文字信息 格式:SET_MU_BBINFO*地图单位ID#对话框文字信息内容(为空表示关闭,多段文字随机展示用|分隔)#显示时间#间隔时间(秒,如果需要随机时间间隔按照"MinTime-MaxTime"格式来填写) |
CHG_ROLES_FV | 改变角色之间的好感度
用途:改变游戏内任意两个角色之间的好感度 格式:CHG_ROLES_FV*人物ID_A#人物ID_A#更改数值#是否链式更改(1是0否,默认否)#目标值(当不为空时生效,当此项生效时链式参数无效) |
INTEREVENT_DONE | 队伍角色关系虚拟事件结果决定
用途:队伍角色关系虚拟事件结果决定 格式:INTEREVENT_DONE*核心性格ID(决定此事件相关人员关系改变的性格依据)#影响系数(可选,默认1) |
OPEN_ROLE_RL_DEBUG | 开启角色关系调试界面
用途:开启角色关系调试界面 格式:OPEN_ROLE_RL_DEBUG*1 |
DEBUG_ROLE_RL_EVENT_PLACE | 立即调用一次地点的角色关系虚拟随机事件
用途:立即调用一次以地点为中心的角色关系虚拟随机事件 格式:DEBUG_ROLE_RL_EVENT_PLACE*地点ID |
DEBUG_ROLE_RL_EVENT_TEAM | 立即调用一次队伍中的角色关系虚拟随机事件
用途:立即调用一次队伍中的角色关系虚拟随机事件 格式:DEBUG_ROLE_RL_EVENT_TEAM*1 |
BAR_FIGHT | 开始一次酒吧挑战判定
用途:开始一次酒吧挑战判定,并执行对应的触发器检定 格式:BAR_FIGHT*地点ID |
CUSTOM_FIGHT | 开始一次自定义的搏击战斗
用途:开始一次自定义参与对象的搏击战斗 格式:CUSTOM_FIGHT*敌方英雄表#我方英雄表#对应战斗ID(可选) |
FIGHT_EXEC | 立即开始当前的搏击战斗
用途:按照当前搏击战斗的环境参数开始执行战斗逻辑(内置指令,用于由该次搏击战斗触发的事件中进行调用。其他环境下调用此指令无效) 格式:BAR_FIGHT_EXEC*1 |
START_TOURNAMENT | 参加当地比武大会
用途:参加当地举办的比如大会(如果条件满足的话) 格式:START_TOURNAMENT*1 |
CHG_ROLE_MERIT | 改变角色在其所在阵营的贡献度
用途:改变游戏内任意角色在其所在阵营的贡献度 格式:CHG_ROLE_MERIT*人物ID#更改数值#目标值 |
SET_SUBARG | 设置查询指令替换参数
用途:设置查询指令的替换参数,用于需要对查询指令中指定的目标进行赋值时使用,可以将查询指令中的任何部分使用替换参数替代 当查询指令具有多元参数时,只需要使用SUBARG关键字即可替换为设置好的参数值,如:[$tagrole:role_fv=SUBARG$] 格式:SET_SUBARG*设置值 |
UI_MSG | 发送UI通知消息
用途:发送UI通知消息,UI界面的LUA代码中可通过接口注册或实现function onWindowEvent(msgType, msgArg)接口来接受消息 示例: 实现方法一:通过接口注册 -- 注册接口 CS.GUIHelper.RegSceneMsgHandler(OnSceneMsgHandler) -- 场景关闭时通过 CS.GUIHelper.RemoveSceneMsgHandler(sceneMsgHandler) 来注销此接口 function OnSceneMsgHandler(msgType, msgArg) -- do something end 实现方法二:实现消息接口 -- 将函数命名为onWindowEvent,会在窗口中自动读取该接口使用 function onWindowEvent(msgType, msgArg) end 接口示例: 格式:UI_MSG*消息类型(对应msgType)#消息参数(对应msgArg) |
TEAM_EVENT | 队伍事件通知
用途:添加一个队伍事件通知,此通知在游戏内提示并需要点击触发对应事件。 格式:TEAM_EVENT*通知类型(0:关闭 1:普通事件 2:队内成员交互事件ID)#对应事件ID(当类型为2时对应“J角色互动事件池”中的交互事件ID,否则为剧情事件表中的ID)#参与者ID表("|"分割)#提示持续时间(单位天,默认3天) |
PLAYER_REPLACE_NPC | 替代游戏内角色
用途:替代一个游戏内角色,继承该角色的信息 格式:PLAYER_REPLACE_NPC*角色ID#替代方式(替换模式 0:仅替换阵营地位、领地、人际关系 1:完全替换,包括角色名称和形象立绘等) |
ADD_ROLE_MSG | 添加人物逸闻信息
用途:为人物添加相关的逸闻信息 格式:ADD_ROLE_MSG*人物ID#逸闻内容#参与角色(多个角色用|分割)(可选)#逸闻保存时间(默认15天,为-1时无限) |
CHANGE_ROLE_ATTRIBUTE | 修改角色固有属性
用途:用于修改角色的某个固有属性,如姓名、立绘、模型、使用武器、性格等等 格式:CHANGE_ROLE_ATTRIBUTE*人物ID#属性名称#属性值 可以修改的属性有: name: 修改名称,属性值为要修改的名称 avatar: 修改立绘,属性值为目标立绘,若立绘的值里包含#,可以用$替换# model: 修改模型,属性值为模型数据,若模型的值里包含#,可以用$替换# gender: 修改性别,属性值-1为使用模板数据,0男性,1女性 weapon_type: 修改武器类型,属性值-2为使用模板数据,-1为全部武器,其他武器请参照物品表里的介绍 can_recruit: 修改是否可招募,属性值-1为使用模板数据,0不可招募,1可招募 can_leave: 修改是否可离队,属性值-1为使用模板数据,0不可离队,1可离队 nature: 修改性格,属性值格式为:性格1=性格值1,性格2=性格值2,…… ,性格n=性格值n。 将性格值设为0或以下为使用模板数据。 desc: 修改角色背景描述,属性值为要修改的描述,使用\n换行 |
SET_DAILY_FOOD_CONSUME | 开关游戏内每日食物消耗
用途:开启或关闭每日的食物消耗判定。注:关闭食物消耗时,饥饿惩罚也会一并关闭。 格式:SET_DAILY_FOOD_CONSUME*状态(0关闭,1开启,游戏默认开启) |
SET_RECRUIT_CARD | 设置兵种招募组
用途:设置一组兵种招募组,并从中抽取一支兵种。同时会为环境变量设置该招募组和要招募的兵种。 格式:SET_RECRUIT_CARD*招募组ID#刷新冷却期(单位:天,小于等于0为立即刷新)#招募单位1,权重1#招募单位2,权重2#... 备注:当调用此指令时,若距离上一次调用指令的时间小于这次调用指令时设置的刷新冷却期,则不会刷新招募组状态 |
SET_RECRUIT_CARD_FORCE | 强制设置兵种招募组
用途:同SET_RECRUIT_CARD,但是会无视刷新冷却期刷新招募组 格式:SET_RECRUIT_CARD_FORCE*招募组ID#刷新冷却期(单位:天,小于等于0为立即刷新)#招募单位1,权重1#招募单位2,权重2#... |
CHANGE_RECRUIT_CARD | 修改兵种招募组中的兵种
用途:修改兵种招募组中的兵种 格式:CHANGE_RECRUIT_CARD*招募组ID#兵种单位ID |
SET_TAG_RECRUIT_GROUP | 变更当前脚本中的对象招募组
用途:为环境变量设置该招募组和招募组中随机抽取的兵种。需要先调用过SET_RECRUIT_CARD 格式:SET_TAG_RECRUIT_GROUP*招募组ID |
SET_RECRUIT_COST_RATE | 设置招募组的招募费率
用途:设置招募组招募兵种的费率,默认为100,即100%*原价 格式:SET_RECRUIT_COST_RATE*招募组ID#招募费率(单位:百分比整数,默认100) |
TRY_RECRUIT_CARD | 尝试对招募组内的兵种进行一次招募
用途:尝试对招募组内的兵种进行一次招募,使用设置的消耗费率 格式:TRY_RECRUIT_CARD*招募组ID 备注:招募成功后招募次数+1,直到下次招募刷新后招募次数清零。招募结果通过tagrecruit进行查询 |
GENERATE_ROLE | 使用生成模板生成一名角色
用途:使用生成模板生成一名角色 格式:GENERATE_ROLE*角色生成模板ID 备注:生成完毕后该角色会成为当前环境默认的操作对象角色,可以使用[$tagrole:INFO$]指令查询相关信息。 角色生成模板生成的角色ID为 "tmpl_" + 递增ID,生成角色在其他方面与普通非模板角色一致 |
GENERATE_ROLE_BY_GROUP | 从角色生成模板组内抽取一个模板生成一名角色
用途:从角色生成模板组内抽取一个模板生成一名角色 格式:GENERATE_ROLE_BY_GROUP*角色生成模板组1|角色生成模板组2…… 备注:与GENERATE_ROLE功能一致,但是使用组ID进行抽取,可以填写多个组ID,会把各组合并后按概率进行抽取。 |
以下指令适用于游戏版本≥1.1.0 | |
PUSH_EVENT | 插入并执行一个事件,执行完继续执行当前事件下一行
用途:插入并执行一个事件,执行完继续执行当前事件下一行 格式:PUSH_EVENT*事件ID |
INSERT_TRIGGER | 通过触发器触发事件,触发的事件执行完后继续执行当前事件下一行
用途:通过触发器触发事件,触发的事件执行完后继续执行当前事件下一行 格式:INSERT_TRIGGER*触发器类型#目标类型(全部则填any)#目标ID(全部则填any)#是否触发全部事件(0否 1是) |
以下指令需要激活DLC《比武大会》才能正常生效 | |
MATCH_CONTINUE | 推进比武大会进度
用途:用于推进当前正在进行的比武大会进度,如生成对战表、模拟对战进度 格式:MATCH_CONTINUE*比武大会ID#是否强制继续(0:否,1:是 默认0) 备注:如果强制继续,且当前比赛尚未进行,则会直接快速模拟比赛结果 |
MATCH_SET_BATTLE_RESULT | 设置比武大会战斗结果
用途:设置比武大会某场战斗的结果,用于设置战斗的胜利方 格式:MATCH_SET_BATTLE_RESULT*比赛ID#比赛阶段#比赛结果(1:左方胜利,2:右方胜利) 备注:比赛阶段:0~3 八进四 4~5 四进二 6 决赛,如果该阶段还未生成(未推进到该进度)将会设置失败 |
MATCH_SET_BATTLE_RESULT | 设置比武大会当前阶段战斗结果
用途:设置比武大会当前进行的战斗的结果,用于设置战斗的胜利方 格式:MATCH_SET_CUR_BATTLE_RESULT*比武大会ID#比赛结果(1:左方胜利,2:右方胜利) |
MATCH_QUERY | 查询符合结果的比武大会
用途:对所有的比武大会进行查询,并将符合条件的结果存储在当前环境中 格式:MATCH_QUERY*判断条件 备注:结果可以使用[$match_query_first_id$]查询首个比武大会的ID、[$match_query_rnd_id$]查询其中随机一个比武大会的ID、[$match_query_ids$]查询所有符合条件的比武大会ID(使用|分割)、[$match_query_options$]返回所有符合条件的比武大会的选项组(用于SELECT命令) |
MATCH_QUERY_PLACE | 查询该地点符合结果的比武大会
用途:对该地点的比武大会进行查询,并将符合条件的结果存储在当前环境中 格式:MATCH_QUERY_PLACE*地点ID#获取的类型(0:全部 1:正在举办,包含准备中和比赛中 2:未举办) 备注:结果同MATCH_QUERY |
MATCH_TEAM_QUERY | 查询可参加比武大会的队伍
用途:查询所有可以参加比武大会的队伍,并按照参与概率挑选一只添加到环境变量中 格式:MATCH_TEAM_QUERY*比赛级别#必须包含的队伍标签(多个标签用|风格)#排除的队伍标签(多个标签用|风格) 备注: 比赛级别 1 试炼赛 2 锦标赛 3 比武大会 队伍标签 Candidate 候选队伍,一般最后才会参加比赛 Powerful 强力队伍,每场比赛参赛的强力队伍有限 Fixed 固定队伍,不会招募候选外的其他队员 使用[%match_team_query_member_name:INDEX%]、[%match_team_query_member_id:INDEX%]等指令获取查询结果 |
SET_TAGMATCH | 变更当前脚本中的比武大会
用途:为当前脚本的环境变量设置默认的操作比武大会 格式:SET_TAGMATCH*比武大会ID |
SET_TAGMATCH_BY_RESULT | 通过结果代码变更当前脚本中的比武大会
用途:通过结果代码设置当前环境中的比武大会,通常用于使用[$match_query_options$]在SELECT命令中注入选项后,通过该指令设置选择结果 格式:SET_TAGMATCH_BY_RESULT*结果代码 使用范例: MATCH_QUERY_PLACE*[$tagplace:id$]#1 SELECT*CUR_ROLE#选择该地点的比武大会#[$match_query_options$];0:离开 SET_TAGMATCH_BY_RESULT*[$result_code$] |
MATCH_ADD_TEAM | 为比武大会手动添加队伍
用途:为比武大会手动添加队伍 格式:MATCH_ADD_TEAM*比武大会ID#队伍类型(0:模板队伍 1:主角队伍 2:自定义队伍)#队伍信息#队伍名称(可选)#是否填充队员(0 否 1 是,默认0) 备注:模板队伍的队伍信息为模板ID,主角队伍与自定义队伍的队伍信息为参赛人物ID列表,以“|”分隔,其中非主角队第一个角色ID为队长,队伍名称为可选参数,如果不填写则使用默认名称 [$result_code$]返回添加结果 0 成功 1 比赛已满 2 该队伍已经被添加过 -99 其他错误 |
MATCH_SET_TEAM_NAME | 设置比武大会小队名称
用途:设置特定比武大会小队的名称 格式:MATCH_SET_TEAM_NAME*比赛Id#队伍索引#队伍名称 备注:队伍索引从0开始 |
全局存档相关的操作指令
全局存档是用来记录一些所有存档共享的数据记录的存档。记录在全局存档中的数据更改后可以在所有不同的存档中进行访问。
指令 | 说明 |
---|---|
SET_GLOBAL_INTVAR | 设置全局存档自定义整形变量
用途:设置一个全局存档中的自定义整形变量。记录在全局存档中的自定义整形变量可以通过查询指令[%global_int:ID%]来进行查询访问。 格式:SET_GLOBAL_INTVAR*变量ID#当前int值 |
CHANGE_GLOBAL_INTVAR | 修改全局存档自定义整形变量
用途:修改一个全局存档中的自定义整形变量。 格式:CHANGE_GLOBAL_INTVAR*变量ID#改变值(正负数皆可)#锁定最小值(可选,不填为不限制)#锁定最大值(可选,不填为不限制) |
SET_GLOBAL_STRVAR | 设置全局存档自定义字符串变量
用途:设置自定义字符串变量。记录在全局存档中的自定义字符串变量可以通过查询指令[$global_str:ID$]来进行查询访问。 格式:SET_GLOBAL_STRVAR*变量ID#string值 |
PUSH_GLOBAL_ROLES | 存入角色状态至全局存档
用途:将指定的角色表存入全局角色状态表中 格式:PUSH_GLOBAL_ROLES*自定义全局存储Key#角色ID(该角色只能为非模板角色) |
PULL_GLOBAL_ROLES | 从全局存档取回角色状态
用途:将指定的角色表的状态从全局角色状态表读入到当前游戏模式中 格式:PULL_GLOBAL_ROLES*自定义全局存储Key(该Key值对应的角色必须为当前游戏模式人物模板表中存在的角色) |
LOCK_CMD_QUEUE | 锁定当前指令队列
用途:锁定当前的指令队列,当锁定后切换游戏存档或者重置游戏模式时不会清空执行的指令队列 格式:LOCK_CMD_QUEUE*是否锁定(0否1是) |
SWITCH_GAME_MODE | 切换游戏模式
用途:切换并载入到目标游戏模式 格式:SWITCH_GAME_MODE*目标游戏模式的ID |
内置指令列表
内置指令是指一些专门用于程序内部实现某些特定功能的指令。一般专门供一些特定脚本使用。
指令 | 说明 |
---|---|
ENCOUNTER | 遭遇野怪UI
用途:打开遭遇野怪信息面板 格式:ENCOUNTER*1 |
CHEST_INFO_DLG | 宝箱守卫信息UI
用途:打开宝箱守卫信息面板 格式:CHEST_INFO_DLG*宝箱ID |
CHEST_COST_DLG | 宝箱开启代价信息UI
用途:打开宝箱开启代价信息面板 格式:CHEST_COST_DLG*宝箱ID |
CHEST_CALLBACK | 宝箱开启逻辑回调
用途:开启宝箱逻辑回调命令 格式:CHEST_CALLBACK*回调代码(1:击败守卫 2:完成开启)#目标宝箱ID |
EXEC_RECRUIT_CAPS | 执行招募队伍中的俘虏判定
用途:执行招募队伍中的俘虏判定 格式:EXEC_RECRUIT_CAPS* |
脚本预设字段及含义
在脚本编辑中有时会使用一些特定的指令来替代具体的对象,比如CUR_ROLE可以用来替代当前遭遇对象的人物ID,这样就可以实现一些通用脚本编辑的应用场景。
目前支持的预设字段有:
- CUR_ROLE:当前遭遇人物模板的ID,专门用与对话框及选择框
- CUR_BATTLE:当前遭遇的大地图刷新单位对应的战斗ID
剧情事件中的结果脚本指令格式
剧情事件中结果脚本指令的格式为(以换行符分割):
条件表达式组1:执行命令1 条件表达式组2:执行命令2 ... 条件表达式组N:执行命令N
执行方式为:先判定条件表达式组1,如果成立则执行命令1,否则接着判定条件表达式组2……直到有任意一组成立,或者所有条件均不成立
条件表达式组格式
条件表达式组由多个形如" [%CONDITION%][=]1"这样的条件表达式组成,以符号"|"(或) 或 符号"&"(与)进行连接,"&"(与)的优先级大于"|"(或)的优先级,当条件表达式左右值均为整数字符时,将返回其数值大小的比较结果,否则只能执行字符串比较且仅支持[=]和[<>]两种判定。
如果需要改变表达式优先级,可以使用括号"("和")"包裹表达式。括号内的表达式会优先进行计算。
例如:
[%result_code%][=]1|[%player_money%][>=]100 表示当结果为1或玩家身上有100金钱时执行 而[%player:level%][>=]3&[%player_money%][>]100 表示玩家等级大于等于3并且身上的金钱大于100时执行
以下为条件表达式中支持的比较符号
- [=]:等于
- [>]:大于
- [>=]:大于等于
- [<]:小于
- [<=]:小于等于
- [<>]:不等于
游戏数据中运算值表达式系统说明
在游戏中很多地方可以以“[&expression&]”(返回整数)或“[@expression@]”(返回小数)的格式嵌入一些数值公式进去(如BUFF列表的状态值等)
数值公式中支持一些基本数学运算,目前支持的运算符号如下:
- +:加法运算
- -:减法运算
- *:乘法运算
- /:除法运算
- %:模运算(取余)
- ^:幂运算
- ( ):改变运算优先级
此外,当数值公式以 @func(expression1,expression2...) 的格式出现时,则调用相关的内置函数返回计算结果。目前支持的内置函数如下(注意:当前此等内置函数只能用于最外层的计算)
- @min(a,b):返回a与b中较小的一个值
- @max(a,b):返回a与b中较大的一个值
比如某段数据中[&1+2*3&]将会被替换为7,[&@max(1+2*3, 8)&]将会被替换为8,[&@min(1+2*3, 8)&]将会被替换为7……
剧情事件中可用的嵌入式查询指令
目前游戏中很多地方都支持插入嵌入式查询指令,通过这些查询指令,可以很方便的在一些文本或者条件表达式中插入我们想要的数值或者字符串类型的查询结果。所有嵌入式查询指令都是以[%QUERY:arg1:arg2...%]或者[$QUERY:arg1:arg2...$]这样的格式(两者等效)插入到目标位置的。
注意:关于使用查询指令嵌套!
当前的指令系统不支持直接进行嵌套,如果需要对查询指令进行嵌套,则需要使用SET_SUBARG指令进行预替换。如SETSTRVAR*[$tagrole:name:[$str_val:enemy$]$]
,替换后的指令如下:
SET_SUBARG*[$str_val:enemy$] SETSTRVAR*[$tagrole:name:SUBARG$]
同理,若有多层嵌套,如SETSTRVAR*[$tagrole:name:[$str_val:[$str_val:tag_enemy$]$]$],一一进行拆分即可
SET_SUBARG*[$str_val:tag_enemy$] SET_SUBARG*[$str_val:SUBARG$] SETSTRVAR*[$tagrole:name:SUBARG$]
目前支持的查询指令列表如下:
查询指令 | 说明 |
---|---|
[%result_code%] | 返回当前事件中最后一个有返回结果的命令结果值(比如在剧情事件脚本中代表返回的选择框选项、输入的数值、战斗的结果等)
以下为result_code在不同类型命令下返回的含义
|
[%rnd_num%] | 返回一个0-100的整数 |
[%rnd_range:A:B%] | 返回一个大于等于A,小于等于B的随机数 |
[%last_rnd%] | 返回上次产生的随机数 |
[%player_money%] | 玩家身上的金钱数 |
[%player_wood%] | 玩家拥有的木材数 |
[%player_iron%] | 玩家拥有的铁矿石数 |
[%player_jade%] | 玩家拥有的玉石数 |
[%player_food%] | 玩家当前的饱食度 |
[%game_time%] | 当前游戏中的天数 |
[%game_hard_level%] | 当前游戏难度周目 |
[%role_level_extend%] | 当前角色等级上限扩展 |
[%card_level_extend%] | 当前兵种等级上限扩展 |
[%player_class%] | 玩家当前剧本 |
[%is_gametime_night%] | 判断当前是否是晚上,如果是,返回1,否则为0 |
[%is_gametime_daytime%] | 判断当前是否是白天,如果是,返回1,否则为0 |
[%mod_day:MOD%] | 当前游戏的天数对MOD取余的值 |
[%generate_rob_money%] | 生成当前等级遭抢劫时索取的金额 |
[%rob_money%] | 获取上次生成的抢劫索取金额 |
[%get_ts:ID%] | 返回一个触发器当前的状态值 0正常 1关闭 |
[%get_es:ID%] | 返回一个剧情事件当前的状态 -1:未执行 其他:返回Result Code |
[%get_es_first_time:ID%] | 返回一个剧情事件的首次完成时间 |
[%get_es_time_score:ID:minTime:maxTime:maxScore%] | 返回一个剧情事件的首次完成时间得分,minTime是设定的最短完成时间(在此时间前完成均为满分),maxTime是设定的最长完成时间(之后完成均为零分),maxScore为最高得分。 |
[%int_val:ID%] | 返回编号为ID的自定义int值 |
[%int_val_for_calc:ID%] | 返回编号为ID的自定义int值用于计算,必定存在计算值,如果ID不存在则值为0 |
[%str_val:ID%] | 返回编号为ID的自定义string值 |
[%team_num%] | 当前队伍当前数量 |
[%team_max%] | 当前队伍最大数量 |
[%unit_name:兵种key%] | 返回某种兵的名称 |
[%item_number:物品key%] | 返回背包中某种物品的数目 |
[%container_item_number:物品key:容器实例ID,容器模板ID%] | 返回指定容器中某种物品的数目 |
[%item_with_tag:tag%] | 返回背包中具有某种tag的物品数目 |
[%item_with_tag_and_level:tag:level%] | 返回背包中具有某种tag、且物品等级>=level的物品数目 |
[%item_qualify_as_present:present_desc%] | 返回背包中满足某种礼物描述字符串要求的道具数目。礼物描述字符串的格式参见人物列表excel中的Tag一列中的“Like”这个Tag的格式写法。 |
[%item_name:物品ID%] | 返回物品的显示名称 |
[%admin_level%] | 返回玩家在当地的管理权限 0:无 1:任职 2:城主 3:阵营领袖 |
[%gametime_elapse:ID%] | 返回距上次设置的自定义游戏时间点ID过去的游戏时间(整数天数,算法是:(当前时间-ID时间)后取整。 |
[%gametime_elapse_by_day:ID%] | 返回距上次设置的自定义游戏时间点ID过去的游戏时间(整数天数,算法是:(当前所在的天-ID所在的天)。一般用于一天内只能触发一次的事件。 |
[%tag_gametime_elapse%] | 返回预先设置的动态tag的gametime_elapse,如果没有预先设置的动态tag,或者没有该ID,则返回-1。算法是:(当前时间-ID时间)后取整 |
[%tag_gametime_elapse_by_day%] | 返回预先设置的动态tag的gametime_elapse,如果没有预先设置的动态tag,或者没有该ID,则返回-1。算法是:(当前所在的天-ID所在的天),通常用于一天内只能触发一次的事件判断。 |
[%is_custom_cd:ID%] | 返回编号为ID的自定义CD时间是否已就绪(1:是 0:否) |
[%get_custom_cd:ID%] | 返回编号为ID的自定义CD时间距离当前有多少天(向上取整,0表示已经到达) |
[%has_gametime_elapse_tag:ID%] | 查询上述的自定义游戏时间点ID是否存在(存在1,不存在0) |
[%realtime_elapse:ID%] | 返回距上次设置的自定义现实时间点ID过去的现实时间(秒) |
[%qs:ID%] | 返回指定任务ID的状态值0:未领取 1:进行中 2:已完成 3:已终结 |
[%qs:ID:index%] | 返回指定任务ID的子项值,index为从0开始的子项序号 |
[%get_flag:ID%] | 返回一个完成标记的当前值,没有值则返回-1 |
[%camp_rep:ID%] | 返回主角对目标阵营ID的声望值 |
[%is_player_triggered_encounter%] | 一个遭遇对话是否是由玩家主动点击的,0否,1是。(如果玩家是被其他人追上的情况下触发对话,则此值为0) |
[%place_rep:ID%] | 返回主角对目标地点的声望值 |
[%arg_int_val1%]
[%arg_int_val2%] [%arg_int_val3%] |
当前事件数值参数1、2、3 |
[%g_buffs%] | 返回当前队伍全局BUFF的个数 |
[%last_battle_res%] | 上一次战斗的战斗结果 0:胜利 1:失败 2:撤退 |
[%last_dungeon_res%] | 上一次地城的结果 0:退出 1:通过 2:失败 |
[%g_buff:ID%] | 查询当前队伍是否存在目标ID的全局BUFF,存在返回1 |
[%g_buff_c:CLASS%] | 查询当前队伍当前类型为CLASS的全局BUFF的个数 |
[%g_stat:STAT_FILED%] | 返回当前队伍状态中字段为STAT_FILED的当前值 |
[%has_KeyValues:ID%] | 直接对存储中的KV进行查询,存在相应KV为1,不存在为0 |
[%get_KeyValues:ID%] | 直接对存储中的KV进行查询,存在相应KV返回相应值,不存在为空 |
[%rnd_place_id:CAMP_ID%]: | 返回一个由一个势力控制的随机地点id,如果没有camp_id则返回主角势力控制的随机地点id |
[%last_rnd_place_id%] | 返回上一个生成的随机地点id |
[%last_rnd_place_name%] | 返回上一个生成的随机地点的名称 |
[%last_rnd_place_map_name%] | 返回上一个生成的随机地点的所在地图名称 |
[%last_rnd_place_products%] | 返回当前地点的每周期产出列表,符合GETITEMS的物品格式 |
[%last_rnd_place_products_name%] | 返回当前地点的每周期产出描述 |
[%last_rnd_place_has_products%] | 当前地点每周期是否有产出,1为有产出,0无 |
[%last_seled_items%] | 返回上一次物品选择框命令(ITEMS_SELECTOR)选择的物品列表 |
[%last_seled_roles%] | 返回上一次人物选择框命令(ROLES_SELECTOR)选择的人物列表(注意,此方法不能用在条件表达式组中,因为当多个人物被选中后,其返回值中包含冲突的连接字符"|",可使用[%last_seled_roles_count%]来替代判断) |
[%last_seled_roles_count%] | 返回上一次人物选择框命令(ROLES_SELECTOR)选择的人物列表的数量 |
[%last_seled_soldiers%] | 返回上一次卡牌选择框命令(CARD_SELECTOR)选择的卡牌列表(注意,此方法不能用在条件表达式组中,因为当多个卡牌被选中后,其返回值中包含冲突的连接字符"|",可使用[%last_seled_soldiers_count%]来替代判断) |
[%last_seled_soldiers_count%] | 返回上一次卡牌选择框命令(CARD_SELECTOR)选择的卡牌列表的数量 |
[%weather:ID%] | 查询当前地图中指定ID的天气效果的当前值 |
[%monster_news:X:Y%] | 查询当前地图中坐标为(X,Y)附近的野怪信息,X/Y不填则为主角当前队伍所在位置信息 |
[%attack_intend_code%] | 查询当前相遇的地图单位对玩家的攻击意图,详情见MuUnitBase.IntendToAttack |
[%place_randmom_pos%] | 查询一个地点所在位置附近的随机位置,输出特定的字符串如:沙盒红石城:123,123 |
[%tag_role_with_role_relation%] | 输入参数和tagrole或place的关系 |
[%tag_role_with_city_relation%] | tagrole和输入的role的关系 |
[%result_val%] | 当前环境变量中的curResultVal值 |
[$player:INFO$]
[$tagrole:INFO:ID$] |
查询指定角色 (主角 player / 指定角色 tagrole) 的指定信息字段。当tagrole时,ID字段不存在时则返回当前交互对象的查询结果
INFO可为如下内容:
|
[$called:call1:call2$] | NPC对玩家的称呼(当为男性时返回call1,当为女性时返回call2) |
[$tagrole_called:call1:call2$] | 玩家对当前交互对象的称呼(当为男性时返回call1,当为女性时返回call2) |
[$null$] | 替换为空字符串 |
[$trig_tagtype$] | 当前执行事件的触发对象类型 |
[$trig_tagid$] | 当前执行事件的触发对象ID |
[$input_str$] | 前一个输入框的输入结果 |
[$argvs:INDEX$] | 查询当前附加的参数信息,编号从0开始。(当前用于随机事件的参数填充) |
[$tagplace:INFO:ID$] | 查询一个地点的信息,当地点ID字段不存在时为查询当前地点
INFO可为如下内容:
|
[$tagmap:INFO:ID$] | 查询一个地图区块的信息:
|
[$tagbuilding:INFO$] | 查询当前目标建筑信息
|
[$tagwb:INFO$] | 查询当前遭遇战斗的信息INFO可为如下内容
|
[$tagteam:INFO(:QUERY_INFO)$]
[$playerteam:INFO$] |
查询当前遭遇队伍(tagteam)/主角队伍(playerteam)的信息。
当查询为tagteam时,可以选择指定队伍查询参数,当指定队伍查询参数指定时,只返回查询目标的信息 INFO可为如下内容
QUERY_INFO格式为: [查询类型]=[查询目标] 如: leader=ROLE_ID 当前支持的查询类型有:
|
[$tagcamp:INFO:ID$] | 查询目标阵营信息,当ID不存在时为查询当前阵营。INFO可为如下内容
|
[$tagbazzar:INFO$] | 查询当前系统传入的集市的信息
|
[$tagbazzarItem:INFO:bazzarID:merchantID$] | 查询某个集市的某个商人在当前时候买/卖的货物信息
|
[$tagproduct:INFO:ID$] | 查询某种特产的信息,ID不填时查询当前传入的特产信息
|
[$tagTextExplore:INFO:ID:copyID$] | 查询某个文字探索地图的信息,copyID是因为探索地图可能存在多份副本,可以不填(基本上只有系统传入参数才会填这个copyID)。不填就是地图上可见的那种探索地图。
|
[$tagquest:INFO:ID$] | 查询任务信息
status:0:未领取 1:进行中 2:已完成 3:已超时(等待超时惩罚) 4:已超时(等待自动领取奖励) 5:已终结 |
[$arg_str_val1$]
[$arg_str_val2$] [$arg_str_val3$] |
当前事件字符串参数1、2、3 |
[$rnd_enum:PROB_A,RES_A:PROB_B,RES_B:PROB_C,RES_C[:...]$] | 随机枚举值,根据所有项的概率分布返回其中一个项的RES值。比如[%rnd_enum:25,A:40,B:35,C%]表示有25%的概率返回”A”,40%的概率返回”B”,35%的概率返回”C” |
[$tagitem:INFO$] | 查询当前物品的信息,INFO可为以下内容
|
[$tagproject:INFO:ID$] | 查询一个项目的信息,如果不填ID将从SET_TEMP_ID指定的id中读取。
|
[$tagunit:INFO$] | 查询当前查询目标小兵单位的信息
|
[$tagcard:INFO$] | 查询脚本环境中卡牌的信息
|
[$tagrecruit:INFO:ID$] | 查询招募组的信息,如果不填ID将使用脚本中的招募组进行查询(通过SET_RECRUIT_CARD或SET_TAG_RECRUIT_GROUP进行设置)
|
[$save_version$] | 返回当前游戏存档创建时的版本号 |
[$version_compare:TAG_VERSION$] | 用当前游戏存档创建时的版本号与TAG_VERSION进行比较,如果大于TAG_VERSION返回1,等于TAG_VERSION返回0,小于TAG_VERSION返回-1 |
[$tagmsg:INFO$] | 查询当前可交互消息的信息
|
[$tagtimer:INFO:ID$] | 查询目标计时器的信息
|
[$lua_str:KEY$] | 返回定义在游戏核心逻辑脚本中的 GetLuaStringVal 接口的值 KEY为查询参数 |
[$lua_int:KEY$] | 返回定义在游戏核心逻辑脚本中的 GetLuaIntVal接口的值 KEY为查询参数 |
[%envoy_enable%] | 返回当前玩家自己的势力中的外交信使是否可用 |
[$quest_clues$] | 专门用于向SELECT指令中插入当前任务列表相关的线索选项,使用方法为具体如下:
在任务表中的“可打听选项_NPCQueryList”列中,按照下列格式填入线索选项及事件信息,可支持多行,格式为:CLUE#[条件表达式组]#选项显示名称#触发事件ID(可以用“SUB_EVENT.”开头表示执行完该事件后返回当前选择事件) |
[$tag_wander_npc:INFO:ID$] | 查询游荡NPC的信息,当游荡NPC ID字段不存在时为查询当前环境变量中的游荡NPC
INFO可为如下内容:
|
[$tag_container:INFO:容器实例ID,容器模板ID$] | 查询目标容器的信息,当容器实例ID与模板ID信息为空时为查询当前环境变量中的容器
INFO可为如下内容:
|
[$place_container:INFO:地点ID$] | 同tag_container,但是查询的是地点容器。若地点ID为空,则查询当前环境中的地点。 |
[$platform_called:def,INFO1|platform:INFO2[|...]$] | 根据游戏当前平台返回结果,platform为对应平台定义,INFO为返回文本
可使用的平台有:
|
[%int_called:intId:def,INFO1|num,INFO2[|...]%] | 根据指定的Int变量值返回称呼
def为默认返回结果(若所有的int值都不匹配) INFO为返回文本 num为匹配的int值 num可以直接填写数字,也可以填写简易的判断符号,如 num,INFO:值为num时返回INFO <>num,INFO:值不为num时返回INFO >num,INFO:值大于num时返回INFO >=num,INFO:值大于等于num时返回INFO <num,INFO:值小于num时返回INFO <=num.INFO:值小于等于num时返回INFO 如 |
[%dlc_activated:dlc%] | 查询对应的DLC是否激活
DLC可选项: dlc1:乱世英豪 dlc2:比武大会 dlc3_1:赫石之夏 - 赫炎工坊 dlc3_2:赫石之夏 - 生儿育女 dlc3_3:赫石之夏 - 汉家江湖辛弃疾 |
以下查询需要激活DLC《比武大会》 | |
[%match_query_first_id%] | 比武大会查询结果中第一个结果的ID,见MATCH_QUERY*指令 |
[%match_query_rnd_id%] | 比武大会查询结果中随机结果的ID,见MATCH_QUERY*指令 |
[%match_query_ids%] | 比武大会查询结果中所有结果的ID,使用"|"分割 |
[%match_query_options%] | 比武大会查询结果的选项组信息,用于插入到SELECT*或SELECT_TAL*指令中。配合SET_TAGMATCH_BY_RESULT*指令设置选择的结果。 |
[%match_team_query_member_name:INDEX%] | 比武大会队伍查询结果中成员的名称,INDEX范围从0到2 |
[%match_team_query_member_id:INDEX%] | 比武大会队伍查询结果中成员的ID,INDEX范围从0到2 |
[%match_team_query_members%] | 分割ID |
[$tagmatch:INFO:ID$] | 查询目标比武大会的信息
ID不填时默认为环境中的比武大会
|
传承界面专用查询指令
查询指令 | 说明 |
---|---|
[%story_mode%] | 当前选择的剧本名称 |
[%game_mode%] | 游戏模式,0:故事模式,1:沙盒模式 |
全局存档查询指令字段
用来查询全局存档中的一些指令
查询指令 | 说明 |
---|---|
[%global_int:ID%] | 返回全局整形字段ID的值 |
[$global_str:ID$] | 返回全局字符串字段ID的值 |
内置全局变量字段
以下是内置的全局变量关键字段:
字段KEY值 | 说明 |
---|---|
save_max_hard_level | 已经解锁过的最高难度,默认为0 |
内置自定义变量字段
可使用SETINTVAR、CHANGEINTVAR等指令进行修改并保存的系统内置自定义变量。一般都具有特定的功能。
字段KEY值 | 说明 |
---|---|
system_沙盒模式 | 是否是沙盒模式 |
system_探索地图点数 | 探索地图点数 |
system_星星 | 星星数目 |
system_敌方角色血量百分比 | 当玩家与敌方角色对战时,对方血量的额外附加倍率 |
system_敌方角色攻击百分比 | 当玩家与敌方角色对战时,对方攻击力、魔法攻击力的额外附加倍率 |
config_ai_level | 当前AI强度等级 0:简单 1:普通 2:困难 |
config_roll_limit | 是否开启战斗中翻滚限制 0:关闭 1:开启 (开启饥翻滚限制在战斗中进行翻滚时将会有CD时间及次数限制) |
config_hunger_penalty | 是否开启饥饿惩罚 0:关闭 1:开启 (开启饥饿惩罚会在饥饿状态时影响队伍的移动速度) |
config_upgrade_cost_reduce | 当前升级单位花费的经验及所需材料折扣率(百分比 0~100,默认为0) |
config_soldier_dead_scale | 当前小兵阵亡概率倍率(百分比,默认100,最终阵亡概率=基础阵亡概率*(config_soldier_dead_scale/100)) |
以下设置需要游戏版本高于0.7.3.1 | |
config_project_concurrent | 当前地点项目建设最大同时进行的基数 |
初始设定表内置字段说明
游戏初始设定表中,可以配置一些具有实际功能的初始字段值。
字段KEY值 | 说明 | 默认值 |
---|---|---|
init_pos | 默认出生点位置信息 | |
init_statu | 玩家出生时默认的属性状态信息 | |
init_money | 默认的初始财产 | 0 |
home_place | 默认的初始地点ID | |
init_skillpages | 初始点亮的技能页,格式见 SET_SKILLPAGE 指令说明 | |
init_skills | 主角初始拥有的技能表,格式同 GETSKILL 指令 | |
init_equip | 主角初始的装备表信息 | |
init_camp_rl | 初始阵营关系表,格式为:
阵营A,阵营B,关系状态,友好度(-100~100)|阵营A,阵营C,关系状态,友好度(-100~100)|...|阵营N,阵营N,关系状态,友好度(-100~100) |
|
unchanged_diplomatic_relationship | 是否游戏过程中不可动态改变势力间的外交关系 (0否 1是) | 0 |
gametime_scale | 当玩家位于大地图上时,游戏时间进行的缩放系数(游戏天/秒) | 0.01 |
battletime_scale | 当玩家位于大地图上时,游戏时间进行的缩放系数(游戏天/秒) 当此值为0时,遭遇战或攻城战中游戏时间会静止 | 0.005 |
no_card_auto_supply | 不可卡牌补给耐久度 | 0 |
drop_card_when_no_durability | 在此模式下卡牌耐久为0时会消失 | 0 |
enable_card_upgrade | 允许卡牌进阶 | 0 |
equipment_loss_durability | 装备具有耐久度损耗 | 0 |
levelup_exp_scale | 升级经验倍率 | 1.0 |
seige_time | 基础攻城的准备时间(天) 围城时间 = 基础时间 + 武装度 * 每点武装度提供的准备时间加成(siege_time_per_armvalue字段) | 0 |
siege_time_per_armvalue | 每点武装度提供的准备时间加成 | 0 |
project_time_scale | 项目所需时间比例,小于1即为缩短时间,大于1延长时间 | 0.99 |
dailyIncomeScale | 每天城镇资源收入的倍率 | 1.0 |
recruit_cost_scale | 招募/补给/进阶/开宝箱的成本倍率 | 1.0 |
building_cost_scale | 建造建筑/其他项目的成本倍率 | 1.0 |
custom_intval_watcher | 默认监视自定义变量字段 同 ADD_INTVAL_WATCHER 指令 | |
show_star_info | 显示声望(星星) | 0 |
ai_soldier_add_exp_per_period | 每天AI士兵增加经验基数 | 0 |
team_role_count_base | 每个队伍基础携带角色数量 | 3 |
team_role_max | 部队最多携带角色数 | 5 |
team_card_count_base | 每个队伍基础携带部队数量 | 6 |
team_card_max | 部队最多携带卡牌数 | 40 |
ai_recruit_resource_scale | AI招募的资源倍率 | 1.0 |
ai_build_resource_scale | AI建造的资源倍率 | 1.0 |
ai_upgrade_resource_scale | AI升级兵种的资源倍率 | 1.0 |
ai_highlevel_upgrade_average_days | AI模拟高等级升级兵时的检测周期期望(天数)
此数值越高,AI升级兵种越慢。 |
20 |
ai_auto_balance_resource | AI是否会自动平衡各项资源 | 0 |
ai_invade_prob | AI的进攻偏好系数,范围0~1 ,越接近1概率越高 | 0.8 |
invasion_destroy_factor | 侵略占领建筑物损毁概率。格式为:
摧毁个数1:概率1 摧毁个数2:概率2 ... 摧毁个数N:概率N 例如: 1:50 2:30 3:10 4:5 |
|
monster_move_speed_random | 野怪发射器野怪随机移动速度随机修正范围,最多0.75 | 0 |
soldier_battle_killed_prob | 士兵的基础战损,每个士兵在战斗结束时如果战败,有多少概率重伤 | 0.2 |
ai_soldier_battle_killed_prob | AI部队战败后阵亡概率 | 1 |
ai_recruit_hero_free | AI免费招募英雄 | 0 |
army_base_move_speed | 军队基础移动速度 | 240 |
monster_min_movespeed | 野怪最小的移动速度 | 150 |
caravan_move_speed_range | 商队移动速度范围 格式为: 最小速度,最大速度 | 100,100 |
farmers_move_speed_range | 农民移动速度范围 格式为: 最小速度,最大速度 | 100,100 |
army_base_move_speed_range | 军队的移动速度范围 格式为: 最小速度,最大速度 | 100,100 |
global_move_speed_range | 全局移动速度范围 格式为: 最小速度,最大速度
该数值影响所有的地图上可移动单位 |
20,400 |
battle_gain_money_scale | 战斗中标准获取金钱的放大系数 | 1 |
npc_drop_equipment | NPC是否会掉落装备 (0:否 1:是) | 0 |
npc_drop_equipment_prob | NPC掉落装备概率 | 0.15 |
loot_food_each_soldier | 每组士兵掉落食物的概率 | 0.1 |
loot_food_each_hero | 每个英雄掉落食物的概率 | 1 |
hungry_fail_days | 饥饿失败天数 | 3 |
以下设置需要游戏版本高于0.7.2.1 | ||
ai_dailyfight_period | AI势力强制讨伐判定间隔时间天数,<=0为关闭此判定。(此选项为默认AI侵略判定之外的逻辑,0.7.2.1之前版本默认为5)此外,此判定从本版本起将受到AI强度因数影响 | 0 |
ai_active_level_default | 默认的AI强度等级,影响 config_ai_level 自定义字段的默认值 | |
def_config_roll_limit | 默认的是否开启翻滚限制,影响 config_roll_limit 自定义字段的默认值 | |
def_config_hunger_penalty | 默认的是否开启饥饿惩罚,影响 config_hunger_penalty 自定义字段的默认值 | |
def_seige_battlemap | 缺省的攻城战地图ID | |
def_encounter_battlemap | 缺省的遭遇战地图ID | |
以下设置需要游戏版本高于0.7.3.1 | ||
init_inventory_capicity | 默认初始背包容量基数 | 60 |
def_project_concurrent | 地点默认同时进行项目建设的数量 | 1 |
以下设置需要游戏版本高于0.7.4.1 | ||
camp_rep_wanted_val | 个人在阵营声望达到通缉状态的阈值(小于此值但未达到战争状态时野外遭遇不会被攻击,但是进入此阵营地点时会被限制) | 0 |
camp_rep_war_val | 个人在阵营声望达到战争状态的阈值(小于此值野外遭遇会被该阵营的单位攻击) | -10 |
以下设置需要游戏版本高于0.8.0.1 | ||
dg_levelup_skill | 战斗中升级时播放特效对应的技能ID | 升级特效 |
init_items | 初始道具表 | |
def_dropitem_model | 战斗中默认道具掉落在地上的模型及特效信息(格式为:大地图单位模型ID#特效信息) | chest1#psChestFlash1,0,0 |
以下设置需要游戏版本高于0.8.1.1 | ||
default_role_model_male | 默认人物角色男性模型(仅当未指定其角色模型时生效) | 野马王 |
default_role_model_female | 默认人物角色女性模型(仅当未指定其角色模型时生效) | 鹰族女1 |
default_role_act_male | 默认男性角色动作ID(当根据角色武器类型映射动作失败时返回) | 男空手1 |
role_acts_diclist_male | 默认男性角色动作武器映射表 | 0,男空手1;1,男剑1;2,男刀1;3,男锤1;4,男长枪1;5,男盾1;6,男重剑1;7,男弓1;8,男镖1;9,男琴1;10,男棍1;11,男双持刀1;12,男法杖1 |
default_role_act_female | 默认女性角色动作ID(同上) | 女空手1 |
role_acts_diclist_female | 默认女性角色动作武器映射表 | 0,女空手1;1,女剑1;2,女刀1;3,女锤1;4,女长枪1;5,女盾1;6,女重剑1;7,女弓1;8,女镖1;9,女琴1;10,女棍1;11,女双持刀1;12,女法杖1 |
default_role_dgskill | 角色默认的普攻地城技能 | 标准普攻 |
default_weapons_speed | 所有武器类型对应的默认攻击速度,当类型代码为-1时为缺省设置 | -1,1.0|0,0.6|1,0.6|2,0.6|3,1.0|4,1.0|5,1.0|6,1.0|7,0.5|8,0.5|9,0.5|10,1.0|11,1.0|12,1.0 |
custom_equip_system | 使用自定义的装备栏位系统(=1时生效) | 0 |
custom_equip_slot_count | 自定义装备栏位数(不管有多少栏位,索引0始终代表武器栏位) (仅当custom_equip_system为1时生效) | 4 |
custom_equip_armor_slot | 护甲类型依据栏位(仅当custom_equip_system为1时生效) | 1 |
custom_equip_conflict_info | 自定义武器与装备栏位排斥信息(例如双手武器对副手栏位的排斥) (仅当custom_equip_system为1时生效)填写格式:武器类型代码1,排斥栏位1|武器类型代码2,排斥栏位2|...|武器类型代码N,排斥栏位N | |
以下设置需要游戏版本高于0.8.3.1 | ||
card_consumable_mode | 是否默认开启高损耗卡牌模式。此模式下卡牌耐久度会具有较高损耗性,但是额外会具备自动恢复能力以及自动战斗等特性 | |
card_consume_base_prob | 高损耗卡牌模式下,卡牌损耗的基础概率(受天赋影响可减小此概率) | |
card_restore_base_period | 仅在高损耗卡牌模式下有效:每点卡牌耐久度恢复的基础时间周期(天数) | |
foods_base_capacity | 食物类道具的基础容量 | |
以下设置需要游戏版本高于1.0.0.1 | ||
default_guard_role | 默认地点的卫兵人物ID | 通用卫兵 |
min_merit_val | 最小贡献点值 | 0 |
max_merit_val | 最大贡献点值 | 100 |
ai_add_merit_week | AI每周自动增加贡献点数 | 0 |
is_rebel_system_on | 是否开启叛乱系统判定 | 0 |
is_enable_tournament | 是否开启比武大会系统 | 0 |
def_formula_phy_x | 物理防御计算公式因子X(除法公式:伤害=伤害 * (1 - 防御/(防御+x))) | 400 |
def_formula_mag_x | 巫术防御计算公式因子X(除法公式:伤害=伤害 * (1 - 巫术防御/(巫术防御+x))) | 400 |
以下设置需要游戏版本高于1.0.3.1 | ||
trade_permission_base_price | 通商许可基础价格 | 250 |
trade_permission_temp_price | 临时通商许可价格 | 25 |
除了以上表中的特定初始设定字段外,初始设定表中还会有一些以 "gui_"开头的UI重置特定字段用来实现对一些游戏内置UI的自定义重置,具体见重置游戏界面相关说明
对话框及一些通用UI中支持的字体颜色指定代码
在对话框、文字框以及一些常见的UI中,通常可以使用以下格式来为文本中的指定文字更改颜色。
例如:这是一段[[imp:红色字体]],[[&ff6699ff:自定义颜色]]的字体
目前可支持的定制颜色如下(自定义颜色需用"&"符号替换"#"):
- place:地点名称的统一颜色 #a32121
- role:人物名称的统一颜色 #a32121
- camp:阵营名称的统一颜色 #a32121
- item:物品名称的统一颜色 #a32121
- imp:重要信息的统一颜色 #a32121
- quest:任务信息颜色 #00ffff
- mag_damage:魔法伤害颜色 #4489a3
- phy_damage:物理伤害颜色 #bf3b25
- effect:效果反馈颜色 #9a52a0
- explain:解释文本颜色 #b55e1f
- recover:恢复文本颜色 #6b9f52
- desc:描述文本颜色 #9d9150
对话中插入图片
特别的,使用 [[img:图片路径,size=大小格式]] 的方式可以在对话中插入图片。
例如:[[img:ui://NewUI/defence_1,size=1.8em]] 这是一个图标
图标的路径支持两种格式,一种是使用Assets/ 开头的资源路径,另一种是使用FairyGUI的url路径。
若要在图片中指定图片大小,可以通过 size 或 height和width 属性进行指定。
如:[[img:ui://NewUI/defence_1,size=1em]] 大小为一倍行高(高度适配,宽度缩放)的图标
[[img:ui://NewUI/defence_1,height=50%,width=50%]] 大小为原图片大小50%的图标
大小格式支持三种格式
数字:height=64 单位像素
百分比:height=100% 原图片大小的百分比
行高:height=2em 几倍的行高(即按文字高度来)
人物角色位置指令格式
人物位置信息说明 人物位置格式为:位置代码:位置参数
支持的位置代码有 0:未分配 1:地点中 2:队伍中 3:项目中
- 当位置代码为1地点中时:格式如下 1:地点ID,设施ID (设施ID为空表示在设施外部)
- 当位置代码为2队伍中是:格式如下 2:队伍ID
游戏内全局位置指令格式
当为一个队伍或者大地图上的对象指定位置信息时,就需要一个可以进行全局位置指定的指令格式(如使用TELEPORT指令等)。
全局位置格式为:
地图ID:坐标X,坐标y
特定战斗中的单位限制指令格式
在特定战斗表中,可以在“限制条件”一栏中填入以下格式的指令字段进行单位或者特殊限制。
格式如下:
命令1:参数1;命令2:参数2;...命令N:参数N;
目前支持的限制命令如下:
- player 重置队伍英雄列表 格式为:人物ID1,重置等级(-1或不填表示不重置)|人物ID2,重置等级|人物ID3,重置等级|...|人物ID N,重置等级
- units 重置队伍小兵列表 格式为一般卡牌列表格式
- add_stat 附加角色属性状态 格式为:目标人物ID#状态表
大地图单位控制指令表
大地图单位(队伍)控制指令是用来对大地图上的单位进行序列行为指定的控制方法。当单位被指定控制指令表后,会按照先后顺序逐步执行每一条指令,直到指令表执行完成。当单位执行动作进行中途保存退出后,读档时会按照之前的指令表继续执行指令。
注意:除了假人(包括剧情控制中需要的假人和游戏中的野怪等)外,其他类型的队伍的指令表执行结束后会自动解散队伍。
控制指令的格式是由整形数字的命令类型加命令内容组成,多行以“;”进行分隔,每行指令以指令类型代码+”,”开头,后面为指令参数,例如:
1,测试地图:100,100;1,测试地图:100,200;99,0
上述代码表示先移动到测试地图的坐标1(100,100),再移动到2(100,200),然后解散队伍;
目前支持的指令类型代码如下:
控制指令代码 | 说明 |
---|---|
1 | 向大地图坐标移动 参数为目标地图坐标(地图坐标格式 地图ID:坐标X,坐标Y) |
2 | 在原地停留 参数为停留时间(单位:游戏内天数) |
3 | 进入地点 参数为目标地点ID |
4 | 攻打目标地点 参数为目标地点ID,攻占方式(0:占领 1:掠夺) |
5 | 在目标地点内停留 参数为目标地点ID,停留时间 |
7 | 执行一个事件 参数为事件ID |
8 | 更改当前StateNum值 参数为新的StateNum值
说明:StateNum 可以用来标记一些控制队伍的当前状态。例如:命令一个单位去地图某个地方执行一个动作,当它到达之前StateNum为0,到达后将StateNum改为1,这样就可以在脚本中判断该队伍当前处于什么状态了。 |
9 | 永久执行自定义运动命令,命令格式说明见 单位队伍默认运动指令格式 |
10 | 加入一个战团 参数为战团的数字ID(系统内置方法,不推荐调用) |
11 | 执行一个动作 参数格式为:动作ID,循环次数(-1无限循环 ≥1有限次循环,当动作自身是循环动画时设置为1即可),单次动作时间(秒为单位,当非无限循环的动作次数播放结束后执行下一条指令),播放对象(0默认全体 1仅领队 2所有追随模型),初始帧区间(0~1之间,1为动画最后一帧。-1为随机取0~1之间的值),播放结束后是否转入下一个指令(默认为0否 1是)
模型当前支持的默认动作表:
|
12 | |
13 | 开宝箱 参数为宝箱ID |
14 | 执行一个TimeLine动作 参数格式为:TimeLineID,持续时间(默认-1,始终持续,当>0时播放执行时间后结束) |
15 | 改变当前队伍对玩家的态度 0:中立 1:敌对 |
16 | 改变当前队伍移动速度 参数为目标移动速度 |
17 | 交易成功 参数为交易目标地点ID |
18 | 进行交易 参数为交易目标地点ID |
19 | 跟随队伍目标 参数为跟随目标的控制ID |
99 | 解散当前队伍 |
单位队伍默认运动指令格式
大地图上的假人、野怪、队伍中会需要设置默认的运行方式或者是通过脚本改变其运动模式。指定运动模式后,单位会按照此指令进行默认的行为动作。
单位运动指令的格式为:
运动方式,参数1[,参数2,...,参数N]
当前可支持的运动方式及参数格式为:
- 范围内游荡:WANDER,运动半径,[中心坐标X,中心坐标Y](如不指定中心坐标则以当前位置为中心)
- 巡逻运动:PATROL,坐标1X,坐标1Y,坐标2X,坐标2Y,...,坐标NX,坐标NY(当第一个坐标等于最后一个坐标时执行循环运动,否则为往复运动)
- 其他为静止不运动
物品列表信息格式
物品列表信息是最常使用的信息格式之一,各种物品获取相关的指令(GETITEMS等指令)、配置表中都会用到这种信息格式。
物品信息的格式如下:
物品代码1,数量1[,细节信息表]|物品代码2,数量2[,细节信息表]|....|物品代码N,数量N[,细节信息表]
细节信息表为格式为"key1=val1,key2=val2,..."的字典表,其支持以下信息字段内容:
- 【mf】自动匹配创建词缀:mf=最低品质N-最高品质N[-变量数值附加基数]
例:长剑,1,mf=0-3 说明:以mf开头的词缀代码表示自动适配出品质从0-3之间的词缀(0为不附带词缀)。
- 【cw】创建制定词缀:cw=词缀ID+变量数值附加基数(0-100)
例:长剑,1,cw=吸血剑+50 说明:表示附带吸血剑指定词缀的物品,所有变量数值指定由50-100之间。
- 【w】指定物品词缀详情:w=词缀ID$[变量代码数组]
- 【qv】指定物品属性的变量数组:qv=变量代码数组
- 【p】指定物品的记录买入价格:p=买入价格
变量代码数组由列数为2的二维数组组成,列1为枚举值,列2为品质数值(0-100),以”/”进行连接。比如一个词缀有3条词条,那么他的变量数组可能为:0/50/0/100/0/100
天气效果信息格式
使用指令代码控制天气时多以组合天气效果为主,多个天气效果以"|"进行连接。
天气效果描述信息格式为:
天气效果ID1,强度值|天气效果ID2,强度值|...天气效果IDn,强度值
目前游戏中支持的天气效果ID有:
- 雨:强度为0时关闭 1~50为普通 50~100为大雨
- 雪:强度为0时关闭 1~50为普通 50~100为大雪
- 风沙:强度为0时关闭 1~100
- 雷电:强度为0时关闭 1~100
- 雾:强度为0时关闭 1~100
- 黑暗:强度为0时关闭 1~100
- 炎热:强度为0时关闭 1~100(热变形特效)
- 云:强度为0时关闭 1~100(晴天时地面的云朵阴影)
地图编辑器及各种配置表中的天气效果信息字段填写格式如下:
概率1,持续时间1:[天气效果描述信息1];概率2,持续时间2:[天气效果描述信息2];概率3,持续时间3:[天气效果描述信息3];[...];概率N,持续时间N:[天气效果描述信息N]
比如:30,1:;50,3:雨,20|雾,10;20,5:风沙,30
表示30%的概率持续一天无天气效果,50%的概率持续3天下雨,20%的概率持续5天风沙天气
镜头滤镜效果信息格式
当使用SET_CAMERA_FILTER等指令时可以对当前游戏设置镜头滤镜效果。
镜头滤镜效果信息的格式为:
滤镜效果ID1,强度值|滤镜效果ID2,强度值|...滤镜效果IDn,强度值
目前游戏中支持的镜头滤镜效果ID有:
- 暗角:强度为0时关闭 1~100为镜头边框的暗影程度
- 黑白:强度为0时关闭 1~100为同一黑白照片效果
- 老旧:强度为0时关闭 1~100为老旧(泛黄)照片效果
人物表中具有特殊含义的TAG
目前一些程序中使用的人物TAG字段
字段 | 说明 |
---|---|
LIKE | 标识人物所喜欢的物品类型,影响好感度提升速度
格式:LIKE:类型1|类型2|... |
DEF_WEAPON_SPEED | 默认的武器速度,有此tag时会在人物不装武器时候以此速度为默认武器速度 |
FVChangeUnit | 通过礼物改变角色好感度的算法单位系数,无此标记为默认值 |
dg_skill | 替换此人物的地城技能 |
attached_script | 人物在战斗中挂载的脚本事件ID |
loot_list | 地城战斗中此人物的掉落列表(可用“经验”物品ID作为指定经验获取的来源) |
IsNoExpel | 是否不允许驱逐此角色 (不为空生效) |
IsNoBetray | 是否不会背叛或主动离开阵营 (不为空生效) |
地点表中具有特殊含义的TAG
程序中具有实际功能的地点TAG表
字段 | 说明 |
---|---|
迷你地图显示 | 除城镇地图默认显示外,其他地方如果要显示必须此tag=1 |
迷你地图不显示 | 顾名思义 |
AI出征关闭 | 有此tag的据点不会主动出征、巡逻、占领资源点 |
SharedPermission | 共享通商许可地点ID,当此项存在时此地的通商许可与该ID的地点共享。 |
阵营表中具有特殊含义的TAG
程序中具有实际功能的阵营TAG表
字段 | 说明 |
---|---|
NO_CHANGE_DIP | 游戏过程中不会受动态改变外交关系因素的影响,直接使用脚本指令改变除外 |
UNFAILED | 此势力无法通过正常的途径被消灭 |
EMBARGO | 此势力占据的地点不会派出商队,也不会和其他地点通商 |
NO_FARMER | 此势力占据的地点不会有人口流动 |
CAMP_COLOR | 指定的阵营颜色值,示例格式 CAMP_COLOR=FFFFFF
未指定阵营颜色的阵营,将由游戏分配默认颜色 |
CAMP_UI_BG | 指定的阵营情报UI背景,示例格式 CAMP_UI_BG=ui://NewUI/ui_info_item_camp_panel_YeMa
未指定阵营情报背景的阵营,将使用默认背景+阵营颜色 |
HIDE_BY_ACTIVESTATE | 按照当前的ActiveState隐藏相关信息,如果配置表中“是否隐藏”字段为1时此TAG无效 |
物品表中具有特殊含义的TAG
程序中具有实际功能的TAG字段:
字段 | 说明 |
---|---|
IgnoreBagSpace | 该道具不会占据道具栏的使用空间,此字段为"1"时开启 |
NoSellOrDrop | 该道具不能被丢弃或者出售,此字段为"1"时开启 |
BatchUse | 是否支持批量使用,此字段为"1"时开启。 当一个带有此TAG的物品被使用时,其脚本中的 [%arg_int_val1%] 参数为使用时选择的数量值 |
DoNotCostWhenUse | 使用时不消耗改物品,此字段为"1"时开启 |
Present | 礼物的类型标签字段,以"|"分隔 |
AiNotLoot | AI不可通过正常手段获取到,此字段为"1"时开启 |
Mendable | 是否可修复,不可修复的道具耐久度为0后自动损毁,“1”为是 |
RoleAct | 人物模型动作,此字段不为空时开启,装备后使用此字段定义的人物动作而不是默认武器动作 |
DropModel | 战斗中该物品在地上的模型信息(格式为:大地图单位模型ID#特效信息 如为空则以初始设定表中的 def_dropitem_model 字段代替) |
地图表中探索地图信息字段中特殊字段说明
程序中具有实际功能的信息字段:
字段 | 说明 |
---|---|
BattleLoseStay | 失败后停留在原地。仅探索地图模式中可用。0:否 1:是 |
以下字段适用于游戏版本≥0.7.2.1 | |
RolePlay | 当玩家处于此地图时,角色的模型及名称将以此字段值为ID的人物信息所代替,并且不会显示随从单位的模型,此外背包、队伍等界面功能将被禁用 |
FixedGameTime | 当此选项不为空时,游戏时间将被冻结到该字段值所代表的一天中的某个时间(范围0~1.0,例如0.5代表正午12点)。当时间冻结时,世界时间将不会推进,只有当前地图上的单位才可以行动 |
CameraFilter | 当处于此地图时强制使用此字段值信息作为镜头滤镜效果。效果同SET_CAMERA_FILTER指令 |
NoFoodConsume | 当此选项为1时,玩家在此地图中不会有食物消耗,也不会被饿死 |
副本信息表中TAG特殊字段说明
程序中具有实际功能的信息字段:
字段 | 说明 |
---|---|
PlayerInitType | 玩家角色初始化模式 0:默认模式(以默认的角色模板和副本初始化位置来初始化角色) 1:手动模式(通过LUA接口来实现控制角色初始化) |
ExpMode | 经验分配模式,格式为:分配模式[,半径参数]
分配模式有以下几种
|
物品道具词条信息格式
物品道具的词条以“词条类型:{枚举信息1,数值1;枚举信息2,数值2;...}”的格式设置在物品表中,其中词条类型分为以下几种:
- a:被动增加角色属性,枚举信息为增加属性的Key
- skill:增加角色可用技能,枚举信息为技能ID
- dg_skill:替换角色当前的地城技能,枚举信息为地城技能ID
物品掉落信息格式
物品掉落信息格式为:
概率1,物品ID1,最低数量,最高数量[,附带参数表(见 物品列表信息格式 )]|概率2,物品ID2,最低数量,最高数量[,参数表]|...|概率N,物品N,最低数量,最高数量[,参数表]
(如LOOT*100.0,金钱,100,200|50.0,经验,100,200 表示100%的概率获取100~200金钱 50%的概率获取100~200经验)
其中,物品ID一项可指定特殊ID “QUERY”,表示从全局掉落表中查询一个掉落结果并返回。(见Q全局掉落表.xlsx 中格式)
QUERY的参数表格式为“参数1=val1,参数2=val2,....”,可支持以下查询参数:
- 【id】直接从全局掉落表中取目标ID的结果(此项存在且不为空时将忽略所有其他查询条件)
- 【lv】指定的适配等级,当-1时适配所有查询结果 当为0时以主角当前等级进行查询
- 【t1】查询筛选TAG1
- 【t2】查询筛选TAG2
- 【t3】查询筛选TAG3
特效对象事件脚本指令格式
特效对象可以附加 eftEffectEventHelper 脚本为其增加播放事件,每个事件的输入格式为: 事件时间点(start后的秒数):指令类型,参数1, 参数2,....,参数N
目前支持的指令类型有:
shake_cam:晃动屏幕 参数1为晃动时间 参数2为强度
play_sound:播放一个声音 参数1为声音ID