跳到主要内容

剧情对话指令

1 简介

剧情对话指令是剧情文本里使用的指令,该指令的设计是为了能更好的进行剧情编写以及在剧情文本中穿插命令。

2 基本格式

一条剧情指令的格式如下:

指令名*参数一#参数二#参数三......

而对话指令的指令名为 Say (空) 即可以省略不写,如

Say*主角#你好。

*主角#你好。

主角#你好。

这种写法是等价的。

3 指令查询表

注: 使用[&expression&]可以执行脚本并将返回值嵌入指令,请参考 运行时脚本

指令说明
NothingNothing*

空指令,什么也不做。
PrintPrint*类型#打印内容

Print*Info#Hello World

在日志窗口输出信息
类型:
Info 或 空:普通信息
Warning:警告信息
Error:错误信息
RunLuaRunLua*Lua 文件#Lua 函数

RunLua*Test#T1

运行 Lua 函数,直到运行完毕后再进行下一个指令
详情参考 Lua 脚本
Say
(或空指令)
Say*对话者#对话内容

Say*主角#你好
*主角#你好
主角#你好

对话指令,用于显示一条对话。
参数一:对话者,通过在剧情文件的character项里指定,或使用SetChar指令指定。
参数二:对话内容,对话内容里的#号不会影响对话内容显示。

剧情对话中可以使用特殊文本,该部分可参考剧情对话特殊文本
SetCharSetChar*对话者#设置值

SetChar*主角#1
SetChar*目标#[&roleID&]

设置对话者对应 ID
参数一:对话者,设置的对话者将储存在全局的临时对话者字典里,可以跨剧情调用,但是重启游戏后将会丢失。
参数二:设置值,对话者对应的角色 ID
BindNpcBindNpc*NPC 的 ID

BindNpc*619

将目标角色绑定到环境变量之中,会自动绑定bindNpcroleBindIDroleIDroleName变量
ShowOptionShowOption*选项 1ID:选项 1 内容:选项 1 条件(可选)#选项 2ID:选项 2 内容:选项 2 条件(可选)#......

ShowOption*1:你好#2:再见#3:给我!:[&GetMoney()<100ul&]

选项指令,弹出选择框让玩家进行选择,选择后,脚本环境中optionID值将变为选项对应 ID 值。
选项条件可不填,当不填或计算结果为 true 时选项显示。
SayOptionSayOption*对话者#对话内容#选项 1ID:选项 1 内容:选项 1 条件(可选)#选项 2ID:选项 2 内容:选项 2 条件(可选)#......

SayOption*旁白#你好#1:你好#2:再见#3:给我!:[&GetMoney()<100ul&]

ShowOption,但是会如同 Say 指令一样先显示对话内容。
ShowCGShowCG*图片 ID

ShowCG*back
ShowCG*pic1/cg

显示自定义对话背景,需要使用HideCG指令关闭背景。
添加背景可参考 运行时脚本
HideCGHideCG*

关闭 CG 背景
EventEvent*目标事件#跳转条件(可省略,或为 true 时跳转)

Event*事件一
Event*事件一#[&roleBindID==609&]

当条件满足时,结束当前事件并跳转到指定事件。

参数一:目标事件
参数二:跳转条件,可省略,当为空或为 true 时进行跳转。 建议改用 If 指令
TriggerTrigger*触发器 ID

Trigger*某某宗门派对话

对指定触发器进行一次触发判断(无视触发器类型),若满足条件,则相当于使用 Event 指令进行事件跳转。
处于关闭状态的触发器不会被触发。
TriggerAllTriggerAll*触发器类型#是否全部触发(0 否,1 是,默认 1)

TriggerAll*进入游戏|EnterGame
TriggerAll*某某宗晋升金丹#1

对指定的触发器类型进行一次触发器判断,若触发成功则中断当前事件,并进入新事件。
触发器类型:可指定多个触发器类型,之间用`
`符号分割。可使用自定义的触发器类型。
是否全部触发:为 0 时只会触发第一个触发成功的触发器,为 1 时会将所有触发成功的触发器塞入队列。
处于关闭状态的触发器不会被触发。
SetTriggerSetTrigger*触发器 ID#触发器状态(0 关闭,1 打开)

