返回列表 回复 发帖

zmud基础学习(续)

SEND

Syntax: #SE filename [prefix] [postfix]

向MUD中发送一个文本文件,并可在每一行中加上前缀或后缀

#SEND notes.txt {tell coffee}

把notes.txt的内容告诉coffee,如果同时使用kill命令,效果更好。*grin


----------------------------------------------------------------

SESSION

Syntax: #SES [character-name|hostname port]

使用指定的角色或主机打开新任务

实例:

#SES river

#SES 168.160.244.39 6666


----------------------------------------------------------------

SHOW

Syntax: #SH text

在屏幕上回显文本,不发往MUD,类似于#say,通常用于测试触发。


---------------------------------------------------------------
SLOW

Syntax: #SL path
Related: #STEP #STOP #OK

沿路径慢走,前一步得到确认后再执行下一步。#ok命令用于确认
行动完成,#stop用于放弃继续前进,#step继续被#stop放弃的行程。

实例:

#SL .n2es

north 命令首先被发往MUD,然后等待确认以执行下一个命令east,
如果不能确认,余下的行程将被放弃。


--------------------------------------------------------------

STATUS

Syntax: #ST text

定义状态条,text 中可以显示变量,每当变量改变,状态条也随之改变。

实例:

#st {真气: @hp 内力: @nl 潜能qn 道行: @dx}

在状态条中显示有关数据


--------------------------------------------------------------

STEP

Syntax: #STE
Related: #SLOW #STOP #OK

恢复被放弃的沿路径慢行


--------------------------------------------------------------

STOP

Syntax: #STO
Related: #SLOW #STEP #OK

放弃继续沿路径慢行,通常在触发中使用。

实例:

#TRIGGER {五庄观第三代弟子 咖啡(%w)} {#STOP;kill %1}

沿路杀人越货,很刺激吧?


---------------------------------------------------------------

STW

Syntax: #STW string
Related: #STATUS

设置状态窗口,状态窗口类似与状态行,但能包括更多内容,
设置%ansi颜色并用%cr换行。可以使用菜单命令window/status
打开,在其上单击右键编辑。

实例:

#stw {当前道行:@dx %cr 初始道行:@dx0 %cr 战斗时间:@time1}

显示获取道行的速度


---------------------------------------------------------------

T+

Syntax: #T+ classname

激活触发类


---------------------------------------------------------------

T-

Syntax: #T- classname

关闭触发类,适当的运用以上两个命令可以避免机器人误动!


---------------------------------------------------------------

T?

Syntax: #T?
Related: #TIMER #TS

显示计时器(timer)的剩余时间


---------------------------------------------------------------

TAB

Syntax: #TA word

增加一个词到键扩展列表


--------------------------------------------------------------

TELEPORT

Syntax: #TE room [zone]
Related: #WALK

改变你在地图上的位置,相应的MUD世界中的位置不变。
room可以是short name或room number。


---------------------------------------------------------------

TIMER

Syntax: #TI
Related: #T? #TS

开关计时器,对剩余时间没有影响。


---------------------------------------------------------------

TRIGGER

Syntax: #TR pattern command [classname]

建立或显示一个触发,与#action功能相同


---------------------------------------------------------------
TS

Syntax: #TS [value]
Related: #TIMER #T?

设置计时器时间或重新计时,value 指明以秒为单位的时间间隔,
如果省略,则重新计时。


----------------------------------------------------------------

TYPE

Syntax: #TY filenum [pattern]
Related: #FILE

在屏幕上显示文本文件,如果包括pattern,则只显示包含pattern
的行。pattern中可以包括通配符。


----------------------------------------------------------------

TZ

Syntax: #TZ
Related: #TS

将计时器置零


----------------------------------------------------------------

UNALIAS

Syntax: #UNA alias
Related: #ALIAS

删除一个别名


----------------------------------------------------------------

UNGAG

Syntax: #UNG
Related: #GAG

避免某行被忽略,通常用在触发中undo #gag命令。

实例:

#tr {咖啡告诉你} {#gag}

#tr {来吃人参果} {#ungag}


----------------------------------------------------------------

UNKEY

Syntax: #UNK key
Related: #KEY

删除一个宏键


---------------------------------------------------------------
UNTRIGGER

Syntax: #UNT pattern
Related: #TRIGGER

删除一个指定pattern的触发


--------------------------------------------------------------

UNVAR

