武神传说 MUD
下面我们来看一下如何建立一个流程。
点击命令组,进入预置命令组浏览界面;
点击新增,创建一个命令组:
取名为武庙回血,并写入以下命令组后,点击右上角创建按钮;
stopstate;$to 扬州城-武庙
@liaoshang
($weapon)=(:eq0)
[(:mpPer)<0.7]@dazuo
@eq (weapon)
这里只是为了教程使用,该命令组已经整合为
@renew
语句。
这样我们就创建了一个命令组。
命令组是可重复使用的模块,想要让他执行我们需要创建一个流程。
返回自定义流程的浏览界面,点击新增流程:
在这里我们可以搭配不同的命令组构成一个流程。
现在我们选择之前创建的武庙回血命令组,并把它的重复执行次数设为 1,然后新建。
此时,点击 ▶ 按钮即可执行流程!
$指令 是 wsmud_pluginss 提供的便捷组合指令;大多数 $指令 是由多条系统指令组合而成的。
多条系统指令 (及 $指令) 可用 ;
连接成为一条语句,一条语句中的系统指令会同时执行。
例如:
"$to 扬州城-武庙;liaoshang"
注意:同时执行太多系统指令可能会导致服务器拒绝执行,建议控制同时执行的系统指令条数。
$指令 的使用参见 wsmud_pluginss 主页
可以在系统指令后跟随 [数字]
,表示该语句重复的次数,例如:
"go west[3];go north"
"go west;go west;go west;go north"
上述的两条语句是等价的。
可以使用形如 ($变量名)=初始值
的语句定义一个变量并初始化,或修改已存在变量的值,例如:
"($number)=3"
请使用 大小写字母、数字、_ (下划线) 组成变量名。
有些 @语句 (下文会介绍) 也可以定义变量。
在随后的语句中均可以 (变量名)
形式使用之前定义的变量,例如:
"go west[(number)]"
1.0.7 新特性 若变量名开头大写则表示是全局变量,可在一个流程中跨任务组使用; 若变量名开头小写则只能在单次命令组执行过程中使用; 现在支持右侧为算数运算表达式例如:
($number)=(number)+1
wsmud_raid 预置了以下变量,可以直接使用:
变量 | 含义 |
---|---|
:hp | 角色当前气血值 |
:maxHp | 角色当前最大气血值 |
:hpPer | 角色当前气血剩余百分比 |
:mp | 角色当前内力值 |
:maxMp | 角色当前最大内力值 |
:hpPer | 角色当前内力剩余百分比 |
备注:更多预置变量可以查看脚本中的 GlobalParams
。
在语句前可以添加条件控制,形如 [条件]语句
。
只有当条件为真时才会运行该条语句,否则跳过该条语句。
多个条件可以使用 &
、|
进行且 (and)、或 (or) 操作;也可使用 !
进行非 (not) 操作。
"[(:hpPer)<0.7|(:mpPer)<0.7]stopstate;liaoshang"
如果在 [
后跟随一个 =
则这个控制条件会使得此语句一直等待直到条件为真。
"[=(:hpPer)<0.7]stopstate"
语句中可以使用形如 {物品名称} 的方式指代物品 id,执行时会自动进行替换,例如:
"select {崔莺莺};ask {崔莺莺} about 东厢"
默认使用模糊查找,即目标物品名称包含 {}
中给出的关键字即可。
在物品名字后面添加 %
表示进行精确查找,物品名称必须完全吻合 {}
中给出的关键字。
"select {财主女儿 崔莺莺%};ask {财主女儿 崔莺莺%} about 东厢"
1.0.10 新特性 现在支持使用 id 占位符来获取包内的物品 id 了,语法如下:
- 如果是从系统提示中截取的,则可直接使用,例如:
@tip 你从平一指购买了一枚($pill)。 use {(pill)}
- 否则,需要指定物品名称及品质,例如:
use {养精g}
品质列表:
- g:green 绿色
- b:blue 蓝色
- y:yellow 黄色
- p:purple 紫色
- o: orange 橙色
- r:red 红色
注意:若不指定品质,则视为任意品质!
!!!注意,默认为模糊查找,若想精确查找,请在最后添加
%
。例如:use {养精丹g%}
很多系统指令 (如疗伤: liaoshang) 执行后需要一定时间才会结束;后续指令需要等待其运行结束再调用才能正常运行。
为此,可以设置等待时间,也可以采取各种手段来判断指令是否结束,以便执行后续指令。
@语句 以 @ 开头,是 wsmud_raid 提供的便捷语句。
它包含了判断指令是否结束的逻辑,直至指令执行结束才会执行它后续的语句。
目前,提供以下 @语句,后续会根据需求添加 (如有需求可在下方跟帖):
直至杀死指定名字、数量的敌人,该语句执行完毕。
"@kill 管家,家丁,家丁"
默认使用模糊查找,若在敌人名字后面添加 %
表示进行精确查找,敌人名字必须完全吻合指定的名字。
"@kill 日月神教前辈长老 曲洋%,曲非烟"
亦可找到 ”日月神教前辈长老 曲洋” 和 “古灵精怪 曲非烟“ 并进行击杀。
等待所有技能冷却结束,该语句执行完毕。
疗伤,直至气血回满,该语句执行完毕。
打坐,直至内力回满,该语句执行完毕。
穿戴指定装备,直至成功,该语句执行完毕。
备注:因为装备穿戴存在冷却 cd,所以直接调用 eq 装备id
未必能够穿戴成功。
直至出现包含 关键文字 的系统提示,该语句执行完毕。
该语句中,可以截取部分信息、定义变量并用截取部分初始化,例如:
"@tip 你数了下大概有($number)朵花"
备注:@tip 语句的上一条(非守护)语句* 刚刚被执行的时刻起产生的系统提示,才在被搜索的范围内。*
整理背包,直至完成,该语句执行完毕。
前往武庙回满气血,内力少于 70% 会打坐回内力,直至完成,该语句执行完毕。
立即结束当前命令组,并执行后续命令组(如果有的话)。
在 wsmud_pluginss 中开启师门自动放弃可使用做师门任务,直至完成,该语句执行完毕。
守护语句当前不会立即执行;在其之后的每一条语句 (除了守护语句) 执行完毕,都会执行该条守护语句。
在语句的开头添加 #
即声明此条语句为守护语句。
例如,下面的语句会使得之后的每条语句执行后都会检查血量,若少于 80% 则进行疗伤。
"#[(:hpPer)<0.8]@liaoshang"
太强了,大佬
@xiejue 说道: 太强了,大佬
谢谢 🌚
很棒,我还在想我的偷渡古墓呢,哈哈
@xiaoshizi 说道: 很棒,我还在想我的偷渡古墓呢,哈哈
哈哈 等更新完了看看要怎么写
教程基本更新完毕,欢迎尝试
感谢大佬!! 请问如何在自定义流程中 使用 按键Q,也就是wsmud_pluginss的自动师门呢?
@"HeiHei Hei" 说道: 感谢大佬!! 请问如何在自定义流程中 使用 按键Q,也就是wsmud_pluginss的自动师门呢?
暂时不支持
2019.01.08 更新 1.0.7 版本
* 若变量名开头大写则表示是全局变量,可在一个流程中跨任务组使用;
* 若开头小写则只能在单次命令组执行过程中使用;
* 现在支持右侧为算数运算表达式例如:`($number)=(number)+1`
:room
房间名称、:path
房间路径大佬,像是门派战的刷怪数量是随机的,那么叫杀要怎么样编写才能成功?
@edsss 说道: 大佬,像是门派战的刷怪数量是随机的,那么叫杀要怎么样编写才能成功?
咸鱼不怎么打门派战 你具体说说你的需求 😂
门派跑一圈 把怪都清了,同时在首席那里能不叫杀最好 用$killall 的话会移动后没有清掉蓝绿,用那个kill 又不知道怪的数量会卡住
@edsss 说道: 门派跑一圈 把怪都清了,同时在首席那里能不叫杀最好 用$killall 的话会移动后没有清掉蓝绿,用那个kill 又不知道怪的数量会卡住
好的,这个会后续支持
2019.01.09 更新 1.0.10 版本
现在支持使用 id 占位符来获取包内的物品 id 了,语法如下:
如果是从系统提示中截取的,则可直接使用,例如:
@tip 你从平一指购买了一枚($pill)。
use {(pill)}
否则,需要指定物品名称及品质,例如:
use {养精g}
品质列表:
* g:green 绿色
* b:blue 蓝色
* y:yellow 黄色
* p:purple 紫色
* o: orange 橙色
* r:red 红色
**注意:若不指定品质,则视为任意品质!**
**!!!注意,默认为模糊查找,若想精确查找,请在最后添加 `%`。**例如:
```
use {养精丹g%}
```
2019.01.10 更新 1.0.17 版本
现在 id占位符 支持尝试获取一个id,语法为 {物品名称}?
,若未获取到则为 null,例如:
($guy)={田伯光}?
[(guy)!=null]go north
现在支持使用 @next
直接进入命令组的下一次运行;
与 @exit
不同:@exit
为结束命令组的运行,并运行下一个命令组。
在流程前使用 @stopSSAuto 语句以关闭 pluginss 的自动 Boss 和婚宴,流程全部完成后使用 @recoverSSAuto 恢复。
@edsss 说道: 门派跑一圈 把怪都清了,同时在首席那里能不叫杀最好 用$killall 的话会移动后没有清掉蓝绿,用那个kill 又不知道怪的数量会卡住
{}? 或许可以解决这个问题 了解一下
2019.01.14 更新 1.0.29 版本
现在支持战利品记录:
<-recordGains
开始记录战利品获得;recordGains->
结束记录战利品获得,并显示。自动副本已加入战利品记录,并会在结束后显示。
自定义流程可以监控buff或者debuff么?例如自动补明玉,或者中了长时间的debuff等消了再下一步。用了自定义流程之后原版的监控都用不了了。
@alexhzq00 说道: 自定义流程可以监控buff或者debuff么?例如自动补明玉,或者中了长时间的debuff等消了再下一步。用了自定义流程之后原版的监控都用不了了。
原版的监控用不了了吗?我去试试
2019.01.15 更新 1.0.31 版本
现在,支持在条件控制中使用 id 占位符,例如:
kill {武道塔守护者}
[={武道塔守护者}==null]
[(:hpPer)<0.8]@renew
第二句可实现等待直至武道塔守护者被杀死。
@"Bob.cn" 说道: > @alexhzq00 说道: > 自定义流程可以监控buff或者debuff么?例如自动补明玉,或者中了长时间的debuff等消了再下一步。用了自定义流程之后原版的监控都用不了了。
原版的监控用不了了吗?我去试试
奇怪我换了台电脑就没问题了,但是另一台电脑确实是在执行自动流程原版监控就没反应了。还有有语句可以实现等某些debuff消失了再下一步吗?
@alexhzq00 说道:
@"Bob.cn" 说道: > @alexhzq00 说道: > 自定义流程可以监控buff或者debuff么?例如自动补明玉,或者中了长时间的debuff等消了再下一步。用了自定义流程之后原版的监控都用不了了。
原版的监控用不了了吗?我去试试
奇怪我换了台电脑就没问题了,但是另一台电脑确实是在执行自动流程原版监控就没反应了。还有有语句可以实现等某些debuff消失了再下一步吗?
暂时没有,后需添加
jh fam 8 start @tip 你目前可以直接去挑战第($level)层 [(level)>69]@exit [(level)>59]@cd go enter;go up kill {武道塔守护者} [={武道塔守护者}?==null|(:combating)==true] [={武道塔守护者}?==null|(:combating)==false] [(:hpPer)<0.8]@renew [(:mpPer)<0.5]@renew
这个是不是要加个循环指令?不然执行一次就不动了
@nn1234 说道: jh fam 8 start @tip 你目前可以直接去挑战第($level)层 [(level)>69]@exit [(level)>59]@cd go enter;go up kill {武道塔守护者} [={武道塔守护者}?==null|(:combating)==true] [={武道塔守护者}?==null|(:combating)==false] [(:hpPer)<0.8]@renew [(:mpPer)<0.5]@renew
@liaoshang
这个是不是要加个循环指令?不然执行一次就不动了
为命令组设置很大的重复执行次数就可以啦
@kill 可以自动抓ID. 像关外船夫每次ID都不一样, 有没有办法可以交钱过河?
@"Samuel Goh" 说道: @kill 可以自动抓ID. 像关外船夫每次ID都不一样, 有没有办法可以交钱过河?
上面有介绍 id 占位符,了解一下
例如 select {崔莺莺};ask {崔莺莺} about 东厢
@"Bob.cn" 说道: > @Samuel Goh 说道: > @kill 可以自动抓ID. 像关外船夫每次ID都不一样, 有没有办法可以交钱过河?
上面有介绍 id 占位符,了解一下
例如 select {崔莺莺};ask {崔莺莺} about 东厢
行了,可是怎么卡在@tip?
select {船夫};give {船夫} 10000 money @tip 你来到了关外-船厂(副本区域)。 go south;go west[6];go north
@kill 江湖医生 阎基 cr;cr over
仔细看了一遍才发现备注有下面这条
备注:@tip 语句的上一条(非守护)语句 刚刚被执行的时刻起产生的系统提示,才在被搜索的范围内。
看来是无解。或许可以等待几秒才往南走。请问等待指令是什么?
@"Samuel Goh"
改为 @tip 你来到了关外-船厂 应该可以 后面的字有颜色信息 所以不能直接写
等待为 $wait 1000 后面数字是毫秒 1000毫秒=1秒
@"Bob.cn" 说道: @Samuel Goh
改为 @tip 你来到了关外-船厂 应该可以 后面的字有颜色信息 所以不能直接写
等待为 $wait 1000 后面数字是毫秒 1000毫秒=1秒
不知道为什么侦测不到tip,后面我改用[=(:room)==关外-船厂(副本区域)]就行了
👽 wsmud_Raid 1.0.31 自定义流程开发指南
简介
使用 wsmud_Raid 1.x.x 可以简便地自定义一个流程。
wsmud_Raid 1.x.x 中提供的几乎所有的副本的都是通过类似于下方的 (困难移花宫的) 流程实现的:
不要怕,这个流程扫一眼即可,下面会拣其中的几个典型语句解释。
下面先拿其中一条语句来简单看看:
#
表明这条语句是一条守护语句,它不会立即执行,但是当在其下方的每一条语句执行完毕时,都会执行该条守护语句;[(:hpPer)<0.8]
是一个条件控制,只有满足该条件才会执行条件控制后面的语句部分;(:hpPer)
是使用了一个预置变量,表示角色的气血剩余百分比;@liaoshang
是一条@语句,它会执行疗伤直至角色气血回满 (,才会执行接下来的语句)。所以这条语句就实现了角色每次行动后,都会检查气血是否少于 80%;若是,就会自动疗伤,直至回满气血后才会执行接下来的语句。
再来看另外几条语句:
@tip 你数了下大概有($number)朵花
中我们等待获取包含 ”你数了下大概有?朵花“ 的系统提示,并创建了一个名为number
的变量来保存花朵数目 (假设为 3);pushleft bed[(number)]
中我们使用了上面创建的变量number
,所以语句会变成pushleft bed[3]
;pushleft bed[3]
等价于pushleft bed;pushleft bed;pushleft bed
,即向左推动床 3 次。于是,就这样,我们实现了观察左侧 Boss 房间的花朵数,并推动床相应次数的需求。
欢迎使用 wsmud_Raid 自定义流程功能编写你自己需要的流程。
如果想要了解更多,请向下读。 😊