SetTrigger*初入禁地#0

开启或关闭一个触发器。被关闭的触发器不会再参与触发判断。
IfIf*判断条件#其他指令

If*[&roleBindID == 609&]#ChangeMoney*100
If*[&roleBindID == 609&]#旁白#你好

当条件满足时,执行后续指令。

参数一:判断条件,使用[&condition&]进行表达式计算,当返回结果为 true 时跳转
参数二:其他指令(按原指令填写即可)
SetIntSetInt*键#值

SetInt*数值 1#10
SetInt数值 1#[&GetInt("数值 1") 2&]

储存一个整形键值,该键值将储存于游戏存档里。
取出值使用GetInt(key)进行取值。
ChangeIntChangeInt*键#变化值

ChangeInt*数值 1#10
ChangeInt数值 1#[&GetInt("数值 1") 2&]

修改储存的键值,该数值将在原数值上进行变动。
SetStrSetStr*键#值

SetStr*字符串 1#你好
SetStr*字符串 1#[&GetStr("数值 1")&][&getstr("数值1")&]

储存一个字符串键值,该键值将储存于游戏存档里。
取出值使用GetStr(key)进行取值。
AddTimeAddTime*年#月#日#是否显示提示(0 否,1 是,默认不显示)#提示文本

AddTime*10#0#0
AddTime*10#0#0#1#正在挖矿中...

使时间跳过对应的年月日,如果显示提示则会显示一个结算读条。
ChangeHpChangeHp*血量变化量

ChangeHp*1000
ChangeHp*-500

修改主角血量。
ChangeBaseHpMaxChangeBaseHpMax*最大血量基础变化量

ChangeBaseHpMax*1000
ChangeBaseHpMax*-500

修改主角基础最大血量。
ChangeExpChangeExp*修为变化量

ChangeExp*1000
ChangeExp*-500

修改主角修为。
ChangeMoneyChangeMoney*灵石变化量

ChangeMoney*1000
ChangeMoney*-500

修改主角灵石数量。
AddItemAddItem*物品 ID#添加数量#是否显示提示(0 不显示,1 显示)

AddItem*101#1#1

为主角添加物品。
RemoveItemRemoveItem*物品 ID#移除数量#是否显示提示(0 不显示,1 显示)

RemoveItem*101#1#1

为主角移除物品。
UseItemUseItem*物品 ID#是否消耗背包物品(0 否 1 是)

UseItem*101

为主角使用物品。(如果是装备会自动装备)如果填写不消耗背包物品,会自动添加一个物品然后使用。
AddNpcItemAddNpcItem*NpcID#物品 ID#添加数量

AddNpcItem*609#101#1

为 Npc 添加物品。
ChangeMentalityChangeMentality*心境变化量

ChangeMentality*100

修改主角心境
ChangeDrugsPoisonChangeDrugsPoison*丹毒变化量

ChangeDrugsPoison*100

修改主角丹毒
ChangeComprehensionPointChangeComprehensionPoint*悟道点变化量

ChangeComprehensionPoint*2

修改主角悟道点
AddThinkingAddThinking*思绪 ID

AddThinking*1

添加思绪
AddComprehensionExpAddComprehensionExp*道类型 ID#道经验

AddComprehensionExp*8#100

增加剑道经验 100 点
AddCongenitalBuffAddCongenitalBuff*BuffID

AddCongenitalBuff*1

添加一层先天 Buff
RemoveCongenitalBuffRemoveCongenitalBuff*BuffID

RemoveCongenitalBuff*1

移除一层先天 Buff
ChangeInspirationChangeInspiration*灵感变化量

ChangeInspiration*100

修改主角灵感
ChangeAgeChangeAge*年龄变化量

ChangeAge*10

修改主角年龄
ChangeLifeChangeLife*寿元变化量

ChangeLife*10

修改主角寿元
ChangeTalentChangeTalent*资质变化量

ChangeTalent*10

修改主角资质
ChangeBaseSpiritChangeBaseSpirit*基础神识变化量

ChangeBaseSpirit*10

修改主角基础神识
ChangeAbilityChangeAbility*悟性变化量

ChangeAbility*10

