北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: robotone

少林和尚从零开始学Mush,真难啊。

[复制链接]
 楼主| 发表于 2014-7-21 10:28:55 | 显示全部楼层
本帖最后由 robotone 于 2014-7-24 02:27 AM 编辑

没有时间,给大家读书的计划从简了,诗经难度太大了,改成唐诗宋词。

满江红(血流成河)

怒发冲冠,凭栏处、潇潇雨歇。抬望眼,仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
靖康耻,犹未雪。臣子恨,何时灭!驾长车,踏破贺兰山缺。
壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。

三十功名尘与土,八千里路云和月。
三十年来天南海北,经常风尘仆仆不分昼夜地行军作战,才有现在的功名。

诗词很多风花雪月,很多无病呻吟。
功成名就的人写的诗会比较现实。
——————————————————————————————————————
塞下曲

月黑雁飞高,单于夜遁逃。
欲将轻骑逐,大雪满弓刀。

没有月亮的夜晚,大雁受惊到处飞,怀疑敌人有什么行动,原来他们退兵了。
派轻骑兵去追,雪越下越大,追不上了。

匈奴对当地的气候更了解,知道要下大雪了,如果不早点撤退,将来打败仗跑都跑不掉了。
____________________________________________________________
这首算明天的。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-21 10:51:02 | 显示全部楼层

问题汇总

本帖最后由 robotone 于 2014-8-4 07:07 AM 编辑

1.Mush怎么做彩色触发?试来试去不能用?
在论坛找到了如何做颜色触发,感谢高手的分享。
是用好几个Mush自带的函数一步一步完成的。
做个触发,匹配全部行,就是^.*$
发送:
local hangshu,yangshi_shuliang,yanse_wenzi,yanse_beijing     --声明局部变量。
hangshu=GetLinesInBufferCount()     --获取匹配文字的行数。
--Note (hangshu)     --显示匹配文字的行数。
yangshi_shuliang=GetLineInfo(hangshu, 11)     --获取指定行的详细信息,11为获取样式数量。
Note ("这一行从左至右有 "..yangshi_shuliang.." 个样式。")     --一一种背景色+文字颜色算一种样式,两个样式前后的排列组合算多个样式。
local yangshi = 1     --从第一个样式开始循环。
while yangshi <= yangshi_shuliang do     --循环直到完成全部样式。
     yanse_wenzi=GetStyleInfo (hangshu, yangshi, 14)     --获取指定行每个样式的详细信息,14为文字颜色的RGB值。
     yanse_beijing=GetStyleInfo (hangshu, yangshi ,15)     --获取指定行每个样式的详细信息,15为背景颜色的RGB值。
     yanse_wenzi=RGBColourToName (yanse_wenzi)     --把文字颜色的RGB值转换为颜色名称。
     yanse_beijing=RGBColourToName (yanse_beijing)     --把背景颜色的RGB值转换为颜色名称。
     Note ("这一行第"..yangshi.."个样式的   文字颜色:"..yanse_wenzi..",   背景颜色:"..yanse_beijing)     --显示每个样式的文字和背景颜色。
     yangshi = yangshi + 1     --下一个样式。
     if yanse_beijing == "green" then Execute ("knock bell") end     --找到需要的颜色,执行命令。
end

                 西侧殿----天王殿----东侧殿   
这一行从左至右有 3 个样式。
这一行第1个样式的   文字颜色:green,   背景颜色:black
这一行第2个样式的   文字颜色:lime,   背景颜色:black
这一行第3个样式的   文字颜色:green,   背景颜色:black
样式只有两种,第一和第三是一样的,但是组合起来算3个样式。

【交易】净机(Robotone): 111
这一行从左至右有 4 个样式。
这一行第1个样式的   文字颜色:white,   背景颜色:green
knock bell
这一行第2个样式的   文字颜色:lime,   背景颜色:black
这一行第3个样式的   文字颜色:white,   背景颜色:green
knock bell
这一行第4个样式的   文字颜色:green,   背景颜色:black

敲钟需要的背景色和交易频道的背景色一样,所以用交易测试一下。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-22 08:42:31 | 显示全部楼层

备忘

本帖最后由 robotone 于 2014-7-26 11:52 AM 编辑

1注册个新号,做个钓鱼机器人。当练习题做。

2找到 “mush” 相关主题 500 个
一共17页,第三页快看完了。


4GetInternalCommandsList
获取一个包含所有 MUSHclient 内部命令名称的列表
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-22 08:42:39 | 显示全部楼层

经验教训(论坛有Mush相关主题500个,看完就学会了)