Syntax: #UNV variable
Related: #VAR

删除一个变量


-------------------------------------------------------------

UNTIL

Syntax: #UN expression commands

执行命令直到表达式为真(true or non-zero)

实例:

#until (#hp>50) {quit}


-------------------------------------------------------------

URL

Syntax: #URL url

在浏览器中打开一个URL

实例:

#URL http://61.128.193.21/~~tlt
访问网址超出本站范围,不能确定是否安全
继续访问 取消访问http://61.128.193.21/~~tlt

注意需要两个~!参见通配符。


--------------------------------------------------------------

VARIABLE

Syntax: #VA variable value

变量赋值,变量前不需要@。
也可以使用variable = value or variable := value.


--------------------------------------------------------------

VERSION

显示zMUD版本


---------------------------------------------------------------

VERBATIM

Syntax: #VERB [value]

开关分析模式,value用于指定分析模式,效果与使用菜单命令相同。


---------------------------------------------------------------

WAIT

Syntax: #WA [time]

暂停进一步的处理直到从主机收到新的信息,如果指定time,
则暂停指定的时间,time以毫秒为单位。


--------------------------------------------------------------

WALK

Syntax: #WAL room

快速到达地图上指定的标记处,room 是被事先定义的short name。


--------------------------------------------------------------

WHILE

Syntax: #WH expression commands

当表达式为真(true or non-zero)时执行命令


--------------------------------------------------------------

WINDOW

Syntax: #WIN name [string]

打开一个新窗口

实例:

#FORALL @eqlist {#WIN status %i}

打开窗口status并在其中显示装备列表。


---------------------------------------------------------------
WIZLIST

显示zMUD的作者


----------------------------------------------------------------

WRAP

Syntax: #WR [column]

设置文本回绕,如果指定column,则在指定的列处换行。


----------------------------------------------------------------

WRITE

Syntax: #WR n value [rec]
Related: #READ

写一个value到文件,如果n在1~5间,表示文本文件,value将被追
加在文件尾部,rec被忽略;如果n在6~10间,则value写入记录rec,
省略rec时,value加在文件最后。

#tr {离开游戏} {#wr 1 {%ctime}}

记录在MUD中浪费的时间!


------------------------------------------------------------------

YESNO

#YE question yes-command no-command

显示一个带按钮的确认对话框, 放弃执行命令。可以使用
{按钮提示:command}格式,*号用于表示焦点所在,enter 立即执行。

实例:

