“通用剧情事件指令说明”的版本间的差异

来自部落与弯刀Wiki

 
(未显示5个用户的326个中间版本)
第1行: 第1行:
'''特别注意:脚本编辑时注意所有特殊符号必须为半角!!!'''
+
 
 +
'''特别注意:脚本编辑时注意所有特殊符号必须为半角!!!同时在剧情和所有配置表里也要避免使用带有特殊符号的字符串,以防止和脚本配合使用时发生脚本注入错误!'''
  
 
===剧情事件===
 
===剧情事件===
第8行: 第9行:
 
#命令内容:包含该剧情事件触发后执行的命令条目;
 
#命令内容:包含该剧情事件触发后执行的命令条目;
 
#结果:根据命令条目最后一条的返回结果,进行条件判定并跳转;
 
#结果:根据命令条目最后一条的返回结果,进行条件判定并跳转;
 +
 +
 +
===剧情事件触发器===
 +
目前游戏中所有的剧情及事件都是基于剧情事件触发器机制来建立的。触发器的设计原理为,通过在游戏中的各种关键位置预设事件接口,当程序访问这些程序位置时,就会调用这些事件接口并传入当前调用时的环境变量,程序会根据当前的环境变量去遍历该接口事件中定义的所有触发器,并返回其中优先级最高的一个触发器或者所有满足条件的触发器(根据接口的类型不同来决定是返回一个还是所有触发器)来执行对应的剧情事件。触发器调用事件时并不是立即执行的,而是把对应的事件放入剧情事件执行队列中依次执行,直到队列中所有的事件都执行结束。
 +
 +
目前游戏中定义的剧情事件接口列表为(加粗的为全部触发类型,既执行所有满足条件的触发器事件而非优先级最高的一个):
 +
{| class="wikitable"
 +
|+
 +
!接口类型
 +
!接口说明
 +
!对象类型
 +
!对象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
 +
|-
 +
| colspan="4" |以下设置需要游戏版本高于0.8.0.1
 +
|-
 +
|'''in_game'''
 +
|每次进入游戏时触发(创建或载入游戏)
 +
|
 +
|
 +
|-
 +
| colspan="4" |以下设置需要游戏版本高于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被设置为目标势力
 +
|
 +
|
 +
|-
 +
| colspan="4" |以下触发器需要激活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 这样的格式组成,多行指令yi
+
游戏事件中执行的脚本指令一般由: 指令类型*参数1#参数2#..#参数N 这样的格式组成,多行指令由换行符进行分隔。
  
 
目前支持的脚本命令条如下:
 
目前支持的脚本命令条如下:
第19行: 第321行:
 
!说明
 
!说明
 
|-
 
|-
|*
+
|(空)
 
|'''角色对话框'''
 
|'''角色对话框'''
*用途:以角色立绘+文字打印的方式显示一段对话文本
+
用途:以角色立绘+文字打印的方式显示一段对话文本
*格式:*角色ID(@立绘显示位置)#对话段落1#对话段落2#对话段落3#...#对话段落N
 
*备注:
 
  
 +
格式:*角色ID(@立绘显示位置)#对话段落1#对话段落2#对话段落3#...#对话段落N
 +
 +
备注:
 
  当对话框某段文字需要绑定语音时,在该段文字之前加上<voice:语音ID>就可以在显示该段文字时播放对应声音文件,当点击跳过时自动关闭当前语音
 
  当对话框某段文字需要绑定语音时,在该段文字之前加上<voice:语音ID>就可以在显示该段文字时播放对应声音文件,当点击跳过时自动关闭当前语音
 +
每段对话文字可以以“|”分隔写出多组随机对话段落,调用时会在其中随机选出一段进行返回。
  
每段对话文字可以以“|”分隔写出多组随机对话段落,调用时会在其中随机选出一段进行返回。
 
 
  当对话内容以“inner:...”开头时,为用特殊信息替换内容;   
 
  当对话内容以“inner:...”开头时,为用特殊信息替换内容;   
 
 
  以下为内置的特殊信息ID及含义:   
 
  以下为内置的特殊信息ID及含义:   
 
  inner:set_player_job 给对象为玩家的角色设置工作指令时说的话   
 
  inner:set_player_job 给对象为玩家的角色设置工作指令时说的话   
第38行: 第340行:
  
 
  <nowiki>*</nowiki>立绘显示位置:可以是L或者R,默认为L,立绘显示在对话框左侧,R则显示在右侧
 
  <nowiki>*</nowiki>立绘显示位置:可以是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
 
|SELECT
第47行: 第390行:
 
备注:当选项Key值以"+"开头时表示该选项选中后对话框不会关闭;
 
备注:当选项Key值以"+"开头时表示该选项选中后对话框不会关闭;
 
|-
 
|-
|
+
|SELECT_TALK
|
+
|'''插件式对话选择框'''
#SELECT_TALK: 前2个参数和SELECT相同,第三个参数为触发器type(不填写默认为any),不过会从触发器中选择触发类型为SELECT且满足条件的选项添加到选项中,显示的文字为触发器中的绑定选项,触发事件为触发事件ID对应的事件。使用时需要在结果中添加一行[%result_code%][>]99:EVENTPOJO_EVENT*
+
用途:可通过触发器表来扩展选项内容的选择框
  
 +
格式:SELECT_TALK*角色ID#对话内容#[ADDON_SELECT];[固定选项(例如:0:取消)]#筛选标签(以"|"分隔,默认为any)
  
注意:在触发器表中触发事件ID支持增加前缀“SUB_EVENT.”来标记该事件为一个子事件。
+
备注:前2个参数和SELECT相同,第4个参数为触发器type(不填写默认为any),不过会从触发器中选择触发类型为SELECT且满足条件的选项添加到选项中,显示的文字为触发器中的绑定选项,触发事件为触发事件ID对应的事件。
 +
注意:使用时需要在结果中添加一行[%result_code%][>]99:EVENTPOJO_EVENT*
 +
在触发器表中触发事件ID支持增加前缀“SUB_EVENT.”来标记该事件为一个子事件。
  
可以使用[ADDON_SELECT]来标记需要将符合条件的SELECT插入的位置;
 
 
|-
 
|-
 
|CMD_SELECT
 
|CMD_SELECT
第68行: 第413行:
 
格式:CONFIRM*确认文字内容
 
格式:CONFIRM*确认文字内容
 
|-
 
|-
|
+
|TOAST
|
+
|'''屏幕短消息提示'''
|}
+
用途:在屏幕中弹出一段文字,隔一小段时间自动消失
  
#
+
格式:TOAST*弹出信息内容
#系统选择框:
+
|-
#Toast信息:TOAST*弹出信息内容
+
|BB
 +
|'''角色头像提示对话框'''
 +
用途:在屏幕指定UI区域弹出一个有角色头像的对话框,不会打扰当前的操作且不需要进行操作,对话结束后自动消失
  
#BB对话框:BB*角色ID#对话内容#等待额外延时(以秒为单位,按照文字长度自动停留时间再加上此项)
+
格式:BB*角色ID#对话内容#等待额外延时(以秒为单位,按照文字长度自动停留时间再加上此项)
 +
|-
 +
|GAME_MSG
 +
|'''游戏内消息通知'''
 +
用途:在UI中的消息框中显示一段文字消息,并且可以再消息记录中查阅
  
#游戏消息提示:GAME_MSG*消息内容#消息类型(0:普通 1:警告 2:系统)
+
格式:GAME_MSG*消息内容#消息类型(0:普通 1:警告 2:系统)
 +
|-
 +
|INPUT
 +
|'''文字输入框'''
 +
用途:弹出一个文字输入框,并将输入结果保存在可查询变量中([%input_str%])
  
#输入框:INPUT*提示文字#Len限制字数#默认文字
+
格式:INPUT*提示文字#Len限制字数#默认文字
 +
|-
 +
|DELAY
 +
|'''延时等待'''
  
#延时等待:DELAY*等待时间(秒)
+
用途:延时等待一小段时间(以真实时间秒数为单位,期间不能进行任何操作)
  
#设置天气:SET_WEATHER*天气效果命令
+
格式:DELAY*等待时间(秒)
 +
|-
 +
|SCREEN
 +
|'''全屏字幕'''
 +
用途:全屏显示一个屏幕字幕(默认背景为黑色,可设置背景透明度)
  
天气效果命令格式: 天气效果ID1,强度|天气效果ID2,强度|...|天气效果ID N,强度
+
格式:SCREEN*字幕显示文字(支持“\n”表示换行)#字幕配全屏图资源名称(空为不配图)#背景透明度(可选,默认为1)
 +
|-
 +
|BLACK_SCREEN
 +
|'''屏幕黑幕'''
 +
用途:给屏幕UI层覆盖一层黑色的幕布,仅可在其上显示全屏字幕等UI对象
  
如: 雪,60|雾,20
+
格式:BLACK_SCREEN*是否开启(0:关闭 1:开启)
 +
|-
 +
|SHAKE_SCREEN
 +
|'''屏幕晃动'''
 +
用途:执行一个屏幕晃动效果
  
强度值范围0~100,当为0时表示关闭该效果
+
格式:SHAKE_SCREEN*时间(秒)#烈度 (如:SHAKE_SCREEN*0.3#3)
 +
|-
 +
|SET_WEATHER
 +
|'''设置当前游戏天气'''
 +
用途:设置并覆盖当前的游戏天气效果
  
天气效果ID见6.9章
+
格式:SET_WEATHER*天气效果命令
  
#执行指定战斗:BATTLE*战斗ID (当不指定战斗ID或为"ENCOUNTER"则开启当前遭遇战)
+
备注:
 +
天气效果命令格式: 天气效果ID1,强度|天气效果ID2,强度|...|天气效果ID N,强度
 +
如: 雪,60|雾,20
 +
强度值范围0~100,当为0时表示关闭该效果
 +
天气效果ID见 [[通用剧情事件指令说明#天气效果信息格式|天气效果信息格式]]
 +
|-
 +
|ADD_GAME_HARD_LEVEL
 +
|'''增加游戏难度等级'''
 +
用途:增加游戏的难度等级,只能在传承指令中使用,在游戏内使用有部分效果无法生效(如角色初始等级提升)游戏难度等级可用[%game_hard_level%]查询
  
#改变当前BGM:CHANGE_BGM*目标BGM的AudioID(如果需要定义中文名,需要加前缀@,并在音效表中定义中文名对应的Wwise Event Key,类型必须是BGM,为空时表示切换回当前地图默认的BGM,当该ID为保留字段”MUTE”时,表示当前不播放BGM)#有效期(0:切换场景时无效 1:始终有效,哪怕保存游戏再进来,除非再次调用CHANGE_BGM指令指定一个空的AudioID)
+
难度等级每增加1级,
 +
兵种初始等级、等级上限、转职需要等级均+5
 +
英雄等级上限+5,初始等级+2
 +
装备的核心词条(武器默认为攻击力、魔法攻击力,防具默认为防御力、血量,饰品默认为生命恢复、气力恢复)数值增加10%
 +
装备的随机词条数值增长10%
  
#播放一个音效:PLAY_SOUND*音效ID#延迟时间(默认0秒)
+
格式:ADD_GAME_HARD_LEVEL*增加难度等级
 +
|-
 +
|SET_ROLE_LEVEL_EXTEND
 +
|'''设置角色等级上限扩展'''
 +
用途:设置角色等级上限扩展,扩展等级上限可使用[%role_level_extend%]查询
  
#播放一个角色的语音:PLAY_ROLE_VOICE*角色ID,该处关联角色tags中“Voice”一栏设定。
+
角色等级上限 = 20 + 初始设定表上限 + 角色等级上限扩展
  
#开始一个副本战斗:DUNGEON*副本ID
+
格式:SET_ROLE_LEVEL_EXTEND*扩展等级
 +
|-
 +
|SET_CARD_LEVEL_EXTEND
 +
|'''设置兵种等级上限扩展'''
 +
用途:设置兵种等级上限扩展,扩展等级上限可使用[%card_level_extend%]查询
  
#整数输入框:NUMSEL*输入框显示文字#最小值#最大值#默认值#单价#单价计算显示信息(当单价为0时不显示单价信息,否则需要按照"每个单位{0}银两,共需{1}银两"这样的格式进行指定)
+
兵种等级上限 = 20 + 兵种等级上限扩展
  
#跳转至事件:EVENT*剧情事件ID#子命令index(从0开始)
+
格式:SET_CARD_LEVEL_EXTEND*扩展等级
 +
|-
 +
|SET_ROLE_LEVEL_START_EXTEND
 +
|'''设置角色额外初始等级'''
 +
用途:设置角色额外初始等级,只在传承指令中生效(游戏开始后角色已经生成)
  
#跳转到子事件:SUB_EVENT*剧情事件ID
+
格式:SET_ROLE_LEVEL_START_EXTEND*额外初始等级
 +
|-
 +
|SET_CARD_LEVEL_START_EXTEND
 +
|'''设置兵种额外初始等级'''
 +
用途:设置兵种额外初始等级,只在传承指令中生效(游戏开始后角色已经生成)
  
#子事件返回:SUB_EVENT_RETURN。将返回上一个跳转点,从index为0开始执行
+
格式:SET_CARD_LEVEL_START_EXTEND*额外初始等级
 +
|-
 +
|BATTLE
 +
|'''执行战斗'''
 +
用途:执行一个定义在特定战斗表或者当前遭遇战的战斗
  
#变更金钱:CHANGE_MONEY*金钱变更数量
+
格式:BATTLE*战斗ID (当不指定战斗ID或为"ENCOUNTER"则开启当前遭遇战)#指定BGM(可选,如存在指定战斗的BGM)
 +
|-
 +
|BATTLE_WITH
 +
|'''与指定单位目标进行战斗'''
 +
用途:与指定的单位目标开始一场自定义战斗
  
#指定角色变更金钱:ROLE_CHANGE_MONEY*英雄ID#金钱变更数量
+
格式:BATTLE_WITH*对方角色信息(可选)#对方兵牌信息(可选)#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)#战斗参数(可选,对应特定战斗表中的“限制条件_Limitations”字段)#暂停沙盒演算(0否,1是,默认0)
 +
|-
 +
|BATTLE_WITH_TAGROLE
 +
|'''与目标角色进行战斗'''
  
#获得道具:GETITEMS*道具获取命令 (如GETITEMS*商会茶叶,3|面包,1)
+
用途:立即与当前的目标角色开始一场特定战斗
  
#获得道具:AI_CAMP_GETITEMS*道具获取命令。与上语句的唯一不同之处在于,上述语句仅玩家可以触发,该语句AI势力也可以触发,例如项目执行效果等。
+
格式:BATTLE_WITH_TAGROLE*战斗ID(战斗ID只是用来触发剧情事件)#指定BGM(可选,如存在指定战斗的BGM)
 +
|-
 +
|BATTLE_OBSERVE
 +
|'''使用自定义战斗数据进行观战'''
 +
用途:使用自定义战斗数据开启一场战斗,并进行观战
  
#转换道具:TRANSFER_ITEMS*原道具ID#新道具ID#原数额#新数额#转化次数。比如:小麦#小麦粉#1#1#10,表示将小麦1:1转化为小麦粉,转化10次。如果任何一次转化过程中原道具数量不足,则停止转换。
+
格式:BATTLE_OBSERVE*A方角色信息#A方兵牌信息#B方角色信息#B方兵牌信息#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)#战斗参数(可选,对应特定战斗表中的“限制条件_Limitations”字段)#暂停沙盒演算(0否,1是,默认0)
 +
|-
 +
|CHANGE_BGM
 +
|'''更改当前游戏的背景音乐'''
 +
用途:根据剧情需要更改当前游戏播放的背景音乐
  
#转换道具:TRANSFER_ITEMS_BY_PRESENT_TAG*原道具的一个present tag#原道具最低等级#原道具最高等级#新道具ID#原数额#新数额#转化次数。
+
格式:CHANGE_BGM*参数1#参数2
  
#获得随机道具:GET_RND_ITEM*道具获取命令(GET_RND_ITEMS*商会茶叶,3|面包,1),在N个道具之间随机选择一个
+
*参数1:目标BGM的AudioID(如果需要定义中文名,需要加前缀@,并在音效表中定义中文名对应的音效文件,类型必须是BGM,为空时表示切换回当前地图默认的BGM,当该ID为保留字段”MUTE”时,表示当前不播放BGM)
 +
*参数2:有效期类型(0:切换场景时无效 1:始终有效,哪怕保存游戏再进来,除非再次调用CHANGE_BGM指令指定一个空的AudioID)
 +
|-
 +
|PLAY_SOUND
 +
|'''播放游戏音效'''
 +
用途:播放一段游戏音效
  
#移除道具:REMOVE_ITEMS*道具列表命令 (如REMOVE_ITEMS*商会茶叶,3|面包,1)
+
格式:PLAY_SOUND*音效ID#延迟播放时间(默认0秒)
 +
|-
 +
|PLAY_ROLE_VOICE
 +
|'''播放角色语音'''
 +
用途:播放定义在角色tags中"Voice"项中的语音音频文件
  
#移除符合礼物要求的一个特定道具:REMOVE_PRESENT*礼物描述字符串
+
格式:PLAY_ROLE_VOICE*角色ID,该处关联角色tags中“Voice”一栏设定。
 +
|-
 +
|DUNGEON
 +
|```开始一场地城战斗```
 +
用途:开始一场自定义的地城战斗
  
礼物描述字符串格式参加任务列表中Tag栏中“Like”这个tag的格式
+
格式:DUNGEON*地城ID
 +
|-
 +
|NUMSEL
 +
|'''数值输入框'''
 +
用途:弹出一个文字输入框,并将输入结果保存在可查询变量中([%result_code%])
  
#打开道具选择器:ITEMS_SELECTOR*选择框标题#数量限制(小于0为不限制)#筛选条件表达式
+
格式:NUMSEL*输入框显示文字#最小值#最大值#默认值#单价#单价计算显示信息(当单价为0时不显示单价信息,否则需要按照"每个单位{0}银两,共需{1}银两"这样的格式进行指定)
 +
|-
 +
|CHANGE_MONEY
 +
|'''更改主角所持的金钱数量'''
 +
用途:按照变更值改变主角所持金钱数,可为负数代表减少
  
#获得秘宝:TREASURE*(仅在首次攻占城市时触发,不需要任何参数)
+
格式:CHANGE_MONEY*金钱变更数量
 +
|-
 +
|ROLE_CHANGE_MONEY
 +
|'''更改指定英雄所持的金钱数量'''
 +
用途:按照变更值改变指定角色所持金钱数,可为负数代表减少
  
#进行一次Loot判断:LOOT*Loot列表 (信息格式见6.11节)
+
格式:ROLE_CHANGE_MONEY*英雄ID#金钱变更数量
 +
|-
 +
|GETITEMS
 +
|'''主角获得道具或资源'''
 +
用途:主角直接获得指定的道具列表(注意:游戏中的金钱、经验等资源都可以通过此方法来获得,只要传入正确的映射ID即可)
  
#主角获得经验:GAINEXP*获得的经验值
+
格式:GETITEMS*道具列表信息(如GETITEMS*商会茶叶,3|面包,1)
 +
|-
 +
|SILENCE_GETITEMS
 +
|'''主角获得道具或资源'''
 +
用途:与GETITEMS作用相同,但不会出现获得提示。
  
#英雄获得经验:HERO_GAINEXP*英雄ID#经验值。如果相应的英雄不存在/不在己方势力,则给主角加相应经验(限于现在的主角实现方式,暂时如此,以后要改)。
+
格式:SILENCE_GETITEMS*道具列表信息(如GETITEMS*商会茶叶,3|面包,1)
 +
|-
 +
|GETEQUIPS
 +
|'''获取装备道具并立即装备'''
 +
用途:为指定角色获取装备道具并立即装备,当目标为队伍中的角色并且该角色无法装备此道具则将其加入背包中。(当不指定目标时默认为主角)
  
#主角队伍获得经验:TEAM_GAINEXP*获得的经验值(每张卡牌均有等量经验)
+
格式:GETEQUIPS*装备道具表(装备ID1|装备ID2|...)#目标角色ID(可选,默认为主角)
 +
|-
 +
|GETEQUIPS_FORCE
 +
|'''获取装备道具并立即装备(无视所有装备条件)'''
 +
用途:同GETEQUIPS,但是会无视装备的装备条件
  
#指定某个角色增加固定经验:TEST_ADD_ROLE_EXP*英雄ID#经验
+
格式:GETEQUIPS_FORCE*装备道具表(装备ID1|装备ID2|...)#目标角色ID(可选,默认为主角)
 +
|-
 +
|AI_CAMP_GETITEMS
 +
|'''全势力获得道具或资源'''
 +
用途:同GETITEMS指令,但是生效的主体从主角改为所有调用当前指令的势力实体
  
#指定某个角色等级为固定值(略过加点):CHANGE_ROLE_LV*英雄ID#等级
+
格式:AI_CAMP_GETITEMS*道具列表信息
 +
|-
 +
|TRANSFER_ITEMS
 +
|'''转换道具'''
 +
用途:按照比例将现有道具表中的指定道具转换为新的道具
  
#主角势力驻守某地的所有部队升一级:PLAYER_GUARDS_LEVELUP*地点ID
+
格式:TRANSFER_ITEMS*原道具ID#新道具ID#原数额#新数额#转化次数
  
#主角队伍所有部队升一级:PLAYER_TEAM_LEVELUP*
+
例如:TRANSFER_ITEMS*小麦#小麦粉#1#1#10,表示将小麦1:1转化为小麦粉,转化10次。如果任何一次转化过程中原道具数量不足,则停止转换。
 +
|-
 +
|GET_RND_ITEM
 +
|'''随机抽取一组道具'''
 +
用途:在几组道具之中随机选中并获取一组道具
  
#队伍每个单位都获得经验:EACH_GAINEXP*每人的经验
+
格式:GET_RND_ITEM*对象道具列表(如GET_RND_ITEMS*茶叶,3|面包,1|牛奶,2 表示从此3种道具总随机取一种)
 +
|-
 +
|REMOVE_ITEMS
 +
|'''移除指定道具或资源'''
 +
用途:根据指定的道具数量从主角道具表中移除指定数量的道具
  
#过场字幕:SCREEN*字幕显示文字#字幕配全屏图资源名称(空为不配图)
+
格式:REMOVE_ITEMS*道具列表
 +
|-
 +
|REMOVE_SELECT_ITEMS
 +
|'''移除选中的道具'''
 +
用途:根据ITEMS_SELECTOR指令创建的UI选择道具列表后,从物品栏中移除指定数目的道具
  
#设置黑屏效果:BLACK_SCREEN*是否开启(0:关闭 1:开启)
+
格式:REMOVE_SELECT_ITEMS*最大指定组数(从选中对象中取最前面的指定对象组)#移除数量(可选,默认-1,当小于0或者大于对象堆叠的数量时为移除该组全部,否则对所有选中对象范围移除指定个数)
 +
|-
 +
|REMOVE_PRESENT
 +
|'''移除符合要求的指定礼物道具'''
 +
用途:根据指定的礼物标签移除道具列表中一个礼物道具
  
#屏幕晃动:SHAKE_SCREEN*时间#烈度 (如:SHAKE_SCREEN*0.3#3)
+
格式:REMOVE_PRESENT*礼物筛选描述信息,礼物描述字符串格式参加任务列表中Tag栏中“Like”这个tag的格式
 +
|-
 +
|ITEMS_SELECTOR
 +
|'''打开道具选择对话框'''
 +
用途:弹出一个道具选择对话框,并将选择结果保存在可查询变量中([%last_seled_items%],[%last_seled_item_id%]等)
  
#设置触发器开关:SETTRIGG*触发器ID#状态值(0为开启,1为关闭)
+
格式:ITEMS_SELECTOR*选择框标题#数量限制(小于0为不限制)#筛选条件表达式
 +
|-
 +
|LOOT
 +
|'''执行掉落判定'''
 +
用途:按照列表执行一次掉落检定(LOOT格式见 物品掉落信息格式)
  
#执行触发器检定:TRIGGER*触发器ID
+
格式:LOOT*Loot列表
 +
|-
 +
|TEAM_GAINEXP
 +
|'''主角队伍获取经验值'''
 +
用途:根据均分原则对主角队伍增加一次经验值
  
#设置剧情事件状态:SET_ES*剧情事件ID*状态值(-1未执行过 其他为该事件ResultCode)
+
格式:TEAM_GAINEXP*获得的经验值(每张卡牌均有等量经验)
 +
|-
 +
|TEST_ADD_ROLE_EXP
 +
|'''指定英雄获取经验'''
  
#设置自定义变量:SETINTVAR*变量ID#当前int值
+
用途:对一个指定的角色增加经验值
  
#改变一个自定义变量:CHANGEINTVAR*变量ID#改变值(正负数皆可)#【可选:forceZero】,填写forceZero后,扣负只会扣到零,不会为负数。
+
格式:TEST_ADD_ROLE_EXP*英雄ID#经验
 +
|-
 +
|CHANGE_ROLE_LV
 +
|'''更改角色的等级'''
 +
用途:更改一个指定的角色的等级
  
#设置一个临时ID,不会被存档保存:SET_TEMP_ID*ID,可以被各种指令调用读取
+
格式:CHANGE_ROLE_LV*英雄ID#指定等级
 +
|-
 +
|PLAYER_GUARDS_LEVELUP
 +
|'''地点所有守军英雄升级'''
 +
用途:直接把一个地点下所有的守军等级提升一级
  
#设置自定义string变量:SETSTRVAR*变量ID#string值
+
格式:PLAYER_GUARDS_LEVELUP*地点ID
 +
|-
 +
|PLAYER_TEAM_LEVELUP
 +
|'''主角队伍中所有的英雄升级'''
 +
用途:直接升级主角队伍里所有的英雄
  
#设置自定义的待读取游戏时间点:SETGAMETIMETAG*时间点ID,之后可以从[%tag_gametime_elapse%]读取该时间点ID的已流逝时间。【注意:该指令仅用于在一系列story中进行临时变量传递,该tag不会在存档中被保存,请勿用于需要持久化数据的场景】
+
格式:PLAYER_TEAM_LEVELUP*
 +
|-
 +
|SETTRIGG
 +
|'''设置触发器开关'''
 +
用途:直接开启或关闭一个触发器
  
#设定自定义游戏时间点:SETGAMETIME*时间点ID
+
格式:SETTRIGG*触发器ID#状态值(0为开启,1为关闭)
 +
|-
 +
|TRIGGER
 +
|'''执行触发器'''
 +
用途:直接执行一个指定的触发器
  
#设定自定义现实时间点:SETREALTIME*时间点ID
+
格式:TRIGGER*触发器ID
 +
|-
 +
|CHECK_TRIGGER
 +
|'''触发器检测'''
 +
用途:按类型触发触发器,并执行对应事件
  
#设置一个自定义CD时间:SET_CUSTOM_CD*自定义ID#CD时间(≤0为关闭此CD,>0时设置指定时间,单位:天)
+
格式:CHECK_TRIGGER*触发器类型#触发对象类型#触发对象ID#是否触发全部触发器(0否,1是)
  
#获得任务:GET_QUEST*任务ID
+
备注:用于按照触发器条件去检测所有的触发器,并触发对应的触发器事件。
 +
|-
 +
|SET_ES
 +
|'''手动设置剧情事件状态'''
 +
用途:手动设置一个剧情事件的执行状态(正常的事件执行逻辑执行后会以当前事件的ResultCode标记事件状态结果)
  
#增加任务子项计数器:ADD_QS*任务ID#子项index(0开始)#增加数量
+
格式:SET_ES*剧情事件ID*状态值(-1未执行过 其他为该事件ResultCode)
 +
|-
 +
|SETINTVAR
 +
|'''设置自定义整形变量'''
 +
用途:设置一个整形的自定义变量(会被存档所记录),其中一部分变量字段可对游戏中的一些逻辑参数进行关联(已在程序内部定义并关联的整形自定义变量见《自定义变量参数表》),并可通过内置查询参数进行查询([%int_val:ID%])
  
#完成任务:DONE_QUEST*任务ID#是否给奖励(1是)
+
格式:SETINTVAR*变量ID#当前int值
 +
|-
 +
|CHANGEINTVAR
 +
|'''改变自定义整形变量'''
 +
用途:通过改变值来根据当前自定义变量的值进行更改
  
#派发一个固定命令:SEND_FIXED_ORDER*
+
格式:CHANGEINTVAR*变量ID#改变值(正负数皆可)#【可选:forceZero】,填写forceZero后,扣负只会扣到零,不会为负数。
 +
|-
 +
|SET_TEMP_ID
 +
|'''设置临时ID变量'''
 +
用途:设置一个临时的ID,不会被存档保存,通过特殊方式进行访问
  
#判断是否完成命令:CHECK_ORDER*
+
格式:SET_TEMP_ID*ID
 +
|-
 +
|SETSTRVAR
 +
|'''设置自定义字符串变量'''
 +
用途:设置一个字符串变量(会被存档记录),可通过内置查询参数进行查询([%str_val%])
  
#显示立绘图片框:SHOW_IMG*图片资源名称*预设特效0*停留时间(秒)
+
格式:SETSTRVAR*变量ID#string值
 +
|-
 +
|SETGAMETIMETAG
 +
|'''标记自定义关键时间点'''
 +
用途:标记并按ID记录当前的游戏时间点,之后可以通过[%tag_gametime_elapse%]读取该时间点ID的已流逝时间。【注意:该指令仅用于在一系列story中进行临时变量传递,该tag不会在存档中被保存,请勿用于需要持久化数据的场景】
  
#关闭当前图片框:CLOSE_IMG*预设特效0
+
格式:SETGAMETIMETAG*时间点ID
 +
|-
 +
|SETGAMETIME
 +
|'''标记自定义游戏时间点'''
 +
用途:标记并按ID记录当前的游戏时间点(会被存档记录),可通过查询参数查询此时间相关的信息(见[%gametime_elapse%]、[%gametime_elapse_by_day%]等查询说明)
  
#人物加入队伍:JOIN_ROLE*人物1|人物2|...|人物N
+
格式:SETGAMETIME*时间点ID
 +
|-
 +
|SET_CUSTOM_CD
 +
|'''设置一个自定义冷却时间'''
 +
用途:设置一个自定义的冷却时间计时器,可通过[%is_custom_cd:ID%]是否为1来判断此CD当前是否可用
  
#人物离开队伍:QUIT_ROLE*人物ID
+
格式:SET_CUSTOM_CD*自定义ID#CD时间(≤0为关闭此CD,>0时设置指定时间,单位:天)
 +
|-
 +
|GET_QUEST
 +
|'''领取一个任务'''
 +
用途:领取指定的任务
  
#小兵加入队伍:JOIN_UNIT*小兵列表命令(见小兵列表格式)
+
格式:GET_QUEST*任务ID
 +
|-
 +
|ADD_QS
 +
|'''增加任务子项计数器'''
 +
用途:手动增加一个任务子项的计数器
  
#设置地图地点状态:SET_PLACE*地点ID#状态值(0正常 1被摧毁 -1隐藏)
+
格式:ADD_QS*任务ID#子项index(0开始)#增加数量
 +
|-
 +
|SETQUESTIEM
 +
|'''设置任务子项的值'''
  
#设置人物位置:SET_ROLEPOS*人物ID#地点信息(当人物为非玩家对象时,该对象会移动到指定地点中 当人物为玩家对象时,如果地点类型为城市,则传送至指定地点的指定建筑中) 人物位置格式见6.3章
+
用途:设置指定任务子项的值
  
#离开当前地点:LEAVE_PLACE*1
+
格式:SETQUESTIEM*任务ID#子项index#设置的值
 +
|-
 +
|DONE_QUEST
 +
|'''完成一个任务'''
 +
用途:标记并完成指定的任务
  
#将玩家传送到指定地图位置:TELEPORT*大地图位置信息
+
格式:DONE_QUEST*任务ID#是否给奖励(1是)
 +
|-
 +
|SHOW_IMG
 +
|'''显示一个立绘图片框'''
 +
用途:显示一个预制资源图片(已废弃,推荐使用SHOW_CG指令)
  
#TELEPORT_TO_PLACE*地点ID,传送到指定地点
+
格式:SHOW_IMG*图片资源名称*预设特效0*停留时间(秒)
 +
|-
 +
|CLOSE_IMG
 +
|'''关闭当前的立绘图片框'''
 +
用途:关闭当前的立绘图片框
  
#TELEPORT_TO_ROLE*人物ID,传送到指定人物附近
+
格式:CLOSE_IMG*预设特效0
 +
|-
 +
|JOIN_ROLE
 +
|'''强制指定角色加入队伍'''
 +
用途:强制一个指定角色加入队伍,如果当前队伍已满,会显示处置界面
  
#大地图专用指令集:MAP_CMD*指令内容
+
格式:JOIN_ROLE*人物ID
 +
|-
 +
|QUIT_ROLE
 +
|'''强制指定角色离队'''
 +
用途:强制一个指定的角色离开主角队伍
  
以下为指令内容说明
+
格式:QUIT_ROLE*人物ID
 +
|-
 +
|SET_PLACE
 +
|'''更改地点的状态'''
 +
用途:设置一个地点的当前状态
  
a) 移动至指定坐标:MOVETO#对象ID#目标坐标x,y#等待回调(1:否 0:是)
+
格式:SET_PLACE*地点ID#状态值(0正常 1被摧毁 -1隐藏)
 +
|-
 +
|SET_ROLEPOS
 +
|'''设置角色位置'''
 +
用途:强制设置一个角色的位置(人物位置信息格式见 人物位置信息说明 )
  
b) 追逐指定目标:CHASE#对象ID#目标ID#等待回调(1:否 0:是)
+
格式:SET_ROLEPOS*人物ID#位置信息
 +
|-
 +
|LEAVE_PLACE
 +
|【暂不可用】
 +
|-
 +
|TELEPORT
 +
|'''主角传送至指定位置'''
 +
用途:将主角队伍传送至指定世界位置
  
c) 主角进入指定地点:ENTER_PLACE#目标地点ID#进入方式(0普通 1潜入)#是否屏蔽enter_place事件(0否 1是)
+
格式:TELEPORT*世界位置信息
 +
|-
 +
|TELEPORT_TO_PLACE
 +
|'''主角传送至指定地点'''
 +
用途:将主角队伍传送至指定地点的位置
  
d) 显示一个战斗标记:SHOW_BATTLE_MARK#目标坐标x,y
+
格式:TELEPORT_TO_PLACE*地点ID
 +
|-
 +
|TELEPORT_TO_ROLE
 +
|'''主角传送至指定目标角色附近'''
 +
用途:将主角队伍传送至指定角色所在的位置(只有目标角色位于队伍或者地点中时方可生效)
  
e) 隐藏当前战斗标记:HIDE_BATTLE_MARK#1
+
格式:TELEPORT_TO_ROLE*人物ID
 +
|-
 +
|MAP_CMD
 +
|'''沙盒地图单位控制专用指令集'''
 +
用途:用于在沙盒地图上控制各种单位进行指定命令
  
#回复主角队伍卡牌耐久:RESTORE*参数(<=0:回复队伍所有耐久 >0:仅指定点数的耐久)
+
格式:MAP_CMD*指令内容
  
#快速时间推移:TIME_ELAPSE*游戏时间#时间倍率#框体信息#允许取消(0[默认] 1否)#显示进度条(0[默认]1是)#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#是否跟随主角单位(0否 1是)
+
#移动至指定坐标:MOVETO#对象ID#目标坐标x,y#等待回调(1:否 0:是)
 +
#追逐指定目标:CHASE#对象ID#目标ID#等待回调(1:0:是)
 +
#主角进入指定地点:ENTER_PLACE#目标地点ID#进入方式(0普通 1潜入)#是否屏蔽enter_place事件(0否 1是)#是否移动摄像头到目标地点(0否 1是,默认是,若地点不在当前地图则不会移动镜头)
 +
#主角离开当前地点:LEAVE_PLACE#1
 +
#显示一个战斗标记:SHOW_BATTLE_MARK#目标坐标x,y
 +
#隐藏当前战斗标记:HIDE_BATTLE_MARK#1
 +
|-
 +
|RESTORE
 +
|'''回复主角队伍卡牌耐久'''
 +
用途:用于回复主角队伍所有卡牌的耐久度
  