本帖最后由 robotone 于 2014-7-28 03:28 AM 编辑

很多人就是这么学会的,他们帖子里都说感谢XXX,从他们帖子里学到很多。

1.能用局部变量的地方不要用全局变量。——By madder

2.每组触发器的打开或者关掉,显示在输出窗口,或者状态栏,能明白机器人的运行情况。
   机器人要经常停下来,显示下状态步骤什么的。

3.编辑触发器的窗口有“不显示”选项,点选了以后,匹配的行就不显示了,可以屏蔽信息用。

4.一个脚本编辑器,据说集成lua基本库函数名,C API库函数名,以及MUSHClient扩展库函数名,能自动完成。——By lifesoul

5.断线重连。有时候断线不能重连,可以挂个计时器。设置时间间隔1分钟,发送到Script脚本,选中“断线时仍然有效”。
  发送:if IsConnected() == false then Connect() end——By wktxbl

6.在自己家里,getout book,du book for n,store book.........就算当机书也不丢失。——By sbear

7.脚本,其实就是游戏中的信息作为脚本中某个函数的输入,函数对输入进行某种处理,然后输出到游戏。——By huacuoh

8.文件---游戏属性----scripts这里有个“脚本标识符”,可以进行设定,比如设为/。
   这样在命令行输入/EnableTriggerGroup ("dazuo", 0)就可以把dazuo这一组trigger关掉了,打开是EnableTriggerGroup ("dazuo", 1)。
   ——By dzlc

9.快速行走路径中可以包含注释内容,它们被放置在花括号中。例如:
  { The Hall of the Mountain King }

10.触发器的序号决定该触发器匹配的先后,号越小的越先匹配。

11.选中展开变量选项以后,在发送命令中使用“@”字符,要用“@@”代替。

12.制作触发器的时候,改变颜色和样式那里选一下,可以让匹配内容更醒目。重要的信息都可以设置一下。

13.你从存款中划出一两黄金作为咨询费用交给驿站伙计。18岁以后ask XXX for all收费1 gold。问完拿笔记下来,不要浪费。建个小号?

14.在有留言板的地方save,下次上线会出现在那里。少林的存盘点是“后殿”,精进场后边。

15.插件里的函数会和自己的脚本里的函数重名,就会出问题。所以自己写的函数名字加上特别的字符,就不会重名了。

16.自己的称呼会变,小师父变成大师,将来可能成老师父,触发就得改了。

17.做机器人的时候多保存,更改一个保存一次都行。每天把整个Mush备份一次到U盘。

18.写机器人的时候,物品和人物名称,尽量用全称,反正是机器人不嫌麻烦。手动时候可以从简。

19.写复杂机器人的时候记得写注释,要不将来自己都读不懂写的东西了。养成好的习惯,积累,等于优秀。

20.发送框里尽量不用分号,用回车,一行行比较清晰。

21.平时都set brief 2,所以可以建一组触发,组名look,统一编号,把房间的描述做触发,到地方了look一下,自动开关门,进家,问话等。
     用DoAfter (0.1, "enter home"),命令就不会把描述分开了。

22.别名,heal=yun heal;可以用。heal (.+)=yun lifeheal %1;不能用。
    加上行首行尾限定,就可以用了。^heal (.+)$。heal是自己疗伤,heal后边加名字,是给别人疗伤。手动方便。
    还有jing=yun regenerate,qi=yun recover。加了行首行尾都简单多了。
    最重要的是这样不会被命令解析器乱解析。

23.触发器里选中“保持有效性”,触发过的内容还能触发另外的触发器。这两个都能触发的触发器序号一样的时候,会有冲突。
    改改序号就行了,序号小的优先。

24.洛阳的汝阳王府会掉到水牢里,quit,不要beng suolian,可能死亡。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-24 10:41:28 | 显示全部楼层
于谦的诗,大家到古诗文网自己看吧。
于谦与岳飞、张煌言并称“西湖三杰”。

跟郭德纲说相声的那个好像也叫于谦,他爹可能知道历史上的于谦,就给他起了个名字叫于谦。
郭德纲是名字好,还有德云社。还是首都有文化。
纲:象形字。羽毛球网那样的小网,两边有竹竿。纲举目张,目是网眼。
郭德纲的相声只是娱乐,没什么意义。小曲唱得好,有人生道理。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-26 10:38:17 | 显示全部楼层
本帖最后由 robotone 于 2014-7-26 09:32 AM 编辑

无心读诗了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-26 17:36:51 | 显示全部楼层

经验教训

本帖最后由 robotone 于 2014-8-4 07:37 AM 编辑