#YESNO Where to you want to go today?
{Temple:.temple} {Guild:.guild}
{*Microsoft:#URL http://www.microsoft.com}
访问网址超出本站范围,不能确定是否安全
继续访问 取消访问http://www.microsoft.com}


------------------------------------------------------------------

下面是Pattern中可以使用的特殊字符

* 匹配任何数量的字符或空格
? 匹配一个字符
%d 匹配任何数量的数字(0-9)
%w 匹配任何数量的字母(a-z)
%a 匹配任何数量的字母或数字(0-9,a-z)
%s 匹配任何数量的空格(spaces, tabs)
%x 匹配任何数量的非空格
[range] 匹配任何数量的在[range]中列出的字符
^ 强制从一行的开始进行匹配
$ 强制匹配到一行的结束
(pattern) 保存匹配的式样到参数%1~%9
~ 包括其中的字符不会被解释为特殊字符
{val1|val2|val3|...} 匹配其中列出的任何特殊的串
{^string} 不匹配其中包括的串

使用[range]时,你可以在其中列出需要的字符例如
[abc] 或使用范围 [a-c] 。

为了匹配特殊字符本身,可以使用~将特殊字符括住,
例如:~[test~] 将匹配字符串
[test] 而不是作为 [range] 来匹配。

只使用$可以匹配一个空行。


------------------------------------------------------------------

别名中使用参数的例子

我们在解谜过程中向npc提出的问题通常是以:

ask npc about here
ask npc about rumors
ask npc about name

这样三个命令开始的,把他们定义成别名可以节省一些时间,像这样:

#al askn {ask %1 about here;ask %1 about here;ask %1 about name}

可如果npc的名字有两个单词,或一堆同名的npc中你要问其中第二个,
就需要把别名中的参数改为%-1,此时执行askn bing 2或askn tian bing
就不会出错了。

为了更好的理解参数的作用,试试执行下面的命令:

#al tt test1 %1 test2 %2 test3 %-1 test4 %-2

看看执行{tt a1 a2 a3 a4 a5}的结果,一切都清楚了吧?


-----------------------------------------------------------------

表达式
当执行运算时,如果所有参数均为数字,则执行数学运算,否则执行字
符串操作。以下是一些常用的表达式(v1和v2代表变量或另外的表达式):

v1+v2 如果v1或v2不是数字,则执行字符串相加
v1-v2 从v1中减去v2
v1*v2 相乘
v1/v2 v1除v2,结果不含小数
v1\v2 取模
v1&v2 逻辑运算and
v1 and v2 同上
v1 | v2 逻辑运算or
v1 or v2 同上
v1 xor v2 逻辑运算xor
v1 = v2 如果v1等于v2返回真
v1 > v2 如果v1大于v2返回真
v1 < v2 如果v1小于v2返回真
v1 >= v2 如果v1大于等于v2返回真
v1 <= v2 如果v1小于等于v2返回真
v1 <> v2 如果v1不等于v2返回真
v1 != v2 同上
v1 =~ v2 如果表达式v1中的pattern包含v2,返回真
v1 ~= v2 同上
-v1 返回v1的负值
!v1 逻辑运算非

zMUD使用方法
首先从上面八个按键开始:
1. Aliases:把所有复杂的指令用简单的代号代替。
举例:(1)我的monk有带加dr和hr的eq,
首先按New,
Alias Name打dr,
Commands打rem necklace;rem necklace;wear collar;wear
collar;rem whip;wear knife;rem brass;wear power,
以后只要输入dr就自动换装。
***切记,两个命令以分号(;)区隔,以后都是一样。***
(2)我的魔法师的Fireball很常用,
按New,
Alias Name打fb,
Commands打c 'fireball'
以后打fb就会施Fireball,
如果是第一发,
就打fb xxxxxx。
2.Variables:跟Aliases类似,不过我没用过,也不会用。:p
3.Paths:以简单的指令走到要走的地方。
举例:我们可以在帝国买到旧卷轴,
由于冥驾城门会关起来,
所以由门东边的十字路口走起,
按New,
Path Name打scroll,
Current Path ahead打4s2es2ed2e5n11es,
以后要去买卷轴时就走到十字路口,
输入.scroll即可。
一般我是设Fast walk。
***切记,scroll前要打句点(.)喔!***
4.Trigger:当画面出现什么字,就会执行动作。
举例:(1)你应该有看到两个autolog,
这就是当初一进来设的记id和password,
(2)打mobs会被mobs给disarm以致于掉武器,
按New,
Class打get(随便你分类),
Pattern打disarms you,
Commands打get sword;wear sword,
右边有两个勾选符号均要勾选才会换行输入。

***切记,Pattern大小写要一致,如果是出现在第一个字,加个次方符号(^)。***
(3)常会有人向牧师求救要Full heal,
按New,
Class打help,
Pattern打(%w) 说 'ful'
***切记,"说"的前后均要空一格,%w要用小括号,%1不用。***

%w代表字元,另外还有代表字串和数字的,我已经忘了,%1是变数符号,在此%w=%1。
5.Keys:热键。不用我多做说明了。
6.General:基本设定。原则上我只把Auto Clear Input勾选起来。
7.Color:设定色彩。下面是我设的。
举例:(1)System Colors:
Info Color黑底亮绿字。
Echo Color黑底浅灰字。
Default Color黑底浅灰字。
(2)Foreground:Make regular colors Dim
(3)Backgroumd:Set colors to default
(4)其他两个不需要且我也不会。:p
8.Fonts:字型。建议使用Courier。
接著是一些功能表的解释:没解释的表示极简单或表示我不会。
1.View--Preferences--Sonuds:设定声音 。
2.Setting--Save:设定好了要存起来喔!
3.Setting--Save as:最好每一个char都有他自己的设定,并且备份到磁片上。
4.Setting--Import:可以把其他char的设定抓过来。
5.Action:有的包含在按钮上,至于其他的我不会。
6.Windows--Tile:你可以开两的视窗,选择这个可以使两视窗在上下两端。


ansi输入法:新发现!!
按Ctrl+Enter打开Edit Comman Buffer,
打入你要的字,
利用滑鼠选出要ansi的部份,
功能表上有Options--Color,
选你要的颜色,
然后File--Send即可。
常用于Title和de的更改。


另外,输入区有DOSKEY的功能,!也就不适用了
zMud 有以下功能:

1. Macro keys: 热键;
2. Alias: 简化命令;(可用分号将若干条命令做在一起)
3. Trigers: 接收激发;
4. Variables: 变量,可用于函数,可以用于"编程";
5. Buttons: 和keys类似,且更直观;
6. Paths: 可以记忆走过的路,且可反向;
7. Timer: 时间循环,自动化的基本条件.
8. Multiple Chars: 可登录几个角色;

其中 Triger 和 Timer 可是许多操作自动化,别具威力.

for example:

#alias w1 (unwield sword;wield leg;)
#alias w2 (unwield leg;wield sword;)

Triger:
if
刘老汉的小花园
then
w1; kill girl 1; kill girl 2;
kill girl 3; kill girl 4; kill girl 5;
-------------------------------------------------------------------------------

行走江湖,除暴安良,不跑路是不行的。但路太多,跑起来忙忙碌碌也挺烦。

用zMud的 path 功能记忆走过的路,可以大大减少了行路的麻烦,这就有些不大

一样了。我喜欢到黑松救小娟,挣点钱救济救济新泥巴,都得益于此。有些泥巴

不大会用这个功能,下面就说一下我的体会,希望能对泥巴们有所帮助。

在path的directions中定义如下:
Direction Code: 方向码(仅作记录用,与命令无关),以下记为 Dir;
Reverse Direction Code: 同上,以下记为 ~Dir;
Direction Commands: 对应的行走命令,以下记为Cmd;

我是这样定义的:
Dir ~Dir Cmd
-------------------------------------------
a b n|north
b a s|south
c d e|east
d c w|west
e f ne|northeast
f e sw|southwest
g h nw|northwest
h g se|southest
依次类推定义nu,sd,eu,wd...共20个方向;

使用步骤如下:
1. 输入命令 #mark,开始记忆;

2. 输入行路的命令(用热键输入也可);

3. 结束时输入命令 #path aaa,则将刚才的路径记录在 .aaa 中;

4. 输入 .aaa 为重复刚才的路径命令;

5. ..aaa 则为反向走;

例如,从雪亭镇广场到倚云镇十字路口的路.xue_yi就可记为: 5bflpf5ba2d2b。

好啦,就说到这里,试试看吧。对了,别忘了一次记录得太多,会给鬼王踢出来哟。

-------------------------------------------------------------------------------


ZMUD使用简介:
zmud中最有用的就是trigger..当MUD主机发送的数据中出现指定字符
串时,执行相应的指令.
比如:
pattern 你似乎十分疲惫,看来需要好好休息了。 )
Command:w;exert recover;e
可以在你气较少时自动运功补气.
其中的w;e可一定要的,否则exert recover要busy 1秒种的,这样就有可
能而且更加容易又被击中.
在激烈的战斗中很难看到chat和别人tell你,这时用
pattern:告诉你
Command:#beep;#capture chat
这样当有人和你说话时,就会发出声音,而且会把这行消息传到chat这个
窗口去.
同样
pattern:闲聊
Command:#capture chat
这样只要经常用ctrl-tab到另外的chat窗口看就知道大家在说些什么了.
在路上说不定就会遇上哪个杀气高的大爷,可要小心!
pattern:想杀死你!
Command:#beep;#beep;#beep;
保持警惕才能争取更大胜利.
大家总是觉得自己的人物天赋不好,现在用ZMUD可以方便的获得一个天才
pattern: 膂力:~[ (%d)~] 胆识:~[ (%d)~] 悟性:~[ (%d)~] 灵性:~[ (%d)~]
Command:str=%1;cor=%2;int=%3;sti=%4
patternstr Command:str=100;cor=100;int=100;sti=100;suicide -f
pattern:考虑清楚,确定的话请输入您的密码
command:xxxxx
事先声明...本人没有用过这种方法来选择人物.
ZMUD其他的功能,我看paths没有什么用处,不如就用alias代替了..