#等待并执行一个脚本事件:WAIT_EXEC*游戏时间#时间倍率#框体信息#允许取消(0[默认] 是 1否)#时间到达时执行的事件ID#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#是否跟随主角单位(0否 1是)
+
格式:RESTORE*参数(<=0:回复队伍所有耐久 >0:仅指定点数的耐久)
 +
|-
 +
|TIME_ELAPSE
 +
|'''快速时间推进'''
 +
用途:使用该指令可快速的推进游戏时间,期间会显示一个时间进度条
  
#取消当前等待中的脚本事件:CANCEL_WAIT_EXEC*1
+
格式:TIME_ELAPSE*游戏时间#时间倍率#框体信息#允许取消(0[默认] 是 1否)#显示进度条(0[默认]否 1是)#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#UI是否跟随主角单位(0否 1是)
 +
|-
 +
|WAIT_EXEC
 +
|'''等待并执行一个脚本事件'''
 +
用途:显示一个计时器,并等待指定的游戏时间,当时间到达时,会执行指定的脚本事件
  
#打开攻城集结界面:OPENSEIGE*界面模式 0:攻城 1:守城
+
格式:WAIT_EXEC*游戏时间#时间倍率#框体信息#允许取消(0[默认] 是 1否)#时间到达时执行的事件ID#操作显示图标(Assets\BuildSource\Icons下的图标文件名)#是否跟随主角单位(0否 1是)
 +
|-
 +
|OPENSEIGE
 +
|'''打开围城处置界面'''
 +
用途:显示一个围城处置界面,根据预设来操作增援部队 (需配合适当的指令触发环境,如:进城触发器)
  
#执行攻打当前地点:OCCUPY*攻打方式 0:占领 1:掠夺
+
格式:OPENSEIGE*界面模式( 0:攻城 1:守城)#目标地点ID(可选,默认为当前环境变量目标地点)
 +
|-
 +
|OCCUPY
 +
|'''执行攻城占领'''
 +
用途:直接根据当前环境执行攻城占领判定 (需配合适当的指令触发环境,如:进城触发器)
  
#加入战团:JOIN_WARBAND*战团ID#加入目标(0:左 1:右 不指定或其他值按照优先友方进行加入)
+
格式:OCCUPY*0
 +
|-
 +
|JOIN_WARBAND
 +
|'''加入战团'''
 +
用途:加入一个已经创建的战团(战团ID一般通过[$tagwb:id$]来取得当前遭遇到的战团信息)
  
#更改角色阵营:CHANGE_CAMP*阵营ID#目标角色ID#招募者ID
+
格式:JOIN_WARBAND*战团ID
 +
|-
 +
|CHANGE_CAMP
 +
|'''改变角色阵营'''
 +
用途:直接改变一个目标角色的阵营
  
#创建玩家自建阵营:CREATE_OWN_CAMP*阵营名称
+
格式:CHANGE_CAMP*阵营ID#目标角色ID#招募者ID(如果指定此字段为主角则直接进入主角队伍)
 +
|-
 +
|CREATE_OWN_CAMP
 +
|'''创建主角自己的阵营势力'''
 +
用途:创建并激活主角自己的势力。主角自己的势力势力拥有一个默认且固定的势力ID:自建势力 ,此势力游戏一开始就存在,只是出于非激活状态,调用此指令后主角自建势力将激活并处于可用状态,同时主角及其下属角色都将改变至此势力中
  
#改变阵营活跃状态:SET_CAMP_ACTIVE*阵营ID#状态值(0不活跃 1活跃)
+
格式:CREATE_OWN_CAMP*自建阵营势力名称
 +
|-
 +
|SET_CAMP_ACTIVE
 +
|'''改变阵营活跃状态'''
 +
用途:改变势力的活跃状态。当势力处于非活跃状态时,不会进行各种决策或者势力行为
  
#更改阵营关系: SET_CAMP_RL*阵营A#阵营B#关系状态(-1:不改变状态 0:中立 1: 敌对 2:友善)#友好度改变值#友好值目标值(如果存在该字段)
+
格式:SET_CAMP_ACTIVE*阵营ID#状态值(0不活跃 1活跃)
 +
|-
 +
|SET_CAMP_NAME
 +
|'''设置阵营的自定义名称'''
 +
用途:设置阵营的自定义名称,当设置名称为空时,阵营恢复默认名称
  
#变更主角与阵营的声望(贡献值):CHG_CAMP_REP*目标阵营ID#更改数值#目标值(当不为空时生效),阵营ID为空时表示当前所属阵营
+
格式:SET_CAMP_NAME*阵营ID#阵营名称
  
#变更主角与地点的声望(友好值):CHG_PLACE_REP*地点ID#更改数值#目标值(当不为空时生效)
+
NPC叛乱部落的部落ID为:"camp_" + 角色ID
 +
|-
 +
|SET_CAMP_RL
 +
|'''改变阵营关系'''
 +
用途:改变阵营势力之间的外交关系状态或友好值
  
#改变主角的全局声望值:FAME*更改数值
+
格式:SET_CAMP_RL*阵营A#阵营B#关系状态(-1:不改变状态 0:中立 1: 敌对 2:友善)#友好度改变值#友好值目标值(如果存在该字段)
 +
|-
 +
|SET_CAMP_WEIGHT
 +
|'''设置阵营倾向'''
 +
用途:为指定的阵营设置阵营倾向
  
#更改角色全局声望值:CHANGE_FAME*目标人物ID#更改数值
+
格式:SET_CAMP_WEIGHT*阵营ID#倾向类型#倾向数值(1-100)
  
#变更主角与人物的友善值:CHG_PERSON_FV*人物ID#更改数值#目标值(当不为空时生效)
+
可设置的倾向类型:
 +
* develop : 发展倾向,影响建筑建设
 +
* recruit : 募兵倾向,影响兵力招募
 +
* invasion : 侵略倾向
 +
* enlarge : 扩展倾向
 +
|-
 +
|CHG_CAMP_REP
 +
|'''改变主角对阵营的声望值(贡献值)'''
 +
用途:改变主角与阵营的声望值(贡献值)
  
#改变人物活跃状态:SET_ROLE_ACTIVE*人物ID#状态值(-1不活跃 0活跃)
+
格式:CHG_CAMP_REP*目标阵营ID#更改数值#目标值(当不为空时生效),阵营ID为空时表示当前所属阵营
 +
|-
 +
|CHG_PLACE_REP
 +
|'''改变主角对地点的声望值(友好值)'''
 +
用途:改变主角对地点的声望值(友好值)
  
#变更目标人物善恶值:CHG_GOODEVIL*人物ID#更改数值#目标值(当不为空时生效)
+
格式:CHG_PLACE_REP*地点ID#更改数值#目标值(当不为空时生效)
 +
|-
 +
|FAME
 +
|'''修改主角全局声望值'''
 +
用途:修改主角当前的全局声望值
  
#变更一个势力所有据点的繁荣度(百分比):CHG_PROSP_BY_CAMP*势力ID#百分比(>-100)
+
格式:FAME*改变值
 +
|-
 +
|CHANGE_FAME
 +
|'''修改指定角色的全局声望值'''
 +
用途:修改一个指定角色当前的全局声望值
  
#变更地点的繁荣度:CHG_PLACE_PROSPERITY*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值)
+
格式:CHANGE_FAME*目标人物ID#更改数值
 +
|-
 +
|CHG_PERSON_FV
 +
|'''改变主角与游戏角色的好感度'''
 +
用途:修改主角与指定游戏角色的友善度
  
#百分比变更地点的繁荣度:CHG_PLACE_PROSPERITY_BY_PCT*地点ID#更改数值百分比(>-100)
+
格式:CHG_PERSON_FV*目标人物ID#更改数值#目标值(当不为空时生效)
 +
|-
 +
|SET_ROLE_ACTIVE
 +
|'''改变角色活跃状态'''
 +
用途:改变一个非主角角色的活跃状态。当角色处于非活跃状态时,不会自动刷新在在野酒馆里,也不会进行迁移等AI操作
  
#变更地点的城防值:CHG_PLACE_DEF*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值)
+
格式:SET_ROLE_ACTIVE*人物ID#状态值(-1不活跃 0活跃)
 +
|-
 +
|CHG_PROSP_BY_CAMP
 +
|'''改变势力下所有据点的繁荣度'''
 +
用途:按照百分比改变一个势力下所有据点的繁荣度
  
#变更地点的城防值:CHG_PLACE_DEF_BY_PCT*地点ID#更改百分比
+
格式:CHG_PROSP_BY_CAMP*势力ID#百分比(>-100)
 +
|-
 +
|CHG_PLACE_PROSPERITY
 +
|'''改变地点的繁荣度'''
 +
用途:按照固定数值改变一个地点的繁荣度
  
#变更地点的治安值:CHG_PLACE_SECURITY*地点ID#更改数值#目标值(0-100)
+
格式:CHG_PLACE_PROSPERITY*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值)
 +
|-
 +
|CHG_PLACE_PROSPERITY_BY_PCT
 +
|'''按百分比改变地点的繁荣度'''
 +
用途:按照百分比改变一个地点的繁荣度
  
#变更地点的箭塔数量:CHG_PLACE_TOWERS*地点ID#更改数值#目标值(更改后的数量最大不会超过当地最大数量)
+
格式:CHG_PLACE_PROSPERITY_BY_PCT*地点ID#更改数值百分比(>-100)
 +
|-
 +
|CHG_PLACE_DEF
 +
|'''改变地点的防御度'''
 +
用途:按照固定数值改变一个地点的防御度
  
#变更地点的用户自定义字段:CHG_PLACE_CUSTOM_INT*地点ID#字段KEY#更改数值#目标值
+
格式:CHG_PLACE_DEF*地点ID#更改数值#目标值(当不为空时生效 不能超过当地最大值)
 +
|-
 +
|CHG_PLACE_DEF_BY_PCT
 +
|'''按百分比改变地点的防御度'''
 +
用途:按照百分比改变一个地点的防御度
  
#地点增加一个自定义设施:PLACE_ADD_BUILDING*地点ID#设施ID(目标地点已存在该设施则无效)
+
格式:CHG_PLACE_DEF_BY_PCT*地点ID#更改百分比
 +
|-
 +
|CHG_PLACE_SECURITY
 +
|'''改变地点的治安值'''
 +
用途:按照固定数值改变一个地点的治安值
  
#地点移除一个自定义设施:PLACE_REMOVE_BUILDING*地点ID#设施ID
+
格式:CHG_PLACE_SECURITY*地点ID#更改数值#目标值(0-100)
 +
|-
 +
|PLACE_CUSTOM_INT
 +
|'''指定地点的自定义字段值'''
 +
用途:指定地点的指定自定义整形字段值
  
#地点增加/替换一个自定义标记:PLACE_CUSTOM_INT*地点ID#标记ID#整型标记值
+
格式:PLACE_CUSTOM_INT*地点ID#标记ID#整型标记值
 +
|-
 +
|CHG_PLACE_CUSTOM_INT
 +
|'''改变地点的自定义字段值'''
 +
用途:改变地点的指定自定义整形字段值
  
#创建一个商队并出发:CREATE_CARAVAN*出发城市ID#到达城市ID#玩家保护(1为玩家保护,0不是)#
+
格式:CHG_PLACE_CUSTOM_INT*地点ID#字段KEY#更改数值#目标值
 +
|-
 +
|PLACE_ADD_BUILDING
 +
|'''增加地点的自定义设施'''
 +
用途:给一个地点增加一个自定义设施
  
#强制创建队伍并下达指令:CREATE_TEAM*地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID#等级,数目|卡牌ID2#等级2,数目2|.......)#指令方式(见说明)#指令参数
+
格式:PLACE_ADD_BUILDING*地点ID#设施ID(目标地点已存在该设施则无效)
 +
|-
 +
|PLACE_REMOVE_BUILDING
 +
|'''移除地点的指定自定义设施'''
 +
用途:移除地点的指定自定义设施
  
指令方式分为以下几种:
+
格式:PLACE_REMOVE_BUILDING*地点ID#设施ID
 +
|-
 +
|CREATE_CARAVAN
 +
|'''创建商队'''
 +
用途:指定一个地点创建出一个指定的商队
  
0:自定义指令:当自定义指令时参数为队伍指令内容(格式如:指令类型1,参数1;指令类型2,参数2;...;指令类型N,参数N,指令格式见6.7节)
+
格式:CREATE_CARAVAN*出发城市ID#到达城市ID#TAG(用来标记的队伍TAG)
 +
|-
 +
|CREATE_TEAM
 +
|'''创建队伍'''
 +
用途:创建一个队伍并使其根据指定指令进行行动
  
1:预制指令入侵城市:参数为目标城市的ID,入侵方式(0占领地点 1掠夺)
+
格式:CREATE_TEAM*地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID#等级,数目|卡牌ID2#等级2,数目2|.......)#指令方式(见说明)#指令参数#队伍TAG标签(用来查找特定的队伍)
  
2:预制指令入侵势力:参数为目标势力的ID,目标优先方式(0距离优先 1城防值优先),入侵方式(同上)
+
目前指令方式支持以下几种:
  
#解散队伍:DISMISS_TEAM*地图单位ID
+
*0:自定义指令:当自定义指令时参数为队伍指令内容(格式如:指令类型1,参数1;指令类型2,参数2;...;指令类型N,参数N (指令格式见 队伍预置指令说明)
 +
*1:预制指令入侵城市:参数为目标城市的ID,入侵方式(默认0)
 +
*2:预制指令入侵势力:参数为目标势力的ID,目标优先方式(0距离优先 1城防值优先),入侵方式(默认0)<br />
 +
|-
 +
|DISMISS_TEAM
 +
|'''解散队伍'''
 +
用途:解散一个指定的队伍
  
#更改队伍指令:TEAM_ORDER*地图单位ID#新的队伍指令内容(指令格式见6.7节说明)
+
格式:DISMISS_TEAM*地图单位识别ID
 +
|-
 +
|TEAM_ORDER
 +
|'''更改队伍指令'''
 +
用途:更改队伍当前执行的指令列表
  
#指定地点攻打另一地点:INVASION_PLACE*发兵地点ID#目标地点ID#攻打方式(0占领 1掠夺)  注:发兵地点与目标地点必须分属两个敌对势力且发兵城内有可战斗人员
+
格式:TEAM_ORDER*地图单位识别ID#新的队伍指令内容 (指令格式见 队伍预置指令说明)
 +
|-
 +
|INVASION_PLACE
 +
|'''指定攻打地点'''
 +
用途:指定一个地点开始攻打另外一个地点。发兵地点与目标地点必须分属两个敌对势力且发兵城内有同属于发兵城镇势力的英雄
  
#指定一个势力马上进攻另外一个势力:IVASION_CAMP*进攻方势力ID#目标势力ID#选取目标方式(0距离优先 1城防优先)#入侵方式(0占领地点 1掠夺)#发动据点数量(0:全部发动 >0:发动距离最近的有限个据点)#入侵强度(0:保留有限实力 1:不顾一切(发动所有资源))
+
格式:INVASION_PLACE*发兵地点ID#目标地点ID
 +
|-
 +
|INVASION_CAMP
 +
|'''指定攻打目标势力'''
 +
用途:发动一个势力马上开始进攻另外一个势力。注意:这两个势力必须是敌对或中立状态的两个势力,当发起方因为兵力不足等原因时可能无法发起进攻
  
注意:这两个势力必须是敌对或中立状态的两个势力,当发起方因为兵力不足等原因时可能无法发起进攻
+
格式:IVASION_CAMP*进攻方势力ID#目标势力ID#选取目标方式(0距离优先 1城防优先)#入侵方式(0占领地点 1掠夺)#发动据点数量(0:全部发动 >0:发动距离最近的有限个据点)#入侵强度(0:保留有限实力 1:不顾一切(发动所有资源))
 +
|-
 +
|OPENSTORE
 +
|'''打开交易界面'''
 +
用途:打开与指定商人的交易界面
  
#打开交易界面:OPENSTORE*商人ID(如为空则表示根据地点及当前NPC自动查询)
+
格式:OPENSTORE*商人ID(如为空则表示根据地点及当前NPC自动查询)
 +
|-
 +
|RESET_STORE
 +
|'''刷新商人所持商品表'''
 +
用途:根据配置刷新商人所持的商品表
  
#ADD_LOCAL_PRODUCT:增加本地特产
+
格式:RESET_STORE*商人ID
 +
|-
 +
|ADD_LOCAL_PRODUCT
 +
|'''增加地图特产'''
 +
用途:向指定地图位置投放特产,投放后附近的商人中会刷新特产
  
#TRADE_PERMISSION:设置通商许可,TRADE_PERMISSION*地点ID*是否可以通商,0代表不能通商,1代表可以通商。
+
格式:ADD_LOCAL_PRODUCT*特产ID#地图ID#中心坐标X#中心坐标Y
 +
|-
 +
|TRADE_PERMISSION
 +
|'''设置通商许可'''
 +
用途:设置一个地点的通商许可
  
#强制刷新指定商人商品列表:RESET_STORE*商人ID
+
格式:TRADE_PERMISSION*地点ID*是否可以通商(0代表不能通商,1代表可以通商)
 +
|-
 +
|TROOPS_ALLOC
 +
|'''驻军界面'''
 +
用途:打开一个地点的驻军界面
  
#打开城镇招募界面:OPENRECRUIT*地点ID(如为空则表示当前地点)
+
格式:TROOPS_ALLOC*地点ID(如为空则表示当前地点)
 +
|-
 +
|GETSKILL
 +
|'''学习技能'''
 +
用途:给一个角色增加技能
  
#打开城镇建设界面:OPENCONSTRUCTION*地点ID(如为空则表示当前地点)
+
格式:GETSKILL*人物ID#技能列表(单个技能格式为:“技能ID,等级(可选)”,多个技能以”|”分隔)
 +
|-
 +
|LEARN_SKILL
 +
|'''消耗技能点学习技能'''
 +
用途:选择一个队伍中的角色,尝试使其学习一个技能,如果技能点不足,则无法学习
  
#打开队伍与地点单位交换界面:TROOPS_ALLOC*地点ID(如为空则表示当前地点)
+
格式:LEARN_SKILL*技能ID#所需技能点(可不填,默认为1)
 +
|-
 +
|REMOVESKILL
 +
|'''遗忘技能'''
 +
用途:移除指定角色的技能
  
#打开俘虏单位贩卖界面:TRADE_CAPTIVE*地点ID(如为空则表示当前地点)
+
格式:REMOVESKILL*人物ID#技能ID
 +
|-
 +
|RESET_SP
 +
|'''重置技能点数'''
 +
用途:重置角色技能点数
  
#学习技能:GETSKILL*人物ID#技能列表(单个技能格式为:“技能ID,等级(可选)”,多个技能以”|”分隔)
+
格式:RESET_SP*人物ID
 +
|-
 +
|ADD_UNUSEDSP
 +
|'''改变可用技能点数(选择框)'''
 +
用途:增加一个主角可用的技能点数并进行分配
  
#遗忘技能:REMOVESKILL*人物ID#技能列表(多个技能以”|”分隔)
+
格式:ADD_UNUSEDSP*点数
 +
|-
 +
|ADD_UNUSEDSP_TO
 +
|'''改变可用技能点数'''
 +
用途:直接为指定角色添加技能点
  
#重置已分配的技能点数:RESET_SP*人物ID
+
格式:ADD_UNUSEDSP_TO*点数#人物ID(不填默认为主角)
 +
|-
 +
|SET_SKILLPAGE
 +
|'''点亮或移除主角技能页'''
 +
用途:点亮或者移除角色可用的技能页
  
#打开目标角色的技能配置面板:DISTRIBUTE_SP*人物ID
+
格式:SET_SKILLPAGE*技能页ID表(以”,”分割)#0移除、1点亮、2静默点亮、3完全移除#目标角色ID(可选,默认为主角)
  
#改变可用技能点:ADD_UNUSEDSP*人物ID#点数(为负值时减少)
+
2静默点亮,不会发出提示信息
 +
3完全移除,会移除技能页里所有学习的技能并返还技能点
 +
|-
 +
|SHOW_TEAMINFO
 +
|'''显示当前队伍信息'''
 +
用途:显示当前遭遇的队伍信息
  
#点亮或移除主角技能页:SET_SKILLPAGE*技能页ID表(以”,”分割)#1点亮0移除#目标角色ID(可选,默认为主角)
+
格式:SHOW_TEAMINFO*1
 +
|-
 +
|SET_FLAG
 +
|'''设置完成标记'''
 +
用途:设置一个完成标记,一般用于重大剧情转折标记
  
#增加一个技能的经验:ADD_SKILL_EXP*人物ID#目标技能ID(必须为一个目标角色拥有的技能,并且该技能可升级并未满级)#增加的经验数值
+
格式:SET_FLAG*标记名称#标记值
 +
|-
 +
|UPDATE_MARKS
 +
|'''更新地图上的标记'''
 +
用途:更新地图上的标记
  
#查看人物属性:SHOW_STATU*人物ID
+
格式:UPDATE_MARKS*1
 +
|-
 +
|SET_DUMMY
 +
|'''设置假人或野怪状态'''
  
#查看当前遭遇队伍详情:SHOW_TEAMINFO*1
+
用途:设置地图假人或野怪的状态。当控制野怪时ID为野怪ID
  
#设置一个完成标记:SET_FLAG*标记名称#标记值
+
格式:SET_DUMMY*假人ID#状态(0:显示 -1:隐藏)
 +
|-
 +
|SET_CAMERA
 +
|'''设置沙盒地图的镜头跟随模式'''
 +
用途:用来控制沙盒地图上镜头的跟随模式。
  
#更新地图上的标记:UPDATE_MARKS*1
+
格式:SET_CAMERA*跟随模式#参数
 +
目前支持的镜头跟随模式及参数含义:
 +
0:跟随主角,无参数(默认)
 +
1:跟随指定目标,参数为指定地图目标标识ID
 +
2:指定地图位置,参数为地图坐标(地图ID:x,y)#镜头移动速度
 +
|-
 +
|SET_PLACE_CAMP
 +
|'''设置地点归属阵营'''
  
#设置地图假人或野怪的状态:SET_DUMMY*假人ID#状态(0:显示 -1:隐藏)
+
用途:改变一个地点所归属的阵营势力。
  
#设置大地图镜头参数:SET_CAMERA*跟随模式#参数
+
格式: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
  
0:跟随主角,无参数(默认)
+
格式:TRY_RECRUIT_FREE_ROLE*角色ID
 +
|-
 +
|CHK_RECRUIT_CAPTIVE
 +
|【暂未开放】
 +
|-
 +
|RELEASE_CAP
 +
|【暂未开放】
 +
|-
 +
|SEND_ENVOY
 +
|'''派出外交信使'''
 +
用途:派出一个执行特定外交任务的信使
  
1:跟随指定目标,参数为指定地图目标标识ID
+
格式:SEND_ENVOY*势力ID(为空时表示玩家势力)#外交行为(1:赎回 2:友善 3:宣战 4:同盟 5:破裂 6:停战)#目标ID(当赎回时为目标人物ID,其他为目标势力ID)#附带参数(一般为条件金钱数)#是否即刻到达的信使(1表示不需要等待时间,0表示需要等待时间)
 +
|-
 +
|DIP_DECIDE
 +
|'''执行外交事件判定'''
 +
用途:对当前外交事件进行结果决定。只能用在特定的外交事件触发器环境中
  
2:指定地图位置,参数为地图坐标(地图ID:x,y)#镜头移动速度
+
格式:DIP_DECIDE*结果代码(1同意 0拒绝)
 +
|-
 +
|EXPEL_ROLE
 +
|'''驱逐角色'''
 +
用途:将一个角色驱逐出阵营势力
  
 +
格式:EXPEL_ROLE*势力ID#人物ID
 +
|-
 +
|TRY_REWARD_ROLE
 +
|'''尝试奖赏属下'''
 +
用途:尝试奖赏一个属下
  
#设置地点归属阵营:SET_PLACE_CAMP*目标地点ID#目标阵营ID#是否为攻城侵略模式占据(1为是,0为否)
+
格式:TRY_REWARD_ROLE*人物ID(为空时表示当前对象)
 +
|-
 +
|ADD_GLOBAL_BUFF
 +
|'''增加队伍全局BUFF'''
 +
用途:为当前队伍增加一个全局BUFF
  
#割让一个地图中所有据点:SET_MAP_CAMP*目标地图ID#from阵营ID#to阵营ID#是否为攻城侵略(1为是,0为否)
+
格式:ADD_GLOBAL_BUFF*buffID#持续时间(游戏天数)#层数(默认为1)#最高层数限制(默认为-1,无限制)
 +
|-
 +
|RM_GLOBAL_BUFF
 +
|'''移除队伍全局BUFF'''
 +
用途:为当前队伍移除一个全局BUFF
  
#消耗一个钥匙:CONSUME_KEY*钥匙等级(当拥有开锁技能时不会消耗)
+
格式:RM_GLOBAL_BUFF*buffID
 +
|-
 +
|RM_GLOBAL_BUFF_BYCLASS
 +
|'''按类型移除队伍全局BUFF'''
 +
用途:按照类型为当前队伍移除一个全局BUFF
  
#进行一次收支结算:BALANCE_BUDGET*1
+
格式:RM_GLOBAL_BUFF_BYCLASS*全局BUFF类型
 +
|-
 +
|RM_ALL_GLOBAL_BUFF
 +
|'''移除队伍所有的全局BUFF'''
 +
用途:为当前队伍移除所有全局BUFF
  
#【已过期,请使用TRY_RECRUIT_FREE_ROLE】执行一次在野英雄招募判断:CHK_RECRUIT_FREE_ROLE*人物ID(为空表示当前对象),成功返回1,失败为2,未知失败为0,资源不够为3,CD为4,队伍已满为5
+
格式:RM_ALL_GLOBAL_BUFF*1
 +
|-
 +
|PLAYER_FAILED
 +
|'''游戏失败'''
 +
用途:玩家游戏失败时进行的通用处理
  
#招募在野英雄,TRY_RECRUIT_FREE_ROLE。传入ROLEID,成功返回1、内部错误返回0、队伍已满返回2
+
格式:PLAYER_FAILED*1
 +
|-
 +
|LOSE_INVENTORY
 +
|'''玩家通用财物损失操作'''
 +
用途:对玩家进行一次财物损失操作(只损失货物和金钱)
  
#执行一次俘虏招募判断:CHK_RECRUIT_CAPTIVE*人物ID(为空表示当前对象),成功返回1,失败为2,不满足条件为0,未知失败为0,<s>资源不够为3,</s>CD为4,队伍已满为5
+
格式:LOSE_INVENTORY*比例(比例为整数,代表百分比)
 +
|-
 +
|SET_TAGITEM
 +
|'''变更当前脚本中的对象物品'''
 +
用途:为当前脚本的环境变量设置默认的操作对象物品
  
#释放一个俘虏人物:RELEASE_CAP*人物ID(为空时表示当前对象)
+
格式:SET_TAGITEM*物品信息(参考物品列表信息格式)
 +
|-
 +
|SET_TAGROLE
 +
|'''变更当前脚本中的对象人物'''
 +
用途:为当前脚本的环境变量设置默认的操作对象角色
  
#派出一个执行外交任务的信使:SEND_ENVOY*势力ID(为空时表示玩家势力)#外交行为(1:赎回 2:友善 3:宣战 4:同盟 5:破裂 6:停战)#目标ID(当赎回时为目标人物ID,其他为目标势力ID)#附带参数(一般为条件金钱数)#是否即刻到达的信使(1表示不需要等待时间,0表示需要等待时间)
+
格式:SET_TAGROLE*人物ID
 +
|-
 +
|SET_TAGPLACE
 +
|'''变更当前脚本中的对象地点'''
 +
用途:为当前脚本的环境变量设置默认的操作对象地点
  
#执行当前外交事件结果:DIP_DECIDE*结果代码(1同意 0拒绝)
+
格式:SET_TAGPLACE*地点ID
 +
|-
 +
|SET_TAGCAMP
 +
|'''变更当前脚本中的对象阵营'''
 +
用途:为当前脚本的环境变量设置默认的操作对象阵营
  
#将一个人物驱逐出势力:EXPEL_ROLE*势力ID#人物ID
+
格式:SET_TAGCAMP*阵营ID
 +
|-
 +
|SET_TAG_WANDERNPC
 +
|'''变更当前脚本中的游荡NPC'''
 +
用途:为当前脚本的环境变量设置默认的操作对象游荡NPC,可配合[$tag_wander_npc:INFO:ID$]指令进行查询
  
#尝试奖赏一个手下:TRY_REWARD_ROLE*人物ID(为空时表示当前对象)
+
格式:SET_TAG_WANDERNPC*游荡NPCID
 +
|-
 +
|REFRESH_WANDERNPC
 +
|'''变更当前脚本中的游荡NPC'''
 +
用途:刷新游荡NPC的状态,可能会使游荡NPC重新刷新位置。
  
#为当前队伍获得一个全局BUFF:ADD_GLOBAL_BUFF*buffID#持续时间(游戏天数)#层数(默认为1)#最高层数限制(默认为-1,无限制)
+
格式:REFRESH_WANDERNPC*游荡NPCID(为空则默认为环境中的游荡NPC)#操作方式(0,刷新状态 1,推进1天 2,强制刷新位置)
 +
|-
 +
|SURRENDER
 +
|'''势力投降'''
 +
用途:指定一个势力向另外一个势力投降(所有领地被受降方占领,所有人员根据忠诚度随机选择是否归顺)
  
#为当前队伍移除一个全局BUFF:RM_GLOBAL_BUFF*buffID
+
格式:SURRENDER*投降方势力ID#受降方势力ID
 +
|-
 +
|GEN_RND_PLACE
 +
|'''选定随机地点以供查询'''
 +
用途:生成一个随机地点,并可以用[%last_rnd_place_XX%]系列指令查询
  
#为当前队伍移除指定类型的全局BUFF:RM_GLOBAL_BUFF_BYCLASS*全局BUFF类型
+
格式:GEN_RND_PLACE*所属势力ID(如果所属势力为空,则为玩家势力中的一个地点)
 +
|-
 +
|GEN_RND_ROLE
 +
|'''选定随机人物以供查询'''
 +
用途:在指定范围内选定一个随机人物角色,并可用[%last_rnd_role_XX%]系列指令查询
  
#为当前队伍移除所有全局BUFF:RM_ALL_GLOBAL_BUFF*1
+
格式:GEN_RND_ROLE*所属势力ID(如果所属势力为空,则为玩家势力中的一个地点)
 +
|-
 +
|HERO_UPGRADE
 +
|'''英雄强化'''
 +
用途:为指定的人物角色永久增加某项角色属性
  
#当玩家遭遇战失败时执行的默认操作:PLAYER_FAILED*1
+
格式:HERO_UPGRADE*英雄ID#属性ID#增加值#增加上限(必须指定,可以为-1,即没有上限)
 +
|-
 +
|HERO_SET_STATU
 +
|'''设置角色属性字段'''
 +
用途:为指定的人物角色设置某一项属性字段值
  
#损失货物和金钱:LOSE_INVENTORY*比例(比例为整数,代表百分比)
+
格式:HERO_SET_STATU*角色ID#属性ID#新值(角色ID为空表示主角)
 +
|-
 +
|ADD_CAMP_BUFF
 +
|'''增加阵营BUFF'''
 +
用途:为指定的阵营势力增加一个阵营BUFF
  
#变更当前脚本目标人物:SET_TAGROLE*人物ID
+
格式:ADD_CAMP_BUFF*阵营ID#buffID#持续时间(游戏天数,当该值小于等于0时表示永久生效除非强制移除该BUFF)
 +
|-
 +
|RM_CAMP_BUFF
 +
|'''移除阵营BUFF'''
 +
用途:为指定的阵营势力移除一个阵营BUFF
  
#势力归顺另外一个势力(所有领地被征服者占领,所有人员根据忠诚度随机选择是否归顺):SURRENDER*投降方势力ID#受降方势力ID
+
格式:RM_CAMP_BUFF*阵营ID#buffID
 +
|-
 +
|RM_CAMP_BUFF_BYCLASS
 +
|'''按照类型移除阵营BUFF'''
 +
用途:按照BUFF类型为指定的阵营势力移除一个阵营BUFF
  
#生成一个随机地点,并可以用[%last_rnd_place_XX%]系列指令查询:GEN_RND_PLACE*所属势力ID。如果所属势力为空,则为玩家势力中的一个地点。
+
格式:RM_CAMP_BUFF_BYCLASS*阵营ID#阵营BUFF类型
 +
|-
 +
|RM_ALL_GLOBAL_BUFF
 +
|'''移除所有的阵营BUFF'''
 +
用途:为指定的阵营势力移除所有的阵营BUFF
  
#生成一个随机人物GEN_RND_ROLE ,并可以用[%last_rnd_role_XX%]系列指令查询。语法同上。
+
格式:RM_ALL_GLOBAL_BUFF*阵营ID
 +
|-
 +
|ADD_CAMP_EXTRA_STATU
 +
|'''增加阵营属性字段值'''
 +
用途:增加阵营势力的某一项动态属性字段
  
#英雄强化(永久增加各种属性):HERO_UPGRADE*英雄ID#属性ID#增加值#增加上限(必须指定,可以为-1,即没有上限)。<s>如果相应的英雄不存在/不在己方势力,则给主角加相应属性(限于现在的主角实现方式,暂时如此,以后要改)。</s>
+
格式:ADD_CAMP_EXTRA_STATU*阵营ID#动态属性字段表(见阵营表EXCEL势力初始属性格式)
 +
|-
 +
|RESET_CAMP_EXTRA_STATU
 +
|'''重置阵营属性字段值'''
 +
用途:重置阵营势力的所有动态属性字段值
  
#英雄属性字段设置:HERO_SET_STATU*英雄ID#属性ID#新值,英雄ID为空表示主角
+
格式:RESET_CAMP_EXTRA_STATU*阵营ID
 +
|-
 +
|WEAPON_DURABILITY_DOWN
 +
|'''武器装备耐久度下降'''
 +
用途:降低当前装备的武器装备的耐久度,当耐久度为0时自动损毁。如果武器本身耐久为-1(没有耐久度概念),则该语句什么也不会发生
  
#增加英雄的属性经验(积累变身所需的经验):HERO_ATTR_EXP*英雄ID#属性ID#增加经验值#增加等级上限(必须指定,可以为-1,即没有上限)。如果新的值超过了升级所需经验,则自动升级该属性。<s>如果相应的英雄不存在/不在己方势力,则给主角加相应属性(限于现在的主角实现方式,暂时如此,以后要改)。</s>
+
格式:WEAPON_DURABILITY_DOWN*数值
 +
|-
 +
|ITEM_DURABILITY_DOWN
 +
|'''特定道具耐久度下降'''
 +
用途:降低背包中一把符合tag、等级条件(>=要求等级)的道具耐久度【数值】点,如果符合条件的道具耐久不足,将摧毁这件道具
  
#HERO_ATTR_EXP_WITH_POTENTIAL*英雄ID#属性ID#消耗比例#增加经验值#增加等级上限(必须指定,可以为-1,即没有上限)。如果新的值超过了升级所需经验,则自动升级该属性。
+
格式:ITEM_DURABILITY_DOWN*装备tag筛选#装备等级筛选#数值
 +
|-
 +
|SET_SYNTH_STATE
 +
|'''设置合成配方的状态'''
 +
用途:设置指定合成配方状态
  
消耗潜能来获取一个技能的成长,消耗比例为1点经验需要多少点潜能。如果没有足够潜能则什么也不会发生。
+
格式:SET_SYNTH_STATE*配方ID#新状态(0:未习得 1:已习得)
 +
|-
 +
|OPEN_SYNTH_DLG
 +
|'''开启道具合成界面'''
 +
用途:开启道具合成界面UI
  
#获得一个阵营BUFF:ADD_CAMP_BUFF*阵营ID#buffID#持续时间(游戏天数,当该值小于等于0时表示永久生效除非强制移除该BUFF)
+
格式:OPEN_SYNTH_DLG*是否锁定(0:不锁定主分类 1:锁定显示分类)#默认显示的分类页(可为空默认,以“,”分隔多页,默认显示第一页;当锁定主分类时该字段可显示隐藏的分类)#关闭合成面板后执行的story key(可不填)
 +
|-
 +
|OPEN_CARD_SYNTH_DLG
 +
|'''开启卡牌合成界面'''
 +
用途:开启卡牌合成界面UI
  
#移除一个阵营BUFF:RM_CAMP_BUFF*阵营ID#buffID
+
格式:OPEN_CARD_SYNTH_DLG*1
 +
|-
 +
|PLAY_EFT
 +
|'''播放特效'''
 +
用途:在当前地图上播放一个特效
  
#移除指定类型的阵营BUFF:RM_CAMP_BUFF_BYCLASS*阵营ID#全局BUFF类型
+
格式:PLAY_EFT*特效路径(相对Asset目录,例如:Assets\BuildSource\battle_effects\SkillEffects\psLightingHit1.prefab)#地图坐标#初始旋转角度(可为3方向旋转向量或者一个Y轴的旋转角度)#缩放比例(可指定XYZ3轴上的比例向量或者整体的缩放比例)#持续时间(秒,超过此时间后自动移除)#播放延迟时间(默认为0秒)
 +
|-
 +
|PLAY_MU_EFT
 +
|'''播放大地图单位跟随特效'''
 +
用途:在指定地图单位身上播放一个跟随该单位的特效
  
#移除所有阵营BUFF:RM_ALL_GLOBAL_BUFF*阵营ID
+
格式: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$]中。
  
