万王之王 KOK King of Kings

 找回密码
 加入我们
楼主: q2a3z4w

ZKOK教程(全)

[复制链接]
 楼主| 发表于 2009-7-6 12:53 | 显示全部楼层
十一课
当zrobot发送%scene段中定义的命令时,会先将该命令进行一次替换(replace)操作
即把命令句中的"%" + 某些字符的组合,替换成特定的内容

下面是在字符串中特定的“%"组合和要替换的内容

基本替换
%% 替换成"%"
%n  你自已的英文名
%n  你自已的中文名
%k  你自已的nick名
%m  你的职业中文名
%y  你所属城邦的中文名

变量替换
%v? 使用该变量的左值
%v? 使用该变量的右值
%i? 替换成空内容,但该变量的变量值变成了下一个内容。
只用于修改变量的值
%z? 替换成空内容,但该变量的变量值变成了第一个内容。
只用于修改变量的值
%x? 从该变量的所有值中,随机产生一个左值替换
     !!!该变量当前的变量值也随之发生变化。
%x? 从该变量的所有值中,随机产生一个右值替换
     !!!该变量当前的变量值也随之发生变化。

(?为 "0" - "9")

gkk位置替换(目前不支持该功能)
%(???,???)
根据你的当前位置, 替换成gkk专有数字位置
请参考 gkkpos.txt
%p? 将zrobot变量的当前左值转成gkk位置
%p? 将zrobot变量的当前左值转成gkk位置

匹配串替换
如果显示的消息与行为控制段中某行成功匹配,并且指定进行存贮。
那么该行中的所有模式匹配结果都将被记录下来,直到重新启动
或另一个要求保存的成功匹配。

%0, %1 - %9 用对应的值即是模式匹配的结果。

注意,这里和上面的变量段不是一回事。它的值不是由用户设定的,
其内容是在进行匹配时,从gkk消息中产生的。
 楼主| 发表于 2009-7-6 12:54 | 显示全部楼层
第十二课
在行为控制段中,要进行kok的显示信息与<match_message>的比较(即匹配)
在zrobot中,两个字符串的匹配分成三种情况

* 一般匹配
就是一般的字符串比较
* 替换区配
用于一些相对固定内容的比较
例如:
如果你的中文名叫 "找k"
那么
%n说到:大家好

找k说到:大家好
是匹配的。这是固定替换匹配。
* 模式匹配
希望一个<match_message>能匹配多种消息,会用到这种方式
例如:
%+说到:大家好
那么只要有人说:大家好
都会被认为是匹配的。
对于模式匹配,其结果有时还需要被再次用到,这种情况就是匹配结果的记
录,只要匹配成功,就有可能记录下来。

*** 在一个消息匹配中,只能有十个模式区配。否则,zrobot会认为两个字符串不相同。

下面是替换匹配:

基本替换
%% 要比较内容是"%"
%n  要比较内容是你自已的英文名
%n  要比较内容是你自已的中文名
%k  要比较内容是你自已的nick名
%m  要比较内容是你的职业中文名
%c  要比较内容是你所属城邦的中文名

变量替换
%v? 要比较内容是该变量的当前左值
%v? 要比较内容是使用该变量的右值
%i? 不参与匹配,仅表示, 如果这次匹配成功,则该变量的变量值变成了下一个内容。
%z? 不参与匹配,仅表示, 如果这次匹配成功,则该变量的变量值值变成第一个内容。

(?为 "0" - "9"

匹配字符替换
%0, %1 - %9 用上次被记录的匹配结果产生的参数变量值替换比较。


模式匹配

%*  任意的字符串,可以为空
%+  任意的字符串, 但至少要含有一个字符
%#  任意的数字(0-9)组合,至少要有一个
%$  任意的[a-z, a-z, _]字符组合,至少要有一个
%x? 如果该变量的某个左值与要匹配的字符相同,表示匹配成功
如果匹配成功,该变的当前值将发生变化.
%x? 如果该变量的某个右值与要匹配的字符相同,表示匹配成功
如果匹配成功,该变的当前值将发生变化.

*** 在一个<match_message>中,最多只能有十个模式匹配内容。否则会认为
匹配不成功。

匹配结果的记录
%b  并不参与内容比较,但如果<match_message>中含有该字符串,
则表示,如果该行匹配成功,则记录所有模式匹配产生的结果
结果按顺序记录,供以后通过%0 - %9来使用


例如:
连续的两个消息被匹配成功
%b%+(%$)对你说:%*   aaa对你说
%+回答你:%*         bbb回答你
这时候:
%0是"aaa"而不是"bbb", 尽管第二个消息是后到的。但它没使用%b
发表于 2009-7-6 13:12 | 显示全部楼层
你真强  谢谢你啦!
发表于 2009-7-6 13:44 | 显示全部楼层
希望加精!感谢楼主!
发表于 2009-7-6 17:37 | 显示全部楼层
很好很强大~~~~~~
发表于 2009-7-7 01:43 | 显示全部楼层
嗯,原来是贼克欧克扫盲贴哇,姑且顶一下先,看看反应......
发表于 2009-7-7 02:58 | 显示全部楼层
非常感谢楼主分享!!!
发表于 2009-7-7 07:15 | 显示全部楼层
很好很强大!
发表于 2009-7-24 07:24 | 显示全部楼层
好东西!!!!!!!!!
发表于 2009-8-14 01:41 | 显示全部楼层
非常牛X的教程,但能说下如何自动断线吗?
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|万王之王 king of kings

GMT+8, 2024-4-16 12:22

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表