Common Scenario Directives

来自部落与弯刀Wiki

Rehtaf讨论 | 贡献2020年9月21日 (一) 21:27的版本 (创建页面,内容为“ '''Please pay special attention: when editing scripts, you must use half-size punctuations!!! Meanwhile, in scenarios and all configuration tables, please avoid u…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

Please pay special attention: when editing scripts, you must use half-size punctuations!!! Meanwhile, in scenarios and all configuration tables, please avoid using strings that contain special characters. Otherwise, there might be errors when scripts are injected.

Scenario Event

A scenario event is a basic element used to realize scenario scripts in the game. All scenario events in the game are called by emitters or executors and put into the directive queue. These scenario events will be run by the GameWorldManager one by one according to the in-game time. An integrate scenario event consists of the following parts:

1. Scenario Event ID: a unique label of a scenario event;

2. Directive Content: directives that will be executed after a scenario event is triggered;

3. Result: return a result according to the last directive, check conditions and jump to another possible line.


Scenario Event Trigger

Currently, all stories and events are established according to the mechanics of the scenario event trigger. The mechanics of a trigger is: event ports are set at different positions in advanced, and when the program accesses a position, it will call the port and import the current environment variables. The program will then traverse all defined triggers in the port event and return the trigger with the highest priority or all triggers that meet the conditions (to return one or all triggers is decided by the type of a port). Finally, a scenario event is executed. Triggers’ calling events is not executed immediately. Relevant events are put into the execution queue and get carried out procedurally until all events in the queue are executed.

Following is the list of scenario events defined in the game (port types in bold indicate that they execute all trigger events that meet the conditions instead of executing the one of the highest priority):

Port Type Explanation Object Type Object ID
passive Triggered passively;

usually used on triggers in the map editor or triggers that use the TRIGGER directive to execute directly.

talk Triggered when interacting with NPC.
first_in Triggered when the player enters the game for the first time.
encounter Triggered when interacting with units on the sandbox map. Control ID of the target Unit.
before_enter_map Triggered when entering the target map (if any mission trigger responds, the action of entering the map will be interrupted). Target map ID.
enter_map Triggered when entering a map. Target map ID.
before_leave_map Triggered when leaving the target map (if any mission trigger responds, the action of entering will be interrupted). Target map ID.
leave_map Triggered when leaving a map. Current map ID.
enter_place Triggered when entering the target location. Target location ID.
reach_place Triggered before entering a location on the world map (if any trigger responds, the action of entering the locaction will be interrupted) Target location ID.
leave_place Triggered when leaving the current location. Current location ID.
before_leave_place Triggered before leaving the current location (if any trigger responds, the action of leaving the location will be interrupted). Current location ID.
enter_building Triggered when entering the target building Target building ID.
reach_building Triggered before entering the target building (if any trigger responds, the action of entering the building will be interrupted). Target building ID.
leave_building Triggered when leaving the target building. Target building ID.
before_leave_building Triggered when leaving the target building (if any trigger responds, the action of leaving the building will be interrupted). Target building ID.
battle_start Triggered at the start of a battle.
battle_over Triggered at the end of a battle.
set_lord Triggered when AI appoints player as the ruler of a city.
job_cmd Triggered when the player is given a working order.
see_warband Triggered when encountering another squad and battle.
curplace_inwar Triggered when the location where the player is currently settling in is attacked.
quest_done Triggered when all conditions of a mission are met (mission incomplete). 任务ID
on_end_work Triggered when completing a mission of a location.
occupy_place Triggered when the player occupied a location. Target location ID.
new_day Triggered when starting a new day. The target number of days.
reward_follower Triggered when the player rewards their followers.
reward_player Triggered when the player is rewarded.
dip_event Triggered when the player’s faction meets diplomatic affairs. Affair types:

1: Ransom Hostage 2: Friendly 3: Declare War 4: Alliance 5: Alliance Dismissed 6: Armistice.

Target Faction ID.
dip_ret_success Triggered when the player’s diplomatic request is met. Same as above. Same as above.
dip_ret_fail The diplomatic request is not met. Same as above. Same as above.
player_failed Triggered when the player failed in a skirmish. 
reinforce_request Triggered when reinforcement related to player happens.
is_fall Triggered when a faction collapsed. Faction ID.
is_to_fall Triggered when a faction loses all bases and is about to collapse. Same as above.
before_cash_present Triggered before being rewarded (action of rewarding is interrupted).
before_present Triggered before sending a gift (action of sending the gift is interrupted).
on_present Triggered when sending a gift.
encounter_role Triggered before the common dialogue that happens when the player encounters a character. Target Character ID.
helped_camp Triggered when the player encounters a conflict between two sides and helped one side. The faction of the leadrole of target’s squad.
on_place_rep_up Triggered when area tribute increased; the latest tribute value is stored in arg_int_val1.
on_place_rep_down Triggered when area tribute decreased; the latest tribute value is stored in arg_int_val1.
team_dismiss Triggered when a squad is dismissed. Squad Type:

0: character squad 1: squad created by scripts 2: caravan 3: dummy 4: peasant.

team_into_place Triggered when a squad enters a location. Squad Type: same as above. Target location ID.


脚本命令列表

游戏事件中执行的脚本指令一般由: 指令类型*参数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*

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*字幕显示文字#字幕配全屏图资源名称(空为不配图)#背景透明度(可选,默认为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见 天气效果信息格式
BATTLE 执行战斗

用途:执行一个定义在特定战斗表或者当前遭遇战的战斗

格式:BATTLE*战斗ID (当不指定战斗ID或为"ENCOUNTER"则开启当前遭遇战)#指定BGM(可选,如存在指定战斗的BGM)

BATTLE_WITH 与指定单位目标进行战斗

用途:与指定的单位目标开始一场自定义战斗

格式:BATTLE_WITH*对方角色信息(可选)#对方兵牌信息(可选)#战场地图信息(可选)#战场地点信息(可选)#战场天气(可选)#bgm(可选)

BATTLE_WITH_TAGROLE 与目标角色进行战斗

用途:立即与当前的目标角色开始一场特定战斗

格式:BATTLE_WITH_TAGROLE*战斗ID(战斗ID只是用来触发剧情事件)#指定BGM(可选,如存在指定战斗的BGM)

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 【暂不可用】
NUMSEL 数值输入框

用途:弹出一个文字输入框,并将输入结果保存在可查询变量中([%result_code%])

格式:NUMSEL*输入框显示文字#最小值#最大值#默认值#单价#单价计算显示信息(当单价为0时不显示单价信息,否则需要按照"每个单位{0}银两,共需{1}银两"这样的格式进行指定)

CHANGE_MONEY 更改主角所持的金钱数量

用途:按照变更值改变主角所持金钱数,可为负数代表减少

格式:CHANGE_MONEY*金钱变更数量

ROLE_CHANGE_MONEY 更改指定英雄所持的金钱数量

用途:按照变更值改变指定角色所持金钱数,可为负数代表减少

格式:ROLE_CHANGE_MONEY*英雄ID#金钱变更数量

GETITEMS 主角获得道具或资源

用途:主角直接获得指定的道具列表(注意:游戏中的金钱、经验等资源都可以通过此方法来获得,只要传入正确的映射ID即可)

格式:GETITEMS*道具列表信息(如GETITEMS*商会茶叶,3|面包,1)

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

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是)
  4. 显示一个战斗标记:SHOW_BATTLE_MARK#目标坐标x,y
  5. 隐藏当前战斗标记: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_RL 改变阵营关系

用途:改变阵营势力之间的外交关系状态或友好值

格式:SET_CAMP_RL*阵营A#阵营B#关系状态(-1:不改变状态 0:中立 1: 敌对 2:友善)#友好度改变值#友好值目标值(如果存在该字段)

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#攻打方式(默认0)

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#技能列表(多个技能以”|”分隔)

RESET_SP 重置技能点数

用途:重置角色技能点数

格式:RESET_SP*人物ID

ADD_UNUSEDSP 改变可用技能点数

用途:增加一个主角可用的技能点数并进行分配

格式:ADD_UNUSEDSP*点数

SET_SKILLPAGE 点亮或移除主角技能页

用途:点亮或者移除角色可用的技能页

格式:SET_SKILLPAGE*技能页ID表(以”,”分割)#1点亮0移除#目标角色ID(可选,默认为主角)

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_TAGROLE 变更当前脚本中的对象人物

用途:为当前脚本的环境变量设置默认的操作对象角色

格式:SET_TAGROLE*人物ID

SET_TAGPLACE 变更当前脚本中的对象地点

用途:为当前脚本的环境变量设置默认的操作对象地点

格式:SET_TAGPLACE*地点ID

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 关闭系统UI

用途:关闭当前打开的系统UI

格式:ROLES_SELECTOR*选择框标题#选择数量限制(小于0为不限制)#选择范围(0:全局非模板人物 1:主角队伍中 2:指定人物表范围)#筛选条件表达式#参数(当选择范围为指定人物表时该参数为人物列表信息)

示例:

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)

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(可选)

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


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

REMOVE_INTERACTIVE_MSG 移除可交互消息

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

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


消息类型及TAG参数可填空,表示不限类型或TAG

发起者信息格式见 ADD_INTERACTIVE_MSG

REMOVE_THIS_INTERACTIVE_MSG 移除当前可交互消息

用途:移除当前环境变量中的可交互消息

格式:REMOVE_THIS_INTERACTIVE_MSG*1

以下指令适用于游戏版本≥0.7.1.3
FORCE_CHANGE_HEADAVATA 强制更换主角立绘

用途:改变主角立绘

格式:FORCE_CHANGE_HEADAVATA*立绘代码

FORCE_CHANGE_MODEL 强制更换主角模型

用途:改变主角模型

格式:FORCE_CHANGE_MODEL*模型ID

以下指令适用于游戏版本≥0.7.2.1
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

以下指令适用于游戏版本≥0.7.3.1
RUN_SCRIPT 运行指定Lua脚本

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

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

RUN_SCRIPT_FUNC 运行指定Lua脚本中的方法

用途:运行指定的Lua脚本中的标准方法

格式:RUN_SCRIPT_FUNC*脚本相对路径文件名(同RUN_SCRIPT)#标准方法名称(脚本中的方法名,参数为传入的环境变量)

OPEN_GUI 打开自定义GUI

用途:打开一个自定义的GUI窗口

格式:OPEN_GUI*GUI包名#窗体组件名#窗体的脚本文件路径(相对于脚本根目录“Asset\BuildSource\LuaScripts\” ,无文件扩展名)#窗体参数(参数格式为json格式,如:{"arg1":"val1","arg2":"val2"})#是否不阻塞指令队列(默认0 阻塞, 当为1时不阻塞)

OPEN_CONTAINER_GUI 打开容器界面

用途:打开一个已定义的容器界面

格式:OPEN_CONTAINER_GUI*容器ID(实例ID用于标识)#模板信息ID(定义在容器定义表中的信息ID)

当参数表为空或者为"THIS"时,表示直接打开当前环境变量中指定的容器(如果有传入的话),如:OPEN_CONTAINER_GUI*THIS

CONTAINER_CMD 容器指令

用途:为当前环境变量中指定的容器执行特定指令

格式:CONTAINER_CMD*容器指令类型#参数1#参数2#...#参数N

目前支持的集中内置指令类型:

add_exp:对容器内所有卡牌增加经验,参数为经验数字

add_items:向容器内添加指定的元素。(如:物品类容器可为 CONTAINER_CMD*add_items#道具1,10|道具2,5 ;卡牌类容器为卡牌的ID表,以"|"分隔)

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

以下指令适用于游戏版本≥0.7.4.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%])

全局存档相关的操作指令

全局存档是用来记录一些所有存档共享的数据记录的存档。记录在全局存档中的数据更改后可以在所有不同的存档中进行访问。

指令 说明
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&]”的格式嵌入一些数值公式进去(如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……

注意:在战斗中使用的脚本及技能指令中,可以使用“[@expression@]”的格式嵌入一些返回结果为小数的计算公式。


剧情事件中可用的嵌入式查询指令

目前游戏中很多地方都支持插入嵌入式查询指令,通过这些查询指令,可以很方便的在一些文本或者条件表达式中插入我们想要的数值或者字符串类型的查询结果。所有嵌入式查询指令都是以[%QUERY:arg1:arg2...%]或者[$QUERY:arg1:arg2...$]这样的格式(两者等效)插入到目标位置的。

注意:目前暂不支持查询中再次嵌入查询指令!

目前支持的查询指令列表如下:

查询指令 说明
[%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%] 当前游戏中的天数
[%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%] 返回背包中某种物品的数目
[%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:否)
[%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)选择的人物列表的数量
[%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
  • 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己方
  • player_camp_rep:主角在目标阵营的声望值
  • player_camp_rep_desc:主角对目标阵营的声望值描述
  • 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表示不是
  • available_quest:可用任务
[$called:call1:call2$] NPC对玩家的称呼(当为男性时返回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:当前进行项目建设的最大数量
[$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: 队伍中所有角色中某属性的最高值
  • exist_role=角色ID:返回队伍是否存在某人物ID,是返回1否0
  • role_vacancy:队伍剩余的英雄可用位置
  • soldier_vacancy:队伍剩余的可用小兵卡牌位置
  • map_info:当前地图位置信息
  • tag:返回队伍的TAG标签
  • is_defeated:是否被击败而解散的 0:否 1:是
  • defeated_by:被目标势力打败的势力ID


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:是
[$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:生产日期距离今天已有的天数
  • 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否


[$save_version$] 返回当前游戏存档创建时的版本号
[$version_compare:TAG_VERSION$] 用当前游戏存档创建时的版本号与TAG_VERSION进行比较,如果大于TAG_VERSION返回1,等于TAG_VERSION返回0,小于TAG_VERSION返回-1
[$tagmsg:INFO$] 查询当前可交互消息的信息
  • title:标题
  • content:消息内容
  • arg=(字段KEY值):查询此消息自定义参数表中字段为KEY的参数值
以下查询需要游戏版本高于0.7.4.1
[$lua_str:KEY$] 返回定义在游戏核心逻辑脚本中的 GetLuaStringVal 接口的值 KEY为查询参数
[$lua_int:KEY$] 返回定义在游戏核心逻辑脚本中的 GetLuaIntVal接口的值 KEY为查询参数
[%envoy_enable%] 返回当前玩家自己的势力中的外交信使是否可用

全局存档查询指令字段

用来查询全局存档中的一些指令

查询指令 说明
[%global_int:ID%] 返回全局整形字段ID的值                                         
[$global_str:ID$] 返回全局字符串字段ID的值


内置全局变量字段

以下是内置的全局变量关键字段:

字段KEY值 说明
save_max_hard_level 已经解锁过的最高难度,默认为0


内置自定义变量字段

可使用SETINTVAR、CHANGEINTVAR等指令进行修改并保存的系统内置自定义变量。一般都具有特定的功能。

字段KEY值 说明
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
以下设置需要游戏版本高于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

除了以上表中的特定初始设定字段外,初始设定表中还会有一些以 "gui_"开头的UI重置特定字段用来实现对一些游戏内置UI的自定义重置,具体见重置游戏界面相关说明

对话框及一些通用UI中支持的字体颜色指定代码

在对话框、文字框以及一些常见的UI中,通常可以使用以下格式来为文本中的指定文字更改颜色。

例如:这是一段[[imp:红色字体]],[[red:红色字体]],[[&ff6699ff:自定义颜色]]的字体

目前可支持的定制颜色如下(自定义颜色需用"&"符号替换"#"):

  • place:地点名称的统一颜色
  • role:人物名称的统一颜色
  • camp:阵营名称的统一颜色
  • item:物品名称的统一颜色
  • imp:重要信息的统一颜色


人物角色位置指令格式

人物位置格式为:位置代码:位置参数

支持的位置代码有 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
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”为是
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