#增加一个势力的动态属性:ADD_CAMP_EXTRA_STATU*阵营ID#动态属性字段表(见阵营表EXCEL势力初始属性格式)
+
格式:OPEN_MAPAREA_SELECTOR*区域标识ID#显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息
 +
|-
 +
|OPEN_FREEAREA_SELECTOR
 +
|'''开启自由地图位置选择界面'''
 +
用途:效果同上,只不过不再限制可供选择的地图区域。
  
#重置势力的动态属性(归零):RESET_CAMP_EXTRA_STATU*阵营ID
+
格式:OPEN_FREEAREA_SELECTOR*宽(整数)#高(整数)##显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息。
 +
|-
 +
|PLACE_SELECTOR
 +
|'''开启地点选择界面'''
 +
用途:开启一个建议的地点选择界面。选中的结果存在[$tagplace$]里,编号存在[%result_code%]里,如果[%result_code%]为9999则代表玩家取消选择。
  
#ON_PRESENT:处理送礼给英雄的后续逻辑
+
格式:PLACE_SELECTOR*提示内容#选择条件(传入[%tagplace%]作为判断参数)
 +
|-
 +
|SET_LORD
 +
|'''设置城主'''
 +
用途:为指定地点设置一个城主。
  
#ON_PRESENT_PLACE*地点ID:处理送礼给地点的后续逻辑
+
格式:SET_LORD*角色ID#地点ID
 +
|-
 +
|ADD_CUSTOM_CHEST
 +
|'''增加自定义宝箱'''
 +
用途:根据设置信息在大地图上增加一个自定义宝箱。(宝箱的概念可扩展为所有大地图上有价值的可交互目标。如:材料、遗迹、征兵点等等)
  
#FOOD_UP*数值:饱食度上升
+
格式:ADD_CUSTOM_CHEST*宝箱ID#对应的宝箱表中ID#位置信息#初始状态(>0表示可以开的次数,-1表示已经开过了)#默认方向(0-360)
 +
|-
 +
|SET_CHEST
 +
|'''设置宝箱状态'''
 +
用途:设置一个地图上可控宝箱的状态
  
#WATER_UP*数值:饮水度上升
+
格式:SET_CHEST*地图ID#宝箱ID#状态。状态>0表示可开启次数,状态<=0表示已开启
 +
|-
 +
|SET_CURCHEST
 +
|'''设置当前宝箱状态'''
 +
用途:设置当前脚本中的对象宝箱的状态
  
#FOOD_WATER_COST*食物数值#饮水数值:如果有数值,则按照数值消耗,没有数值,则按照默认值消耗
+
格式:SET_CURCHEST*状态(同 SET_CHEST)
 +
|-
 +
|CLOSE_SYSTEM_UI
 +
|'''关闭系统UI'''
 +
用途:关闭当前打开的系统UI
  
#COUNTER_ADD*ID#值#称号类型:将一个值增加到系统计数器的对应ID上,如果ID不存在则直接赋值,如果称号类型不为空,则会检查相应称号是否可以自动提升
+
格式:CLOSE_SYSTEM_UI*
 +
|-
 +
|CLOSE_ITEM_PANEL
 +
|'''关闭当前背包UI'''
 +
用途:关闭当前打开的'''背包'''UI(如果存在的话)
  
#WEAPON_DURABILITY_DOWN*数值:降低当前装备的武器的耐久度,当耐久度为0时自动损毁。如果武器本身耐久为-1(没有耐久度概念),则该语句什么也不会发生
+
格式:CLOSE_ITEM_PANEL*
 +
|-
 +
|ROLES_SELECTOR
 +
|'''打开角色选择器'''
 +
用途:打开一个角色选择器,并将选中的角色存储到[%last_seled_roles%]里。如果只有一个结果,则同时存在[%tagrole%]里
  
#ITEM_DURABILITY_DOWN*装备tag筛选#装备等级筛选#数值:降低背包中一把符合tag、等级条件(>=要求等级)的道具耐久度【数值】点,如果符合条件的道具耐久不足,将摧毁这件道具
+
格式:ROLES_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:全局非模板人物 1:主角队伍中 2:指定人物表范围 3:指定势力范围(参数为势力ID) 4:指定地点城主候选人(参数为地点ID) 5:队伍中的俘虏(参数为队长ID)6:地点中的俘虏(参数为地点ID))#筛选条件表达式#参数(当选择范围为指定人物表时该参数为人物列表信息)
  
#设置合成配方状态:SET_SYNTH_STATE*配方ID#新状态(0:未习得 1:已习得)
+
示例:
 +
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
 +
|'''打听人物选择器'''
  
#开启合成界面:OPEN_SYNTH_DLG*是否锁定(0:不锁定主分类 1:锁定显示分类)#默认显示的分类页(可为空默认,以“,”分隔多页,默认显示第一页;当锁定主分类时该字段可显示隐藏的分类)#关闭合成面板后执行的story key(可不填)
+
用途:被打听人现在暂没参与逻辑运算,弹出人物选项框,结果存在[%arg_str_val1%]里,选择结果[%result_code%]为9999的时候是玩家取消
  
#开启合成卡牌界面:OPEN_CARD_SYNTH_DLG*1
+
格式:ASK_ABOUT_SOMEBODY_SELECTOR#被打听人ID
 +
|-
 +
|CARD_SELECTOR
 +
|'''卡牌选择器'''
 +
用途:弹出当前卡牌列表界面供选择
  
#在当前地图上播放一个特效:PLAY_EFT*特效路径(相对Asset目录,例如:Assets\BuildSource\battle_effects\SkillEffects\psLightingHit1.prefab)#地图坐标#初始旋转角度(可为3方向旋转向量或者一个Y轴的旋转角度)#缩放比例(可指定XYZ3轴上的比例向量或者整体的缩放比例)#持续时间(秒,超过此时间后自动移除)#播放延迟时间(默认为0秒)
+
格式:CARD_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:主角队伍中的卡牌 1:指定单位表范围)#参数(当选择范围为指定单位表时该参数为单位列表信息)#筛选条件表达式(可选)
 +
|-
 +
|ASSEMBLE_ARMY
 +
|'''集结部队'''
 +
用途:集结阵营势力下的部队跟随集结者
  
#播放一个地图单位特效:PLAY_MU_EFT*特效路径(相对Asset目录,例如:Assets\BuildSource\battle_effects\HitEffects\psHealEft1.prefab)#地图单位ID#对象范围(0:仅英雄 1:全体)#初始旋转角度(可为3方向旋转向量或者一个Y轴的旋转角度)#缩放比例(可指定XYZ3轴上的比例向量或者整体的缩放比例)#持续时间(秒,超过此时间后自动移除)
+
格式:ASSEMBLE_ARMY#集结者ID#集结角色ID列表(可为空,“|”分割,可以使用ROLES_SELECTOR的结果[%last_seled_roles%]。如果为空,则是默认选定阵营下所有的角色。)
 +
|-
 +
|RELEASE_ALL_ASSEMBLE_ARMY
 +
|'''解散所有集结部队'''
 +
用途:解散所有当前已进行集结中的部队
  
#OPEN_MAPAREA_SELECTOR*区域标识ID#显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息。result_code返回1标识位置设置成功,为0标识失败。位置信息记录在[$last_selpos$]中。
+
格式:RELEASE_ALL_ASSEMBLE_ARMY#首领角色ID
 +
|-
 +
|SET_ROLE_IN_PROJECT
 +
|'''角色开始执行项目'''
  
#OPEN_FREEAREA_SELECTOR*宽(整数)#高(整数)##显示的模型#排他模式(0:不排他、1:排除自定义宝箱)#提示信息。result_code返回1标识位置设置成功,为0标识失败。位置信息记录在[$last_selpos$]中。
+
用途:使一个角色开始执行指定项目
  
#PLACE_SELECTOR*提示内容#选择条件(传入[%tagplace%]作为判断参数)
+
格式:SET_ROLE_IN_PROJECT*角色ID#项目ID
 +
|-
 +
|SET_ROLE_FINISH_PROJECT
 +
|'''角色结束当前执行的项目'''
 +
用途:强制指定的角色结束当前进行的项目
  
#返回存在[$tagplace$]里,编号存在[%result_code%]里,如果[%result_code%]为9999则代表玩家取消选择。
+
格式:SET_ROLE_FINISH_PROJECT*角色ID1,角色ID2,...
 +
|-
 +
|ROLE_PROJECT_ADMIN
 +
|'''打开个人项目界面'''
 +
用途:打开角色个人项目执行界面
  
#SET_LORD*角色ID#地点ID,设置一个地点的领主
+
格式:ROLE_PROJECT_ADMIN*项目ID#绑定地点(可选,默认当前地点)
 +
|-
 +
|GROUP_PROJECT_ADMIN
 +
|'''打开团体项目界面'''
 +
用途:打开团体项目执行界面
  
#ADD_CUSTOM_CHEST*宝箱ID#对应的宝箱表中ID#位置信息#初始状态(>0表示可以开的次数,-1表示已经开过了,full表示以满次数开)#defDir(??默认填0)
+
格式:GROUP_PROJECT_ADMIN*项目标签#界面标题#项目绑定类型#项目绑定对象参数(可选,默认为当前对象)
 +
目前支持的项目绑定类型有
 +
place:地点建筑建设 对象参数为地点ID,如不指定为当前地点
 +
world:自定义地点建设 对象参数格式为:自选区域控制ID;所属地点(当所属地点为空时表示建设一个非附属地点)
 +
|-
 +
|SET_REVIVE_POS
 +
|'''设置复活集结地点'''
 +
用途:设置新的复活集结地点
  
#SET_CHEST*地图ID#宝箱ID#状态。状态>0表示可开启次数,状态<=0表示已开启
+
格式:SET_REVIVE_POS*大地图位置(地图ID:x,y)
 +
|-
 +
|SET_SILENCE_MODE
 +
|'''设置静默模式'''
 +
用途:开启或关闭消息静默模式
  
#SET_CURCHEST*状态。状态>0表示可开启次数,状态<=0表示已开启。
+
格式:SET_SILENCE_MODE*静默模式(0:不开启 1:不显示TOAST,仅显示消息,获得物品TOAST信息在消息中显示 2:不显示TOAST及消息)
 +
|-
 +
|START_RAID_PLACE
 +
|【已废除】
 +
|-
 +
|ADD_CUSTOM_PLACE
 +
|'''增加自定义地点'''
 +
用途:在大地图上的指定位置增加一个自定义地点
  
#CLOSE_SYSTEM_UI:关闭系统UI主界面
+
格式:ADD_CUSTOM_PLACE*自定义地点ID(全局唯一)#附属于地点(可为空,为空表示非附属地点)#地点信息模板ID#位置信息#默认所属势力
 +
|-
 +
|SET_PLACE_NAME
 +
|'''修改地点名称'''
 +
用途:修改一个指定地点的显示名称
  
#打开人物选择器:ROLES_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:全局非模板人物 1:主角队伍中 2:指定人物表范围)#筛选条件表达式#参数(当选择范围为指定人物表时该参数为人物列表信息)
+
格式:SET_PLACE_NAME*地点ID#自定义名称
 +
|-
 +
|OPEN_PLACE_BUILD_UI
 +
|'''开启地点建筑建设界面'''
 +
用途:开启地点建筑建设界面
  
示例:
+
格式:OPEN_PLACE_BUILD_UI*地点ID#建设成功后执行的剧本(可选)#建设取消后执行的剧本(可选
 +
|-
 +
|ADD_CARD
 +
|'''获得新卡牌'''
 +
用途:加入一张预制的卡牌
  
ROLES_SELECTOR*选择目标阵营中的人物#1#0#[$tagrole:campid$][=][$player:campid$]&[$tagrole:campid$][<>][$null$]#
+
格式:ADD_CARD*卡牌ID#是否免费招募(1免费,0付费招募,默认为0)
 +
|-
 +
|ADD_CARD_PIECE
 +
|'''获得指定耐久的卡牌'''
 +
用途:加入一张预制的卡牌,最大耐久为指定的残值
  
ROLES_SELECTOR*几个目标对象中选择一个#1#2##人物1|人物2|人物3|人物4
+
格式:ADD_CARD_PIECE*卡牌ID#最大耐久#是否免费招募(1免费,0付费招募,默认为0)
 +
|-
 +
|SET_OBS_AREA
 +
|'''设置阻挡区状态'''
 +
用途:设置地图阻挡区域的状态
  
选取后存在[%last_seled_roles%]里。
+
格式:SET_OBS_AREA*控制ID#状态(0:启用 -1:禁用)
 +
|-
 +
|EXPLORE_AREA
 +
|'''点亮地图区域'''
 +
用途:点亮当前地图某一块区域(去除区域战争迷雾)
  
如果只有一个结果,则同时存在[%tagrole%]里
+
格式:EXPLORE_AREA*坐标x,坐标y#点亮半径
 +
|-
 +
|EXPLORE_MAP
 +
|'''点亮整个地图'''
 +
用途:点亮整个地图(去除整张地图的战争迷雾)
  
#打听人物,ASK_ABOUT_SOMEBODY_SELECTOR#被打听人ID
+
格式:EXPLORE_MAP*地图ID
 +
|-
 +
|ADD_INTVAL_WATCHER
 +
|'''增加自定义变量监视字段'''
 +
用途:增加自定义变量监视字段,在屏幕指定UI区块显示当前监视的变量字段值
  
被打听人现在暂没参与逻辑运算,弹出人物选项框,结果存在[%arg_str_val1%]里,选择结果[%result_code%]为9999的时候是玩家取消。
+
格式:ADD_INTVAL_WATCHER*变量监视信息格式
  
#打开卡牌选择器:CARD_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:主角队伍中的卡牌 1:指定单位表范围)#参数(当选择范围为指定单位表时该参数为单位列表信息)#筛选条件表达式(可选)
+
(格式如:字段Key1,显示名称1,枚举值1a=枚举名称1a|枚举值1b=枚举名称1b|...|枚举值1N=枚举名称1N,是否战斗中可见([可选,默认0] 0否1是);...;监视字段信息N)
 +
|-
 +
|REMOVE_INTVAL_WATCHER
 +
|'''移除自定义变量监视字段'''
 +
用途:移除指定的自定义变量监视字段
  
#集结部队:ASSEMBLE_ARMY#集结者ID#集结角色ID列表(可为空,“|”分割,可以使用ROLES_SELECTOR的结果[%last_seled_roles%]。如果为空,则是默认选定阵营下所有的角色。)
+
格式:REMOVE_INTVAL_WATCHER*字段Key值
 +
|-
 +
|CLEAR_ALL_INTVAL_WATCHERS
 +
|'''清除所有变量监视字段'''
 +
用途:清除所有变量监视字段
  
#解散当前所有的跟随部队:RELEASE_ALL_ASSEMBLE_ARMY#首领角色ID
+
格式:CLEAR_ALL_INTVAL_WATCHERS*
 +
|-
 +
|SET_TIMER
 +
|'''设置事件定时器'''
 +
用途:设置一个游戏计时器事件,当时间到达后将执行指定的事件
  
#使一个角色开始执行一个项目:SET_ROLE_IN_PROJECT*角色ID#项目ID,
+
格式:SET_TIMER*计时器ID(当ID重复时将覆盖重复的目标计时器信息)#时间参数(小于0时表示关闭该计时器, 其他当类型为指定时间型时该参数为指定的游戏事件(单位天), 当倒计时型时该参数为倒计时的天数)#计时器类型(0:指定时间触发型 1:倒计时型)#时间到达时执行的事件ID#是否强制更新(1表示强制更新,0表示非强制更新:即不会更改已有的计时器的数据。不填为1)#自定义字符串参数,可以在计时器执行的事件中使用[$arg_str_val1$]查询。
 +
|-
 +
|REMOVE_TIMER
 +
|'''移除事件定时器'''
 +
用途:移除一个游戏计时器事件
  
#使角色结束当前执行中的项目:SET_ROLE_FINISH_PROJECT*角色ID1,角色ID2,...
+
格式:REMOVE_TIMER*计时器ID
 +
|-
 +
|CHANGE_TIMER_TIME
 +
|'''更改事件定时器'''
 +
用途:增加/缩减一个游戏计时器的时间
  
#打开角色项目执行界面:ROLE_PROJECT_ADMIN*项目ID#绑定地点(可选,默认当前地点)
+
格式:CHANGE_TIMER_TIME*计时器ID#时间(以天为单位,可正可负,可以为小数)
 +
|-
 +
|ADD_TIMER_WATCHER
 +
|'''增加自定义事件定时器监视字段'''
 +
用途:增加自定义计时器监视字段,同自定义变量监视器UI
  
