跳到主要内容

对话

蛙吉特蹦蹦跳跳地过来了

每到战斗时,对话框都会有一窜文本。比如:

  • 蛙吉特蹦蹦跳跳地过来了
  • 你感觉到罪恶爬上了你的脊椎
  • 你又双叒叕丢了

等等

而我们的战斗的开场白却是 Poseur strikes a pose!

我们改一改,找到这一行(encounter.lua)

encounter.lua
encountertext = "Poseur strikes a pose!"

让我们修改一下它:

encountertext = "I AM HERE!"

进去游戏一看发现开场白改了
怎么样?
但是我们意识到一个问题,这样只能改开头啊!
我当然想到了这点

函数

下面我来介绍一个函数 什么?你害怕了? 没关系,这不是数学

你可以把他当成一个功能:

BattleDialog({"你想说的话"})

进入怪物的脚本(Monsters.lua),我们赶快在act2中加入:

elseif command == "ACT 2" then
BattleDialog("OK!")

结果发现我们失败了。为什么呢,我们看看下面居然还有一个行:BattleDialog({"You selected " .. command .. "."})

我们把它删掉,惊奇的发现!成功了!

不过每回合对话框的内容都会变,所以我们得指定怎么变

找到这个

Monsters/poseur.lua
comments = {"Smells like the work\rof an enemy stand.", 
"Poseur is posing like his\rlife depends on it.",
"Poseur's limbs shouldn't be\rmoving in this way."}

comments是一个关键变量,和encountertext一样,由CYF引擎识别 comments代表每回合后随机显示的对话(当然,可以多次改)

你肯定会好奇work\rof这么一个东西,难道他会输出work\rof吗?

可是在游戏中输出的是

work
of

至于,有什么区别,演示一下

这是/n的换行
下一行带星号

这是/r的换行
下一行不带星号

理解了吧 趁者这个劲,我们把敌人对话也完善一下

找到这个:

Monsters/poseur.lua
randomdialogue = {"Random\nDialogue\n1.", "Random\nDialogue\n2.", "Random\nDialogue\n3."}

看看,我们现在就遇到\n了,不过别担心,我们会了

我们再稍微修改一下

再提一点,上次的 currentdialogue = {"xxxxxxx"} 是指定下一轮会说什么,不再多说

暗黑中二重金属炫彩小王子

在打小羊时,对话框明显中二了很多,有些抖动,彩色,飘出残影的文字 让我们的战斗也中二一会(滑稽) 文本指令通常都是以 "[这里面是文本指令]"的形式出现的

我们啥也不说了,先试试

BattleDialog({"[noskip][color:ff0000][alpha:77][effect:rotate,10]Hopes [w:10] And Dreams"})

哇,虽然没小王子那么中二炫酷,但是至少到了一个效果 简单讲一下吧

  • [noskip] 代表不能跳过
  • [color:ff0000] 这个代表颜色ff0000代表红色
  • [effect:rotate,10] 这个是效果功能,rotate是旋转,10代表强度
  • [w:10] 这是等待,10是10毫秒