ZKOK教程 万王之王 列王纪

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

////////////////////////////////////////////////////////

// 下面是简单的例子,

%scene begin

10::invoke on xxxxx <--- 执行invoke,再等10秒

10::cast fireball on xxxxx <--- 执行cast,再等10秒

10::recharge <--- 执行recharge, 再等10秒

<--- 等完10秒,重复执行。

////////////////////////////////////////////////////////

// 基本格式

<文件头>

%scene begin <--- 这一行是必需的

<执行时间>::

<执行时间>::

....

<执行时间>::

<文件尾>

////////////////////////////////////////////////////////

// 机器人将重复执行下去。

////////////////////////////////////////////////////////

“时间”是一个数值,是以秒为单位的。但可以精确到0.1秒

下面的时间描述是正确的

5 5.0 5.3 0 0.0 0.5

下面的时间描述是错误的

500ms <--- 被认成500秒

下面的描述将被取舍

5.43 <--- 被认成5.4秒

////////////////////////////////////////////////////////

// 特别需要注意,这里的执行时间,是指后面gkk命令的执行时间。// 即先发命令,再等,而不是先等,再发命令。

// 这是唯一要注意的.

// 怎么样, 复杂吗???

// 加入命令的行为控制

ok, 你已经会编写靠时间驱动的机器人了吧.

是不是觉得只靠时间, 效率不好.

最典型的. 冥想, 发出去命令, 从失败的立即结束, 到恢复几百点mp的长时冥想.怎么设时间才好呢? 怎么设时间也不好, 只有通过行为控制.讲解之前, 介绍通常情况下, 玩家对一个命令的结果有以下几种反应

(1) 不能做, 等等, 能做了再发一次. (如上次施法没结束)

(2) 失败了, 那再来一次.

(3) 失败了, 算了吧, 法力也耗了, 还是做下一步, 恢复法力吧.

(4) 成功了. 等动作结束吧, 结束了, 做下一步.

(5) 其它. 其它的内容就多了, 通常也是机器人无法做的. 这里也就不考虑了.

下面以冥想为例, 讲解.

1. 分析你发送的命令, 会有多少种反应:

比如当你发冥想的时候, 可能有的情况:

(1) 你正忙著呢. <---- oh, 上个动作还没完呢.

(2) 你正在战斗中, 无法冥想.

(3) 你为精神状态不好, 不能冥想.

(4) 你开始冥想了, 一堆垃圾信息传了过来, 最后, 告诉你, 你冥想结束了.

2. 确定对应每种情况, 你想如何处理.

(1) 你正忙著呢. oh, 上个动作还没完呢.

当然是等几秒, 再冥想了.

(2) 你正在战斗中, 无法冥想.

等战斗结束了再冥想. 做法上可能有区别,这里用的是等待"你得到了( ???? ) 点经验"这句消息出来后, 再冥想.

(3) 你为精神状态不好, 不能冥想

可能有多种作法,比如,不冥想了,做下一步吧。这里采用的是等出现"你的精神恢复正常,可以冥想"的消息时, 再开始冥想.

(4) 你开始冥想了, 一堆垃圾信息传了过来, 最后, 告诉你, 你冥想结束了. 一收到"冥想结束"的消息, 立即开始下一个动作吧.

3. 确定各显示的消息中, 是否存在变化的内容, 这些内容对判断没有影响

比如:

"你得到了( ???? ) 点经验."

????是一个数字, 但多少一点关系都没有. 怎么办, 在下一步里, 要把这些用"%*"替换.

"你得到了( %* )点经验."

3. 把上面的分析结果, 编成zrobot的一组代码.

先要给这组内容起个名字. 比如是为冥想写的, 可以叫meditate_bc.将所匹配的文本, 要做的控制动作, 等合成一行代码.

结果变成了

%bc meditate_bc

retry:1:你正忙著呢。<--- 等一秒,再重发当前命令

retry::你得到了( %* )点经验。

<--- 战斗结束了,立即重发当前命令 retry::你的精神恢复正常,可以冥想了。

<--- 可以冥想了,立即重发当前命令 next::你深深地吸了一口气,从深沈的冥思中醒来!

<--- 结束冥想,立即进入下一步。

<--- 这是有深冥的显示。要注意。

4. 为你原来的冥想命令添加行为控制。

原来的机器人:

%scene begin

.....

50::meditate

....

变成

...

50:meditate_bc:meditate

...

5. 把原来的%scene begin段,再加上你这些%bc段,就构成一个完整的机器人代码了。

////////////////////////////////////////////////////////////////

// %bc段的格式简介

%bc <名字>

<行为控制命令>:<命令参数>:<所匹配的gkk显示文本信息>

相关文档
最新文档