#设置主角复活点:SET_REVIVE_POS*大地图位置(地图ID:x,y)
+
格式:ADD_TIMER_WATCHER*计时器监视信息格式(格式如:计时器ID1,显示时间格式1,缩放参数1([可选,默认1]对时间参数(天)进行缩放的系数),是否战斗中可见([可选,默认0] 0否1是)|...|计时器ID N,显示时间格式N,缩放参数N
 +
|-
 +
|REMOVE_TIMER_WATCHER
 +
|'''移除自定义事件定时器监视字段'''
 +
用途:移除一个自定义计时器监视字段
  
#开启或关闭静默播报模式:SET_SILENCE_MODE*静默模式(0:不开启 1:不显示TOAST,仅显示消息,获得物品TOAST信息在消息中显示 2:不显示TOAST及消息)
+
格式:REMOVE_TIMER_WATCHER*字段Key值
 +
|-
 +
|CLEAR_ALL_TIMER_WATCHERS
 +
|'''清除自定义事件定时器监视字段'''
 +
用途:清除所有自定义计时器监视字段
  
#打开角色团体项目管理界面:GROUP_PROJECT_ADMIN*项目标签#界面标题#项目绑定类型#项目绑定对象参数(可选,默认为当前对象)
+
格式:CLEAR_ALL_TIMER_WATCHERS*
 +
|-
 +
|PLAYER_RECRUIT_CARD_IN_PLACE
 +
|'''打开玩家招募城镇内卡牌的面板'''
 +
用途:打开玩家招募城镇内卡牌的面板
  
目前支持的项目绑定类型有
+
格式:PLAYER_RECRUIT_CARD_IN_PLACE*城镇ID#完成招募后执行的事件ID(可选)#取消招募后执行的事件ID(可选)
 +
|-
 +
|STORY_CARD_START
 +
STORY_CARD_LINE
  
place:地点建筑建设 对象参数为地点ID,如不指定为当前地点
+
STORY_CARD_END
 +
|'''打开剧情卡片界面'''
 +
用途:打开剧情卡片界面。必须要有STORY_CARD_START和STORY_CARD_END,不然会报错。STORY_CARD_LINE为剧情段落,需要加在中间,可以加无数行
  
world:自定义地点建设 对象参数格式为:自选区域控制ID;所属地点(当所属地点为空时表示建设一个非附属地点)
+
格式:
  
#主角队伍开始掠夺一个地点:START_RAID_PLACE*地点ID
+
STORY_CARD_START*卡片文件名
  
#增加一个自建地点(一旦新增全局不可移除):ADD_CUSTOM_PLACE*自定义地点ID(全局唯一)#附属于地点(可为空,为空表示非附属地点)#地点信息模板ID#位置信息#默认所属势力
+
STORY_CARD_LINE*剧情段落1
  
#设置地点名称:SET_PLACE_NAME*地点ID#自定义名称
+
STORY_CARD_LINE*剧情段落2
  
#开启地点建筑建设界面:OPEN_PLACE_BUILD_UI*地点ID#建设成功后执行的剧本(可选)#建设取消后执行的剧本(可选)
+
STORY_CARD_LINE*剧情段落3
  
#ADD_CARD*卡牌ID#是否免费招募(1免费,0付费招募,默认为0),加入一张预制的卡牌
+
...
 
 
#ADD_CARD_PIECE*卡牌ID#最大耐久#是否免费招募(1免费,0付费招募,默认为0),加入一张预制的卡牌,最大耐久为指定的残值
 
 
 
#设置地图阻挡区域的状态:SET_OBS_AREA*控制ID#状态(0:启用 -1:禁用)
 
 
 
#点亮当前地图某一块区域:EXPLORE_AREA*坐标x,坐标y#点亮半径
 
 
 
#点亮整个地图:EXPLORE_MAP*地图ID
 
 
 
#增加自定义变量监视字段:ADD_INTVAL_WATCHER*变量监视信息格式(格式如:字段Key1,显示名称1,枚举值1a=枚举名称1a|枚举值1b=枚举名称1b|...|枚举值1N=枚举名称1N,是否战斗中可见([可选,默认0] 0否1是);...;监视字段信息N)
 
 
 
#移除一个变量监视字段:REMOVE_INTVAL_WATCHER*字段Key值
 
 
 
#清除所有变量监视字段:CLEAR_ALL_INTVAL_WATCHERS*1
 
 
 
#打开玩家招募城镇内卡牌的面板:PLAYER_RECRUIT_CARD_IN_PLACE*城镇ID#完成招募后执行的事件ID(可选)#取消招募后执行的事件ID(可选)
 
 
 
#剧情卡片:必须要有STORY_CARD_START和STORY_CARD_END,不然会报错。STORY_CARD_LINE为剧情段落,需要加在中间,可以加无数行
 
 
 
STORY_CARD_START*卡片文件名
 
 
 
STORY_CARD_LINE*剧情段落
 
  
 
STORY_CARD_END*
 
STORY_CARD_END*
 +
|-
 +
|AUTOSAVE
 +
|'''执行自动存档'''
 +
用途:立即执行自动存档
  
#设置一个游戏计时器事件:SET_TIMER*计时器ID(当ID重复时将覆盖重复的目标计时器信息)#时间参数(小于0时表示关闭该计时器, 其他当类型为指定时间型时该参数为指定的游戏事件(单位天), 当倒计时型时该参数为倒计时的天数)#计时器类型(0:指定时间触发型 1:倒计时型)#时间到达时执行的事件ID#是否强制更新(1表示强制更新,0表示非强制更新:即不会更改已有的计时器的数据。不填为1)
+
格式:AUTOSAVE*1
 +
|-
 +
|OPEN_SAVE_DLG
 +
|'''打开存档界面'''
 +
用途:打开存档界面
  
#删除一个计时器:REMOVE_TIMER*计时器ID
+
格式:OPEN_SAVE_DLG*1
 +
|-
 +
|OPEN_SAVE_DLG
 +
|'''打开读取界面'''
 +
用途:打开读取界面
  
#增加/缩减一个游戏计时器的时间:CHANGE_TIMER_TIME*计时器ID#时间(以天为单位,可正可负,可以为小数)
+
格式:OPEN_LOAD_DLG*1
 +
|-
 +
|EXCHANGE_CARD
 +
|'''打开卡牌交换界面'''
 +
用途:打开卡牌交换界面
  
#增加自定义计时器监视字段:ADD_TIMER_WATCHER*计时器监视信息格式(格式如:计时器ID1,显示时间格式1,缩放参数1([可选,默认1]对时间参数()进行缩放的系数),是否战斗中可见([可选,默认0] 0否1是)|...|计时器ID N,显示时间格式N,缩放参数N
+
格式:EXCHANGE_CARD*对象类型(0:地点 1:队伍)#对象ID([可选,默认为当前地点] 当对象为地点时为地点ID,队伍时为队伍ID)
 +
|-
 +
|LEVEL_FINISH
 +
|'''关卡完成'''
 +
用途:用于剧本模式描述一关结束
  
#移除一个计时器监视字段:REMOVE_TIMER_WATCHER*字段Key值
+
格式:LEVEL_FINISH*
 +
|-
 +
|SET_CAMERA_FILTER
 +
|'''设置镜头滤镜'''
 +
用途:设置镜头滤镜效果
  
#清除所有计时器监视字段:CLEAR_ALL_TIMER_WATCHERS*1
+
格式:SET_CAMERA_FILTER*滤镜参数(为空为关闭所有滤镜,参数代码见6.10节)测试代码:SET_CAMERA_FILTER*黑白,0|老旧,100|暗角,100
 +
|-
 +
|TLACTION
 +
|'''播放Timeline动作'''
 +
用途:让大地图上的指定单位播放TIMELINE动作
  
#执行自动存档:AUTOSAVE*1
+
格式:TLACTION*地图角色ID#Timeline动作文件名#动作时长
 +
|-
 +
|SELECTION_VIEW
 +
|'''全屏特殊剧情选择'''
 +
用途:打开一个全屏特殊剧情选择界面
  
#打开存档界面:OPEN_SAVE_DLG*1
+
格式:SELECTION_VIEW*剧情图片文件名#剧情内容(支持“\n”表示换行)#选择项(参考SELECT*
 +
|-
 +
|DIALOG_BUBBLE
 +
|'''地图单位气泡对话框'''
 +
用途:在大地图上的单位头上弹出气泡对话框
  
#打开读档界面:OPEN_LOAD_DLG*1
+
格式:DIALOG_BUBBLE*地图角色ID#对话内容#显示时长
 +
|-
 +
|TEXT_EXPLORE_START
 +
TEXT_EXPLORE_OVER
  
#打开卡牌交换界面:EXCHANGE_CARD*对象类型(0:地点 1:队伍)#对象ID([可选,默认为当前地点] 当对象为地点时为地点ID,队伍时为队伍ID)
+
TEXT_EXPLORE_FORCE_OVER_AND_CD
 +
|'''文字探索相关'''
 +
用途:特定的文字探索模式
  
#关卡完成:LEVEL_FINISH,用于剧本模式描述一关结束
+
格式:
  
#骑马:MOUNT*角色ID
+
TEXT_EXPLORE_START*文字探索地图ID。开启一场文字冒险
  
#下马:DISMOUNT*角色ID
+
TEXT_EXPLORE_OVER*。结束当前副本
  
#设置镜头滤镜效果:SET_CAMERA_FILTER*滤镜参数(为空为关闭所有滤镜,参数代码见6.10节)测试代码:SET_CAMERA_FILTER*黑白,0|老旧,100|暗角,100
+
TEXT_EXPLORE_FORCE_OVER_AND_CD*。强制结束当前副本并进入CD
 +
|-
 +
|SHOW_CG
 +
|'''显示CG图片'''
 +
用途:用来展示一个CG图片界面(注意开了之后需要手动用HIDE_CG*关闭CG,不然会影响玩家操作)
  
#播放Timeline动作:TLACTION*地图角色ID#Timeline动作文件名#动作时长
+
格式:SHOW_CG*图片名称(不带后缀,可为空,空就只会显示黑色背景,对应目录为Assets\BuildSource\Backgrounds\,文件格式统一要求为png)
 +
|-
 +
|HIDE_CG
 +
|'''关闭CG图片'''
 +
用途:关闭CG图片界面
  
#全屏特殊剧情选择:SELECTION_VIEW*剧情图片文件名#剧情内容(支持“\n”表示换行)#选择项(参考SELECT*)
+
格式:HIDE_CG*
 +
|-
 +
|GENERATE_RANDOM_CARD
 +
|'''随机选取一个卡牌'''
 +
用途:随机抽取一张卡牌,并存放在当前变量的tagcard里
  
#对话气泡:DIALOG_BUBBLE*地图角色ID#对话内容#显示时长
+
格式:GENERATE_RANDOM_CARD#1
 +
|-
 +
|VOICE_OVER
 +
|'''旁白'''
 +
用途:展现一句旁白界面
  
#设置任务子项的值:SETQUESTIEM*任务ID#子项index#设置的值
+
格式:VOICE_OVER*旁白内容
 +
|-
 +
|CREATE_STORYARMY
 +
|'''创建剧情队伍'''
 +
用途:创建一个用于剧情的队伍
  
#自定义战斗:BATTLE_WITH*对方角色信息(可选)#对方兵牌信息(可选)#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)
+
格式:CREATE_STORYARMY*tagkey#地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID1,数量1,等级1|卡牌ID2,数目2,等级2|.......)#运动信息(例如:WANDER,2500)
 +
|-
 +
|REMOVE_STORYARMY
 +
|'''移除剧情队伍'''
 +
用途:移除一个剧情队伍
  
#和当前对话人物进行战斗:BATTLE_WITH_TAGROLE*战斗ID(战斗ID只是用来触发剧情事件)
+
格式:REMOVE_STORYARMY*tagkey
 +
|-
 +
|BAZZAR_BUY_ITEM
 +
|'''集市商人买入操作'''
 +
用途:进行集市商人买入操作
  
#TEXT_EXPLORE_START*文字探索地图ID。开启一场文字冒险
+
格式:BAZZAR_BUY_ITEM*集市ID#商人ID#交换用物品的集市ID(可选)#交换用物品的商人ID(可选)
  
#TEXT_EXPLORE_OVER*。结束当前副本
+
购买结果保存在[%result_code%]中(1 购买成功,0 购买失败)
 +
|-
 +
|BAZZAR_SELL_ITEM
 +
|'''集市商人卖出操作'''
 +
用途:进行集市商人卖出操作
  
#TEXT_EXPLORE_FORCE_OVER_AND_CD*。强制结束当前副本并进入CD
+
格式:BAZZAR_SELL_ITEM*集市ID#商人ID
 
+
|-
#TEAM_CHANGE_HP_PCT*百分比(-100~100)#提示格式(默认:none不提示。confirm:用confirm方式提示)
+
|SHOWROLE
 
+
|'''对话显示角色立绘'''
#TEAM_CHANGE_MP_PCT*百分比(-100~100)#提示格式(默认:none不提示。confirm:用confirm方式提示)
+
用途:对话时显示角色立绘
 
 
#斗志变化:CHANGE_DOUZHI*(0~100)#提示格式(默认:none不提示。confirm:用confirm方式提示)
 
 
 
#显示CG:SHOW_CG*图片名称(不带后缀,可为空,空就只会显示黑色背景,对应目录为Assets\BuildSource\Backgrounds,文件格式统一要求为png)
 
 
 
#隐藏CG:HIDE_CG*(注意开了之后需要手动关闭CG,不然会影响玩家操作)
 
 
 
#生成一张随机卡:GENERATE_RANDOM_CARD,存放在当前变量的tagcard里,用#分割
 
 
 
#招募兵卡:ON_HIRE_TAGCARD,无变量,在当前变量环境中的tagplace地点中招募tagcard
 
 
 
#预览卡牌:PREVIEW_TAGCARD,预览变量环境中的tagcard
 
 
 
#旁白:VOICE_OVER,展现一句旁白
 
 
 
#CREATE_STORYARMY*tagkey#地图位置#所属阵营#人物列表(所有人物会强制离开当前队伍或地点)#卡牌单位列表(卡牌ID#等级,数目|卡牌ID2#等级2,数目2|.......)#运动信息(WANDER,2500)
 
 
 
#REMOVE_STORYARMY*tagkey 移除一队剧情部队
 
 
 
#BAZZAR_BUY_ITEM*集市ID#商人ID#交换用物品的集市ID(可选)#交换用物品的商人ID(可选)
 
 
 
#BAZZAR_SELL_ITEM*集市ID#商人ID
 
  
#对话时显示角色立绘:SHOWROLE*角色1ID@角色1立绘显示位置(#角色2ID@角色2立绘显示位置)(可选)
+
格式:SHOWROLE*角色1ID@角色1立绘显示位置(#角色2ID@角色2立绘显示位置)(可选)
  
 
<nowiki>*</nowiki>立绘显示位置:可以是L或者R,默认为L,立绘显示在对话框左侧,R则显示在右侧
 
<nowiki>*</nowiki>立绘显示位置:可以是L或者R,默认为L,立绘显示在对话框左侧,R则显示在右侧
 +
|-
 +
|HIDEROLE
 +
|'''对话隐藏角色立绘'''
 +
用途:对话时隐藏角色立绘
  
#对话时隐藏角色立绘:HIDEROLE*角色1立绘显示位置(#角色2立绘显示位置)(可选)
+
格式:HIDEROLE*角色1立绘显示位置(#角色2立绘显示位置)(可选)
  
 
<nowiki>*</nowiki>立绘显示位置:可以是L或者R,L为隐藏左侧立绘,R为隐藏右侧立绘
 
<nowiki>*</nowiki>立绘显示位置:可以是L或者R,L为隐藏左侧立绘,R为隐藏右侧立绘
 +
|-
 +
|SELECT_QUEST_ASK
 +
|'''任务询问'''
 +
用途:在普通的SELECT基础上添加满足条件的任务询问
  
#SELECT_QUEST_ASK,在普通的SELECT基础上添加满足条件的任务询问
+
格式:SELECT_QUEST_ASK*
 +
|-
 +
|SELECT_TEAMROLE
 +
|'''队伍角色选择'''
 +
用途:选择队伍里的人物角色
  
#SELECT_TEAMROLE,选择队伍里的人物
+
格式:SELECT_TEAMROLE*
 +
|-
 +
|ROLE_PLAYER_ACTIVE
 +
|'''激活角色信息状态'''
 +
用途:设置角色在“情报”界面中可见,传入角色ID(此方法一般用于剧情中,如酒吧女郎)
  
#ROLE_PLAYER_ACTIVE,设置角色在“情报”界面中可见,传入角色ID(此方法一般用于剧情中,如酒吧女郎)
+
格式:ROLE_PLAYER_ACTIVE*角色ID
 +
|-
 +
|ROLE_ORDER
 +
|'''内置角色指令'''
 +
用途:为一个角色下达一些内置指令并立即执行
  
<br />
+
格式:ROLE_ORDER*角色ID[为空表示当前目标角色]#指令代码:指令参数表
  
#内置角色指令:ROLE_ORDER*角色ID[为空表示当前目标角色]#指令代码:指令参数表
 
  
指令代码支持以下内容:
+
当前指令代码支持以下内容:
  
(1) RETURN_JOBCITY:角色返回所属地点,无参数,当其为队长时直接变更队伍指令,不是队长时离开当前队伍并返回,在其他地点时则创建队伍并返回
+
*RETURN_JOBCITY:角色返回所属地点,无参数,当其为队长时直接变更队伍指令,不是队长时离开当前队伍并返回,在其他地点时则创建队伍并返回
  
(2) GOTO_PLACE:角色前往目标地点,参数为目标地点ID
+
*GOTO_PLACE:角色前往目标地点,参数为目标地点ID
 +
*JOIN_PLAYER_TEAM:角色直接加入主角队伍,无参数
 +
*FOLLOW_ME:角色集结并跟随主角队伍,无参数
 +
*EXPEL_FROM_CAMP:从阵营中驱逐该角色,无参数
 +
|-
 +
|ADD_INTERACTIVE_MSG
 +
|'''添加可交互消息'''
 +
用途:添加一条自定义的可交互消息,并在对应的UI中显示
  
(3) JOIN_PLAYER_TEAM:角色直接加入主角队伍,无参数
+
格式:ADD_INTERACTIVE_MSG*消息类型#标题#内容文本#参数文本#持续时间(<=0为永久持续,否则为天数)#发起者信息#TAG参数
  
(4) FOLLOW_ME:角色集结并跟随主角队伍,无参数
 
  
(5) EXPEL_FROM_CAMP:从阵营中驱逐该角色,无参数
+
目前支持的消息类型有:msg:消息 request:请求  finance:财务
  
 +
当消息类型为非财务消息时,参数文本的格式为:
 +
参数Key1:参数值1;参数Key2:参数值2;...;参数Key N:参数值 N
 +
目前系统内置的参数KEY类型有:
  
#...
+
*ask:指定此消息为一个请求并且根据参数最多带有两个命令选项,格式为: ask:选项1显示文字=选项1执行事件ID[:选项2显示文字=选项2执行事件ID]
  
 +
例如:ask:是=Event1:否=Event2
  
'''全局存档相关操作脚本'''
+
*items:指定此消息为一个获取道具表的消息,参数值为对应道具列表信息,如:items:金钱,10000|紫金之刃,1,mf=0-3|黄金之枪,1,mf=0-3|幻刃月光,1,mf=0-3
 +
*其他字段均可自己定义,并通过消息交互中触发的指令中用[$tagmsg:arg=参数KEY$]来查询对应参数字段所包含的值
  
1. 设置自定义变量:SET_GLOBAL_INTVAR*变量ID#当前int值
 
  
2. 改变一个自定义变量:CHANGE_GLOBAL_INTVAR*变量ID#改变值(正负数皆可)#锁定最小值(可选,不填为不限制)#锁定最大值(可选,不填为不限制)
+
当消息类型为财务消息时,参数文本的格式为:
 +
账单字段1=账单明细表(格式为: 资源1,数目1|资源2,数目2|...|资源N,数目N);账单字段2=账单明细表;[...];账单字段N=账单明细表
 +
发起者信息的格式为: 发起者类型代码:发起者ID
  
3. 设置自定义string变量:SET_GLOBAL_STRVAR*变量ID#string值
+
目前支持的发起者类型有:
  
4. 将指定的角色表存入全局角色状态表中:PUSH_GLOBAL_ROLES*自定义全局存储Key#角色ID(该角色只能为非模板角色)
+
*0:系统  对应ID为空
 +
*1:人物  对应ID为人物ID
 +
*2:地点 对应ID为地点ID
 +
*3:势力 对应ID为势力ID
  
5. 将指定的角色表的状态从全局角色状态表读入到当前游戏模式中:PULL_GLOBAL_ROLES*自定义全局存储Key(该Key值对应的角色必须为当前游戏模式人物模板表中存在的角色)
 
  
6. 锁定当前指令队列:LOCK_CMD_QUEUE*是否锁定(0否1是,当锁定后切换游戏存档或者重置游戏模式时不会清空执行的指令队列)
+
TAG参数为任意用来标记用的字符串字段
 +
|-
 +
|REMOVE_INTERACTIVE_MSG
 +
|'''移除可交互消息'''
 +
用途:移除指定条件的可交互消息
  
7. 切换并载入到目标游戏模式:SWITCH_GAME_MODE*目标游戏模式的ID
+
格式:REMOVE_INTERACTIVE_MSG*消息类型#发起者信息#TAG参数
  
8.
 
  
 +
消息类型及TAG参数可填空,表示不限类型或TAG
  
 +
发起者信息格式见 ADD_INTERACTIVE_MSG
 +
|-
 +
|REMOVE_THIS_INTERACTIVE_MSG
 +
|'''移除当前可交互消息'''
 +
用途:移除当前环境变量中的可交互消息
  
'''一些内置命令表:'''
+
格式:REMOVE_THIS_INTERACTIVE_MSG*1
 +
|-
 +
|FORCE_CHANGE_HEADAVATA
 +
|'''强制更换主角立绘'''
  
9. 打开遭遇野怪信息面板:ENCOUNTER*1
+
用途:改变主角立绘
  
10. 打开宝箱守卫信息面板:CHEST_INFO_DLG*宝箱ID
+
格式:FORCE_CHANGE_HEADAVATA*立绘代码(使用$号替换#号)
 +
|-
 +
|FORCE_CHANGE_MODEL
 +
|'''强制更换主角模型'''
 +
用途:改变主角模型
  
11. 打开宝箱代价信息面板:CHEST_COST_DLG*宝箱ID
+
格式:FORCE_CHANGE_MODEL*模型ID(使用$号替换#号)
 +
|-
 +
|FORCE_CHANGE_NAME
 +
|'''强制更换主角名称'''
 +
用途:改变主角名称
  
12. 开启宝箱逻辑回调命令:CHEST_CALLBACK*回调代码(1:击败守卫 2:完成开启)#目标宝箱ID
+
格式:FORCE_CHANGE_NAME*角色名称
 +
|-
 +
|SHOW_INTVAR_CONFIG
 +
|'''显示游戏中可配置的自定义整形字段选项界面'''
 +
用途:打开一个游戏内自定义字段配置界面
  
13. 执行招募队伍中的俘虏判定:EXEC_RECRUIT_CAPS*1
+
格式:SHOW_INTVAR_CONFIG*开启模式(0:创建游戏模式  1:游戏中模式)
 +
|-
 +
|SET_MAP_MARKER
 +
|'''增加或设置自定义地图标记'''
 +
用途:在大地图上增加或者设置一个自定义的地图标记,当标记ID已存在时为覆盖此地图标记信息
  
14. 执行掠夺地点回调:ON_RAID_FINISH*地点ID
+
格式:SET_MAP_MARKER*标记ID#标题#备注信息#地图位置信息#标记图标文件名(可为空,默认为"map_flag",此图标为位于“\BuildSource\map_res\MinimapMakers\” 资源目录下的一个PNG图片资源)
 +
|-
 +
|REMOVE_MAP_MARKER
 +
|'''移除一个自定义地图标记'''
 +
用途:移除指定ID的自定义地图标记(如果存在的话)
  
===三、脚本预设字段及含义:===
+
格式:REMOVE_MAP_MARKER*标记ID
在脚本编辑中有时会使用一些特定的指令来替代具体的对象,比如CUR_ROLE可以用来替代当前遭遇对象的人物ID,这样就可以实现一些通用脚本编辑的应用场景。
+
|-
 +
|<s>RUN_SCRIPT</s>
 +
|'''<s>运行指定Lua脚本</s>'''
 +
<s>用途:运行指定的Lua脚本</s>'''(不推荐使用)'''
  
目前支持的预设字段有:
+
<s>格式:RUN_SCRIPT*脚本相对路径文件名(相对于脚本根目录“Asset\BuildSource\LuaScripts\” ,无文件扩展名)</s>
 +
|-
 +
|RUN_SCRIPT_FUNC
 +
|'''运行指定Lua脚本中的方法'''
 +
用途:运行指定的Lua脚本中的标准方法
  
CUR_ROLE:当前遭遇人物模板的ID,专门用与对话框及选择框
+
格式:RUN_SCRIPT_FUNC*脚本相对路径文件名(同RUN_SCRIPT)#标准方法名称(脚本中的方法名,参数为传入的环境变量)#传入的参数字符串信息
 +
对应LUA脚本调用的方法参数表,参数1默认为环境变量参数,参数2为传入字符串参数
 +
LUA中实现的函数接口示例:
 +
function TestFunc(_contextArgVal, _StrArgs)
 +
_contextArgVal:调用指令中传入的环境变量
 +
_StrArgs:传入的字符串型参数信息
  
CUR_BATTLE:当前遭遇的大地图刷新单位对应的战斗ID
+
|-
 +
|OPEN_GUI
 +
|'''打开自定义GUI'''
 +
用途:打开一个自定义的GUI窗口
  
===四、专门用于战斗场景的脚本命令条如下:===
+
格式:OPEN_GUI*GUI包名#窗体组件名#脚本路径#窗体参数#阻塞指令队列(默认0阻塞)#模糊窗体(默认0否)#UI小组件
1. 对话框:同上
 
  
2. 选择框:SELECT同上
+
GUI包名:FGUI的包名
 +
窗体组件名:FGUI中组件的名称
 +
脚本路径:窗体的脚本路径(相对于脚本根目录“Asset\BuildSource\LuaScripts\” ,无文件扩展名)
 +
窗体参数:参数格式为json格式,如:{"arg1":"val1","arg2":"val2"}
 +
是否不阻塞指令队列:(默认0 阻塞, 当为1时不阻塞)
 +
是否应用模糊窗体背景效果:(0否1是,默认为否)
 +
UI小组件:主动挂载的UI小组件,默认无,在窗体组件表中设置,多个组件之间用|分割,参考[[重置游戏界面及制作自定义GUI|UI小组件]]
  
3. 过场字幕:SCREEN同上
+
|-
 +
|OPEN_CONTAINER_GUI
 +
|'''打开容器界面'''
 +
用途:打开一个已定义的容器界面
  
4. 屏幕震动:SHAKE_SCREEN同上
+
格式:OPEN_CONTAINER_GUI*容器ID(实例ID用于标识)#模板信息ID(定义在容器定义表中的信息ID)
  
5. 延时等待:DELAY同上
+
当参数表为空或者为"THIS"时,表示直接打开当前环境变量中指定的容器(如果有传入的话),如:OPEN_CONTAINER_GUI*THIS
 +
|-
 +
|SET_TAG_CONTAINER
 +
|'''设置环境变量中的容器'''
 +
用途:为当前环境变量设置一个容器
  
6. 跳转事件:EVENT同上
+
格式:SET_TAG_CONTAINER*容器ID(实例ID用于标识)#模板信息ID(定义在容器定义表中的信息ID)#是否不存在则创建(0否1是,默认1)
 +
|-
 +
|CONTAINER_CMD
 +
|'''容器指令'''
 +
用途:为当前环境变量中指定的容器执行特定指令
  
7. 暂停游戏:PAUSE*1 暂停当前游戏场景
+
格式:CONTAINER_CMD*容器指令类型#参数1#参数2#...#参数N
  
8. 继续游戏:RESUME*1 继续当前游戏场景
+
目前支持的集中内置指令类型:
  
9. 设置天气:SET_WEATHER*同上
+
add_exp:对容器内所有卡牌增加经验,参数为经验数字
  
10. BB对话框:BB*同上
+
add_items:向容器内添加指定的元素。(如:物品类容器可为 CONTAINER_CMD*add_items#道具1,10|道具2,5 ;卡牌类容器为卡牌的ID表,以"|"分隔)
  
11. 战斗人物对话泡泡:B_TALK*对象ID#随机文字段落1#随机文字段落2#随机文字段落3#...#随机文字段落N
+
remove_items:从容器内移除指定的元素。(如:物品类容器可为 CONTAINER_CMD*add_items#道具1,10|道具2,5 ;卡牌类容器为卡牌的ID表,以"|"分隔)
  
对象ID通常为角色或单位的ID,当目标类型为地城刷新对象时,对象ID为该单位的控制ID
+
clear:清空容器内的所有元素
  
对象ID特殊值:
+
set_capacity:设置容器大小,参数1为容器大小数字,该项会覆盖容器原本的大小设定。仅对容器表定义的容器有效,对地点容器无效。
  
RND_ENEMY_UNIT:任意一个敌方小兵单位
+
change_capacity:修改容器大小,参数1为变动值,正数增加,负数减少。仅对容器表定义的容器有效,对地点容器无效。
 +
|-
 +
|PLACE_CONTAINER_CMD
 +
|'''地点容器指令'''
 +
用途:将地点视为容器对象,执行和容器相同的特定指令
  
RND_FRIEND_UNIT:任意我方小兵单位
+
格式:PLACE_CONTAINER_CMD*地点ID(为空或者THIS表示当前环境变量所指定的地点)#容器指令列表(同CONTAINER_CMD参数说明)
 +
|-
 +
|SET_MAP
 +
|'''设置地图的状态'''
 +
用途:设置指定地图的可见状态
  
12. 敌方单位增援:ENEMY_REINF*小兵列表命令(见小兵列表格式)
+
格式:SET_MAP*地图ID#状态值(0:正常 1:关闭)
 +
|-
 +
|RESET_LUAENV
 +
|'''重置当前LUA脚本运行环境'''
 +
用途:重置当前LUA脚本运行环境并清除缓存,可用于调试LUA脚本时避免重新启动游戏
  
13. 我方单位增援:FRIEND_REINF*小兵列表命令(见小兵列表格式)
+
格式:RESET_LUAENV*1
 +
|-
 +
|SET_ARG_INT
 +
|'''设置当前环境变量中的参数值'''
 +
用途:设置存储在当前运行脚本环境变量中的整型参数值(对应 [%arg_int_val1%] [%arg_int_val2%] [%arg_int_val3%])
  
14. 下达撤退指令:CMD_RETREAT*0为我方全体1为敌方全体
+
格式:SET_ARG_INT*设置新的值#目标参数索引(可选,默认为0。0,1,2分别对应[%arg_int_val1%] ~ [%arg_int_val3%])
 +
|-
 +
|TEAM_JOIN_ROLE
 +
|'''强制让角色加入主角队伍'''
 +
用途:强制一个指定角色加入队伍,无视队伍上限限制(不会弹出处置UI)
  
15. 立即强制结束战斗:BATTLE_OVER*0为胜利 1为失败
+
格式:TEAM_JOIN_ROLE*人物ID1|人物ID2|人物ID3|...
 +
|-
 +
|SET_ROLE_INTVAR
 +
|'''设置角色的自定义可存储整形字段'''
 +
用途:设置角色身上的可存储整形字段
  
16. 全灭目标:KILL_ALL*0为我方 1:为敌方
+
格式:SET_ROLE_INTVAR*角色ID(为空为主角)#字段ID#设置值#设置模式(可选 1为增加模式(原值加上设置值) 其他为直接赋值模式)
 +
|-
 +
|SET_ROLE_STRVAR
 +
|'''设置角色的自定义可存储字符串字段'''
 +
用途:设置角色身上的可存储字符串字段
  
17. 主角不死:UNDEAD_PLAYER*1
+
格式:SET_ROLE_STRVAR*角色ID(为空为主角)#字段ID#字符串信息
 +
|-
 +
|SET_MU_BBINFO
 +
|'''设置大地图单位气泡对话框文字'''
 +
用途:对一个大地图单位设置气泡对话框文字信息
  
18. 所有单位不死:UNDEAD_ALL*0:仅我方 1:敌我双方
+
格式:SET_MU_BBINFO*地图单位ID#对话框文字信息内容(为空表示关闭,多段文字随机展示用|分隔)#显示时间#间隔时间(秒,如果需要随机时间间隔按照"MinTime-MaxTime"格式来填写)
 +
|-
 +
|CHG_ROLES_FV
 +
|'''改变角色之间的好感度'''
 +
用途:改变游戏内任意两个角色之间的好感度
  
19. *全体单位停止活动:STOP_ALL*0:恢复 1:停止
+
格式:CHG_ROLES_FV*人物ID_A#人物ID_A#更改数值#是否链式更改(1是0否,默认否)#目标值(当不为空时生效,当此项生效时链式参数无效)
 +
|-
 +
|INTEREVENT_DONE
 +
|'''队伍角色关系虚拟事件结果决定'''
 +
用途:队伍角色关系虚拟事件结果决定
  
20. *控制单位移动:MOVE*单位ID(同上)#路径坐标表(坐标1x,y|坐标2x,y|...|坐标Nx,y)#移动速度
+
格式:INTEREVENT_DONE*核心性格ID(决定此事件相关人员关系改变的性格依据)#影响系数(可选,默认1)
 +
|-
 +
|OPEN_ROLE_RL_DEBUG
 +
|'''开启角色关系调试界面'''
 +
用途:开启角色关系调试界面
  
21. 场景使用技能:EXEC_SKILL*释放者ID#技能ID,技能等级(默认1级)#目标坐标的x,y#坐标参数1的x,y(所有坐标均为TILEDMAP的地图坐标)
+
格式:OPEN_ROLE_RL_DEBUG*1
 +
|-
 +
|DEBUG_ROLE_RL_EVENT_PLACE
 +
|'''立即调用一次地点的角色关系虚拟随机事件'''
 +
用途:立即调用一次以地点为中心的角色关系虚拟随机事件
  
释放者ID为目标的识别ID,可以有以下特殊值
+
格式:DEBUG_ROLE_RL_EVENT_PLACE*地点ID
 +
|-
 +
|DEBUG_ROLE_RL_EVENT_TEAM
 +
|'''立即调用一次队伍中的角色关系虚拟随机事件'''
 +
用途:立即调用一次队伍中的角色关系虚拟随机事件
  
PLAYER:玩家  GM_A:进攻方的预设对象 GM_B:防守方的预设对象
+
格式:DEBUG_ROLE_RL_EVENT_TEAM*1
 +
|-
 +
|BAR_FIGHT
 +
|'''开始一次酒吧挑战判定'''
 +
用途:开始一次酒吧挑战判定,并执行对应的触发器检定
  
THIS:指令发起者(一般返回发射器自身)
+
格式:BAR_FIGHT*地点ID
 +
|-
 +
|CUSTOM_FIGHT
 +
|'''开始一次自定义的搏击战斗'''
 +
用途:开始一次自定义参与对象的搏击战斗
  
EMITTER=ID:指定ID的地城发射器,可为this表示当前地城发射器
+
格式:CUSTOM_FIGHT*敌方英雄表#我方英雄表#对应战斗ID(可选)
 +
|-
 +
|FIGHT_EXEC
 +
|'''立即开始当前的搏击战斗'''
 +
用途:按照当前搏击战斗的环境参数开始执行战斗逻辑(内置指令,用于由该次搏击战斗触发的事件中进行调用。其他环境下调用此指令无效)
  
RND_FRIEND_UNIT:随机友方单位 RND_ENEMY_UNIT:随机敌方单位
+
格式:BAR_FIGHT_EXEC*1
 +
|-
 +
|START_TOURNAMENT
 +
|'''参加当地比武大会'''
 +
用途:参加当地举办的比如大会(如果条件满足的话)
  
当释放者为预设对象时,坐标参数1代表技能释放的其起始坐标
+
格式:START_TOURNAMENT*1
 +
|-
 +
|CHG_ROLE_MERIT
 +
|'''改变角色在其所在阵营的贡献度'''
 +
用途:改变游戏内任意角色在其所在阵营的贡献度
  
22. (地城)刷新已定义的地城单位:DUNGEON_SPAWN*控制ID#是否无视状态(当该单位已被击败时仍可刷新 0:否[默认] 1是)
+
格式:CHG_ROLE_MERIT*人物ID#更改数值#目标值
 +
|-
 +
|SET_SUBARG
 +
|'''设置查询指令替换参数'''
 +
用途:设置查询指令的替换参数,用于需要对查询指令中指定的目标进行赋值时使用,可以将查询指令中的任何部分使用替换参数替代
  
23. (地城)设置地城专用触发器的状态:SET_DUNGEON_TS*控制ID#状态(0正常 -1禁用)
+
当查询指令具有多元参数时,只需要使用SUBARG关键字即可替换为设置好的参数值,如:[$tagrole:role_fv=SUBARG$]
  
24. (地城)结束地城:DUNGEON_OVER*结果代码(0:退出 1:胜利 2:失败)
+
格式:SET_SUBARG*设置值
 +
|-
 +
|UI_MSG
 +
|'''发送UI通知消息'''
 +
用途:发送UI通知消息,UI界面的LUA代码中可通过接口注册或实现function onWindowEvent(msgType, msgArg)接口来接受消息
  
25. 设置障碍区域的状态:SET_AREA*控制ID#状态(0正常 -1禁用)
+
示例:
 +
实现方法一:通过接口注册
 +
-- 注册接口 CS.GUIHelper.RegSceneMsgHandler(OnSceneMsgHandler)
 +
-- 场景关闭时通过 CS.GUIHelper.RemoveSceneMsgHandler(sceneMsgHandler) 来注销此接口
 +
function OnSceneMsgHandler(msgType, msgArg)
 +
    -- do something
 +
end
  
26. 设置物件的显示状态:SET_WIDGET*控制ID#状态(0正常 -1隐藏)
+
实现方法二:实现消息接口
 +
-- 将函数命名为onWindowEvent,会在窗口中自动读取该接口使用
 +
function onWindowEvent(msgType, msgArg)
 +
   
 +
end
  
27. 设置地城传送器状态:SET_TP*控制ID#状态(0正常 -1禁用)
+
接口示例:
  
28. 设置地城发射器状态:SET_EMITTER*控制ID#状态(0正常 -1禁用)
+
格式:UI_MSG*消息类型(对应msgType)#消息参数(对应msgArg)
 +
|-
 +
|TEAM_EVENT
 +
|'''队伍事件通知'''
 +
用途:添加一个队伍事件通知,此通知在游戏内提示并需要点击触发对应事件。
  
29. 设置玩家角色的模型:SET_PLAYER_MODEL*单位模型描述信息
+
格式:TEAM_EVENT*通知类型(0:关闭 1:普通事件 2:队内成员交互事件ID)#对应事件ID(当类型为2时对应“J角色互动事件池”中的交互事件ID,否则为剧情事件表中的ID)#参与者ID表("|"分割)#提示持续时间(单位天,默认3天)
 +
|-
 +
|PLAYER_REPLACE_NPC
 +
|'''替代游戏内角色'''
 +
用途:替代一个游戏内角色,继承该角色的信息
  
30. 设置玩家角色的当前技能:SET_PLAYER_SKILL*技能ID1,等级|技能ID2,等级|...|技能ID n,等级 (最多4个技能)
+
格式:PLAYER_REPLACE_NPC*角色ID#替代方式(替换模式 0:仅替换阵营地位、领地、人际关系  1:完全替换,包括角色名称和形象立绘等)
 +
|-
 +
|ADD_ROLE_MSG
 +
|'''添加人物逸闻信息'''
 +
用途:为人物添加相关的逸闻信息
  
31. 直接执行技能指令:SKILL_CMD*技能指令内容
+
格式:ADD_ROLE_MSG*人物ID#逸闻内容#参与角色(多个角色用|分割)(可选)#逸闻保存时间(默认15天,为-1时无限)
 +
|-
 +
|CHANGE_ROLE_ATTRIBUTE
 +
|'''修改角色固有属性'''
 +
用途:用于修改角色的某个固有属性,如姓名、立绘、模型、使用武器、性格等等
  
32. 设置地城自定义整形字段:SET_DG_INTVAR*字段ID#设置值#设置模式(可选 1为增加模式(原值加上设置值) 其他为直接赋值模式)
+
格式:CHANGE_ROLE_ATTRIBUTE*人物ID#属性名称#属性值
  
33. 设置大地图镜头参数:SET_CAMERA*跟随模式#参数
+
可以修改的属性有:
 +
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
 +
|'''设置兵种招募组'''
 +
用途:设置一组兵种招募组,并从中抽取一支兵种。同时会为环境变量设置该招募组和要招募的兵种。
  
0:跟随主角,无参数(默认)
+
格式:SET_RECRUIT_CARD*招募组ID#刷新冷却期(单位:天,小于等于0为立即刷新)#招募单位1,权重1#招募单位2,权重2#...
  
1:跟随指定目标,参数为目标单位的对象ID
+
备注:当调用此指令时,若距离上一次调用指令的时间小于这次调用指令时设置的刷新冷却期,则不会刷新招募组状态
 +
|-
 +
|SET_RECRUIT_CARD_FORCE
 +
|'''强制设置兵种招募组'''
 +
用途:同SET_RECRUIT_CARD,但是会无视刷新冷却期刷新招募组
  
2:战场坐标位置,参数为坐标X,Y
+
格式:SET_RECRUIT_CARD_FORCE*招募组ID#刷新冷却期(单位:天,小于等于0为立即刷新)#招募单位1,权重1#招募单位2,权重2#...
 +
|-
 +
|CHANGE_RECRUIT_CARD
 +
|'''修改兵种招募组中的兵种'''
 +
用途:修改兵种招募组中的兵种
  
34. 命令一个目标攻击另外一个敌方目标:ATTACK*攻击发起者对象ID#攻击目标对象ID
+
格式:CHANGE_RECRUIT_CARD*招募组ID#兵种单位ID
 +
|-
 +
|SET_TAG_RECRUIT_GROUP
 +
|'''变更当前脚本中的对象招募组'''
 +
用途:为环境变量设置该招募组和招募组中随机抽取的兵种。需要先调用过SET_RECRUIT_CARD
  
35. 为一个单位指定控制命令队列:CMD_QUEUE*目标对象ID#命令脚本的事件ID
+
格式:SET_TAG_RECRUIT_GROUP*招募组ID
 +
|-
 +
|SET_RECRUIT_COST_RATE
 +
|'''设置招募组的招募费率'''
 +
用途:设置招募组招募兵种的费率,默认为100,即100%*原价
  
其中,战斗中命令队列的设置格式为(时间参数表示该秒数后执行下一条):
+
格式:SET_RECRUIT_COST_RATE*招募组ID#招募费率(单位:百分比整数,默认100)
 +
|-
 +
|TRY_RECRUIT_CARD
 +
|'''尝试对招募组内的兵种进行一次招募'''
 +
用途:尝试对招募组内的兵种进行一次招募,使用设置的消耗费率
  
指令类型1[,时间参数]:指令参数
+
格式:TRY_RECRUIT_CARD*招募组ID
  
指令类型2[,时间参数]:指令参数
+
备注:招募成功后招募次数+1,直到下次招募刷新后招募次数清零。招募结果通过tagrecruit进行查询
 +
|-
 +
|GENERATE_ROLE
 +
|'''使用生成模板生成一名角色'''
 +
用途:使用生成模板生成一名角色
  
...
+
格式:GENERATE_ROLE*角色生成模板ID
  
当前支持的队列指令类型有:
+
备注:生成完毕后该角色会成为当前环境默认的操作对象角色,可以使用[$tagrole:INFO$]指令查询相关信息。
  
skill_cmd:执行技能指令:参数为一行技能指令
+
角色生成模板生成的角色ID为 "tmpl_" + 递增ID,生成角色在其他方面与普通非模板角色一致
 +
|-
 +
|GENERATE_ROLE_BY_GROUP
 +
|'''从角色生成模板组内抽取一个模板生成一名角色'''
 +
用途:从角色生成模板组内抽取一个模板生成一名角色
  
use_skill:使用技能:技能ID,技能等级#目标单位对象参数#目标位置参数
+
格式:GENERATE_ROLE_BY_GROUP*角色生成模板组1|角色生成模板组2……
  
event:执行战斗事件:战斗中事件ID#执行条件(可选)
+
备注:与GENERATE_ROLE功能一致,但是使用组ID进行抽取,可以填写多个组ID,会把各组合并后按概率进行抽取。
 +
|-
 +
| colspan="2" |'''以下指令适用于游戏版本≥1.1.0'''
 +
|-
 +
|PUSH_EVENT
 +
|'''插入并执行一个事件,执行完继续执行当前事件下一行'''
 +
用途:插入并执行一个事件,执行完继续执行当前事件下一行
  
move_to:移动至指定点:目标坐标参数#速度参数(该指令中时间参数无效,只有当单位正确到达目标后执行下一条)
+
格式:PUSH_EVENT*事件ID
 +
|-
 +
|INSERT_TRIGGER
 +
|'''通过触发器触发事件,触发的事件执行完后继续执行当前事件下一行'''
 +
用途:通过触发器触发事件,触发的事件执行完后继续执行当前事件下一行
  
set_dir:设置单位方向:参数为方向
+
格式:INSERT_TRIGGER*触发器类型#目标类型(全部则填any)#目标ID(全部则填any)#是否触发全部事件(0否 1是)
 +
|-
 +
| colspan="2" |'''以下指令需要激活DLC《比武大会》才能正常生效'''
 +
|-
 +
|MATCH_CONTINUE
 +
|'''推进比武大会进度'''
 +
用途:用于推进当前正在进行的比武大会进度,如生成对战表、模拟对战进度
  
keep_act:保持一个动作:动作ID(为空时表示待机动作)#循环次数(小于等于0为无限循环 默认1)#单次动作时间(<=0为始终保持 默认0)  注:此命令中时间参数无效,需等待动作循环执行结束为止,当无限循环时只有对该单位下达新指令方可结束动作保持
+
格式:MATCH_CONTINUE*比武大会ID#是否强制继续(0:否,1:是 默认0)
  
'''注意,以上命令中所有的坐标参数当为2参数时表示目标位置的x,y地图坐标,当3参数时第三个参数表示位置类型(0:地图坐标 1:战场坐标)'''
+
备注:如果强制继续,且当前比赛尚未进行,则会直接快速模拟比赛结果
 +
|-
 +
|MATCH_SET_BATTLE_RESULT
 +
|'''设置比武大会战斗结果'''
 +
用途:设置比武大会某场战斗的结果,用于设置战斗的胜利方
  
36. 设置一个单位的当前策略:SET_POLICY*目标对象ID#主策略类型#参数1#位置参数
+
格式:MATCH_SET_BATTLE_RESULT*比赛ID#比赛阶段#比赛结果(1:左方胜利,2:右方胜利)
  
当前支持的主策略类型有:
+
备注:比赛阶段:0~3 八进四 4~5 四进二 6 决赛,如果该阶段还未生成(未推进到该进度)将会设置失败
 +
|-
 +
|MATCH_SET_BATTLE_RESULT
 +
|'''设置比武大会当前阶段战斗结果'''
 +
用途:设置比武大会当前进行的战斗的结果,用于设置战斗的胜利方
  
0:强攻(参数为唤醒半径,小于等于0为无限距离)
+
格式:MATCH_SET_CUR_BATTLE_RESULT*比武大会ID#比赛结果(1:左方胜利,2:右方胜利)
 +
|-
 +
|MATCH_QUERY
 +
|'''查询符合结果的比武大会'''
 +
用途:对所有的比武大会进行查询,并将符合条件的结果存储在当前环境中
  
1:固守(参数为守卫半径)  
+
格式:MATCH_QUERY*判断条件
  
2:跟随(参数为跟随半径)
+
备注:结果可以使用[$match_query_first_id$]查询首个比武大会的ID、[$match_query_rnd_id$]查询其中随机一个比武大会的ID、[$match_query_ids$]查询所有符合条件的比武大会ID(使用|分割)、[$match_query_options$]返回所有符合条件的比武大会的选项组(用于SELECT命令)
 +
|-
 +
|MATCH_QUERY_PLACE
 +
|'''查询该地点符合结果的比武大会'''
 +
用途:对该地点的比武大会进行查询,并将符合条件的结果存储在当前环境中
  
3:攻略目标点
+
格式:MATCH_QUERY_PLACE*地点ID#获取的类型(0:全部 1:正在举办,包含准备中和比赛中 2:未举办)
  
 +
备注:结果同MATCH_QUERY
 +
|-
 +
|MATCH_TEAM_QUERY
 +
|'''查询可参加比武大会的队伍'''
 +
用途:查询所有可以参加比武大会的队伍,并按照参与概率挑选一只添加到环境变量中
  
37. 设置一个单位身上的计时器:SET_UNIT_TIMER*目标对象ID#计时器ID#时间参数(<=0时为关闭 只有当单位身上挂有”on_timer”触发器事件时有效)
+
格式:MATCH_TEAM_QUERY*比赛级别#必须包含的队伍标签(多个标签用|风格)#排除的队伍标签(多个标签用|风格)
  
38. 立即释放出当前吟唱中的技能:FINISH_CAST*目标对象ID#目标技能ID(只有当目标正在吟唱该技能时生效)
+
备注:
 +
比赛级别
 +
1 试炼赛
 +
2 锦标赛
 +
3 比武大会
  
39. 设置一个单位身上的基础属性(最终属性=基础属性+BUFF等附加属性):SET_UNIT_STAT*目标对象ID#属性信息表(格式为:字段1,值1|字段2.,值2|...)
+
队伍标签
 +
Candidate 候选队伍,一般最后才会参加比赛
 +
Powerful 强力队伍,每场比赛参赛的强力队伍有限
 +
Fixed 固定队伍,不会招募候选外的其他队员
  
40. 替换单位的当前技能表:REPLACE_SKILLS*目标对象ID#技能ID1,等级|技能ID2,等级|...|技能ID n,等级 (一次最多4个技能,当等级为0时表示移除该技能)
+
使用[%match_team_query_member_name:INDEX%]、[%match_team_query_member_id:INDEX%]等指令获取查询结果
 +
|-
 +
|SET_TAGMATCH
 +
|'''变更当前脚本中的比武大会'''
 +
用途:为当前脚本的环境变量设置默认的操作比武大会
  
41. 替换单位的地城技能:REPLACE_DGSKILL*目标对象ID#地城技能ID,等级(技能ID为空或者null表示关闭该角色地城技能)
+
格式:SET_TAGMATCH*比武大会ID
 +
|-
 +
|SET_TAGMATCH_BY_RESULT
 +
|'''通过结果代码变更当前脚本中的比武大会'''
 +
用途:通过结果代码设置当前环境中的比武大会,通常用于使用[$match_query_options$]在SELECT命令中注入选项后,通过该指令设置选择结果
  
42. 播放一条战场消息:BATTLE_MSG*消息内容#消息类型(0:普通 1:警告)
+
格式:SET_TAGMATCH_BY_RESULT*结果代码
  
43. 设置战斗结束检查器工作状态:SET_BATTLE_CHECKER*工作状态(0:关闭 1:开启)
+
使用范例:
 +
MATCH_QUERY_PLACE*[$tagplace:id$]#1
 +
SELECT*CUR_ROLE#选择该地点的比武大会#[$match_query_options$];0:离开
 +
SET_TAGMATCH_BY_RESULT*[$result_code$]
 +
|-
 +
|MATCH_ADD_TEAM
 +
|'''为比武大会手动添加队伍'''
 +
用途:为比武大会手动添加队伍
  
44. 显示手动结束战斗按钮:SHOW_BATTLEOVER_BTN*1
+
格式:MATCH_ADD_TEAM*比武大会ID#队伍类型(0:模板队伍 1:主角队伍 2:自定义队伍)#队伍信息#队伍名称(可选)#是否填充队员(0 否 1 是,默认0)
  
45.
+
备注:模板队伍的队伍信息为模板ID,主角队伍与自定义队伍的队伍信息为参赛人物ID列表,以“|”分隔,其中非主角队第一个角色ID为队长,队伍名称为可选参数,如果不填写则使用默认名称
  
===五、目前支命令结果的脚本定义如下:===
+
[$result_code$]返回添加结果 0 成功 1 比赛已满 2 该队伍已经被添加过 -99 其他错误
返回的结果格式为(以换行符分割):
+
|-
 +
|MATCH_SET_TEAM_NAME
 +
|'''设置比武大会小队名称'''
 +
用途:设置特定比武大会小队的名称
  
条件表达式组1:执行命令1
+
格式:MATCH_SET_TEAM_NAME*比赛Id#队伍索引#队伍名称
  
条件表达式组2:执行命令2
+
备注:队伍索引从0开始
 +
|}
  
...
+
===全局存档相关的操作指令===
 +
全局存档是用来记录一些所有存档共享的数据记录的存档。记录在全局存档中的数据更改后可以在所有不同的存档中进行访问。
 +
{| class="wikitable"
 +
|+
 +
!指令
 +
!说明
 +
|-
 +
|SET_GLOBAL_INTVAR
 +
|'''设置全局存档自定义整形变量'''
 +
用途:设置一个全局存档中的自定义整形变量。记录在全局存档中的自定义整形变量可以通过查询指令[%global_int:ID%]来进行查询访问。
  
条件表达式组N:执行命令N
+
格式:SET_GLOBAL_INTVAR*变量ID#当前int值
 +
|-
 +
|CHANGE_GLOBAL_INTVAR
 +
|'''修改全局存档自定义整形变量'''
 +
用途:修改一个全局存档中的自定义整形变量。
  
执行方式为:先判定条件表达式组1,如果成立则执行命令1,否则接着判定条件表达式组2……直到有任意一组成立,或者所有条件均不成立
+
格式: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
 +
|'''从全局存档取回角色状态'''
 +
用途:将指定的角色表的状态从全局角色状态表读入到当前游戏模式中
  
n 条件表达式组格式
+
格式:PULL_GLOBAL_ROLES*自定义全局存储Key(该Key值对应的角色必须为当前游戏模式人物模板表中存在的角色)
 +
|-
 +
|LOCK_CMD_QUEUE
 +
|'''锁定当前指令队列'''
 +
用途:锁定当前的指令队列,当锁定后切换游戏存档或者重置游戏模式时不会清空执行的指令队列
  
条件表达式组由多个形如" [%condition%][=]1"这样的条件表达式组成,以符号"|"() 或 符号”&”(与)进行连接,”&”(与)的优先级大于"|"(或)的优先级,当条件表达式左右值均为整数字符时,将返回其数值大小的比较结果,否则只能执行字符串比较切仅支持[=]和[<>]两种判定。
+
格式:LOCK_CMD_QUEUE*是否锁定(0否1是)
 +
|-
 +
|SWITCH_GAME_MODE
 +
|'''切换游戏模式'''
 +
用途:切换并载入到目标游戏模式
  
例如: [%result_code%][=]1| [%player_money%][>=]100 表示当结果为1或玩家身上有100金钱时执行
+
格式:SWITCH_GAME_MODE*目标游戏模式的ID
 +
|}
  
而 [%player:level%][>=]3| [%player_money%][>]100 表示玩家等级大于等于3并且身上的金钱大于100时执行
+
===内置指令列表===
 +
内置指令是指一些专门用于程序内部实现某些特定功能的指令。一般专门供一些特定脚本使用。
 +
{| class="wikitable"
 +
|+
 +
!指令
 +
!说明
 +
|-
 +
|ENCOUNTER
 +
|'''遭遇野怪UI'''
 +
用途:打开遭遇野怪信息面板                                                                                                 
  
n 以下为可支持的查询方法:
+
格式:ENCOUNTER*1
 +
|-
 +
|CHEST_INFO_DLG
 +
|'''宝箱守卫信息UI'''
 +
用途:打开宝箱守卫信息面板                                                                                       
  
1.  [%result_code%]:返回当前事件中最后一个有返回结果的命令结果值(比如在剧情事件脚本中代表返回的选择框选项、输入的数值、战斗的结果等)
+
格式:CHEST_INFO_DLG*宝箱ID
 +
|-
 +
|CHEST_COST_DLG
 +
|'''宝箱开启代价信息UI'''
 +
用途:打开宝箱开启代价信息面板                                                                         
  
以下为result_code在不同类型命令下返回的含义
+
格式:CHEST_COST_DLG*宝箱ID
 +
|-
 +
|CHEST_CALLBACK
 +
|'''宝箱开启逻辑回调'''
 +
用途:开启宝箱逻辑回调命令                                                                       
  
a) 当选择框返回时表示其选项ID
+
格式:CHEST_CALLBACK*回调代码(1:击败守卫 2:完成开启)#目标宝箱ID
 +
|-
 +
|EXEC_RECRUIT_CAPS
 +
|'''执行招募队伍中的俘虏判定'''
 +
用途:执行招募队伍中的俘虏判定                                                             
  
b) 当战斗结束返回时 0:战斗胜利  1:战斗失败
+
格式:EXEC_RECRUIT_CAPS*
 +
|}
 +
===脚本预设字段及含义===
 +
在脚本编辑中有时会使用一些特定的指令来替代具体的对象,比如CUR_ROLE可以用来替代当前遭遇对象的人物ID,这样就可以实现一些通用脚本编辑的应用场景。
  
c) 当整数输入框时为表示输入的数字
+
目前支持的预设字段有:
  
 +
*CUR_ROLE:当前遭遇人物模板的ID,专门用与对话框及选择框
 +
*CUR_BATTLE:当前遭遇的大地图刷新单位对应的战斗ID
  
2. [%rnd_num%]:返回一个0-100的整数
+
<br />
 +
===剧情事件中的结果脚本指令格式===
 +
剧情事件中结果脚本指令的格式为(以换行符分割):
 +
条件表达式组1:执行命令1
 +
条件表达式组2:执行命令2
 +
...
 +
条件表达式组N:执行命令N
 +
执行方式为:先判定条件表达式组1,如果成立则执行命令1,否则接着判定条件表达式组2……直到有任意一组成立,或者所有条件均不成立
  
3. [%last_rnd%]:返回上次产生的随机数
 
  
4. [%player_money%]:玩家身上的金钱数
+
===条件表达式组格式===
 +
条件表达式组由多个形如" [%CONDITION%][=]1"这样的条件表达式组成,以符号"|"(或) 或 符号"&"(与)进行连接,'''"&"(与)的优先级大于"|"(或)的优先级''',当条件表达式左右值均为整数字符时,将返回其数值大小的比较结果,否则只能执行字符串比较且仅支持[=]和[<>]两种判定。
  
5. [%player_wood%]:玩家拥有的木材数
+
如果需要改变表达式优先级,可以使用括号"("和")"包裹表达式。括号内的表达式会优先进行计算。
  
6. [%player_iron%]:玩家拥有的铁矿石数
+
例如:
  
7. [%player_jade%]:玩家拥有的玉石数
+
[%result_code%][=]1|[%player_money%][>=]100 表示当结果为1或玩家身上有100金钱时执行
 +
而[%player:level%][>=]3&[%player_money%][>]100 表示玩家等级大于等于3并且身上的金钱大于100时执行
  
8. [%player_food%]:玩家当前的饱食度
+
'''以下为条件表达式中支持的比较符号'''
  
9. [%player_water%]:玩家当前的饮水度
+
*[=]:等于
 +
*[>]:大于
 +
*[>=]:大于等于
 +
*[<]:小于
 +
*[<=]:小于等于
 +
*[<>]:不等于
  
10. [%game_time%]:当前游戏中的天数
 
  
11. [%is_gametime_night%]: 判断当前是否是晚上,如果是,返回1,否则为0
 
  
12. [%is_gametime_daytime%]: 判断当前是否是白天,如果是,返回1,否则为0
+
<br />
  
13. [%mod_day:MOD%]:当前游戏的天数对MOD取余的值
+
===游戏数据中运算值表达式系统说明===
 +
在游戏中很多地方可以以“[&expression&]”(返回整数)或“[@expression@]”(返回小数)的格式嵌入一些数值公式进去(如BUFF列表的状态值等)
  
14. [%generate_rob_money%]:生成当前等级遭抢劫时索取的金额
+
数值公式中支持一些基本数学运算,目前支持的运算符号如下:
  
15. [%rob_money%]:获取上次生成的抢劫索取金额
+
*+:加法运算
 +
*-:减法运算
 +
*<nowiki>*:乘法运算</nowiki>
 +
*/:除法运算
 +
*%:模运算(取余)
 +
*^:幂运算
 +
*( ):改变运算优先级
  
16. [%get_ts:ID%]:返回一个触发器当前的状态值 0正常 1关闭
 
  
17. [%get_es:ID%]:返回一个剧情事件当前的状态 -1:未执行 其他:返回Result Code
+
此外,当数值公式以 @func(expression1,expression2...) 的格式出现时,则调用相关的内置函数返回计算结果。目前支持的内置函数如下(注意:当前此等内置函数只能用于最外层的计算)
  
18. [%get_es_first_time:ID%]:返回一个剧情事件的首次完成时间
+
*@min(a,b):返回a与b中较小的一个值
 +
*@max(a,b):返回a与b中较大的一个值
  
19. [%get_es_time_score:ID:minTime:maxTime:maxScore%]:返回一个剧情事件的首次完成时间得分,minTime是设定的最短完成时间(在此时间前完成均为满分),maxTime是设定的最长完成时间(之后完成均为零分),maxScore为最高得分。
+
比如某段数据中[&1+2*3&]将会被替换为7,[&@max(1+2*3, 8)&]将会被替换为8,[&@min(1+2*3, 8)&]将会被替换为7……
  
20. [%int_val:ID%]:返回编号为ID的自定义int值
+
<br />
  
21. [%int_val_for_calc:ID%]:返回编号为ID的自定义int值用于计算,必定存在计算值,如果ID不存在则值为0
+
===剧情事件中可用的嵌入式查询指令===
 +
目前游戏中很多地方都支持插入嵌入式查询指令,通过这些查询指令,可以很方便的在一些文本或者条件表达式中插入我们想要的数值或者字符串类型的查询结果。所有嵌入式查询指令都是以[%QUERY:arg1:arg2...%]或者[$QUERY:arg1:arg2...$]这样的格式(两者等效)插入到目标位置的。
  
22. [%str_val:ID%]:返回编号为ID的自定义string值
+
'''注意:关于使用查询指令嵌套!'''
  
23. [%team_num%]:当前队伍总统御度
+
当前的指令系统不支持直接进行嵌套,如果需要对查询指令进行嵌套,则需要使用SET_SUBARG指令进行预替换。如<code>SETSTRVAR*[$tagrole:name:[$str_val:enemy$]$]</code>,替换后的指令如下:
  
24. [%team_max%]:当前队伍统御度上限
+
SET_SUBARG*[$str_val:enemy$]
 +
SETSTRVAR*[$tagrole:name:SUBARG$]
  
25. [%team_unit_number:兵种key%]:返回当前队伍某种兵的人数
+
同理,若有多层嵌套,如SETSTRVAR*[$tagrole:name:[$str_val:[$str_val:tag_enemy$]$]$],一一进行拆分即可
  
26. [%unit_name:兵种key%]:返回某种兵的名称
+
SET_SUBARG*[$str_val:tag_enemy$]
 +
SET_SUBARG*[$str_val:SUBARG$]
 +
SETSTRVAR*[$tagrole:name:SUBARG$]
  
27. [%item_number:物品key%]:返回背包中某种物品的数目
+
目前支持的查询指令列表如下:
 +
{| class="wikitable"
 +
|+
 +
!查询指令
 +
!说明
 +
|-
 +
|[%result_code%]
 +
|返回当前事件中最后一个有返回结果的命令结果值(比如在剧情事件脚本中代表返回的选择框选项、输入的数值、战斗的结果等)
 +
以下为result_code在不同类型命令下返回的含义
  
28. [%item_with_tag:tag%]:返回背包中具有某种tag的物品数目
+
*当选择框返回时表示其选项ID
 +
*当战斗结束返回时 0:战斗胜利  1:战斗失败
 +
*当整数输入框时为表示输入的数字
 +
|-
 +
|[%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%]
  
29. [%item_with_tag_and_level:tag:level%]:返回背包中具有某种tag、且物品等级>=level的物品数目
+
[%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%]
 +
|<nowiki>返回上一次人物选择框命令(ROLES_SELECTOR)选择的人物列表(注意,此方法不能用在条件表达式组中,因为当多个人物被选中后,其返回值中包含冲突的连接字符"|",可使用[%last_seled_roles_count%]来替代判断)</nowiki>
 +
|-
 +
|[%last_seled_roles_count%]
 +
|返回上一次人物选择框命令(ROLES_SELECTOR)选择的人物列表的数量
 +
|-
 +
|[%last_seled_soldiers%]
 +
|<nowiki>返回上一次卡牌选择框命令(CARD_SELECTOR)选择的卡牌列表(注意,此方法不能用在条件表达式组中,因为当多个卡牌被选中后,其返回值中包含冲突的连接字符"|",可使用[%last_seled_soldiers_count%]来替代判断)</nowiki>
 +
|-
 +
|[%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可为如下内容:
  
30. [%item_qualify_as_present:present_desc%]:返回背包中满足某种礼物描述字符串要求的道具数目。礼物描述字符串的格式参见人物列表excel中的Tag一列中的“Like”这个Tag的格式写法。
+
*id:角色ID
 +
*active_state:该角色的状态,0正常,-1不活跃
 +
*name:角色名称
 +
*gender:角色性别 0:男 1:女
 +
*level:角色等级
 +
*job_type:身份类型 0:百姓 1:阵营成员 2:城主 3:阵营领袖
 +
*campid:所属阵营ID
 +
*campname:所属阵营名称
 +
*campleaderid:所属阵营首领的ID
 +
*campleadername:所属阵营首领的名称
 +
*campleader:所属阵营首领的称呼
 +
*fame_val:个人名望值
 +
*maxhp:最大生命
 +
*maxmp:最大气力
 +
*job_cityid:任职地点ID
 +
*job_cityname:任职地点名称
 +
*state:当前状态:0:正常 1:被俘 -1:死亡
 +
*is_recruitable:是否可招募人物 0:不可 1:可招募
 +
*is_leave_team_enable:是否可以离队 0 不可以 1可以
 +
*recruit_val:当前可招募标记 0:不可 1:可招募
 +
*inteam:是否在玩家队伍中 0:不在 1:在
 +
*camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 +
*player_camp_rep:主角在目标阵营的声望值
 +
*player_camp_rep_desc:主角对目标阵营的声望值描述
 +
*fv:与玩家的友好度
 +
*player_relation_score:与玩家的综合好感评估
 +
*def_weapon_type:该角色可以使用的武器类型,-1为无限制
 +
*cur_weapon_type:该角色当前装备的武器类型
 +
*cur_armor_type:该角色当前装备的护甲类型
 +
*cur_weapon_atk_type:该角色当前装备的武器的伤害类型
 +
*weapon_tag=(自定义tag字段):查询装备武器上的指定tag,如果没有武器或者指定tag不存在,都会返回[$null$]
 +
*skill_level=(技能ID):查询人物目标技能的当前等级
 +
*skill_maxlevel=(技能ID):查询人物目标技能的最大等级
 +
*<del>skill_exp=(技能ID):查询人物目标技能的当前经验</del>
 +
*<del>skill_upexp=(技能ID):查询人物目标技能当前等级升级到下一级所需经验</del>
 +
*skill_page=(技能页ID):查询人物是否有指定技能页,1表示有,0表示没有
 +
*tag=(自定义扩展字段KEY):返回指定的自定义字段值
 +
*statu=(自定义ID):查询人物属性表里的相应ID的值。如果没有则返回[$null$]
 +
*statu_int=(自定义ID):查询人物属性表里对应ID的int值,没有返回0
 +
*statu_extra=(自定义ID):查询人物额外属性表(通过HERO_UPGRADE和HERO_SET_STATU添加的额外属性)里对应ID的int值,没有返回0
 +
*has_girl_friend:【主角专用】是否有女友,1表示有,0表示没有
 +
*current_girl_friend_name:【主角专用】女友姓名
 +
*girl_friend=角色ID:【主角专用】查询某人是否为主角女友
 +
*is_female:是否为女性角色,1表示是,0表示不是
 +
*available_quest:可用任务
 +
*int_val:返回挂在在角色身上的整形可存储变量(SET_ROLE_INTVAR指令所操作)
 +
*str_val:返回挂在在角色身上的字符串可存储变量(SET_ROLE_STRVAR指令所操作)
 +
*nature_val=(性格ID):返回指定的角色性格字段
 +
*noble_title:返回角色在所在阵营的爵位名称
 +
*noble_rank:返回角色当前在所在阵营的爵位等级
 +
*auth_info:返回角色当前在所在阵营的爵位对应的权限信息
 +
*present_timer:返回此角色当前距上一次送礼后过去的时间整数(天)
 +
*role_fv=(角色ID):返回角色与另外一个角色间的关系
 +
*cur_place:返回角色所在的地点ID,如果是在野外返回空
 +
*fief_count=(领地类型):查询角色当前的领地数量,领地类型有:0=全部 1=仅限主城 2=仅限村庄
 +
*avatar:返回该角色目前的立绘数据,其中使用了$替代#字符
 +
*model:返回该角色目前的模型数据,其中使用了$替代#字符。注:模型数据可能因为装备变更而变动
 +
*model_raw:返回该角色的原始模型数据,角色定义表中的模型或者自定义的模型数据,其中使用了$替代#字符
 +
*desc:返回角色的背景介绍信息,对应角色表中的Desc标签。其中换行符会被替换为\n
 +
|-
 +
|[$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可为如下内容:
  
31. [%item_name:物品ID%]:返回物品的显示名称
+
*id:地点ID
 +
*name:地点名称
 +
*campid:所属阵营ID
 +
*mapid:所属地图ID
 +
*campname:所属阵营名称
 +
*prosperity:当地繁荣度
 +
*defence:当地城防值
 +
*rep:当地好感度
 +
*security:当地治安值
 +
*size:地点规模值
 +
*lord_id:城主角色ID
 +
*lord_name:城主角色名称
 +
*tag=(自定义扩展字段KEY):返回指定的自定义字段值
 +
*is_stronghold:是否据点类型(可驻守军队)
 +
*is_weekhold:不可驻守军队的【资源点】
 +
*is_couldoccupy:当前是否可攻占
 +
*is_couldraid:当前是否可掠夺
 +
*is_inwar:当前地点是否正在战斗中
 +
*is_raided:地点当前是否已被掠夺(处于恢复期)
 +
*is_subplace:当前是否附属地点
 +
*stat=(状态值字段ID):获取当前地点的指定状态值
 +
*building=(指定设施ID):查询地点内指定建筑ID的设施数量(包含建设中的)
 +
*building_t=(指定设施类型):查询当地指定类型的设施数量(包含建设中的)
 +
*r_building=(指定设施ID):查询地点内指定建筑ID的设施数量(不包含建设中的)
 +
*r_building_t=(指定设施类型):查询当地指定类型的设施数量(不包含建设中的)
 +
*custom_int=(自定义字段ID):获取当前地点的整形自定义字段值
 +
*camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 +
*func_map=(指定字段KEY):查询对应指令事件映射表映射的字段,如func_map=hirelist
 +
*player_rep:玩家在该处的声望
 +
*hire_states:查询该处的招募状态
 +
*player_dist:玩家当前位置距离该地点的距离,如果不可达,则返回-1.
 +
*project_count:当前正在进行中的项目建设数量
 +
*project_max:当前进行项目建设的最大数量
 +
*score:地点的综合实力评估分数
 +
*pos:地点的位置信息
 +
*last_occupy_leader:7天内攻占此地的上一个占领者队长ID
 +
*first_candidate:当前地点所属阵营对该城城主的第一候选人ID
 +
*tournament:返回当地是否正在举办比武大会,是1否0
 +
*tournament_roles=最大显示数量:打印当前参与比武大会的角色列表,超过最大显示数量时以("...")省略超出者名单
 +
*roles_num=场景名称:该场景(酒馆,领主大厅,城镇中心)的角色数量
 +
|-
 +
|[$tagmap:INFO:ID$]
 +
|查询一个地图区块的信息:
  
32. [%admin_level%]:返回玩家在当地的管理权限 0:无 1:任职 2:城主 3:阵营领袖
+
*id:区块id
 +
*name:区块名称
 +
*dominant_camp:如果存在完全统治的势力,则返回该势力名称,不存在则返回空
 +
*dominant_camps=(自定义字段ID):如果仅存在某几个指定id的势力,则返回1,否则返回0,自定义字段格式:势力1#势力2#势力3
 +
*camp_place_count=势力ID:返回在该区块某势力的据点数目
 +
*ExploreInfo=Info ID:查询某个探索地图信息的值
 +
|-
 +
|[$tagbuilding:INFO$]
 +
|查询当前目标建筑信息
  
33. [%gametime_elapse:ID%]:返回距上次设置的自定义游戏时间点ID过去的游戏时间(整数天数,算法是:(当前时间-ID时间)后取整。
+
*id:建筑ID
 +
*name:名称
 +
*inner_id:目标建筑的地点内置ID
 +
*type:建筑类型
 +
*level:建筑等级
 +
*tag=(自定义扩展字段KEY):返回指定的自定义字段值
 +
*container_id:绑定在此建筑的容器实例ID
 +
*container_info:绑定在此建筑的容器信息ID
 +
|-
 +
|[$tagwb:INFO$]
 +
|查询当前遭遇战斗的信息INFO可为如下内容
  
34. [%gametime_elapse_by_day:ID%]:返回距上次设置的自定义游戏时间点ID过去的游戏时间(整数天数,算法是:(当前所在的天-ID所在的天)。一般用于一天内只能触发一次的事件。
+
*id:战斗ID
 
+
*camp_a:参战A方的阵营ID
35. [%tag_gametime_elapse%]:返回预先设置的动态tag的gametime_elapse,如果没有预先设置的动态tag,或者没有该ID,则返回-1。算法是:(当前时间-ID时间)后取整
+
*camp_b:参战B方的阵营ID
 
+
*leader_a:参战A方的领袖人物ID
36. [%tag_gametime_elapse_by_day%]:返回预先设置的动态tag的gametime_elapse,如果没有预先设置的动态tag,或者没有该ID,则返回-1。算法是:(当前所在的天-ID所在的天),通常用于一天内只能触发一次的事件判断。
+
*leader_b:参战B方的领袖人物ID
 
+
*camp_a_rl:参战A方与主角阵营的关系
37. [%is_custom_cd:ID%]:返回编号为ID的自定义CD时间是否已就绪(1:是 0:否)
+
*camp_b_rl:参战B方与主角阵营的关系
 
+
*teamname_a:参战A方的阵营及将领名称
38. [%has_gametime_elapse_tag:ID%]:查询上述的自定义游戏时间点ID是否存在(存在1,不存在0)
+
*teamname_b:参战B方的阵营及将领名称
 
+
*seige_time:当前战斗攻城战的准备时间,如果它是攻城战的话(单位:天)
39. [%realtime_elapse:ID%]:返回距上次设置的自定义现实时间点ID过去的现实时间(秒)
+
|-
 
+
|[$tagteam:INFO(:QUERY_INFO)$]
40. [%qs:ID%]:返回指定任务ID的状态值0:未领取 1:进行中 2:已完成 3:已终结
+
[$playerteam:INFO$]
 
+
|查询当前遭遇队伍(tagteam)/主角队伍(playerteam)的信息。
41. [%qs:ID:index%]:返回指定任务ID的子项值,index为从0开始的子项序号
+
当查询为tagteam时,可以选择指定队伍查询参数,当指定队伍查询参数指定时,只返回查询目标的信息
 
 
42. [%get_flag:ID%]:返回一个完成标记的当前值,没有值则返回-1
 
 
 
43. [%camp_rep:ID%]:返回主角对目标阵营ID的声望值
 
 
 
44. [%is_wanted_by_tagcamp%]: 返回主角是否被目标阵营通缉,0否,1是
 
 
 
45. [%is_player_triggered_encounter%]:一个遭遇对话是否是由玩家主动点击的,0否,1是。(如果玩家是被其他人追上的情况下触发对话,则此值为0)
 
 
 
46. [%place_rep:ID%]:返回主角对目标地点的声望值
 
 
 
47. [%unlock_check%]:返回当前队伍及所持物品最高的开锁等级
 
 
 
48. [%arg_int_val1%]:当前事件数值参数(此外还可用arg_int_val2,arg_int_val3)
 
 
 
49. [%g_buffs%]:返回当前队伍全局BUFF的个数
 
 
 
50. [%last_battle_res%]:上一次战斗的战斗结果 0:胜利 1:失败 2:撤退
 
 
 
51. [%last_dungeon_res%]:上一次地城的结果 0:退出 1:通过 2:失败
 
 
 
52. [%g_buff:ID%]:查询当前队伍是否存在目标ID的全局BUFF,存在返回1
 
 
 
53. [%g_buff_c:CLASS%]:查询当前队伍当前类型为CLASS的全局BUFF的个数
 
 
 
54. [%g_stat:STAT_FILED%]:返回当前队伍状态中字段为STAT_FILED的当前值
 
 
 
55. [%has_KeyValues:ID%]:直接对存储中的KV进行查询,存在相应KV为1,不存在为0
 
 
 
56. [%get_KeyValues:ID%]:直接对存储中的KV进行查询,存在相应KV返回相应值,不存在为空
 
 
 
57. [%rnd_place_id:CAMP_ID%]:返回一个由一个势力控制的随机地点id,如果没有camp_id则返回主角势力控制的随机地点id
 
 
 
58. [%last_rnd_place_id%]:返回上一个生成的随机地点id
 
 
 
59. [%last_rnd_place_name%]:返回上一个生成的随机地点的名称
 
 
 
60. [%last_rnd_place_map_name%]:返回上一个生成的随机地点的所在地图名称
 
 
 
61. [%last_rnd_place_products%]:返回当前地点的每周期产出列表,符合GETITEMS的物品格式
 
 
 
62. [%last_rnd_place_products_name%]:返回当前地点的每周期产出描述
 
 
 
63. [%last_rnd_place_has_products%]:当前地点每周期是否有产出,1为有产出,0无
 
 
 
64. [%last_seled_items%]:返回上一次物品选择框命令(ITEMS_SELECTOR)选择的物品列表
 
 
 
65. [%last_seled_roles%]:返回上一次人物选择框命令(ROLES_SELECTOR)选择的人物列表
 
 
 
66. [%weather:ID%]:查询当前地图中指定ID的天气效果的当前值
 
 
 
67. [%monster_news:X:Y%]:查询当前地图中坐标为(X,Y)附近的野怪信息,X/Y不填则为主角当前队伍所在位置信息
 
 
 
68. [%attack_intend_code%]:查询当前相遇的地图单位对玩家的攻击意图,详情见MuUnitBase.IntendToAttack
 
 
 
69. [%place_randmom_pos%]查询一个地点所在位置附近的随机位置,输出特定的字符串如:沙盒红石城:123,123
 
 
 
70. [%tag_role_with_role_relation%]输入参数和tagrole或place的关系
 
 
 
71. [%tag_role_with_city_relation%]tagrole和输入的role的关系
 
 
 
72.
 
 
 
 
 
此外还有一些字符串返回类型的查询方法
 
 
 
1. [$player:INFO$]:查询主角的信息INFO可为如下内容
 
 
 
id:角色ID
 
 
 
name:角色名称
 
 
 
level:角色等级
 
 
 
job_type:身份类型 0:百姓 1:阵营成员 2:城主 3:阵营领袖
 
 
 
campid:所属阵营ID
 
 
 
campname:所属阵营名称
 
 
 
campleaderid:所属阵营首领的ID
 
 
 
campleadername:所属阵营首领的名称
 
 
 
campleader:所属阵营首领的称呼
 
 
 
fame_val:个人名望值
 
 
 
maxhp:最大生命
 
 
 
maxmp:最大气力
 
 
 
job_cityid:任职地点ID
 
 
 
job_cityname:任职地点名称
 
 
 
state:当前状态:0:正常 1:被俘 -1:死亡
 
 
 
is_recruitable:是否可招募人物 0:不可 1:可招募
 
 
 
is_leave_team_enable:是否可以离队 0 不可以 1可以
 
 
 
recruit_val:当前可招募标记 0:不可 1:可招募
 
 
 
inteam:是否在玩家队伍中 0:不在 1:在
 
 
 
camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 
 
 
camp_fv_val:目标阵营与主角阵营之间的友好度具体值
 
 
 
fv:与玩家的友好度
 
 
 
player_relation_score:与玩家的综合好感评估
 
 
 
weapon_tag=(自定义tag字段):查询装备武器上的指定tag,如果没有武器或者指定tag不存在,都会返回[$null$]
 
 
 
skill_level=(技能ID):查询人物目标技能的当前等级
 
 
 
skill_maxlevel=(技能ID):查询人物目标技能的最大等级
 
 
 
skill_exp=(技能ID):查询人物目标技能的当前经验
 
 
 
skill_upexp=(技能ID):查询人物目标技能当前等级升级到下一级所需经验
 
 
 
statu=(自定义ID):查询人物属性表里的相应ID的值。如果没有则返回[$null$]
 
 
 
statu_int=(自定义ID):查询任务属性表里对应ID的int值,没有返回0
 
 
 
has_girl_friend:【主角专用】是否有女友,1表示有,0表示没有
 
 
 
current_girl_friend_name:【主角专用】女友姓名
 
 
 
girl_friend=角色ID:【主角专用】查询某人是否为主角女友
 
 
 
is_female:是否为女性角色,1表示是,0表示不是
 
 
 
需补充的(PY添加代码未说明):
 
 
 
haunting_chara
 
 
 
present_cd_clear
 
 
 
word
 
 
 
action_cost
 
 
 
current_patience
 
 
 
learn_list
 
 
 
could_learn_from
 
 
 
available_quest
 
 
 
 
 
2. [$called:call1:call2$]:玩家称呼(当为男性时返回call1,当为女性时返回call2)
 
 
 
3. [$null$]:替换为空字符串
 
 
 
4. [$trig_tagtype$]:当前执行事件的触发对象类型
 
 
 
5. [$trig_tagid$]:当前执行事件的触发对象ID
 
 
 
6. [$input_str$]:前一个输入框的输入结果
 
 
 
7. [$tagrole:INFO:ID$]:查询对象人物ID的信息,当人物ID字段不存在时为当前交互对象。INFO项同[$player:INFO$]
 
 
 
8. [$argvs:INDEX$]:查询当前附加的参数信息,编号从0开始。(当前用于随机事件的参数填充)
 
 
 
9. [$tagplace:INFO:ID$]:查询一个地点的信息,当地点ID字段不存在时为查询当前地点
 
  
 
INFO可为如下内容
 
INFO可为如下内容
  
id:地点ID
+
*id:队伍ID
 +
*is_active:当前队伍状态是否正常,正常返回1
 +
*campid:所属阵营ID
 +
*campname:所属阵营名称
 +
*state_num:当前队伍的StateNum值
 +
*from_id:来自地点的ID
 +
*from_name:来自地点的名称
 +
*lifetime:队伍自创建以来经历的游戏时间(天数)
 +
*camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 +
*max_attr_lv=属性字段ID: 队伍中所有角色中某属性的最高值
 +
*total_attr_lv=属性字段ID: 队伍中所有角色中某属性的总值
 +
*exist_role=角色ID:返回队伍是否存在某人物ID,是返回1否0
 +
*roles_count:队伍中英雄数量
 +
*soldiers_count:队伍中小兵数量
 +
*role_vacancy:队伍剩余的英雄可用位置
 +
*soldier_vacancy:队伍剩余的可用小兵卡牌位置
 +
*map_info:当前地图位置信息
 +
*tag:返回队伍的TAG标签
 +
*is_defeated:是否被击败而解散的 0:否 1:是
 +
*defeated_by:被目标势力打败的势力ID
 +
*score:队伍的实力评估分数
  
name:地点名称
+
QUERY_INFO格式为: [查询类型]=[查询目标]  如:  leader=ROLE_ID
  
campid:所属阵营ID
+
当前支持的查询类型有:
  
mapid:所属地图ID
+
*bind_id:绑定的信息ID,当队伍类型为野怪或假人时为其对应ID,当为其他类型时为队长人物ID
 +
*leader:队伍的队长ID
 +
*tag:队伍的TAG标记(用于CREATE_TEAM指令创建的队伍)
  
campname:所属阵营名称
+
<br />
 +
|-
 +
|[$tagcamp:INFO:ID$]
 +
|查询目标阵营信息,当ID不存在时为查询当前阵营。INFO可为如下内容
  
prosperity:当地繁荣度
+
*id:势力ID
 +
*campname:阵营名称
 +
*leaderid:领袖ID
 +
*leadercalled:阵营领袖的称呼
 +
*lands_count:当前该势力的领地数量
 +
*camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 +
*camp_rl_value :目标阵营与主角阵营之间的好感度具体数值
 +
*stat=(状态值字段ID):获取当前阵营的指定状态值
 +
*buff=(目标BUFF的ID):查询当前阵营指定BUFF是否存在(1为是)
 +
*buff_c=(BUFF类型):查询当前阵营指定类型的BUFF数量
 +
*active_state:目标阵营的活跃状态 0:不活跃 1:活跃
 +
*is_story_camp:是否剧本阵营 0:否 1:是
 +
*player_rep:主角在此阵营的声望值
 +
*attitude:阵营对主角的态度 0:正常  -1:通缉  -2:战争
 +
*is_fall:阵营是否已灭亡 0:否 1:是
 +
*weight=(倾向类型): 查询目标类型的倾向(见SET_CAMP_WEIGHT)不存在则返回0
 +
*role_count:阵营内领主数量
 +
|-
 +
|[$tagbazzar:INFO$]
 +
|查询当前系统传入的集市的信息
  
defence:当地城防值
+
*start_day:集市的开始天数
 +
|-
 +
|[$tagbazzarItem:INFO:bazzarID:merchantID$]
 +
|查询某个集市的某个商人在当前时候买/卖的货物信息
  
rep:当地好感度
+
*item_desc:货物的描述(详细)
 +
*item_desc_short:货物的描述(简略)
 +
*item_buy_price:货物的购买价格
 +
*item_sell_price:货物的卖出价格
 +
|-
 +
|[$tagproduct:INFO:ID$]
 +
|查询某种特产的信息,ID不填时查询当前传入的特产信息
  
security:当地治安值
+
*item_name:对应道具的名称
 
+
*item_id:对应道具的ID
size:地点规模值
+
*item_level:对应道具的等级
 
+
*item_price:对应道具的单个公允价
lord_id:城主角色ID
+
*player_dist:该特产的中心位置离玩家当前位置的距离,-1表示该中心位置玩家不可达
 
+
*place_include=地点ID:返回0表示指定地点没有售卖对应的道具,1表示指定地点在售卖对应的道具
tag=(自定义扩展字段KEY):返回指定的自定义字段值
+
*place_include_tagQuestPlace:自动使用当前传入的任务发生地点信息来进
 
+
|-
is_stronghold:是否据点类型(可驻守军队)
+
|[$tagTextExplore:INFO:ID:copyID$]
 
+
|查询某个文字探索地图的信息,copyID是因为探索地图可能存在多份副本,可以不填(基本上只有系统传入参数才会填这个copyID)。不填就是地图上可见的那种探索地图。
is_weekhold:不可驻守军队的【资源点】
 
 
 
is_couldoccupy:当前是否可攻占
 
 
 
is_couldraid:当前是否可掠夺
 
 
 
is_raided:地点当前是否已被掠夺(处于恢复期)
 
 
 
is_subplace:当前是否附属地点
 
 
 
towers:当前地点的箭塔数量
 
 
 
max_towers:当前地点最大箭塔数量
 
 
 
stat=(状态值字段ID):获取当前地点的指定状态值
 
 
 
building=(指定设施ID):查询地点内指定建筑ID的设施数量
 
 
 
building_t=(指定设施类型):查询当地指定类型的设施数量
 
 
 
custom_int=(自定义字段ID):获取当前地点的整形自定义字段值
 
 
 
camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 
 
 
func_map=(指定字段KEY):查询对应指令事件映射表映射的字段,如func_map=hirelist
 
 
 
player_rep:玩家在该处的声望
 
 
 
hire_states:查询该处的招募状态
 
 
 
player_dist:玩家当前位置距离该地点的距离,如果不可达,则返回-1.
 
 
 
 
 
[$tagmap:INFO:ID$]:查询一个地图区块的信息:
 
 
 
id:区块id
 
 
 
name:区块名称
 
 
 
dominant_camp:如果存在完全统治的势力,则返回该势力名称,不存在则返回空
 
 
 
dominant_camps=(自定义字段ID):如果仅存在某几个指定id的势力,则返回1,否则返回0,自定义字段格式:势力1#势力2#势力3
 
 
 
camp_place_count=势力ID:返回在该区块某势力的据点数目
 
 
 
ExploreInfo=Info ID:查询某个探索地图信息的值
 
 
 
 
 
10. [$tagbuilding:INFO$]:查询当前目标建筑信息
 
 
 
id:建筑ID
 
 
 
name:名称
 
 
 
inner_id:目标建筑的地点内置ID
 
 
 
type:建筑类型
 
 
 
level:建筑等级
 
 
 
tag=(自定义扩展字段KEY):返回指定的自定义字段值
 
 
 
 
 
11. [$tagwb:INFO$]:查询当前遭遇战斗的信息INFO可为如下内容
 
 
 
id:战斗ID
 
 
 
camp_a:参战A方的阵营ID
 
 
 
camp_b:参战B方的阵营ID
 
 
 
leader_a:参战A方的领袖人物ID
 
 
 
leader_b:参战B方的领袖人物ID
 
 
 
camp_a_rl:参战A方与主角阵营的关系
 
 
 
camp_b_rl:参战B方与主角阵营的关系
 
 
 
teamname_a:参战A方的阵营及将领名称
 
 
 
teamname_b:参战B方的阵营及将领名称
 
 
 
12. [$tagteam:INFO$]/[$playerteam:INFO$]:查询当前遭遇队伍的信息INFO可为如下内容
 
 
 
id:队伍ID
 
 
 
campid:所属阵营ID
 
 
 
campname:所属阵营名称
 
 
 
state_num:当前队伍的StateNum值
 
 
 
from_id:来自地点的ID
 
 
 
from_name:来自地点的名称
 
 
 
lifetime:队伍自创建以来经历的游戏时间(天数)
 
 
 
camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 
 
 
max_attr_lv=属性字段ID: 队伍中所有角色中某属性的最高值
 
 
 
exist_role=角色ID:返回队伍是否存在某人物ID,是返回1否0
 
 
 
role_vacancy:队伍剩余的英雄可用位置
 
 
 
soldier_vacancy:队伍剩余的可用小兵卡牌位置
 
 
 
map_info:当前地图位置信息
 
 
 
 
 
13. [$tagcamp:INFO:ID$]:查询目标阵营信息,当ID不存在时为查询当前阵营 INFO可为如下内容
 
 
 
id:势力ID
 
 
 
campname:阵营名称
 
 
 
leaderid:领袖ID
 
 
 
leadercalled:阵营领袖的称呼
 
 
 
lands_count:当前该势力的领地数量
 
 
 
camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
 
 
 
camp_rl_value :目标阵营与主角阵营之间的好感度具体数值
 
 
 
stat=(状态值字段ID):获取当前阵营的指定状态值
 
 
 
buff=(目标BUFF的ID):查询当前阵营指定BUFF是否存在(1为是)
 
 
 
buff_c=(BUFF类型):查询当前阵营指定类型的BUFF数量
 
 
 
active_state:目标阵营的活跃状态 0:不活跃 1:活跃
 
 
 
 
 
[$tagbazzar:INFO$]:查询当前系统传入的集市的信息
 
 
 
start_day:集市的开始天数
 
 
 
 
 
[$tagbazzarItem:INFO:bazzarID:merchantID$]:查询某个集市的某个商人在当前时候买/卖的货物信息
 
 
 
item_desc:货物的描述(详细)
 
 
 
item_desc_short:货物的描述(简略)
 
 
 
item_buy_price:货物的购买价格
 
 
 
item_sell_price:货物的卖出价格
 
 
 
 
 
[$tagproduct:INFO:ID$]:查询某种特产的信息,ID不填时查询当前传入的特产信息
 
 
 
item_name:对应道具的名称
 
 
 
item_id:对应道具的ID
 
 
 
item_level:对应道具的等级
 
 
 
item_price:对应道具的单个公允价
 
 
 
player_dist:该特产的中心位置离玩家当前位置的距离,-1表示该中心位置玩家不可达
 
 
 
place_include=地点ID:返回0表示指定地点没有售卖对应的道具,1表示指定地点在售卖对应的道具
 
 
 
place_include_tagQuestPlace:自动使用当前传入的任务发生地点信息来进行输出
 
 
 
available_places:返回一连串售卖该特产对应道具的地点描述
 
 
 
 
 
[$tagTextExplore:INFO:ID:copyID$]:查询某个文字探索地图的信息,copyID是因为探索地图可能存在多份副本,可以不填(基本上只有系统传入参数才会填这个copyID)。不填就是地图上可见的那种探索地图。
 
 
 
finishCount:探索地图完成次数
 
 
 
InCD:0表示没有CD概念或者CD已经ok,1表示正在冷却中
 
 
 
 
 
[$tagquest:INFO:ID$]:查询任务信息
 
  
 +
*finishCount:探索地图完成次数
 +
*InCD:0表示没有CD概念或者CD已经ok,1表示正在冷却中
 +
|-
 +
|[$tagquest:INFO:ID$]
 +
|查询任务信息
 
status:0:未领取 1:进行中 2:已完成 3:已超时(等待超时惩罚) 4:已超时(等待自动领取奖励) 5:已终结
 
status:0:未领取 1:进行中 2:已完成 3:已超时(等待超时惩罚) 4:已超时(等待自动领取奖励) 5:已终结
 +
|-
 +
|[$arg_str_val1$]
 +
[$arg_str_val2$]
  
[$fixed_order:INFO$]:查询当前固定命令的信息,当固定命令不存在时必定返回[$null$]
+
[$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可为以下内容
  
sub_type:命令的子类型
+
*id:物品ID
 +
*name:物品名称
 +
*count:物品数量
 +
*group_n:最大堆叠数量
 +
*quality:物品品质
 +
*level:物品等级
 +
*main_type:物品主类型
 +
*sub_type:物品子类型
 +
*equip_type:装备类别
 +
*gendays:生产日期距离今天已有的天数
 +
*durability:当前耐久度
 +
*max_durability:最大耐久度
 +
*info:该物品的物品信息格式(可用于GETITEMS获取物品等)
 +
*can_equip=(目标角色ID):该角色是否可以装备物品
 +
*tag=(自定义扩展字段KEY):返回指定的自定义字段值
 +
|-
 +
|[$tagproject:INFO:ID$]
 +
|查询一个项目的信息,如果不填ID将从SET_TEMP_ID指定的id中读取。
  
argv_index=(参数编号,从0开始):查询当前命令的相应编号参数
+
*id:项目id
 +
*state:项目状态(仅团体项目有效) 0:未开始 1:进行中 2:已完成
 +
*showPlaceName:项目执行地点描述
 +
*showProjectName:项目名称
 +
*roles:当前参与项目的所有角色
 +
|-
 +
|[$tagunit:INFO$]
 +
|查询当前查询目标小兵单位的信息
  
14. [$temp_order:INFO$]:查询当前临时命令的信息,当临时命令不存在时必定返回[$null$]
+
*id:单位id
 +
*name:单位名称
 +
*level:单位等级
 +
*statu=(自定义ID):查询单位属性表里的相应ID的值
 +
|-
 +
|[$tagcard:INFO$]
 +
|查询脚本环境中卡牌的信息
  
sub_type:命令的子类型
+
*id:卡牌绑定的id
 +
*name:卡牌显示名
 +
*lv:卡牌等级
 +
*recruit_name:卡牌带有招募信息的显示名称
 +
*tag=(自定义扩展字段KEY):返回卡牌指定的Tag字段值
 +
*has_tag=(自定义扩展字段KEY):查询是否有指定的卡牌Tag字段 1是 0否
 +
*weapon_type:卡牌相关单位的武器类型
 +
*attack_type:卡牌相关单位的攻击类型
 +
*armor_type:卡牌相关单位的护甲类型
 +
*gem_slots:当前卡牌宝石插槽数量
 +
*tier:卡牌的等阶
 +
*class:单位类型
 +
*statu=(自定义ID):查询卡牌相关单位属性表里的相应ID的值
  
argv_index=(参数编号,从0开始):查询当前命令的相应编号参数
+
<br />
 +
|-
 +
|[$tagrecruit:INFO:ID$]
 +
|查询招募组的信息,如果不填ID将使用脚本中的招募组进行查询(通过SET_RECRUIT_CARD或SET_TAG_RECRUIT_GROUP进行设置)
  
15. [$arg_str_val1$]:当前事件字符参数(此外还可用arg_str_val2,arg_str_val3)
+
*id:招募组ID
 +
*cardId:当前可招募的卡牌ID
 +
*recruit_count:已经进行过的招募次数,在招募组刷新后重置
 +
*last_refresh_time:上一次招募组刷新时的游戏天数
 +
*recruit_time_elapsed:距离上一次招募刷新过去的游戏天数
 +
*refresh_cd:当前的刷新CD,若未设置则为0
 +
*in_cd:是否处于刷新CD期,0是,1否
 +
*recruit_cost:招募需要的道具列表信息
 +
*recruit_cost_desc:招募需要的道具描述
 +
*recruit_cost_rate:招募费率,默认为100,即100%费率
 +
*last_recruit_result:上次招募的结果,1成功,0跳过,-1达到卡牌上限,-2资源不足,-99其他失败情形
  
16. [$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”
+
<br />
 +
|-
 +
|[$save_version$]
 +
|返回当前游戏存档创建时的版本号
 +
|-
 +
|[$version_compare:TAG_VERSION$]
 +
|用当前游戏存档创建时的版本号与TAG_VERSION进行比较,如果大于TAG_VERSION返回1,等于TAG_VERSION返回0,小于TAG_VERSION返回-1
 +
|-
 +
|[$tagmsg:INFO$]
 +
|查询当前可交互消息的信息
  
17. [$tagitem:INFO$]:查询当前物品的信息,INFO可为以下内容
+
*title:标题
 +
*content:消息内容
 +
*arg=(字段KEY值):查询此消息自定义参数表中字段为KEY的参数值
 +
|-
 +
|[$tagtimer:INFO:ID$]
 +
|查询目标计时器的信息
  
id:物品ID
+
*id:计时器ID
 +
*state:计时器状态:0:不存在 1:已启动
 +
*last_time:距离目标时间的天数,整数,向上取整
 +
*last_time_float:距离目标时间的天数,精确到小数点后2位
 +
*tag_time:目标天数
 +
*tag_time_float:目标天数,精确到小数点后2位
 +
*event_id:计时器触发的事件
 +
*str_arg:计时器绑定的字符串信息
 +
|-
 +
|[$lua_str:KEY$]
 +
|返回定义在游戏核心逻辑脚本中的 GetLuaStringVal 接口的值 KEY为查询参数
 +
|-
 +
|[$lua_int:KEY$]
 +
|返回定义在游戏核心逻辑脚本中的 GetLuaIntVal接口的值 KEY为查询参数
 +
|-
 +
|[%envoy_enable%]
 +
|返回当前玩家自己的势力中的外交信使是否可用
 +
|-
 +
|[$quest_clues$]
 +
|专门用于向SELECT指令中插入当前任务列表相关的线索选项,使用方法为具体如下:
  
name:物品名称
+
在任务表中的“可打听选项_NPCQueryList”列中,按照下列格式填入线索选项及事件信息,可支持多行,格式为:CLUE#[条件表达式组]#选项显示名称#触发事件ID(可以用“SUB_EVENT.”开头表示执行完该事件后返回当前选择事件)
 +
|-
 +
|[$tag_wander_npc:INFO:ID$]
 +
|查询游荡NPC的信息,当游荡NPC ID字段不存在时为查询当前环境变量中的游荡NPC
 +
INFO可为如下内容:
  
count:物品数量
+
*id: 地点ID
 +
*bind_npc: 绑定的NPC
 +
*in_place=(地点ID): 是否存在于某个地点之中,游荡NPC有多个实例时,可能同时存在于多个地点里。
 +
|-
 +
|[$tag_container:INFO:容器实例ID,容器模板ID$]
 +
|查询目标容器的信息,当容器实例ID与模板ID信息为空时为查询当前环境变量中的容器
 +
INFO可为如下内容:
  
group_n:最大堆叠数量
+
*instance_id: 容器的实例ID,若容器为地点容器,则为地点的ID
 +
*template_id: 容器的模板ID,若容器为地点容器,则为place
 +
*capacity: 容器的存储容量
 +
*item_count: 容器的已有元素数量(物品类容器为物品数量,卡牌类容器为兵种数量)
 +
*item_count_by_id=ID: 查询容器内指定ID对应元素的物品数量(物品类容器为物品ID,卡牌类容器为卡牌ID)
 +
|-
 +
|[$place_container:INFO:地点ID$]
 +
|同tag_container,但是查询的是地点容器。若地点ID为空,则查询当前环境中的地点。
 +
|-
 +
|<nowiki>[$platform_called:def,INFO1|platform:INFO2[|...]$]</nowiki>
 +
|根据游戏当前平台返回结果,platform为对应平台定义,INFO为返回文本
  
quality:物品品质
+
可使用的平台有:
 +
*def:默认结果,当目标平台没有定义时使用此项
 +
*pc:电脑端平台
 +
*mobile:移动端平台
 +
|-
 +
|<nowiki>[%int_called:intId:def,INFO1|num,INFO2[|...]%]</nowiki>
 +
|根据指定的Int变量值返回称呼
  
level:物品等级
+
def为默认返回结果(若所有的int值都不匹配)
 +
INFO为返回文本
 +
num为匹配的int值
  
main_type:物品主类型
+
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
  
sub_type:物品子类型
+
如<code>[$int_called:变量1:def,值未知|1,值为1|>=2,值大于等于2$]</code>将在值为1时返回“值为1”,值大于等于2时返回“值为2”,其他值时返回“值未知”
 +
|-
 +
|[%dlc_activated:dlc%]
 +
|查询对应的DLC是否激活
  
equip_type:装备类别
+
DLC可选项:
 +
dlc1:乱世英豪
 +
dlc2:比武大会
 +
dlc3_1:赫石之夏 - 赫炎工坊
 +
dlc3_2:赫石之夏 - 生儿育女
 +
dlc3_3:赫石之夏 - 汉家江湖辛弃疾
 +
|-
 +
| colspan="2" |以下查询需要激活DLC《比武大会》
 +
|-
 +
|[%match_query_first_id%]
 +
|比武大会查询结果中第一个结果的ID,见MATCH_QUERY*指令
 +
|-
 +
|[%match_query_rnd_id%]
 +
|比武大会查询结果中随机结果的ID,见MATCH_QUERY*指令
 +
|-
 +
|[%match_query_ids%]
 +
|<nowiki>比武大会查询结果中所有结果的ID,使用"|"分割</nowiki>
 +
|-
 +
|[%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,使用|分割ID
 +
|-
 +
|[$tagmatch:INFO:ID$]
 +
|查询目标比武大会的信息
  
gendays:生产日期距离今天已有的天数
+
ID不填时默认为环境中的比武大会
  
tag=(自定义扩展字段KEY):返回指定的自定义字段值
+
*id:比武大会ID
 +
*level:比武大会级别,0:试炼赛 1:锦标赛 2:比武大会
 +
*all_place:该比武大会所有的可能举办城市,使用'|'分割
 +
*host_place:该比武大会当前举办城市
 +
*host_place_name:该比武大会当前举办城市名称
 +
*state:比武大会状态:0:未举办 1:报名中 2:举办中 3:冷却期
 +
*battle_state:比武大会比赛阶段:-1:未开始 0~3:八进四比赛 4~5:四进二比赛 6:决赛 7:结束
 +
*player_join_state:玩家队伍参与情况:0:未参与 1:亲自参与 2:队友参与
 +
*player_team_index:玩家队伍索引:-1:未参与 0~7 参与队伍索引
 +
*cur_battle_team_left_roles:当前比赛左方队伍成员,使用'|'分割
 +
*cur_battle_team_right_roles:当前比赛右方队伍成员,使用'|'分割
 +
*champion_team_index:当前比赛队伍冠军,为空则不存在(未产生冠军)
 +
*has_hero_exit:是否有角色退赛(角色不活跃后会退赛)
 +
*team_leader=INDEX:目标队伍的队长,INDEX为队伍索引,从0~7,Player为玩家队伍
 +
*team_name=INDEX:目标队伍的名称,INDEX为队伍索引,从0~7,Player为玩家队伍
 +
*team_members=INDEX:目标队伍的所有成员,INDEX为队伍索引,从0~7,Player为玩家队伍
 +
*team_members_without_player=INDEX:目标队伍剔除主角后的所有成员,INDEX为队伍索引,从0~7,Player为玩家队伍
 +
*team_result=INDEX:目标队伍的比赛结果,0:未获奖 1:冠军 2:亚军 3:出线
 +
*battle_result=BATTLE_STATE:目标比赛的结果,BATTLE_STATE为比赛阶段,结果 -1:不存在 0:未开始 1:左方获胜 2:右方获胜
 +
*battle_left_team_index=BATTLE_STATE:目标比赛左方队伍索引,索引,从0~7,Player为玩家队伍
 +
*battle_right_team_index=BATTLE_STATE:目标比赛右方队伍索引,索引,从0~7,Player为玩家队伍
 +
*prize_item_1:获取比武大会冠军奖品物品信息
 +
*prize_item_2:获取比武大会准决赛奖品物品信息
 +
*prize_item_3:获取比武大会出线战奖品物品信息
 +
*player_prize_item:获得主角本次参赛的奖品信息
 +
|}
  
 +
传承界面专用查询指令
  
18. [$tagproject:INFO:ID$]:查询一个项目的信息,如果不填ID将从SET_TEMP_ID指定的id中读取。
+
{| class="wikitable"
 +
|+
 +
!查询指令
 +
!说明
 +
|-
 +
|[%story_mode%]
 +
|当前选择的剧本名称
 +
|-
 +
|[%game_mode%]
 +
|游戏模式,0:故事模式,1:沙盒模式
 +
|}
  
id:项目id
+
===全局存档查询指令字段===
 +
用来查询全局存档中的一些指令
 +
{| class="wikitable"
 +
|+
 +
!查询指令
 +
!说明
 +
|-
 +
|[%global_int:ID%]
 +
|返回全局整形字段ID的值                                         
 +
|-
 +
|[$global_str:ID$]
 +
|返回全局字符串字段ID的值
 +
|-
 +
|
 +
|
 +
|}
  
state:项目状态(仅团体项目有效) 0:未开始 1:进行中 2:已完成
 
  
showPlaceName:项目执行地点描述
+
===内置全局变量字段===
  
showProjectName:项目名称
+
以下是内置的全局变量关键字段:
 +
{| class="wikitable"
 +
|+
 +
!字段KEY值
 +
!说明
 +
|-
 +
|save_max_hard_level
 +
|已经解锁过的最高难度,默认为0
 +
|-
 +
|
 +
|
 +
|-
 +
|
 +
|
 +
|}
 +
<br />
  
roles:当前参与项目的所有角色
+
===内置自定义变量字段===
  
 +
可使用SETINTVAR、CHANGEINTVAR等指令进行修改并保存的系统内置自定义变量。一般都具有特定的功能。
 +
{| class="wikitable"
 +
|+
 +
!字段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))
 +
|-
 +
| colspan="2" |以下设置需要游戏版本高于0.7.3.1
 +
|-
 +
|config_project_concurrent
 +
|当前地点项目建设最大同时进行的基数
 +
|-
 +
|
 +
|
 +
|}<br />
  
19. [$tagunit:INFO$]:查询当前查询目标小兵单位的信息
+
===初始设定表内置字段说明===
 
 
id:单位id
 
 
 
name:单位名称
 
 
 
level:单位等级
 
 
 
statu=(自定义ID):查询单位属性表里的相应ID的值
 
 
 
20. [$tagcard:INFO$]:查询指定卡牌的信息
 
 
 
id:卡牌id
 
 
 
name:卡牌显示名
 
 
 
level:卡牌等级
 
 
 
 
 
全局查询字段
 
 
 
1. [%global_int:ID%]:返回全局整形字段ID的值
 
 
 
2. [$global_str:ID$]:返回全局字符串字段ID的值
 
 
 
 
 
系统占用的intvar:
 
 
 
system_探索地图点数:探索地图点数
 
 
 
system_星星:星星数目
 
 
 
 
 
 
 
专门用于战斗场景中条件查询方法
 
 
 
3. [%result_code%]:战斗中各种事件脚本的查询结果(如:选择框的结果)
 
 
 
4. [%bs_time%]:当前战斗进行的时间(整秒数)
 
 
 
5. [%rnd:A,B%]:返回一个每次都不相同的大于等于A小于等于B的随机值
 
 
 
6. [%last_rnd%]:返回上一次[%rnd:A,B%]查询到的结果
 
 
 
7. [%const_rnd%]:返回一个执行周期内相同的0-100的随机值
 
 
 
8. [%last_rnd_pos_x%]:返回上一个随机位置结果的X
 
 
 
9. [%last_rnd_pos_y%]:返回上一个随机位置结果的Y
 
 
 
10. [%last_rnd_pos%]:返回上一个随机位置坐标
 
 
 
11. [%last_skill%]:返回上一个使用技能的ID
 
 
 
12. [%this_type%]:当前查询对象的类型 0英雄 1小兵
 
 
 
13. [%aim_type%]:当前查询目标对象的类型 0英雄 1小兵
 
 
 
14. [%this_level%]:当前查询对象的等级
 
 
 
15. [%aim_level%]:当前查询目标对象的等级
 
 
 
16. [%this_hp_pct%]:当前查询对象的HP百分比
 
 
 
17. [%aim_hp_pct%]:当前查询目标对象的HP百分比
 
 
 
18. [%this_mp_pct%]:当前查询对象的MP百分比
 
 
 
19. [%aim_mp_pct%]:当前查询目标对象的MP百分比
 
 
 
20. [%friends_num%]:我方剩余人数
 
 
 
21. [%enemy_num%]:敌方剩余人数
 
 
 
22. [%hit_enemy%]:判断当前命中的目标是否caster的敌人。敌方1 友方0
 
 
 
23. [%battle_res%]:当前当前战斗结果
 
 
 
24. [%skill_lv:SKILL_ID%]:查询当前source对象指定技能ID的等级,无则返回0
 
 
 
25. [%base_atk%]:当前技能等级所对应的基础物理攻击力
 
 
 
26. [%base_magic_atk%]:当前技能等级所对应的基础魔法攻击力
 
 
 
27. [%standard_magic_atk%]:当前技能等级所对应的魔法最终攻击力
 
 
 
28. [%this_buff:BUFF_ID%]:查询当前source对象指定BUFF_ID的当前层数
 
 
 
29. [%aim_buff:BUFF_ID%]:查询当前target对象指定BUFF_ID的当前层数
 
 
 
30. [%stat:STAT_FIELD%]:查询当前source指定属性字段的当前数值
 
 
 
31. [%aim_stat:STAT_FIELD%]:查询当前target对象指定属性字段的当前数值
 
 
 
32. [%this_weapon%]:当前查询source对象的武器类型
 
 
 
33. [%aim_weapon%]:当前查询target对象的武器类型
 
 
 
34. [%charge_val%]:本次伤害的蓄力值(0~100)
 
 
 
35. [%cmd_argval%]:当前命令行的参数值
 
 
 
36. [%cmd_argval_next%]:返回当前命令行参数值后立即加1
 
 
 
37. [%rpt_index%]:当前命令行所在循环的INDEX值
 
 
 
38. [%find_tag:TAGINFO%]:执行一次目标单位查找,TAGINFO为目标单位信息,参数格式见7.4章说明,当查询到合适目标时返回1否则返回0
 
 
 
39. [%add_find_tag:TAGINFO%]:从已查找单位列表中增加目标单位,始终返回1,TAGINFO同上
 
 
 
40. [%rm_find_tag:TAGINFO%]:从已查找单位列表中排除目标单位,始终返回1,TAGINFO同上
 
 
 
41. [%reset_find_list%]:重置当前查找列表,始终返回1
 
 
 
42. [%rnd_enum:PROB_A,RES_A:PROB_B,RES_B:PROB_C,RES_C[:...]%]:随机枚举值,根据所有项的概率分布返回其中一个项的RES值。比如[%rnd_enum:25,1:40,2:35,3%]表示有25%的概率返回”1”,40%的概率返回”2”,35%的概率返回”3”
 
 
 
43. [%dg_sp_state:ID%]:返回当前地城中ControlID为ID的刷新单位的当前状态 0:未刷新 1:已刷新 -1:已击败
 
 
 
44. [%dg_unitnum:TAG%]:返回当前地城中剩余未击败并且Tag为TAG的地城刷新单位的个数
 
 
 
45. [%fd_sum%]:当前查询source对象的友军倒下计数器值
 
 
 
46. [%ed_sum%]:当前查询source对象的敌军倒下计数器值
 
 
 
47. [%fd_mod:MOD_VAL%]:当前查询source对象的友军倒下计数器值与MOD_VAL取余后的值
 
 
 
48. [%ed_mod:MOD_VAL%]:当前查询source对象的敌军倒下计数器值与MOD_VAL取余后的值
 
 
 
49. [%dg_int_val:KEY%]:返回指定KEY的自定义地城整形字段的值
 
 
 
50. [%emitter_pos:ID,MIN-MAX%]:返回指定指定ID的发射器中心位置,距其中心MIN至MAX的一个随机位置,并记录入last_rnd_pos
 
 
 
51. [%unit_timer:UNIT_ID,TIMER_ID%]:返回指定UNIT_ID单位身上所附加的ID为TIMER_ID的计时器剩余时间
 
 
 
52. [%this_intvar:ID%]:返回当前查询source对象身上的自定义整形数值(技能指令set_unit_intvar设置)
 
 
 
53. [%aim_intvar:ID%]:返回当前查询target对象身上的自定义整形数值(技能指令set_unit_intvar设置)
 
 
 
54. [%defeat_hit%]:查询当前命令是否是在击杀单位指令中执行的并且目标单位已被击杀(0:否 1:是) 注意:只能在技能中的命中命令指令中生效
 
 
 
55. [%eft_count:TAG%]:查询当前场上指定TAG的特效体数量 '''注意:仅支持查询由caster本单位创建的特效体'''
 
 
 
56. [%this_id%]:当前查询对象的单位ID
 
 
 
57. [%aim_id%]:当前查询目标对象的单位ID
 
 
 
58. [%hit_dmg_val%]:查询当前施法中对目标造成的实际伤害或治疗的实际数值 注意:只能在命中指令中生效
 
 
 
59. [%stealth_hit%]:查询当前技能或伤害是否是在隐身状态下进行的 0否1是
 
 
 
60. [%hit_count%]:查询当前技能命中判定生效的次数
 
 
 
61.
 
 
 
 
 
 
 
n 以下为支持的比较符号
 
 
 
[=]:等于
 
 
 
[>]:大于
 
 
 
[>=]:大于等于
 
 
 
[<]:小于
 
 
 
[<=]:小于等于
 
 
 
[<>]:不等于
 
 
 
 
 
 
 
执行命令格式
 
 
 
执行命令格式同脚本内容命令格式。
 
 
 
 
 
n 对话内容内可支持指定文字颜色,格式如下:
 
 
 
这是一段<nowiki>[[imp:红色字体]]</nowiki>,<nowiki>[[red:红色字体]]</nowiki>,<nowiki>[[&ff6699ff:自定义颜色]]</nowiki>的字体
 
 
 
可支持的颜色格式如下(自定义颜色需用"&"符号替换"#"):
 
 
 
place:地点名称的统一颜色
 
 
 
role:人物名称的统一颜色
 
 
 
camp:阵营名称的统一颜色
 
 
 
item:物品名称的统一颜色
 
  
imp:重要信息的统一颜色
+
游戏初始设定表中,可以配置一些具有实际功能的初始字段值。
<br />
 
 
{| class="wikitable"
 
{| class="wikitable"
|quest、aqua (same as cyan)
+
|+
|#00ffffff
+
!字段KEY值
|任务
+
!说明
 +
!默认值
 
|-
 
|-
|black
+
|init_pos
|#000000ff
+
|默认出生点位置信息
 
|
 
|
 
|-
 
|-
|blue
+
|init_statu
|#0000ffff
+
|玩家出生时默认的属性状态信息
 
|
 
|
 
|-
 
|-
|brown
+
|init_money
|#a52a2aff
+
|默认的初始财产
 +
|0
 +
|-
 +
|home_place
 +
|默认的初始地点ID
 
|
 
|
 
|-
 
|-
|cyan (same as aqua)
+
|init_skillpages
|#00ffffff
+
|初始点亮的技能页,格式见 SET_SKILLPAGE 指令说明
 
|
 
|
 
|-
 
|-
|darkblue
+
|init_skills
|#0000a0ff
+
|主角初始拥有的技能表,格式同 GETSKILL 指令
 
|
 
|
 
|-
 
|-
|fuchsia (same as magenta)
+
|init_equip
|#ff00ffff
+
|主角初始的装备表信息
 
|
 
|
 
|-
 
|-
|green
+
|init_camp_rl
|#008000ff
+
|初始阵营关系表,格式为:
 +
阵营A,阵营B,关系状态,友好度(-100~100)|阵营A,阵营C,关系状态,友好度(-100~100)|...|阵营N,阵营N,关系状态,友好度(-100~100)
 
|
 
|
 
|-
 
|-
|grey
+
|unchanged_diplomatic_relationship
|#808080ff
+
|是否游戏过程中不可动态改变势力间的外交关系 (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 指令
 
|
 
|
 
|-
 
|-
|lightblue
+
|show_star_info
|#add8e6ff
+
|显示声望(星星)
 +
|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
 
|
 
|
 
|-
 
|-
|lime
+
|monster_move_speed_random
|#00ff00ff
+
|野怪发射器野怪随机移动速度随机修正范围,最多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
 +
|-
 +
| colspan="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 自定义字段的默认值
 
|
 
|
 
|-
 
|-
|magenta (same as fuchsia)
+
|def_config_roll_limit
|#ff00ffff
+
|默认的是否开启翻滚限制,影响 config_roll_limit 自定义字段的默认值
 
|
 
|
 
|-
 
|-
|maroon
+
|def_config_hunger_penalty
|#800000ff
+
|默认的是否开启饥饿惩罚,影响 config_hunger_penalty 自定义字段的默认值
 
|
 
|
 
|-
 
|-
|navy
+
|def_seige_battlemap
|#000080ff
+
|缺省的攻城战地图ID
 
|
 
|
 
|-
 
|-
|olive
+
|def_encounter_battlemap
|#808000ff
+
|缺省的遭遇战地图ID
 
|
 
|
 
|-
 
|-
|action  颜色是moccasin
+
| colspan="3" |以下设置需要游戏版本高于0.7.3.1
|# ffe4b5
+
|-
|特殊动作
+
|init_inventory_capicity
 +
|默认初始背包容量基数
 +
|60
 
|-
 
|-
|present  颜色是plum
+
|def_project_concurrent
|#dda0dd
+
|地点默认同时进行项目建设的数量
|送礼
+
|1
 
|-
 
|-
|learn 颜色是sandybrown
+
| colspan="3" |以下设置需要游戏版本高于0.7.4.1
|#f4a460ff
 
|请教
 
 
|-
 
|-
|orange/master
+
|camp_rep_wanted_val
|#ffa500ff
+
|个人在阵营声望达到通缉状态的阈值(小于此值但未达到战争状态时野外遭遇不会被攻击,但是进入此阵营地点时会被限制)
|拜师
+
|0
 
|-
 
|-
|almz 颜色是springgreen
+
|camp_rep_war_val
|#00ff7f
+
|个人在阵营声望达到战争状态的阈值(小于此值野外遭遇会被该阵营的单位攻击)
|施舍
+
| -10
 
|-
 
|-
|purple
+
| colspan="2" |以下设置需要游戏版本高于0.8.0.1
|#800080ff
 
 
|
 
|
 
|-
 
|-
|red、fight
+
|dg_levelup_skill
|#ff0000ff
+
|战斗中升级时播放特效对应的技能ID
 +
|升级特效
 +
|-
 +
|init_items
 +
|初始道具表
 
|
 
|
 
|-
 
|-
|beg颜色是darkgoldenrod
+
|def_dropitem_model
|# b8860b
+
|战斗中默认道具掉落在地上的模型及特效信息(格式为:大地图单位模型ID#特效信息)
|乞讨
+
|chest1#psChestFlash1,0,0
 
|-
 
|-
|silver
+
| colspan="3" |以下设置需要游戏版本高于0.8.1.1
|#c0c0c0ff
+
|-
 +
|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时为缺省设置
 +
|<nowiki> -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</nowiki>
 +
|-
 +
|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
 +
|<nowiki>自定义武器与装备栏位排斥信息(例如双手武器对副手栏位的排斥) (仅当custom_equip_system为1时生效)填写格式:武器类型代码1,排斥栏位1|武器类型代码2,排斥栏位2|...|武器类型代码N,排斥栏位N</nowiki>
 +
|
 +
|-
 +
| colspan="3" |以下设置需要游戏版本高于0.8.3.1
 +
|-
 +
|card_consumable_mode
 +
|是否默认开启高损耗卡牌模式。此模式下卡牌耐久度会具有较高损耗性,但是额外会具备自动恢复能力以及自动战斗等特性
 +
|
 +
|-
 +
|card_consume_base_prob
 +
|高损耗卡牌模式下,卡牌损耗的基础概率(受天赋影响可减小此概率)
 
|
 
|
 
|-
 
|-
|teal
+
|card_restore_base_period
|#008080ff
+
|仅在高损耗卡牌模式下有效:每点卡牌耐久度恢复的基础时间周期(天数)
 
|
 
|
 
|-
 
|-
|white
+
|foods_base_capacity
|#ffffffff
+
|食物类道具的基础容量
 
|
 
|
 
|-
 
|-
|yellow
 
|#ffff00ff
 
 
|
 
|
|}
+
|
 +
|
 +
|-
 +
| colspan="3" |以下设置需要游戏版本高于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
 +
|-
 +
| colspan="3" |以下设置需要游戏版本高于1.0.3.1
 +
|-
 +
|trade_permission_base_price
 +
|通商许可基础价格
 +
|250
 +
|-
 +
|trade_permission_temp_price
 +
|临时通商许可价格
 +
|25
 +
|}除了以上表中的特定初始设定字段外,初始设定表中还会有一些以 "gui_"开头的UI重置特定字段用来实现对一些游戏内置UI的自定义重置,具体见重置游戏界面相关说明<br />
  
===六、各种列表命令格式:===
+
===对话框及一些通用UI中支持的字体颜色指定代码===
1. 小兵列表命令:单位1,最小数量,最大数量,最小等级,最大等级|单位2,最小数量,最大数量,最小等级,最大等级|...|单位N,最小数量,最大数量,最小等级,最大等级
+
在对话框、文字框以及一些常见的UI中,通常可以使用以下格式来为文本中的指定文字更改颜色。
  
2. 动画动作命令:贴图名称前缀,动作总帧数,起始帧序号(贴图后缀的首序号),每帧停留,循环次数(-1一直循环)
+
例如:这是一段<nowiki>[[imp:红色字体]]</nowiki>,<nowiki>[[&ff6699ff:自定义颜色]]</nowiki>的字体
  
3. 人物位置格式:位置代码:位置参数
+
目前可支持的定制颜色如下(自定义颜色需用"&"符号替换"#"):
  
支持的位置代码有 0:未分配 1:地点中 2:队伍中
+
*place:地点名称的统一颜色 <span style="color:#a32121">#a32121</span>
 +
*role:人物名称的统一颜色 <span style="color:#a32121">#a32121</span>
 +
*camp:阵营名称的统一颜色 <span style="color:#a32121">#a32121</span>
 +
*item:物品名称的统一颜色 <span style="color:#a32121">#a32121</span>
 +
*imp:重要信息的统一颜色 <span style="color:#a32121">#a32121</span>
 +
*quest:任务信息颜色 <span style="color:#00ffff">#00ffff</span>
 +
*mag_damage:魔法伤害颜色 <span style="color:#4489a3">#4489a3</span>
 +
*phy_damage:物理伤害颜色 <span style="color:#bf3b25">#bf3b25</span>
 +
*effect:效果反馈颜色 <span style="color:#9a52a0">#9a52a0</span>
 +
*explain:解释文本颜色 <span style="color:#b55e1f">#b55e1f</span>
 +
*recover:恢复文本颜色 <span style="color:#6b9f52">#6b9f52</span>
 +
*desc:描述文本颜色 <span style="color:#9d9150">#9d9150</span><br />
  
当为1地点中时:格式如下 1:地点ID,设施ID (设施ID为空表示在设施外部)
+
<br />
  
当为2队伍中是:格式如下 2:队伍ID
+
===人物角色位置指令格式===
 +
人物位置信息说明
 +
人物位置格式为:位置代码:位置参数
  
4. 伤害值表达式由形如 key1:value1;key2:value2;...keyN:valueN这样的格式键值组合组成。
+
支持的位置代码有 0:未分配  1:地点中  2:队伍中  3:项目中
  
伤害值表达式可通过“[&expression&]”的格式嵌入到一些数值表里(如BUFF列表的状态值等);
+
*当位置代码为1地点中时:格式如下 1:地点ID,设施ID (设施ID为空表示在设施外部)
 +
*当位置代码为2队伍中是:格式如下 2:队伍ID
  
目前可支持的键值有:
+
<br />
 
 
a. type 伤害类型:0:普通近战攻击 1:普通远程攻击 2:技能伤害 3:治疗 4:回蓝
 
 
 
b. dmg 物理伤害数值,值为伤害值公式
 
 
 
c. t_dmg 真实伤害数值(所有治疗效果都为此值),值为伤害值公式
 
 
 
d. hit 命中参数(-1000~1000) 当不能闪避时为-1000
 
 
 
e. blk 被招架参数(-1000~1000) 当不能被招架时为-1000
 
 
 
f. cri 暴击参数(-1000~1000) 当不能暴击时为-1000
 
 
 
g. act 是否播放受击动作 1是 0否
 
 
 
h. eft 受击特效ID
 
 
 
i. trig 是否触发伤害效果(如反伤等)
 
 
 
j. attack_type 指定伤害的武器攻击类型
 
 
 
k. buff 受到该伤害时附带的BUFF效果, 格式为 BuffID,[time],[overlay],两个参数为可选参数,分别表示时间及层数
 
 
 
伤害值公式仅支持标准数学公式,包含以下运算符号:+-*/^%(),可嵌入一些预定义字段,所有预定义字段写在形如[%cmd%]的格式内,目前支持的预定义字段有:
 
 
 
[%rnd:min_val,max_val%]:随机一个大于等于min_val,小于等于max_val的整数
 
 
 
[%field%]:field表示任意一个定义在角色属性字段中的数值
 
 
 
5. 特效信息格式: 特效类型#特效代码#位置类型
 
 
 
特效类型支持:
 
 
 
a. an 帧动画类型:特效代码为动画动作命令(见第2节)
 
 
 
b. ps 粒子效果类型:特效代码为粒子特效GameObject预制体名称
 
 
 
c. 111
 
  
6. 特定战斗限制命令:
+
===游戏内全局位置指令格式===
 +
当为一个队伍或者大地图上的对象指定位置信息时,就需要一个可以进行全局位置指定的指令格式(如使用TELEPORT指令等)。
  
命令格式为:命令1:参数1;命令2:参数2;...命令N:参数N;
+
全局位置格式为: 
 +
地图ID:坐标X,坐标y
  
支持的限制命令如下:
 
  
a. player 重置队伍英雄列表 格式为:人物ID1,重置等级(-1或不填表示不重置)|人物ID2,重置等级|人物ID3,重置等级|...|人物ID N,重置等级
+
===特定战斗中的单位限制指令格式===
 +
在特定战斗表中,可以在“限制条件”一栏中填入以下格式的指令字段进行单位或者特殊限制。
  
b. units重置队伍小兵列表 格式为见本章第1小节
+
格式如下:
 +
命令1:参数1;命令2:参数2;...命令N:参数N;
 +
目前支持的限制命令如下:
  
c. add_stat 附加角色属性状态 格式为:目标人物ID#状态表
+
*player 重置队伍英雄列表 格式为:人物ID1,重置等级(-1或不填表示不重置)|人物ID2,重置等级|人物ID3,重置等级|...|人物ID N,重置等级
 +
*units 重置队伍小兵列表 格式为一般卡牌列表格式
 +
*add_stat 附加角色属性状态 格式为:目标人物ID#状态表
  
7. 大地图单位命令表:
 
  
大地图单位单位命令由命令类型+命令内容组成,多行以“;”进行分隔,每行指令以指令类型代码+”,”开头,后面为指令参数,例如:
+
===大地图单位控制指令表===
 +
大地图单位(队伍)控制指令是用来对大地图上的单位进行序列行为指定的控制方法。当单位被指定控制指令表后,会按照先后顺序逐步执行每一条指令,直到指令表执行完成。当单位执行动作进行中途保存退出后,读档时会按照之前的指令表继续执行指令。
  
1,测试地图:100,100;1,测试地图:100,200;99,0
+
注意:除了假人(包括剧情控制中需要的假人和游戏中的野怪等)外,其他类型的队伍的指令表执行结束后会自动解散队伍。
  
 +
控制指令的格式是由整形数字的命令类型加命令内容组成,多行以“;”进行分隔,每行指令以指令类型代码+”,”开头,后面为指令参数,例如:
 +
1,测试地图:100,100;1,测试地图:100,200;99,0
 
上述代码表示先移动到测试地图的坐标1(100,100),再移动到2(100,200),然后解散队伍;
 
上述代码表示先移动到测试地图的坐标1(100,100),再移动到2(100,200),然后解散队伍;
  
 
目前支持的指令类型代码如下:
 
目前支持的指令类型代码如下:
 
+
{| class="wikitable"
1:向大地图坐标移动 参数为目标地图坐标(地图坐标格式 地图ID:坐标X,坐标Y)
+
|+
 
+
!控制指令代码
2:在原地停留 参数为停留时间
+
!说明
 
+
|-
3:进入地点 参数为目标地点ID
+
|1
 
+
|向大地图坐标移动 参数为目标地图坐标(地图坐标格式 地图ID:坐标X,坐标Y)
4:攻打目标地点 参数为目标地点ID,攻占方式(0:占领 1:掠夺)
+
|-
 
+
|2
5:在目标地点内停留 参数为目标地点ID,停留时间
+
|在原地停留 参数为停留时间(单位:游戏内天数)
 
+
|-
7:执行一个事件 参数为事件ID
+
|3
 
+
|进入地点 参数为目标地点ID
8:更改当前StateNum值 参数为新的StateNum值
+
|-
 
+
|4
9:永久执行自定义运动命令,参数格式:运动方式,参数表
+
|攻打目标地点 参数为目标地点ID,攻占方式(0:占领 1:掠夺)
 
+
|-
目前可支持的运动方式及参数格式:
+
|5
 
+
|在目标地点内停留 参数为目标地点ID,停留时间
范围内游荡:WANDER,运动半径,[中心坐标X,中心坐标Y](如不指定中心坐标则以当前位置为中心)
+
|-
 
+
|7
巡逻运动:PATROL,坐标1X,坐标1Y,坐标2X,坐标2Y,...,坐标NX,坐标NY(当第一个坐标等于最后一个坐标时执行循环运动,否则为往复运动)
+
|执行一个事件 参数为事件ID
 
+
|-
其他为静止不运动
+
|8
 
+
|更改当前StateNum值 参数为新的StateNum值
10:加入一个战团 参数为战团的数字ID(系统内置方法,不推荐调用)
+
说明:StateNum 可以用来标记一些控制队伍的当前状态。例如:命令一个单位去地图某个地方执行一个动作,当它到达之前StateNum为0,到达后将StateNum改为1,这样就可以在脚本中判断该队伍当前处于什么状态了。
 
+
|-
11:执行一个动作 参数格式为:动作ID,循环次数(-1无限循环 ≥1有限次循环,当动作自身是循环动画时设置为1即可),单次动作时间(秒为单位,当非无限循环的动作次数播放结束后执行下一条指令),播放对象(0默认全体 1仅领队 2所有追随模型),初始帧区间(0~1之间,1为动画最后一帧。-1为随机取0~1之间的值),播放结束后是否转入下一个指令(默认为0否 1是)
+
|9
 
+
|永久执行自定义运动命令,命令格式说明见 [[通用剧情事件指令说明#单位队伍默认运动指令格式|单位队伍默认运动指令格式]]
 +
|-
 +
|10
 +
|加入一个战团 参数为战团的数字ID(系统内置方法,不推荐调用)
 +
|-
 +
|11
 +
|执行一个动作 参数格式为:动作ID,循环次数(-1无限循环 ≥1有限次循环,当动作自身是循环动画时设置为1即可),单次动作时间(秒为单位,当非无限循环的动作次数播放结束后执行下一条指令),播放对象(0默认全体 1仅领队 2所有追随模型),初始帧区间(0~1之间,1为动画最后一帧。-1为随机取0~1之间的值),播放结束后是否转入下一个指令(默认为0否 1是)
 
模型当前支持的默认动作表:
 
模型当前支持的默认动作表:
  
循环动作:待机、移动、慢走、冲锋、蓄力
+
*循环动作:待机、移动、慢走、冲锋、蓄力
 
+
*单次动作:受击、闪避、格挡、攻击、射击、横劈、顺劈、直击、释放、咆哮、击飞、跳跃、庆祝、死亡
单次动作:受击、闪避、格挡、攻击、射击、横劈、顺劈、直击、释放、咆哮、击飞、跳跃、庆祝、死亡
+
|-
 
+
|12
12:掠夺一个地点 参数为目标地点ID
+
|<s>掠夺一个地点 参数为目标地点ID</s>【已废止】
 
+
|-
13:开宝箱 参数为宝箱ID
+
|13
 +
|开宝箱 参数为宝箱ID
 +
|-
 +
|14
 +
|执行一个TimeLine动作 参数格式为:TimeLineID,持续时间(默认-1,始终持续,当>0时播放执行时间后结束)
 +
|-
 +
|15
 +
|改变当前队伍对玩家的态度 0:中立  1:敌对
 +
|-
 +
|16
 +
|改变当前队伍移动速度 参数为目标移动速度
 +
|-
 +
|17
 +
|交易成功 参数为交易目标地点ID
 +
|-
 +
|18
 +
|进行交易 参数为交易目标地点ID
 +
|-
 +
|19
 +
|跟随队伍目标 参数为跟随目标的控制ID
 +
|-
 +
|99
 +
|解散当前队伍
 +
|}<br />
  
14:执行一个TimeLine动作 参数格式为:TimeLineID,持续时间(默认-1,始终持续,当>0时播放执行时间后结束)
+
===单位队伍默认运动指令格式===
 +
大地图上的假人、野怪、队伍中会需要设置默认的运行方式或者是通过脚本改变其运动模式。指定运动模式后,单位会按照此指令进行默认的行为动作。
  
15:改变当前队伍对玩家的态度 0:中立  1:敌对
+
单位运动指令的格式为:
 +
运动方式,参数1[,参数2,...,参数N]
 +
当前可支持的运动方式及参数格式为:
  
16:改变当前队伍移动速度 参数为目标移动速度
+
*范围内游荡:WANDER,运动半径,[中心坐标X,中心坐标Y](如不指定中心坐标则以当前位置为中心)
 +
*巡逻运动:PATROL,坐标1X,坐标1Y,坐标2X,坐标2Y,...,坐标NX,坐标NY(当第一个坐标等于最后一个坐标时执行循环运动,否则为往复运动)
 +
*其他为静止不运动
  
17:交易成功 参数为交易目标地点ID
 
  
18:进行交易 参数为交易目标地点ID
+
===物品列表信息格式===
 
+
物品列表信息是最常使用的信息格式之一,各种物品获取相关的指令(GETITEMS等指令)、配置表中都会用到这种信息格式。
19:跟随队伍目标 参数为跟随目标的控制ID
 
 
 
99:解散当前队伍
 
 
 
 
 
8. 物品列表命令格式:
 
 
 
物品代码1,数量1[,细节信息表]|物品代码2,数量2[,细节信息表]|....|物品代码N,数量N[,细节信息表]
 
  
 +
物品信息的格式如下:
 +
物品代码1,数量1[,细节信息表]|物品代码2,数量2[,细节信息表]|....|物品代码N,数量N[,细节信息表]
 
细节信息表为格式为"key1=val1,key2=val2,..."的字典表,其支持以下信息字段内容:
 
细节信息表为格式为"key1=val1,key2=val2,..."的字典表,其支持以下信息字段内容:
  
【mf】自动匹配创建词缀:mf=最低品质N-最高品质N[-变量数值附加基数]
+
*【mf】自动匹配创建词缀:mf=最低品质N-最高品质N[-变量数值附加基数]
  
 
例:长剑,1,mf=0-3 说明:以mf开头的词缀代码表示自动适配出品质从0-3之间的词缀(0为不附带词缀)。
 
例:长剑,1,mf=0-3 说明:以mf开头的词缀代码表示自动适配出品质从0-3之间的词缀(0为不附带词缀)。
  
【cw】创建制定词缀:cw=词缀ID+变量数值附加基数(0-100)
+
*【cw】创建制定词缀:cw=词缀ID+变量数值附加基数(0-100)
  
 
例:长剑,1,cw=吸血剑+50 说明:表示附带吸血剑指定词缀的物品,所有变量数值指定由50-100之间。
 
例:长剑,1,cw=吸血剑+50 说明:表示附带吸血剑指定词缀的物品,所有变量数值指定由50-100之间。
  
【w】指定物品词缀详情:w=词缀ID$[变量代码数组]
+
*【w】指定物品词缀详情:w=词缀ID$[变量代码数组]
 
+
*【qv】指定物品属性的变量数组:qv=变量代码数组
【qv】指定物品属性的变量数组:qv=变量代码数组
+
*【p】指定物品的记录买入价格:p=买入价格
 
 
【p】指定物品的记录买入价格:p=买入价格
 
  
 
变量代码数组由列数为2的二维数组组成,列1为枚举值,列2为品质数值(0-100),以”/”进行连接。比如一个词缀有3条词条,那么他的变量数组可能为:0/50/0/100/0/100
 
变量代码数组由列数为2的二维数组组成,列1为枚举值,列2为品质数值(0-100),以”/”进行连接。比如一个词缀有3条词条,那么他的变量数组可能为:0/50/0/100/0/100
  
9. 目前游戏中支持的天气效果ID有:
+
<br />
 
 
1) 雨:强度为0时关闭  1~50为普通 50~100为大雨
 
 
 
2) 雪:强度为0时关闭  1~50为普通 50~100为大雪
 
 
 
3) 风沙:强度为0时关闭  1~100
 
 
 
4) 雷电:强度为0时关闭  1~100
 
 
 
5) 雾:强度为0时关闭  1~100
 
 
 
6) 黑暗:强度为0时关闭  1~100
 
 
 
7) 炎热:强度为0时关闭  1~100(热变形特效)
 
 
 
8) 云:强度为0时关闭 1~100(晴天时地面的云朵阴影)
 
  
9)
+
===天气效果信息格式===
 +
使用指令代码控制天气时多以组合天气效果为主,多个天气效果以"|"进行连接。
  
地图中默认天气效果填写格式如下:
+
天气效果描述信息格式为:
 +
天气效果ID1,强度值|天气效果ID2,强度值|...天气效果IDn,强度值
 +
目前游戏中支持的天气效果ID有:
  
概率1,持续时间1:[天气效果描述信息1];概率2,持续时间2:[天气效果描述信息2];概率3,持续时间3:[天气效果描述信息3];[...];概率N,持续时间N:[天气效果描述信息N]
+
*雨:强度为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,1:;50,3:雨,20|雾,10;20,5:风沙,30
  
 
表示30%的概率持续一天无天气效果,50%的概率持续3天下雨,20%的概率持续5天风沙天气
 
表示30%的概率持续一天无天气效果,50%的概率持续3天下雨,20%的概率持续5天风沙天气
  
10. 目前游戏中支持的镜头滤镜效果ID有:
+
<br />
  
1) 暗角:强度为0时关闭  1~100为镜头边框的暗影程度
+
===镜头滤镜效果信息格式===
 +
当使用SET_CAMERA_FILTER等指令时可以对当前游戏设置镜头滤镜效果。
  
2) 黑白:强度为0时关闭  1~100为同一黑白照片效果
+
镜头滤镜效果信息的格式为:
 +
滤镜效果ID1,强度值|滤镜效果ID2,强度值|...滤镜效果IDn,强度值
 +
目前游戏中支持的镜头滤镜效果ID有:
  
3) 老旧:强度为0时关闭  1~100为老旧(泛黄)照片效果
+
*暗角:强度为0时关闭  1~100为镜头边框的暗影程度
 +