1.我来告诉你几个包袱的秘密——By ycryu
1.drop 包袱不会消失,如果你有些好东西,害怕掉线了消失,比如易筋经内功篇,就放在包袱里,你再上线,它还在原地
2.有些不能给人的东西,可以放在包袱里给
3.有些id相同的物品,比如flower,比如shu,比如jing,可以通过机器人用包袱筛选

2.set nowieldmsg,可以屏蔽别人使用或者不使用装备的信息。

3.把XXX走了过来做触发,改变样式和颜色,改成普通的绿字黑底,就不用屏蔽了。fullme提示的颜色也可以改改。
   警戒色都要尽量少用,醒目点的颜色留着给重要的信息。
   比如,你和别人一起要任务的时候,顺便把触发文字的样式和颜色改改,就可以区分开了。
   还有,战斗的信息,都改成和别人不一样颜色的。房间里也有别人在战斗,就能分清了。
   只要是和别人重复的信息,都可以设置成不一样的。最简单的办法是:加上下划线。
   发送不能是空,写上%<100>,或者发送到World。
   多行触发不能改变样式和颜色,发送里加上ColourNote(),就能增加自定义的彩色输出。

4.脱下衣服,做个触发,用ColourNote()显示彩色的文字提醒自己,防止裸奔。

5.防发呆定时器加个time,知道是什么周。

6.paimai check可以查询拍卖什么东西,好像都不贵。

7.setfrd可以加好友。

8.to发送多行信息,to chat。

9.游戏-测试触发器,Ctrl+enter换行。确定以后再点回车,触发。

10.做个别名,tri(on|off) (\S+),发送
if "%1"=="on" then
     EnableTriggerGroup ("%2", true)
     Note ("%2触发组打开")
end
if "%1"=="off" then
     EnableTriggerGroup ("%2", false)
     Note ("%2触发组关闭")
end
手动用trion/trioff可以打开关闭触发器组。定时器也需要做成这样,不过不是整组开关,是用名字单个开关。

11.状态栏需要显示重要的触发器组的状态。做个计时器刷新。

12.Mush可以单独开关一个触发器,应该很有用。EnableTrigger()。

13.EnableTimer(),打开计时器,会从上次保留的时间开始计时。要重新计时需要ResetTimer()重新开始计时。

14.新手任务会给钱,直接存账户里了。


15.钱眼开微微一笑,说道:如果想一次性存入身上所有黄金,可以cun all gold,同样也可以cun all silver,coin等等。

16.if @money=="yes" 是不行的,@money要加""。这根Lua的变量类型有关,将来再研究。

17.好像没有函数GetTriggerGroupInfo ()来获得一个触发器组的状态。只有GetTriggerInfo ()来获取一个触发器的状态。
    可以给每组触发器命名一个和组名一样的名字,获得这个触发器的状态,就知道这组触发器的状态了。
    可能因为一组触发器状态不一样,有的开有的关,没法确定状态,所以就没有这个函数。

18.制作多行触发器以后,默认把%0发送到output,意思是如果匹配成功了,输出匹配的全部内容。
    自己制作触发器的时候也可以这样,不能触发就把发送到改成output,输出%0,直到触发成功。
    原来我一直用Send ("ok")测试,比较麻烦。

19.chat 路径是 w;n;e;s那么就没办法发送,只能把这个单行多命令关闭。
     /send("chat 路径是 w;n;e;s")——By ftd。
     ;chat 路径是 w;n;e;s——By labaz。

20.插件中要用到用户id,所以想做成能自动读取主环境中的变量,该怎么做呢?
     getpluginvariable("",abc)读mcl的variable就是吧plugid放空
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2014-7-26 21:38:50 | 显示全部楼层
技术控 玩家,热别像之前的老玩家lxh,加油!addoil
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-27 16:06:07 | 显示全部楼层
脚本报错
in main chunk 函数名写错了。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2014-7-27 16:06:35 | 显示全部楼层

Lua相关。

本帖最后由 robotone 于 2014-8-25 06:15 AM 编辑

在交互模式下,每一行是一个块。一旦你输入示例的第2行,Lua立刻运行它并且在下一行开始一个新的块。
那时,local声明已经无效。当然,解决这个问题的办法肯定是有的。我们可以用do-end来显式地对整个块取消限制。
只要你输入了do,那么命令只有在得到相对于的end时才会完成,因此Lua不会自己执行每一行。
Lua简单了解。
Lua学习总结。
Lua比Mush容易学会,资料有的是,学的人很多。Mush其实不难,是太冷门了,资料不好找。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-26 08:54 AM , Processed in 0.010580 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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