-------------------------------------------------------------------------------

用好zmud不仅仅是设几个trigger就可以,zmud中
可以使用变量,函数,内部命令等等。如果要详细
了解,要仔细读一下HELP文件。基本的用法是:
引用内部命令用 #
引用内部变量和函数用 %
引用自定义变量和函数用 @,命令行引用加 < >
引用数学运算用 [ ]
引用快速行动(speed walk)用 .
多条命令用;分开可以一次执行
trigger的基本用法

选工具条中的trigger按钮可以定义trigger,一个trigger
有三项:class,pattern,commands,当符合pattern的内容
出现后,commands中的内容就会自动执行。

例如:pattern=*丢下一些黄金
commands=get gold

是一个自动捡黄金的例子。
pattern中可以用一些通配符:主要有
*表示任意字符
%x表示任意多字母数字串
%s表示任意多空格
%d表示任意数字
通配符可以用括号括起来 在commands中可以按顺序%1,%2...引用
如果pattern中必须有括号,用~(和~),例如:

pattern=(*)~((%x)~)告诉你:(*)
commands=#if !(%1=你) {get gold}
关于ZMUD的ALIAS

ALIAS用来简化命令,相信每个人都在用ALIAS。
实际上ZMUD的ALIAS系统是相当优秀的,比风云本身提供的
ALIAS命令更方便更灵活。按窗口上方的ALIASES按钮可以
打开ALIAS定义窗口,一看就会的。