*黑白:强度为0时关闭  1~100为同一黑白照片效果
 +
*老旧:强度为0时关闭  1~100为老旧(泛黄)照片效果
  
4)
 
  
 +
===人物表中具有特殊含义的TAG===
 +
目前一些程序中使用的人物TAG字段
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|LIKE
 +
|标识人物所喜欢的物品类型,影响好感度提升速度
 +
格式:LIKE:类型1|类型2|...
 +
|-
 +
|DEF_WEAPON_SPEED
 +
|默认的武器速度,有此tag时会在人物不装武器时候以此速度为默认武器速度
 +
|-
 +
|FVChangeUnit
 +
|通过礼物改变角色好感度的算法单位系数,无此标记为默认值
 +
|-
 +
|dg_skill
 +
|替换此人物的地城技能
 +
|-
 +
|attached_script
 +
|人物在战斗中挂载的脚本事件ID
 +
|-
 +
|loot_list
 +
|地城战斗中此人物的掉落列表(可用“经验”物品ID作为指定经验获取的来源)
 +
|-
 +
|IsNoExpel
 +
|是否不允许驱逐此角色 (不为空生效)
 +
|-
 +
|IsNoBetray
 +
|是否不会背叛或主动离开阵营 (不为空生效)
 +
|-
 +
