Welcome Guest ( Log In | Register )

欢迎访问本站。游客仅能浏览首页新闻、版块主题、维基条目与资源信息,需登录后方可获得内容发布、话题讨论、维基编辑与资源下载等权限。若无账号请先完成注册流程。
 
Reply to this topicStart new topic
> Mudlet从入坑到入土——入坑篇(初级), 施工中,勿跟帖,有问题QQ群712549510
Anselmus
2021-09-09, 12:12
Post #1


主物质者
Group Icon
 17
   2

Group: Speaker
Posts: 59
Joined: 2015-12-01
Member No.: 65127


总有人说不会用mudlet的脚本,搜了一下中文说明确实难找,那本人不才就开贴写一下。

水平不高,抛砖引玉,有问题随时交流。

本文内容首发trow.cc,请勿转载

本文中所说的脚本,是指玩家预先编写程序与游戏进行互动的一种方式,泛指mudlet中所有通过trigger、alias等编程功能创造的内容。

先看mudlet界面:

External Image

打开mudlet界面,如上图所示,左起第2-8这7个图标构成了mudlet最基础的脚本功能组合,无论点哪一个都是进入同一个类似的界面,只是入口不同,我们把这7个功能统称为基础脚本功能。

7个基础脚本功能细分来说是6+1,6个执行入口和1个变量表。脚本的最终目的是与游戏互动,让游戏里面的人物去“执行”某些动作,或者改变游戏输出的显示形式。6个执行入口,就是6中不同执行脚本命令的方式:

Trigger:通过游戏输出内容触发执行,比如走路时看到泉水的描述就自动喝水。

Alias:通过玩家输入的命令执行,比如可以用输入chi来执行游戏的eat命令。

Timer:定时执行,比如每5分钟观察一次隔壁房间有没有刷怪。

Button:Button分为按钮和开关两种模式,按钮模式下每次点击触发同样的命令,开关模式下可以执行两种不同的命令。

Script:狭义的脚本,初级篇不涉及,中级篇再讲。

Key:按键执行,类似快捷键,常见的用途是走路。

Variable:变量表,初级篇不涉及,中级篇再讲。

下面分别看一下Trigger、Alias、Timer、Button和Key怎么写

This post has been edited by Anselmus: 2021-09-09, 12:21
TOP
Anselmus
2021-09-09, 12:17
Post #2


主物质者
Group Icon
 17
   2

Group: Speaker
Posts: 59
Joined: 2015-12-01
Member No.: 65127


Trigger

Trigger的触发方式主要有两种:

1、 通过游戏输出内容触发
2、 通过feedTriggers()函数触发

函数的内容都留到中级篇,这里只看一下通过游戏输出内容的触发怎么写。

先来认识一下Trigger的界面:

External Image

1、 trigger列表:所有trigger的清单,按目录树方式组织。在上方工具栏点击Add Item之后,这里会生成一个New trigger并显示右边的界面内容。
2、 trigger名称:随便填,默认为New trigger。
3、 trigger触发时发送给游戏的命令
4、 触发条件:这里就是遇到游戏输出什么内容时才触发,分为8种类型

QUOTE


External Image
Substring:子字符串,就是指游戏输出文字的一部分。比如游戏显示“你渴了”,触发条件为“渴”的情况下就会触发。但这个子字符串必须是连续的,比如“你了”就不能触发。

Perl regex:perl正则表达式,regex是regular expression的缩写。具体内容可以另外百度搜索,入门篇不涉及,中级篇再讲。

Start of line:一种特殊的子字符串,从一行的起始开始匹配。比如刚才那个例子,游戏显示“你渴了”,在Sol模式下,“渴”不能触发,但是“你”或者“你渴”都可以触发。

Exact match:精确匹配,也是一种特殊的子字符串,这种条件下触发条件必须与游戏输出的内容完全一致才能触发。上面例子中,精确匹配模式下触发条件只有填“你渴了”才能触发。

Lua function:一种特殊的触发机制,通过一个Lua函数返回的值判断是否触发,中级篇再讲。

Line spacer:游戏输出空行的时候触发

Color trigger:根据游戏输出文字的颜色判断是否触发

Prompt:提示行,游戏输出提示行的时候触发,不管提示行内容具体写了什么。

5、 高亮:这里打开之后可以用指定的前景色和背景色显示触发条件匹配到的内容,方便测试用。

下面我们看一个trigger的实例:

QUOTE
External Image
Trigger名字叫“自动喝水”
当游戏输出“你渴了。”的时候,向游戏发送“get waterskin from bag;drink waterskin”这个命令,这构成了一个简单的trigger。

未完待续……

This post has been edited by Anselmus: 2021-09-09, 12:18
TOP
Fast ReplyReply to this topicStart new topic
 


Time is now: 2021-09-26, 04:53