修改主角悟性
ChangeBaseMoveSpeedChangeBaseMoveSpeed*基础遁速变化量

ChangeBaseMoveSpeed*10

修改主角基础遁速
ChangeNpcFavChangeNpcFav*Npc 的 ID#好感变化量#是否同时修改情分(1 是 0 否)#是否显示提示(1 是 0 否)

ChangeNpcFav*609#200#1#1

修改与 Npc 的好感度
AddRelationAddRelation*Npc 的 ID#关系类型

AddRelation*609#2

增加与 Npc 的关系

关系类型:
0. 师傅
1. 徒弟
2. 道侣
3. 结义
RemoveRelationRemoveRelation*Npc 的 ID#关系类型

RemoveRelation*609#2

移除与 Npc 的关系

关系类型同增加关系指令
CloseTabUICloseTabUI*

关闭背包 Tab 界面
DeathDeath*死亡类型

Death*1

主角死亡

死亡类型:
1.身死道消
2.毒发身亡
3.寿元已尽
4.炉毁人亡
5.器毁人亡
6.心魔入体
7.渡劫失败
InputInput*提示文字

打开一个输入框,允许玩家输入文字。输入的文字将会储存在环境变量 input 中(详情查询 运行时脚本
ShowTipShowTip*消息#消息图标

显示一条自定义的弹出消息。

消息图标类型:0:叹号,1:上箭头,2:下箭头,3:包裹,4:任务进度,5:任务完成,6:感悟,7:传音符,
LearnSkillLearnSkill*神通 ID

LearnSkill*1

直接学习对应神通。
LearnStaticSkillLearnStaticSkill*功法 ID

LearnStaticSkill*1

直接学习对应功法。
LearnTrainSkillLearnTrainSkill*双修秘术 ID

LearnTrainSkill*1

直接学习对应双修秘术。
SetFaceSetFace*角色 ID#立绘 ID

SetFace*1#10000

将指定角色的立绘设置为对应图片立绘。参考添加资源
主角的 ID 为 1
将立绘 ID 设置为 0 表示还原立绘
SetCustomFaceSetCustomFace*角色 ID#立绘 ID

SetFace*1#614

将指定角色的立绘设置为对应捏脸立绘。
主角的 ID 为 1
该指令会优先获取自定义捏脸立绘,其次按人物 ID 获取对应人物的捏脸立绘
StartFightStartFight*敌人 ID#是否能逃跑(0 不能 1 能)#战斗类型#背景图片#背景音乐#敌方 Buff#我方 Buff#战斗胜利事件#战斗失败事件#战斗 Tag

StartFight*5124#1#1#1#战斗 1###战斗胜利#战斗失败#野外战斗

战斗类型(具体定义可参考 战斗类型 表):
1,普通战斗
2,心魔
3,渡劫
4,擂台
5,幻境
6,boss 战
7,敌方逃离普通
8,切磋
9,新手引导
10,神仙斗法
12,长老战
13,不杀对手
16,古树根须
17,生死比试
20,无装备无丹药擂台

背景图片:使用数字命名,添加自定义背景可参考 添加资源

背景音乐:使用字符串命名,添加自定义音乐可参考 添加资源

敌方 Buff 与 我方 Buff:
使用 buffID,buff 层数 的方式指定战斗 buff
多个 buff 使用 | 号分割。如:1,1|2,1

战斗胜利事件 与 战斗失败事件:
在战斗结束后,会根据战斗结果触发对应的事件(注:如果战斗类型没有玩家不死亡的设定,则战斗失败会直接死亡。)

战斗 Tag:
Tag 用于战斗中事件的判断,填写多个 Tag 使用逗号","进行分割,如:TagA,TagB,TagC
PlayMusicPlayMusic*音乐名称

PlayMusic*战斗 1

添加自定义音乐可参考 添加资源
PlayEffectPlayEffect*音效名称#音调

PlayMusic*点击#1.0

添加自定义音效可参考 添加资源
SendMsgSendMsg*消息 ID

SendMsg*1

向玩家发送传音符消息
RunFungusBlockRunFungusBlock*Block 名称

RunFungusBlock*结束交谈

调用当前环境内 flowchart 的对应 Block(用于对话返回等)