|
 +
|
 +
|}
  
11.
+
===地点表中具有特殊含义的TAG===
 +
程序中具有实际功能的地点TAG表
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|迷你地图显示
 +
|除城镇地图默认显示外,其他地方如果要显示必须此tag=1
 +
|-
 +
|迷你地图不显示
 +
|顾名思义
 +
|-
 +
|AI出征关闭
 +
|有此tag的据点不会主动出征、巡逻、占领资源点
 +
|-
 +
|SharedPermission
 +
|共享通商许可地点ID,当此项存在时此地的通商许可与该ID的地点共享。
 +
|-
 +
|
 +
|
 +
|}<br />
  
 +
===阵营表中具有特殊含义的TAG===
 +
程序中具有实际功能的阵营TAG表
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|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无效
 +
|-
 +
|
 +
|
 +
|}
  
 +
<br />
  
人物可使用的TAG:
+
===物品表中具有特殊含义的TAG===
 +
程序中具有实际功能的TAG字段:
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|IgnoreBagSpace
 +
|该道具不会占据道具栏的使用空间,此字段为"1"时开启
 +
|-
 +
|NoSellOrDrop
 +
|该道具不能被丢弃或者出售,此字段为"1"时开启
 +
|-
 +
|BatchUse
 +
|是否支持批量使用,此字段为"1"时开启。 当一个带有此TAG的物品被使用时,其脚本中的 [%arg_int_val1%] 参数为使用时选择的数量值
 +