比如:定义g 为get all
你输入g然后回车,实际发出的命令是get all
再如:定义ga 为 get all from corpse,试一试!

也可以使用参数,如果没写参数,后面跟的就会全部照搬
例如: 输入g from corpse,就会发出get all from corpse
这一点和风云的系统不同(风云中必须用$*)
如果要用参数的话,用%1,%2,%3...代表第1,2,3个单词...

(另外告诉你个秘密,可以用%-1代替全部,就像$*的作用一样哦)

可以用;来分开多条命令,这是风云ALIAS系统做不到的
比如:gp = get all;put all in oilbag
一个ALIAS中可以引用其他ALIAS,风云的ALIAS也不支持

比如: er = exert
er1 = er regenerate
er2 = er recover
er3 = er refresh
其实最重要的是:可以使用象#if命令或%if函数等来让alias有智能

比如我把上面的g和ga改成:

g = get %if(%null(%1),all,%-1)
ga = get all from %if(%null(%1),corpse,%-1)
关于button

在zmud中可以设button,看起来就是一排按钮,可以用鼠标来按
button可以设定放在窗口的上边或右边(你愿意放左边下边也没意见)

怎么设?自己找找....

button有两类,开关式(toggle)的和非开关式的,
设定窗口上有个check box负责这一点

非开关式的例子:名称(Off caption):吃包子
命令(on command): eat dumpling

开关式的例子:名称(Off caption): 拔剑
(On caption): 收剑
命令(On command): wield @mysword
(Off command): unwield @mysword

记得把变量mysword设成自造武器的名字哦!

如何自动practice
在设定trigger时有一项叫做class,用来把不同功能的trigger分类

我们来做一个叫practice的trigger类,初始设定改成disable
需要practice的时候enable这个类就可以了。
(实际上可以用一个开关button来控制比较方便)
trigger1: pattern = 你坐下来运气用功,一股内息开始在体内流动。
commands = #20 pr @practiced;#wa 2000;#20 pr @practiced;
#wa @waittime;skills;er2 @needer2;#wa @waittime;ex @needex

trigger2: pattern = ~(@nowpractice~)%s- ????????%s(%d){/ |/ |/ |/ |/}(%d)
commands = level=%1;point=%2;need=[(@level+1)*(@level+1)+1];
#if @point=@need {learn @nowpractice from master with 1;
chat @nowpractice [@level+1]
commands = level=%1;point=%2;need=[(@level+1)*(@level+1)+1];
#if @point=@need {learn @nowpractice from master with 1;
chat @nowpractice [@level+1] 级了;tune chat}

其中使用的变量:nowpractice是你要练的功夫名,比如five-steps
practiced是要练的基本技能,如move
waittime是busy的时间,一般设成3000
needer2是恢复气需要的内力值
needex是正循环用的气
~.


-------------------------------------------------------------------------------

#action {你略一凝神} {#alias {bt} {bt1}}
#action {你坐下来运气用功} {#alias {bt} {bt2}}
#action {你深深吸了几口气} {#alias {bt} {bt3}}
#alias {bt1} {exercise 160;#alias {bt} {exert refresh}}
#alias {bt2} {exert recover 160;#alias {bt} {exert refresh}}
#alias {bt3} {std;exert refresh 440;#alias {bt} {exert refresh}}
#alias {std} {study guyupai 460;save}
========================================
返回列表