|-
 +
|DoNotCostWhenUse
 +
|使用时不消耗改物品,此字段为"1"时开启
 +
|-
 +
|Present
 +
|<nowiki>礼物的类型标签字段,以"|"分隔</nowiki>
 +
|-
 +
|AiNotLoot
 +
|AI不可通过正常手段获取到,此字段为"1"时开启
 +
|-
 +
|Mendable
 +
|是否可修复,不可修复的道具耐久度为0后自动损毁,“1”为是
 +
|-
 +
|RoleAct
 +
|人物模型动作,此字段不为空时开启,装备后使用此字段定义的人物动作而不是默认武器动作
 +
|-
 +
|DropModel
 +
|战斗中该物品在地上的模型信息(格式为:大地图单位模型ID#特效信息  如为空则以初始设定表中的 def_dropitem_model 字段代替)
 +
|-
 +
|
 +
|
 +
|}
 +
<br />
  
LIKE:类型1|类型2|...:标识人物所喜欢的物品类型,影响好感度提升速度
+
===地图表中探索地图信息字段中特殊字段说明===
 +
程序中具有实际功能的信息字段:
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|BattleLoseStay
 +
|失败后停留在原地。仅探索地图模式中可用。0:否 1:是
 +
|-
 +
| colspan="2" |'''以下字段适用于游戏版本≥0.7.2.1'''
 +
|-
 +
|RolePlay
 +
|当玩家处于此地图时,角色的模型及名称将以此字段值为ID的人物信息所代替,并且不会显示随从单位的模型,此外背包、队伍等界面功能将被禁用
 +
|-
 +
|FixedGameTime
 +
|当此选项不为空时,游戏时间将被冻结到该字段值所代表的一天中的某个时间(范围0~1.0,例如0.5代表正午12点)。当时间冻结时,世界时间将不会推进,只有当前地图上的单位才可以行动
 +
|-
 +
|CameraFilter
 +
|当处于此地图时强制使用此字段值信息作为镜头滤镜效果。效果同SET_CAMERA_FILTER指令
 +
|-
 +
|NoFoodConsume
 +
|当此选项为1时,玩家在此地图中不会有食物消耗,也不会被饿死
 +
|-
 +
|
 +
|
 +
|}
  
DEF_WEAPON_SPEED:默认的武器速度,有此tag时会在人物不装武器时候以此速度为默认武器速度
 
  
 +
===副本信息表中TAG特殊字段说明===
 +
程序中具有实际功能的信息字段:
 +
{| class="wikitable"
 +
|+
 +
!字段
 +
!说明
 +
|-
 +
|PlayerInitType
 +
|玩家角色初始化模式 0:默认模式(以默认的角色模板和副本初始化位置来初始化角色) 1:手动模式(通过LUA接口来实现控制角色初始化)
 +
|-
 +
|ExpMode
 +
|经验分配模式,格式为:分配模式[,半径参数]
 +
分配模式有以下几种
  
地点可使用的TAG:
+
*0:补刀模式(默认,击杀者独自获得经验)
 +
*1:平均分配模式(参数为分配半径,半径参数≤0时为所有己方玩家平均分配)
 +
*2:共享分配模式(半径参数如果大于0则在半径范围内进行经验共享)
 +
|-
 +
|
 +
|
 +
|}
  
中立不可攻打:有此tag为不可攻打地点
+
===物品道具词条信息格式===
 +
物品道具的词条以“词条类型:{枚举信息1,数值1;枚举信息2,数值2;...}”的格式设置在物品表中,其中词条类型分为以下几种:
  
AI出征关闭:有此tag的据点不会主动出征、巡逻、占领资源点
+
*a:被动增加角色属性,枚举信息为增加属性的Key
 +
*skill:增加角色可用技能,枚举信息为技能ID
 +
*dg_skill:替换角色当前的地城技能,枚举信息为地城技能ID
  
中立条件攻打:在没有设置customInt[取消中立]=”1”之前,不可攻打,之后可攻打
 
  
迷你地图显示:除城镇地图默认显示外,其他地方如果要显示必须此tag=1
+
===物品掉落信息格式===
 +
物品掉落信息格式为:
 +
概率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 中格式)'''
 
 
大地图隐藏名称:在大地图上不显示名称
 
 
 
 
 
物品可使用的TAG【回车符分割不同tag】:
 
 
 
不可丢弃或出售:顾名思义
 
 
 
不占背包格子:顾名思义
 
 
 
 
 
全局的特定INTVAL:
 
 
 
关闭治安与暴乱系统=1:任何地点都不会暴乱,UI上治理相关信息全部去除
 
 
 
主角经验倍率=百分比(如10表示增加10%的经验获取速率)
 
 
 
队伍经验倍率=百分比(同上,仅限主角所在队伍,与主角经验倍率叠加)
 
 
 
全局经验倍率=百分比(同上,该模式中所有人获取经验的倍率,与以上叠加)
 
 
 
 
 
12. 物品道具词条类型:物品道具的词条以“词条类型:{枚举信息1,数值1;枚举信息2,数值2;...}”的格式设置在物品表中,其中词条类型分为以下几种:
 
 
 
a:被动增加角色属性,枚举信息为增加属性的Key
 
 
 
skill:增加角色可用技能,枚举信息为技能ID
 
 
 
dg_skill:替换角色当前的地城技能,枚举信息为地城技能ID
 
 
 
13. 物品掉落信息格式:概率1,物品ID1,最低数量,最高数量[,附带参数表(同6.8节)]|概率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,....”,可支持以下查询参数:
 
QUERY的参数表格式为“参数1=val1,参数2=val2,....”,可支持以下查询参数:
  
【id】直接从全局掉落表中取目标ID的结果(此项存在且不为空时将忽略所有其他查询条件)
+
*【id】直接从全局掉落表中取目标ID的结果(此项存在且不为空时将忽略所有其他查询条件)
 
+
*【lv】指定的适配等级,当-1时适配所有查询结果 当为0时以主角当前等级进行查询
【lv】指定的适配等级,当-1时适配所有查询结果 当为0时以主角当前等级进行查询
+
*【t1】查询筛选TAG1
 
+
*【t2】查询筛选TAG2
【tag1】查询筛选TAG1
+
*【t3】查询筛选TAG3<br />
 
 
【tag2】查询筛选TAG2
 
 
 
【tag3】查询筛选TAG3
 
 
 
 
 
14.
 
 
 
===七、技能命令编辑说明===
 
以下命令适用于战斗中技能的效果与事件。
 
 
 
技能命令条以”\n”换行符分隔,每条由延迟时间*[条件表达式(可选)]#命令内容组成,参考格式如下:
 
 
 
0*条件表达式1#技能命令1
 
 
 
0.2#技能命令2
 
 
 
 
 
……
 
 
 
当条件表达式不为空时,根据条件表达式判定结果执行。
 
 
 
条件语句中可以使用一些内置命令来实现一些例如重复之类的特殊效果,例如
 
 
 
<nowiki>*</nowiki>REPEAT_START:9
 
 
 
语句1
 
 
 
语句2
 
 
 
[@0.01*[%rpt_index%]@]#技能命令
 
 
 
...
 
 
 
语句N
 
 
 
<nowiki>*</nowiki>REPEAT_END
 
 
 
表示将REPEAT_START行与REPEAT_END之间的所有行重复9遍,期间可以通过[%rpt_index%]来查询当前语句处于第几次循环
 
 
 
<nowiki>*</nowiki>SELECT_UNITS:[目标筛选条件表达式](注意,次数查询cast_info中的target为当前单位)
 
 
 
语句1
 
 
 
语句2
 
 
 
...
 
 
 
语句N
 
 
 
<nowiki>*</nowiki>SELECT_END
 
 
 
表示对SELECT_UNITS行与SELECT_END之间所有的命令行,对SELECT_UNITS:后所有满足指定条件表达式的对象使用,并以该对象作为caster对象
 
 
 
其中,嵌入到[@...@]中的语句为保留两位小数的结果运算取值,此类查询仅在技能命令中有效。
 
 
 
目前支持的技能命令有:
 
 
 
1. stop_act:立即停止当前所有技能动作并按照之前指令行动
 
 
 
stop_act#1
 
 
 
2. add_eft:向战场中添加一个预定义的特效体
 
 
 
add_eft#特效体ID#初始位置#运动参数#修改伤检对象(可选,为空时为默认)#附带伤害表达式(可选,为空时按照特效表中定义的伤害表达式计算,格式见6.4节)#目标参数(见7.4节说明)#特效体TAG(用于replace_eft指令查询)
 
 
 
初始位置格式为:位置类型,偏移x,偏移y,偏移z(偏移量为相对于初始方向的偏移)
 
 
 
支持的位置类型有:
 
 
 
cast_pos:技能施放动作的预设位置
 
 
 
tag_pos:技能施放目标单位或者目标坐标的位置
 
 
 
hit_pos:技能命中目标单位当前的位置
 
 
 
unit_pos:技能施放单位当前的位置
 
 
 
start_pos:技能释放时的开始位置
 
 
 
rnd_pos:技能释放单位周围一个任意的位置
 
 
 
dim_pos:通过set_dimpos命令定义的预设位置
 
 
 
reinf_pos:施法者阵营方的增援位置
 
 
 
emitter_pos=EMITTER_ID:ID为EMITTER_ID的发射器发射点位置
 
 
 
unit_round=DIR:LEN:距离施法者正方向偏移DIR角度,距离为LEN的位置
 
 
 
rnd_round=RAD[-MIN_RAD]:施法者半径RAD范围内的随机位置,可选参数MIN_RAD表示随机范围距中心的最小距离,默认为0
 
 
 
eft_pos=TAG:返回查询到的第一个指定特效体TAG的特效体位置,如不存在则返回caster的当前位置 '''注意:仅支持查询由caster本单位创建的特效体'''
 
 
 
……
 
 
 
运动参数格式为:运动类型:运动参数(形如:参数1,参数2,参数3.....)
 
 
 
支持的运动类型有:
 
 
 
l 0:不运动 无参数
 
 
 
l 1:运动至技能目标点 偏移x,偏移y,偏移z
 
 
 
l 2:运动至技能目标单位 无参数(当目标参数不为空时使用目标参数指定的目标,否则按照技能释放目标)
 
 
 
l 3:向指定方向运动 偏移角度,移动距离(最大不超过战场宽度)
 
 
 
l 4:向指定方向往返运动 偏移角度,移动距离(最大不超过战场宽度)
 
 
 
l 5:跟随目标运动 跟随类型(0固定相对位置,1发射点位置),偏移x,偏移y,偏移z,持续时间(-1为永久)
 
 
 
l 6:运动至dim_pos 偏移x,偏移y,偏移z
 
 
 
l .。。
 
 
 
3. dmg_check:进行伤害判定
 
 
 
dmg_check#判断类型#伤害值表达式#目标对象参数#判断参数表(“,”分隔)#是否过滤掉重复检定对象(可选,默认关闭)
 
 
 
支持的判断类型有:
 
 
 
l 0:单体判断(目标对象参数为目标单位见下一小节,为空表示技能目标)
 
 
 
l 1:半径范围判断 目标对象参数为目标类型(0:敌方 1:我方 2:双方) 参数表中参数1为参考位置类型(见add_eft命令的位置类型) 参数2,3,4,5分别为偏移坐标的x,y,z及半径
 
 
 
l 2:多边形范围判断 目标对象参数同上 参数表中参数1同上 参数2为旋转角度 参数3为多边形顶点数,参数4以后为以参考点坐标为(0,0)的多边形坐标信息
 
 
 
4. add_buff:对目标施加BUFF
 
 
 
add_buff#buff ID#BUFF目标参数#持续时间(如不指定则采用BUFF默认持续时间)#叠加层数(默认为1)#上限层数(默认为配置表中的数值,只有大于0时生效)
 
 
 
可支持的内置目标参数有:
 
 
 
caster:技能释放者
 
 
 
target:目标单位(指向性技能的目标或技能命中的目标)
 
 
 
roleid,ROLEID:查询单位绑定人物ID为ROLEID的一个目标对象
 
 
 
buffgiver,BUFFID:查询当前caster身上一个ID为BUFFID的BUFF给与者
 
 
 
find_tag_res:查询指定目标的结果单位(必须先执行一次[%find_tag:TAGINFO%]查询才可调用)
 
 
 
tag_next_fu,距离D:当前命中目标的下一个小于距离D的友方单位
 
 
 
caster_next_fu,距离D:施法者的下一个小于距离D的友方目标
 
 
 
caster_next_eu,距离D:施法者的下一个小于距离D的敌方目标
 
 
 
 
 
5. remove_buff:移除目标的BUFF
 
 
 
remove_buff#移除目标(同上)#移除方式#参数1,参数2,参数3...
 
 
 
目前支持的移除方式如下
 
 
 
l 0:全部移除
 
 
 
l 1:移除指定BUFF 参数1为BUFF ID,参数2为移除层数(默认-1为全部移除)
 
 
 
l 2:移除有害BUFF 参数1为移除数量(默认-1全部移除),参数2为BUFF子类型(默认-1不限)
 
 
 
l 3:移除有益BUFF 参数1为移除数量(默认-1全部移除),参数2为BUFF子类型(默认-1不限)
 
 
 
1:
 
 
 
6. dart_move:突进类移动
 
 
 
dart_move#动作ID#移动类型#速度参数#冲撞质量#绑定特效#运动结束承接技能,技能等级(默认1级)[可为空],时间偏移(秒,在运动结束前开始执行承接技能向前的时间偏移量>=0)[可为空]#操作对象(可选,默认为caster)#修正目标位置(可选,参数格式见节2)#是否强制(默认0  为1时强制移动)
 
 
 
移动类型分为:
 
 
 
0:匀速运动
 
 
 
1:跳跃
 
 
 
2:击退运动
 
 
 
3:击飞运动 (当为击飞运动时,速度参数为击飞的滞空时间)
 
 
 
速度参数为角色移动时的水平速度(当速度小于等于0时为闪现至目标)
 
 
 
冲撞质量在匀速运动时表示刚体质量,0为无视碰撞 (当为跳跃运动时该参数代表跳跃高度)——由于不使用物理引擎了,目前暂时无用了,参数还必须要填写。
 
 
 
绑定特效为运动时附加在单位上的特效ID
 
 
 
运动结束承接技能为执行运动结束后立即执行的技能ID
 
 
 
7. stop_dartmove:停止当前突进运动
 
 
 
stop_dartmove#1
 
 
 
8. explode:在目标位置进行一次爆破物理效果
 
 
 
explode#初始位置(见2节解释)#爆破半径#力度参数
 
 
 
9. add_force:对目标单位进行一次击退效果
 
 
 
add_force#力度参数#目标单位(可省略,默认target)
 
 
 
10. play_sound:播放一个指定音效
 
 
 
play_sound#音效ID#音效位置(同第一节解释)
 
 
 
11. unit_sound_dic:单位根据模型配置播放指定音效字典中的字段对应音效
 
 
 
unit_sound_dic#音效字典KEY值#单位目标参数
 
 
 
12. cast_sound:播放一个指定音效(在施法者处)
 
 
 
cast_sound#音效ID
 
 
 
13. chain_eft_to:播放一个链式特效
 
 
 
chain_eft_to#释放单位#目标单位#特效预制体#传播速度(-1为瞬间)#维持时间#命中目标的伤害值表达式
 
 
 
释放目标的参数同本章第4小节
 
 
 
14. taunt:嘲讽效果,让目标立即攻击释放者
 
 
 
taunt#释放者#目标单位
 
 
 
15. use_skill:立即触发一个不需要吟唱时间的单体目标技能(可以是当前施法者没有的技能)
 
 
 
use_skill#技能ID,技能等级(默认1级)#释放者#目标单位#目标位置(同2小节,为空表示同目标单位位置)
 
 
 
16. set_cmd_val:操作当前命令行参数
 
 
 
set_cmd_val#操作方式#操作值D
 
 
 
操作方式:0:设置为值D  1:增加值D 2:减少值D
 
 
 
注意:与其他缓冲后一次执行的指令不同,该指令不会进入执行队列,将立即执行生效。这是为了在一些需要在执行语句上下文中使用临时变量进行信息中继所设计的结构。
 
 
 
17. set_dimpos:设置预设位置参数
 
 
 
set_dimpos#操作方式#操作参数[#偏移参数(仅在查询单位位置时生效)]
 
 
 
操作方式:
 
 
 
0:我方增援出兵位置 操作参数分别为 x,y,z的偏移
 
 
 
1:查询目标单位位置 操作参数为查询指令(见第4小节)
 
 
 
2:查询技能参数位置 操作参数为查询指令(见第2小节位置信息)
 
 
 
18. play_sk_act:播放一个已定义的技能动作
 
 
 
play_sk_act#目标单位#技能动作ID名称#播放速度系数(默认1)#是否停止移动(默认否)
 
 
 
19. summon_unit:召唤一个单位
 
 
 
summon_unit#召唤方式#对象参数[,血量百分比(可选参数,默认为100)]#初始位置参数#持续时间#附加状态表#附加特效参数
 
 
 
召唤方式:0:对象的镜像  1:通过人物ID召唤  2:通过小兵ID召唤
 
 
 
对象参数: 当召唤方式为0时表示对象单位(参考本章4节);当召唤方式为1时表示人物模版ID,等级;当召唤方式为2时表示兵种单位ID
 
 
 
初始位置参数见本章2节
 
 
 
持续时间小于等于0时表示本次战斗永久持续,大于0时表示持续秒数
 
 
 
附加状态为该单位的附加属性表,如: s_生命,-[&[%s_生命%]*0.5&]|s_攻击,-[&[%s_攻击%]*0.5&]   表示召唤出的单位生命与攻击力均为原单位的一半
 
 
 
附加特效参数:默认为0 当为1时显示半透明影子效果
 
 
 
20. set_unitpos强制改变目标单位的当前位置
 
 
 
set_unitpos#操作对象(同4节)#位置信息(同2节)
 
 
 
21. set_active设置目标单位的激活状态
 
 
 
set_active#操作对象(同4节)#是否激活(1是0否),是否隐藏(1是0否,仅在非激活时有效)
 
 
 
22. kill_unit目标立即被击倒(无视无敌属性)
 
 
 
kill_unit#操作对象(同4节)
 
 
 
23. down_unit目标主动倒下
 
 
 
down_unit#操作对象(同4节)
 
 
 
24. b_talk在目标头上弹出一个对话气泡
 
 
 
b_talk#操作对象#对话内容#持续时间(秒数,可省略)
 
 
 
25. yell目标呼喊出几个字(多为技能)
 
 
 
yell#操作对象#喊话内容
 
 
 
26. warning_area播放一个圆形战场警告区域
 
 
 
warning_area#目标位置信息#半径#持续时间(秒)
 
 
 
27. timeline播放一个TimeLine技能对象
 
 
 
timeline#指定的TimeLine ID
 
 
 
28. block_act 设置当前施法者的动作锁定状态
 
 
 
block_act#状态类型(见下表)#是否可打断该状态(0否1是)#锁定时间(单位:秒 Timeline里编辑时可不指定该时间,以再度调用 block_act#0#0#0的时间差为准)
 
 
 
可用的锁定状态
 
 
 
0:不锁定
 
 
 
1:锁定攻击及移动
 
 
 
2:仅锁定攻击
 
 
 
29. camera_shake 镜头抖动
 
 
 
camera_shake#时长(秒)#幅度
 
 
 
30. rotate 控制角色进行旋转
 
 
 
rotate#目标参数(见7.4)#起始偏转角度(相对于当前方向)#共计旋转角度数(负数为反转)#持续时间(秒)
 
 
 
31. replace_eft:查找并用指定的特效体在当前位置替换目标特效体
 
 
 
replace_eft#指定的特效体TAG#匹配数量(≤0时为匹配全部,>0为匹配生成时间最早的有限几个)#用于替换的特效体ID(可为空表示直接停止目标特效)#初始位置(默认空或hit_pos为替换目标的当前位置,否则同add_eft)#运动参数#修改伤检对象(可选,为空时为默认)#附带伤害表达式(同add_eft)#目标参数(同add_eft)#特效体TAG(用于replace_eft指令查询)#原特效体创建者的对象参数(可选,默认为所有人)
 
 
 
32. hitstop 角色顿帧
 
 
 
hitstop#操作对象#曲线起点降速幅度(倍率)#曲线终点降速幅度(倍率)#时长(秒)
 
 
 
(结束后角色动作速度恢复为1倍)
 
 
 
33. global_hitstop 全局顿帧
 
 
 
global_hitstop#曲线起点降速幅度(倍率)#曲线终点降速幅度(倍率)#时长(秒)
 
 
 
(结束后全局速度恢复为1倍)
 
 
 
34. set_skill_cd 更改施法者的技能CD
 
 
 
set_skill_cd#技能ID表(为空或者为ALL表示单位的所有技能,多个技能ID以”|”分隔)#操作方式(0:减少 1:直接赋新值)#操作值(单位:秒)
 
 
 
35. get_items 战斗中立即获得道具或资源(增加的道具只对主角自己使用时有效)
 
 
 
get_items#道具列表(道具表格式同剧情指令中的GETITEMS指令)#获得道具的对象目标参数
 
 
 
36. set_unit_intvar 为此单位设置一个自定义的整形变量值
 
 
 
set_unit_intvar#变量ID#操作方式(0:±改变 1:直接赋值)#操作值#操作对象目标参数(可选,默认为施法者)
 
 
 
37. call_battle_event 执行一个指定的战斗事件
 
 
 
call_battle_event#事件ID#执行者的目标参数(可选,事件脚本中THIS对象的默认值)
 
 
 
38. change_skill 替换施法者单位的当前技能列表
 
 
 
change_skill#技能列表信息
 
 
 
39. revert_skill 还原施法者的当前技能列表
 
 
 
revert_skill#1
 
 
 
40. change_dungeon_skill 替换施法者的地城技能
 
 
 
change_dungeon_skill#技能ID,等级
 
 
 
41. revert_dungeon_skill 还原施法者的地城技能
 
 
 
revert_dungeon_skill#1
 
 
 
42. replace_tag_skill 将一个单位的指定技能暂时替换为其他技能
 
 
 
replace_tag_skill#原技能ID#替换为新的技能ID,等级(如需还原该技能则为空)#替换时长(≤0时为永久,>0为持续指定秒数)#对象单位目标参数
 
 
 
43.
 
 
 
===八、地图假人设置及控制方法说明===
 
大地图上,可在任意对象层中设置一些mtype为dummy的矩形区域,同时可以添加以下一些自定义字段来完善该单位信息:
 
 
 
(带*号的为可选字段,如不填将由默认值代替)
 
 
 
1. dummy_id:假人全局索引编号(可重复,如重复则为批量控制)
 
 
 
2. model_id:大地图单位模型
 
 
 
3. *role_id:绑定对象人物的ID(默认为空时不显示目标名称)
 
 
 
4. *init_state:初始状态 -1:隐藏(默认) 0:正常
 
 
 
5. *init_dir:初始方向(默认0)
 
 
 
6. *move_info:假人行动方式(默认为静止。)命令格式参考6.7.9节
 
 
 
7. *interative:是否可交互0:否 1:是(默认)
 
 
 
8. *move_speed:假人移动速度 (默认为100)
 
 
 
9. *camp_id:所属阵营 (默认为空)
 
 
 
当需要绑定假人类型的地图交互触发器时,需指定触发事件为“encounter”,触发类型为“DUMMY”,触发ID为假人的dummy_id
 
 
 
===九、地图宝箱设置说明===
 
地图上可设置一些奖励类的可交互对象,当点击时会执行脚本并获取奖励
 
 
 
该类宝箱对象需要将mtype设置为chest,同时添加以下自定义字段:
 
 
 
1. chest_id:宝箱全局索引编号(可重复,如重复则为共享CD并批量控制)
 
 
 
2. info_id:宝箱的描述信息编号(所有信息定义在“地图宝箱信息表.xlsx”中
 
 
 
3. *init_state:初始状态 0:未开启(默认) -1:已开启
 
 
 
4. *init_dir:初始方向(默认0)
 
 
 
===十、地图野怪设置说明===
 
野怪属于地图刷新单位的一种,实现机制复用了地图假人系统。
 
 
 
设置地图野怪首先需要在Tiled中定义野怪刷新的位置和信息,设置方法为将矩形对象的mtype设置为monster,同时添加以下自定义字段:
 
 
 
1. monster_id:野怪的全局索引编号(可重复,如重复则为共享CD并批量控制)
 
 
 
2. m_group:野怪的索引组(所有信息定义在“野怪投放适配表.xlsx”中
 
 
 
3. min_lv:适配到的最低等级
 
 
 
4. max_lv:适配到的最高等级
 
 
 
5. *init_state:初始状态 0:未开启(默认) -1:已开启
 
 
 
6. *init_dir:初始方向(默认0)
 
 
 
7. *move_info:野怪行动方式(默认为静止。)命令格式参考6.7.9节
 
 
 
8. *move_speed:野怪移动速度 (默认为100)
 
 
 
9.
 
 
 
===十一、游戏数据中运算值表达式系统说明===
 
在游戏中很多地方可以以“[&expression&]”的格式嵌入一些数值公式进去(如BUFF列表的状态值等)
 
 
 
数值公式中支持一些基本数学运算,目前支持的运算符号如下:
 
 
 
1. +:加法运算
 
 
 
2. -:减法运算
 
 
 
3. *:乘法运算
 
 
 
4. /:除法运算
 
 
 
5. %:模运算(取余)
 
 
 
6. ^:幂运算
 
 
 
7. ( ):改变运算优先级
 
 
 
此外,当数值公式以 @func(expression1,expression2...) 的格式出现时,则调用相关的内置函数返回计算结果。目前支持的内置函数如下(注意:当前此等内置函数只能用于最外层的计算)
 
 
 
1. @min(a,b):返回a与b中较小的一个值
 
 
 
2. @max(a,b):返回a与b中较大的一个值
 
 
 
比如某段数据中[&1+2*3&]将会被替换为7,[&@max(1+2*3, 8)&]将会被替换为8,[&@min(1+2*3, 8)&]将会被替换为7……
 
 
 
===十二、单位对象附加触发脚本编辑说明===
 
通过在地城单位对象中的触发命令中定义,可对该单位附加若干触发器脚本。角色表中角色也可以通过在TAG中指定attached_script字段为一个脚本事件ID来给该角色附加触发脚本。定义格式为:
 
 
 
[CMD_BEGIN]#触发类型1#触发条件(可选)#触发参数(可选)
 
 
 
命令行1
 
 
 
命令行2
 
 
 
...
 
 
 
命令行N
 
 
 
[CMD_END]
 
 
 
[CMD_BEGIN]#触发类型2#触发条件(可选)#触发参数(可选)
 
 
 
命令行1
 
 
 
命令行2
 
 
 
...
 
 
 
命令行N
 
 
 
[CMD_END]
 
 
 
...
 
 
 
 
 
每个对象可挂载多个地城对象触发器,当前已支持的触发类型有:
 
 
 
on_spawn:当刷新出时
 
 
 
enter_combat:进入战斗
 
 
 
get_hurt:单位受到伤害
 
 
 
dead:单位死亡时
 
 
 
on_timer:当单位身上的计时器(战斗指令SET_UNIT_TIMER设置)到时时触发
 
 
 
on_skill:该单位开始释放技能时触发 触发参数位技能ID
 
 
 
hp_pct:单位血线第一次少于目标百分比时触发 触发参数位目标血线的百分比
 
 
 
 
 
以下为一段示例附加脚本:
 
 
 
[CMD_BEGIN]#enter_combat#
 
 
 
B_TALK*THIS#关门,放狗!
 
 
 
[CMD_END]
 
 
 
[CMD_BEGIN]#get_hurt#[%this_hp_pct%][<=]5&[%dg_int_val:测试计数器1%][<=]0
 
 
 
SET_DG_INTVAR*测试计数器1#1#1
 
 
 
SKILL_CMD*THIS#THIS#0#add_buff#中立#caster B_TALK*THIS#别打了!别打了!我认输,什么都给你!
 
 
 
CMD_RETREAT*1
 
  
[CMD_END]
 
  
===十三、特效对象事件脚本指令格式===
+
===特效对象事件脚本指令格式===
 
特效对象可以附加 eftEffectEventHelper 脚本为其增加播放事件,每个事件的输入格式为: 事件时间点(start后的秒数):指令类型,参数1, 参数2,....,参数N
 
特效对象可以附加 eftEffectEventHelper 脚本为其增加播放事件,每个事件的输入格式为: 事件时间点(start后的秒数):指令类型,参数1, 参数2,....,参数N
  

2024年5月14日 (二) 20:32的最新版本

特别注意:脚本编辑时注意所有特殊符号必须为半角!!!同时在剧情和所有配置表里也要避免使用带有特殊符号的字符串,以防止和脚本配合使用时发生脚本注入错误!

剧情事件

剧情事件是游戏过程中用来实现剧情脚本的基本元素。游戏中所有的剧情事件都是由触发器或者执行器调用并丢入指令队列中,然后在游戏中由世界事件管理器(GameWorldManager)在游戏世界时间运行时顺序执行的。 一个完整的剧情事件主要由以下部分组成:

  1. 剧情事件ID:用以唯一标识该剧情事件;
  2. 命令内容:包含该剧情事件触发后执行的命令条目;
  3. 结果:根据命令条目最后一条的返回结果,进行条件判定并跳转;


剧情事件触发器

目前游戏中所有的剧情及事件都是基于剧情事件触发器机制来建立的。触发器的设计原理为,通过在游戏中的各种关键位置预设事件接口,当程序访问这些程序位置时,就会调用这些事件接口并传入当前调用时的环境变量,程序会根据当前的环境变量去遍历该接口事件中定义的所有触发器,并返回其中优先级最高的一个触发器或者所有满足条件的触发器(根据接口的类型不同来决定是返回一个还是所有触发器)来执行对应的剧情事件。触发器调用事件时并不是立即执行的,而是把对应的事件放入剧情事件执行队列中依次执行,直到队列中所有的事件都执行结束。

目前游戏中定义的剧情事件接口列表为(加粗的为全部触发类型,既执行所有满足条件的触发器事件而非优先级最高的一个):

接口类型 接口说明 对象类型 对象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)

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

  • 参数1:目标BGM的AudioID(如果需要定义中文名,需要加前缀@,并在音效表中定义中文名对应的音效文件,类型必须是BGM,为空时表示切换回当前地图默认的BGM,当该ID为保留字段”MUTE”时,表示当前不播放BGM)
  • 参数2:有效期类型(0:切换场景时无效 1:始终有效,哪怕保存游戏再进来,除非再次调用CHANGE_BGM指令指定一个空的AudioID)
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*指令内容

  1. 移动至指定坐标:MOVETO#对象ID#目标坐标x,y#等待回调(1:否 0:是)
  2. 追逐指定目标:CHASE#对象ID#目标ID#等待回调(1:否 0:是)
  3. 主角进入指定地点:ENTER_PLACE#目标地点ID#进入方式(0普通 1潜入)#是否屏蔽enter_place事件(0否 1是)#是否移动摄像头到目标地点(0否 1是,默认是,若地点不在当前地图则不会移动镜头)
  4. 主角离开当前地点:LEAVE_PLACE#1
  5. 显示一个战斗标记:SHOW_BATTLE_MARK#目标坐标x,y
  6. 隐藏当前战斗标记:HIDE_BATTLE_MARK#1
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)

可设置的倾向类型:

  • develop : 发展倾向,影响建筑建设
  • recruit : 募兵倾向,影响兵力招募
  • invasion : 侵略倾向
  • enlarge : 扩展倾向
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标签(用来查找特定的队伍)

目前指令方式支持以下几种:

  • 0:自定义指令:当自定义指令时参数为队伍指令内容(格式如:指令类型1,参数1;指令类型2,参数2;...;指令类型N,参数N (指令格式见 队伍预置指令说明)
  • 1:预制指令入侵城市:参数为目标城市的ID,入侵方式(默认0)
  • 2:预制指令入侵势力:参数为目标势力的ID,目标优先方式(0距离优先 1城防值优先),入侵方式(默认0)
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[为空表示当前目标角色]#指令代码:指令参数表


当前指令代码支持以下内容:

  • RETURN_JOBCITY:角色返回所属地点,无参数,当其为队长时直接变更队伍指令,不是队长时离开当前队伍并返回,在其他地点时则创建队伍并返回
  • GOTO_PLACE:角色前往目标地点,参数为目标地点ID
  • JOIN_PLAYER_TEAM:角色直接加入主角队伍,无参数
  • FOLLOW_ME:角色集结并跟随主角队伍,无参数
  • EXPEL_FROM_CAMP:从阵营中驱逐该角色,无参数
ADD_INTERACTIVE_MSG 添加可交互消息

用途:添加一条自定义的可交互消息,并在对应的UI中显示

格式:ADD_INTERACTIVE_MSG*消息类型#标题#内容文本#参数文本#持续时间(<=0为永久持续,否则为天数)#发起者信息#TAG参数


目前支持的消息类型有:msg:消息 request:请求  finance:财务

当消息类型为非财务消息时,参数文本的格式为:

参数Key1:参数值1;参数Key2:参数值2;...;参数Key N:参数值 N

目前系统内置的参数KEY类型有:

  • ask:指定此消息为一个请求并且根据参数最多带有两个命令选项,格式为: ask:选项1显示文字=选项1执行事件ID[:选项2显示文字=选项2执行事件ID]

例如:ask:是=Event1:否=Event2

  • items:指定此消息为一个获取道具表的消息,参数值为对应道具列表信息,如:items:金钱,10000|紫金之刃,1,mf=0-3|黄金之枪,1,mf=0-3|幻刃月光,1,mf=0-3
  • 其他字段均可自己定义,并通过消息交互中触发的指令中用[$tagmsg:arg=参数KEY$]来查询对应参数字段所包含的值


当消息类型为财务消息时,参数文本的格式为:

账单字段1=账单明细表(格式为: 资源1,数目1|资源2,数目2|...|资源N,数目N);账单字段2=账单明细表;[...];账单字段N=账单明细表

发起者信息的格式为: 发起者类型代码:发起者ID

目前支持的发起者类型有:

  • 0:系统  对应ID为空
  • 1:人物  对应ID为人物ID
  • 2:地点 对应ID为地点ID
  • 3:势力 对应ID为势力ID


TAG参数为任意用来标记用的字符串字段

REMOVE_INTERACTIVE_MSG 移除可交互消息

用途:移除指定条件的可交互消息

格式:REMOVE_INTERACTIVE_MSG*消息类型#发起者信息#TAG参数


消息类型及TAG参数可填空,表示不限类型或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 运行指定Lua脚本

用途:运行指定的Lua脚本(不推荐使用)

格式:RUN_SCRIPT*脚本相对路径文件名(相对于脚本根目录“Asset\BuildSource\LuaScripts\” ,无文件扩展名)

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在不同类型命令下返回的含义

  • 当选择框返回时表示其选项ID
  • 当战斗结束返回时 0:战斗胜利  1:战斗失败
  • 当整数输入框时为表示输入的数字
[%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可为如下内容:

  • id:角色ID
  • active_state:该角色的状态,0正常,-1不活跃
  • name:角色名称
  • gender:角色性别 0:男 1:女
  • level:角色等级
  • job_type:身份类型 0:百姓 1:阵营成员 2:城主 3:阵营领袖
  • campid:所属阵营ID
  • campname:所属阵营名称
  • campleaderid:所属阵营首领的ID
  • campleadername:所属阵营首领的名称
  • campleader:所属阵营首领的称呼
  • fame_val:个人名望值
  • maxhp:最大生命
  • maxmp:最大气力
  • job_cityid:任职地点ID
  • job_cityname:任职地点名称
  • state:当前状态:0:正常 1:被俘 -1:死亡
  • is_recruitable:是否可招募人物 0:不可 1:可招募
  • is_leave_team_enable:是否可以离队 0 不可以 1可以
  • recruit_val:当前可招募标记 0:不可 1:可招募
  • inteam:是否在玩家队伍中 0:不在 1:在
  • camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
  • player_camp_rep:主角在目标阵营的声望值
  • player_camp_rep_desc:主角对目标阵营的声望值描述
  • fv:与玩家的友好度
  • player_relation_score:与玩家的综合好感评估
  • def_weapon_type:该角色可以使用的武器类型,-1为无限制
  • cur_weapon_type:该角色当前装备的武器类型
  • cur_armor_type:该角色当前装备的护甲类型
  • cur_weapon_atk_type:该角色当前装备的武器的伤害类型
  • weapon_tag=(自定义tag字段):查询装备武器上的指定tag,如果没有武器或者指定tag不存在,都会返回[$null$]
  • skill_level=(技能ID):查询人物目标技能的当前等级
  • skill_maxlevel=(技能ID):查询人物目标技能的最大等级
  • skill_exp=(技能ID):查询人物目标技能的当前经验
  • skill_upexp=(技能ID):查询人物目标技能当前等级升级到下一级所需经验
  • skill_page=(技能页ID):查询人物是否有指定技能页,1表示有,0表示没有
  • tag=(自定义扩展字段KEY):返回指定的自定义字段值
  • statu=(自定义ID):查询人物属性表里的相应ID的值。如果没有则返回[$null$]
  • statu_int=(自定义ID):查询人物属性表里对应ID的int值,没有返回0
  • statu_extra=(自定义ID):查询人物额外属性表(通过HERO_UPGRADE和HERO_SET_STATU添加的额外属性)里对应ID的int值,没有返回0
  • has_girl_friend:【主角专用】是否有女友,1表示有,0表示没有
  • current_girl_friend_name:【主角专用】女友姓名
  • girl_friend=角色ID:【主角专用】查询某人是否为主角女友
  • is_female:是否为女性角色,1表示是,0表示不是
  • available_quest:可用任务
  • int_val:返回挂在在角色身上的整形可存储变量(SET_ROLE_INTVAR指令所操作)
  • str_val:返回挂在在角色身上的字符串可存储变量(SET_ROLE_STRVAR指令所操作)
  • nature_val=(性格ID):返回指定的角色性格字段
  • noble_title:返回角色在所在阵营的爵位名称
  • noble_rank:返回角色当前在所在阵营的爵位等级
  • auth_info:返回角色当前在所在阵营的爵位对应的权限信息
  • present_timer:返回此角色当前距上一次送礼后过去的时间整数(天)
  • role_fv=(角色ID):返回角色与另外一个角色间的关系
  • cur_place:返回角色所在的地点ID,如果是在野外返回空
  • fief_count=(领地类型):查询角色当前的领地数量,领地类型有:0=全部 1=仅限主城 2=仅限村庄
  • avatar:返回该角色目前的立绘数据,其中使用了$替代#字符
  • model:返回该角色目前的模型数据,其中使用了$替代#字符。注:模型数据可能因为装备变更而变动
  • model_raw:返回该角色的原始模型数据,角色定义表中的模型或者自定义的模型数据,其中使用了$替代#字符
  • desc:返回角色的背景介绍信息,对应角色表中的Desc标签。其中换行符会被替换为\n
[$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可为如下内容:

  • id:地点ID
  • name:地点名称
  • campid:所属阵营ID
  • mapid:所属地图ID
  • campname:所属阵营名称
  • prosperity:当地繁荣度
  • defence:当地城防值
  • rep:当地好感度
  • security:当地治安值
  • size:地点规模值
  • lord_id:城主角色ID
  • lord_name:城主角色名称
  • tag=(自定义扩展字段KEY):返回指定的自定义字段值
  • is_stronghold:是否据点类型(可驻守军队)
  • is_weekhold:不可驻守军队的【资源点】
  • is_couldoccupy:当前是否可攻占
  • is_couldraid:当前是否可掠夺
  • is_inwar:当前地点是否正在战斗中
  • is_raided:地点当前是否已被掠夺(处于恢复期)
  • is_subplace:当前是否附属地点
  • stat=(状态值字段ID):获取当前地点的指定状态值
  • building=(指定设施ID):查询地点内指定建筑ID的设施数量(包含建设中的)
  • building_t=(指定设施类型):查询当地指定类型的设施数量(包含建设中的)
  • r_building=(指定设施ID):查询地点内指定建筑ID的设施数量(不包含建设中的)
  • r_building_t=(指定设施类型):查询当地指定类型的设施数量(不包含建设中的)
  • custom_int=(自定义字段ID):获取当前地点的整形自定义字段值
  • camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
  • func_map=(指定字段KEY):查询对应指令事件映射表映射的字段,如func_map=hirelist
  • player_rep:玩家在该处的声望
  • hire_states:查询该处的招募状态
  • player_dist:玩家当前位置距离该地点的距离,如果不可达,则返回-1.
  • project_count:当前正在进行中的项目建设数量
  • project_max:当前进行项目建设的最大数量
  • score:地点的综合实力评估分数
  • pos:地点的位置信息
  • last_occupy_leader:7天内攻占此地的上一个占领者队长ID
  • first_candidate:当前地点所属阵营对该城城主的第一候选人ID
  • tournament:返回当地是否正在举办比武大会,是1否0
  • tournament_roles=最大显示数量:打印当前参与比武大会的角色列表,超过最大显示数量时以("...")省略超出者名单
  • roles_num=场景名称:该场景(酒馆,领主大厅,城镇中心)的角色数量
[$tagmap:INFO:ID$] 查询一个地图区块的信息:
  • id:区块id
  • name:区块名称
  • dominant_camp:如果存在完全统治的势力,则返回该势力名称,不存在则返回空
  • dominant_camps=(自定义字段ID):如果仅存在某几个指定id的势力,则返回1,否则返回0,自定义字段格式:势力1#势力2#势力3
  • camp_place_count=势力ID:返回在该区块某势力的据点数目
  • ExploreInfo=Info ID:查询某个探索地图信息的值
[$tagbuilding:INFO$] 查询当前目标建筑信息
  • id:建筑ID
  • name:名称
  • inner_id:目标建筑的地点内置ID
  • type:建筑类型
  • level:建筑等级
  • tag=(自定义扩展字段KEY):返回指定的自定义字段值
  • container_id:绑定在此建筑的容器实例ID
  • container_info:绑定在此建筑的容器信息ID
[$tagwb:INFO$] 查询当前遭遇战斗的信息INFO可为如下内容
  • id:战斗ID
  • camp_a:参战A方的阵营ID
  • camp_b:参战B方的阵营ID
  • leader_a:参战A方的领袖人物ID
  • leader_b:参战B方的领袖人物ID
  • camp_a_rl:参战A方与主角阵营的关系
  • camp_b_rl:参战B方与主角阵营的关系
  • teamname_a:参战A方的阵营及将领名称
  • teamname_b:参战B方的阵营及将领名称
  • seige_time:当前战斗攻城战的准备时间,如果它是攻城战的话(单位:天)
[$tagteam:INFO(:QUERY_INFO)$]

[$playerteam:INFO$]

查询当前遭遇队伍(tagteam)/主角队伍(playerteam)的信息。

当查询为tagteam时,可以选择指定队伍查询参数,当指定队伍查询参数指定时,只返回查询目标的信息

INFO可为如下内容

  • id:队伍ID
  • is_active:当前队伍状态是否正常,正常返回1
  • campid:所属阵营ID
  • campname:所属阵营名称
  • state_num:当前队伍的StateNum值
  • from_id:来自地点的ID
  • from_name:来自地点的名称
  • lifetime:队伍自创建以来经历的游戏时间(天数)
  • camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
  • max_attr_lv=属性字段ID: 队伍中所有角色中某属性的最高值
  • total_attr_lv=属性字段ID: 队伍中所有角色中某属性的总值
  • exist_role=角色ID:返回队伍是否存在某人物ID,是返回1否0
  • roles_count:队伍中英雄数量
  • soldiers_count:队伍中小兵数量
  • role_vacancy:队伍剩余的英雄可用位置
  • soldier_vacancy:队伍剩余的可用小兵卡牌位置
  • map_info:当前地图位置信息
  • tag:返回队伍的TAG标签
  • is_defeated:是否被击败而解散的 0:否 1:是
  • defeated_by:被目标势力打败的势力ID
  • score:队伍的实力评估分数

QUERY_INFO格式为: [查询类型]=[查询目标] 如: leader=ROLE_ID

当前支持的查询类型有:

  • bind_id:绑定的信息ID,当队伍类型为野怪或假人时为其对应ID,当为其他类型时为队长人物ID
  • leader:队伍的队长ID
  • tag:队伍的TAG标记(用于CREATE_TEAM指令创建的队伍)


[$tagcamp:INFO:ID$] 查询目标阵营信息,当ID不存在时为查询当前阵营。INFO可为如下内容
  • id:势力ID
  • campname:阵营名称
  • leaderid:领袖ID
  • leadercalled:阵营领袖的称呼
  • lands_count:当前该势力的领地数量
  • camp_rl:目标阵营与主角阵营之间的关系 0中立 1交战 2盟友 3己方
  • camp_rl_value :目标阵营与主角阵营之间的好感度具体数值
  • stat=(状态值字段ID):获取当前阵营的指定状态值
  • buff=(目标BUFF的ID):查询当前阵营指定BUFF是否存在(1为是)
  • buff_c=(BUFF类型):查询当前阵营指定类型的BUFF数量
  • active_state:目标阵营的活跃状态 0:不活跃 1:活跃
  • is_story_camp:是否剧本阵营 0:否 1:是
  • player_rep:主角在此阵营的声望值
  • attitude:阵营对主角的态度 0:正常 -1:通缉 -2:战争
  • is_fall:阵营是否已灭亡 0:否 1:是
  • weight=(倾向类型): 查询目标类型的倾向(见SET_CAMP_WEIGHT)不存在则返回0
  • role_count:阵营内领主数量
[$tagbazzar:INFO$] 查询当前系统传入的集市的信息
  • start_day:集市的开始天数
[$tagbazzarItem:INFO:bazzarID:merchantID$] 查询某个集市的某个商人在当前时候买/卖的货物信息
  • item_desc:货物的描述(详细)
  • item_desc_short:货物的描述(简略)
  • item_buy_price:货物的购买价格
  • item_sell_price:货物的卖出价格
[$tagproduct:INFO:ID$] 查询某种特产的信息,ID不填时查询当前传入的特产信息
  • item_name:对应道具的名称
  • item_id:对应道具的ID
  • item_level:对应道具的等级
  • item_price:对应道具的单个公允价
  • player_dist:该特产的中心位置离玩家当前位置的距离,-1表示该中心位置玩家不可达
  • place_include=地点ID:返回0表示指定地点没有售卖对应的道具,1表示指定地点在售卖对应的道具
  • place_include_tagQuestPlace:自动使用当前传入的任务发生地点信息来进
[$tagTextExplore:INFO:ID:copyID$] 查询某个文字探索地图的信息,copyID是因为探索地图可能存在多份副本,可以不填(基本上只有系统传入参数才会填这个copyID)。不填就是地图上可见的那种探索地图。
  • finishCount:探索地图完成次数
  • InCD:0表示没有CD概念或者CD已经ok,1表示正在冷却中
[$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可为以下内容
  • id:物品ID
  • name:物品名称
  • count:物品数量
  • group_n:最大堆叠数量
  • quality:物品品质
  • level:物品等级
  • main_type:物品主类型
  • sub_type:物品子类型
  • equip_type:装备类别
  • gendays:生产日期距离今天已有的天数
  • durability:当前耐久度
  • max_durability:最大耐久度
  • info:该物品的物品信息格式(可用于GETITEMS获取物品等)
  • can_equip=(目标角色ID):该角色是否可以装备物品
  • tag=(自定义扩展字段KEY):返回指定的自定义字段值
[$tagproject:INFO:ID$] 查询一个项目的信息,如果不填ID将从SET_TEMP_ID指定的id中读取。
  • id:项目id
  • state:项目状态(仅团体项目有效) 0:未开始 1:进行中 2:已完成
  • showPlaceName:项目执行地点描述
  • showProjectName:项目名称
  • roles:当前参与项目的所有角色
[$tagunit:INFO$] 查询当前查询目标小兵单位的信息
  • id:单位id
  • name:单位名称
  • level:单位等级
  • statu=(自定义ID):查询单位属性表里的相应ID的值
[$tagcard:INFO$] 查询脚本环境中卡牌的信息
  • id:卡牌绑定的id
  • name:卡牌显示名
  • lv:卡牌等级
  • recruit_name:卡牌带有招募信息的显示名称
  • tag=(自定义扩展字段KEY):返回卡牌指定的Tag字段值
  • has_tag=(自定义扩展字段KEY):查询是否有指定的卡牌Tag字段 1是 0否
  • weapon_type:卡牌相关单位的武器类型
  • attack_type:卡牌相关单位的攻击类型
  • armor_type:卡牌相关单位的护甲类型
  • gem_slots:当前卡牌宝石插槽数量
  • tier:卡牌的等阶
  • class:单位类型
  • statu=(自定义ID):查询卡牌相关单位属性表里的相应ID的值


[$tagrecruit:INFO:ID$] 查询招募组的信息,如果不填ID将使用脚本中的招募组进行查询(通过SET_RECRUIT_CARD或SET_TAG_RECRUIT_GROUP进行设置)
  • id:招募组ID
  • cardId:当前可招募的卡牌ID
  • recruit_count:已经进行过的招募次数,在招募组刷新后重置
  • last_refresh_time:上一次招募组刷新时的游戏天数
  • recruit_time_elapsed:距离上一次招募刷新过去的游戏天数
  • refresh_cd:当前的刷新CD,若未设置则为0
  • in_cd:是否处于刷新CD期,0是,1否
  • recruit_cost:招募需要的道具列表信息
  • recruit_cost_desc:招募需要的道具描述
  • recruit_cost_rate:招募费率,默认为100,即100%费率
  • last_recruit_result:上次招募的结果,1成功,0跳过,-1达到卡牌上限,-2资源不足,-99其他失败情形


[$save_version$] 返回当前游戏存档创建时的版本号
[$version_compare:TAG_VERSION$] 用当前游戏存档创建时的版本号与TAG_VERSION进行比较,如果大于TAG_VERSION返回1,等于TAG_VERSION返回0,小于TAG_VERSION返回-1
[$tagmsg:INFO$] 查询当前可交互消息的信息
  • title:标题
  • content:消息内容
  • arg=(字段KEY值):查询此消息自定义参数表中字段为KEY的参数值
[$tagtimer:INFO:ID$] 查询目标计时器的信息
  • id:计时器ID
  • state:计时器状态:0:不存在 1:已启动
  • last_time:距离目标时间的天数,整数,向上取整
  • last_time_float:距离目标时间的天数,精确到小数点后2位
  • tag_time:目标天数
  • tag_time_float:目标天数,精确到小数点后2位
  • event_id:计时器触发的事件
  • str_arg:计时器绑定的字符串信息
[$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可为如下内容:

  • id: 地点ID
  • bind_npc: 绑定的NPC
  • in_place=(地点ID): 是否存在于某个地点之中,游荡NPC有多个实例时,可能同时存在于多个地点里。
[$tag_container:INFO:容器实例ID,容器模板ID$] 查询目标容器的信息,当容器实例ID与模板ID信息为空时为查询当前环境变量中的容器

INFO可为如下内容:

  • instance_id: 容器的实例ID,若容器为地点容器,则为地点的ID
  • template_id: 容器的模板ID,若容器为地点容器,则为place
  • capacity: 容器的存储容量
  • item_count: 容器的已有元素数量(物品类容器为物品数量,卡牌类容器为兵种数量)
  • item_count_by_id=ID: 查询容器内指定ID对应元素的物品数量(物品类容器为物品ID,卡牌类容器为卡牌ID)
[$place_container:INFO:地点ID$] 同tag_container,但是查询的是地点容器。若地点ID为空,则查询当前环境中的地点。
[$platform_called:def,INFO1|platform:INFO2[|...]$] 根据游戏当前平台返回结果,platform为对应平台定义,INFO为返回文本

可使用的平台有:

  • def:默认结果,当目标平台没有定义时使用此项
  • pc:电脑端平台
  • mobile:移动端平台
[%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

[$int_called:变量1:def,值未知|1,值为1|>=2,值大于等于2$]将在值为1时返回“值为1”,值大于等于2时返回“值为2”,其他值时返回“值未知”

[%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不填时默认为环境中的比武大会

  • id:比武大会ID
  • level:比武大会级别,0:试炼赛 1:锦标赛 2:比武大会
  • all_place:该比武大会所有的可能举办城市,使用'|'分割
  • host_place:该比武大会当前举办城市
  • host_place_name:该比武大会当前举办城市名称
  • state:比武大会状态:0:未举办 1:报名中 2:举办中 3:冷却期
  • battle_state:比武大会比赛阶段:-1:未开始 0~3:八进四比赛 4~5:四进二比赛 6:决赛 7:结束
  • player_join_state:玩家队伍参与情况:0:未参与 1:亲自参与 2:队友参与
  • player_team_index:玩家队伍索引:-1:未参与 0~7 参与队伍索引
  • cur_battle_team_left_roles:当前比赛左方队伍成员,使用'|'分割
  • cur_battle_team_right_roles:当前比赛右方队伍成员,使用'|'分割
  • champion_team_index:当前比赛队伍冠军,为空则不存在(未产生冠军)
  • has_hero_exit:是否有角色退赛(角色不活跃后会退赛)
  • team_leader=INDEX:目标队伍的队长,INDEX为队伍索引,从0~7,Player为玩家队伍
  • team_name=INDEX:目标队伍的名称,INDEX为队伍索引,从0~7,Player为玩家队伍
  • team_members=INDEX:目标队伍的所有成员,INDEX为队伍索引,从0~7,Player为玩家队伍
  • team_members_without_player=INDEX:目标队伍剔除主角后的所有成员,INDEX为队伍索引,从0~7,Player为玩家队伍
  • team_result=INDEX:目标队伍的比赛结果,0:未获奖 1:冠军 2:亚军 3:出线
  • battle_result=BATTLE_STATE:目标比赛的结果,BATTLE_STATE为比赛阶段,结果 -1:不存在 0:未开始 1:左方获胜 2:右方获胜
  • battle_left_team_index=BATTLE_STATE:目标比赛左方队伍索引,索引,从0~7,Player为玩家队伍
  • battle_right_team_index=BATTLE_STATE:目标比赛右方队伍索引,索引,从0~7,Player为玩家队伍
  • prize_item_1:获取比武大会冠军奖品物品信息
  • prize_item_2:获取比武大会准决赛奖品物品信息
  • prize_item_3:获取比武大会出线战奖品物品信息
  • player_prize_item:获得主角本次参赛的奖品信息

传承界面专用查询指令

查询指令 说明
[%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


人物角色位置指令格式

人物位置信息说明 人物位置格式为:位置代码:位置参数

支持的位置代码有 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 掠夺一个地点 参数为目标地点ID【已废止】
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 经验分配模式,格式为:分配模式[,半径参数]

分配模式有以下几种

  • 0:补刀模式(默认,击杀者独自获得经验)
  • 1:平均分配模式(参数为分配半径,半径参数≤0时为所有己方玩家平均分配)
  • 2:共享分配模式(半径参数如果大于0则在半径范围内进行经验共享)

物品道具词条信息格式

物品道具的词条以“词条类型:{枚举信息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