文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/index.php)
-   『 机器人制作及下载 』 (http://www.aolai.org/forums/forumdisplay.php?f=5)
-   -   问一个自动学习机器人的问题 (http://www.aolai.org/forums/showthread.php?t=15165)

jsad 2009-04-28 04:16

问一个自动学习机器人的问题
 
打算做一个自动学习的机器.想用#pick 命令作一个菜单,依次选择要学习的第1,2。。。中技能。可是有一个问题,如何实现选了第一种技能之后,这个技能不会在下一个菜单出现呢?比如
第一个菜单是:
基本轻功
法术
内功
招架
END

我选了法术之后,会出来第2个菜单,只有
基本轻功
内功
招架
END

请大家指点一下,多谢多谢!

jsad 2009-04-28 04:20

回复: 问一个自动学习机器人的问题
 
忘了说,我的总体思路是把要学的技能放在一个字符串里面,比如 dodge|force|spells|parry|unarmed|end
学到需要的级别后,指针加一,开始学下一个技能,一直到end命令。其中如果需要4倍,或者红了以后xiudao, practice 21 sword的,另外计算skills的数字来判断。
大家看这个思路如何?有没有其他的好办法。我就是想做个通用的,任何id,任何师傅,不管是新人,老人都可以learn xxx from shifu的机器

jsad 2009-04-28 10:54

回复: 问一个自动学习机器人的问题
 
等了6个小时了,连看的人都没有啊。。。。
*wuwu

abmer 2009-04-28 11:13

回复: 问一个自动学习机器人的问题
 
sweat baba

吾看了......

吾也不晓得.....

jsad 2009-04-28 11:27

回复: 问一个自动学习机器人的问题
 
jades???
是你吧,就你这么叫我,jump jades
你居然也来了。
我在这里灌水就是想让朋友知道我在这里,看我一直在刷屏,hoho

引用:

作者: abmer (帖子 101822)
sweat baba

吾看了......

吾也不晓得.....


mdcfil 2009-04-28 11:48

回复: 问一个自动学习机器人的问题
 
可以用#case命令,具体的看看我关于xyj2000灭妖机器人的制作介绍中有关#case 命令的解释,只须要稍微改动,把{}内的内容改为变量便于赋值,再在mud里做个弹出式按扭方便加入要学的技能就得了。

hhs 2009-04-28 11:51

回复: 问一个自动学习机器人的问题
 
懒惰促成机器的进步啊

jsad 2009-04-28 11:55

回复: 问一个自动学习机器人的问题
 
我想过#case命令,可是没有做成。
mud里面的弹出窗口除了#pick还有#prompt,只有#pick 语句能实现显示列表进行选择,prompt只能一个 一个来,我想要的效果是给出一个清单,选一个就会少一个,如何实现呢?能给个具体方法怎么实现这个命令么?

谢谢


引用:

作者: mdcfil (帖子 101845)
可以用#case命令,具体的看看我关于xyj2000灭妖机器人的制作介绍中有关#case 命令的解释,只须要稍微改动,把{}内的内容改为变量便于赋值,再在mud里做个弹出式按扭方便加入要学的技能就得了。


jsad 2009-04-28 11:58

回复: 问一个自动学习机器人的问题
 
不是懒惰啊,其实我可以用下面的语句简单实现。我就是想搞的好看一些。太简单不是没意思么

#t+ LearnSkill
#UNV LearnSkillList
#UNV Learn_order
skill_total=%numitems(skill_en_list)
skill_order=1
skill_level=%prompt("","你要学到多少级"
Learn_order=%prompt("", "输入你要学的技能,用|分开")
learn_total=%numitems(@learn_order)
#sh 你将要学习的技能有@learn_total项, 顺序是 @learn_order,到@skill_level级
#co 15
hp

引用:

作者: hhs (帖子 101847)
懒惰促成机器的进步啊


mdcfil 2009-04-28 12:18

回复: 问一个自动学习机器人的问题
 
#case @num {learnid=@learnone} {learnid=@learntow} {learnid=@learnthree} {learnid=learnfour}……


按扭的作用就是方便将要学的技能按顺序赋值给learnone,learntwo,learnthree……
这应该不是很难的,我以前制作过一个按扭赋值多个变量的,具体怎么做的忘记了,单位没说明,得回家看。
至于学习的触发中只须learn @learnid from @master,我觉得解决起来并不麻烦,只是相关技能的trigger不能省略,用于判断学习完成与否以及技能等级。
不知道我说明白没有。

mdcfil 2009-04-28 12:28

回复: 问一个自动学习机器人的问题
 
另外,考虑到误触发的问题可以将所有技能的trigger设置为默认关闭,在按扭的制作中加入相应的打开触发类的命令,即如果所学武功名称为dodge则在其按扭输入时加入打开#t+ learn_dodge;命令。或者在按扭中加入个说明,比如输入时要求对应输入所要开启的类。以达到相应的技能开关控制。

jsad 2009-04-28 12:31

回复: 问一个自动学习机器人的问题
 
我最开始也是这样做的。
可是我现在是想做个通用的,不同的门派,不用的id都可以用。
我开始是skill一下。
然后把自己的所有的技能都放到一个字符串里面。这个很简单。
然后是要跳出一个列表,包括所有要学的技能,手动一个一个选下去,每次选一个,就会出来一个新的列表,但是少了先前选的那个,这个命令,我不知道如何实现了。
用case 语句,每次要学习的东西都要在变量里面手动改,觉得不够cool.
对了,你为什么不用
learnid=@learn@num呢?不就代替你这些语句了?



引用:

作者: mdcfil (帖子 101863)
#case @num {learnid=@learnone ("{learnid=@learnone")} {learnid=@learntow ("{learnid=@learntow")} {learnid=@learnthree ("{learnid=@learnthree")} {learn...


mdcfil 2009-04-28 12:35

回复: 问一个自动学习机器人的问题
 
我也晕了,晕,再说个更简捷的办法
#case @num {learn-name=@learnonen-name;learnid=learnone-id} {learn-name=learntwo-name;learn-id=learntwo-id}

技能的触发可以用下面的这句
#trigger {@learn-name~(@learn-id~)*~-%s(%d)~/%s(%d)} {判断是否完成学习要求,如果完成则num+1}
相信这应该可以解决了。当然trigger的格式我记不太清楚,不一定是我这个。
按扭制作时既输入技能中文名,又输入技能英文名,既可以减少trigger又可以完成列表技能的学习

jsad 2009-04-28 12:36

回复: 问一个自动学习机器人的问题
 
恩,说的对
我是jineng=xxx;#t+ learn_@jineng 来实现的


引用:

作者: mdcfil (帖子 101869)
另外,考虑到误触发的问题可以将所有技能的trigger设置为默认关闭,在按扭的制作中加入相应的打开触发类的命令,即如果所学武功名称为dodge则在其按扭输入时加入打开#t+ learn_dodge;命令。或者在按扭中加入个说明,比如输入时要求对应输入所要开启的类。以达到相应的技能开关控制。


mdcfil 2009-04-28 12:41

回复: 问一个自动学习机器人的问题
 
至于你说的skills直接抓取要学武功及其id也不是很难一个触发就搞定了
#trigger {(%x)~((*)~)*~-%s%d~/%s%d} {learn-name@namelist=%1;learn-id@namelist=%2;#add namelist 1}
这个应该能搞定,当然相应的#case的{}内的变量内容应与之相对应

jsad 2009-04-28 12:44

回复: 问一个自动学习机器人的问题
 
。。。。。

我打算是用菜单选择的,不想手动写进去。我前面的贴出来机器就是我现在用的,是自己手动写变量。我现在就想用鼠标点点,不想写字。
您老再想想办法?#case 语句是一定要自己手动赋值每个技能变量的。
比如你现在learnone=parry, 下次你第一个不想学parry了,而是dodge了,不就是要手动把learnone改成dodge什么的么?


引用:

作者: mdcfil (帖子 101878)
我也晕了,晕,再说个更简捷的办法
#case @num {learn-name=@learnonen-name;learnid=learnone-id ("{learn-name=@learnonen-name;learnid=learnone-id")} {learn-name=lea...


mdcfil 2009-04-28 12:49

回复: 问一个自动学习机器人的问题
 
当然,mud的指令是有长度限制的,#case 变量 后面的语句如果过长会出现执行错误的情况,具体的解决办法是:
#trigger {变量赋值} {#case 变量 {}{}{}{} {learnwhat=变量赋值二;将变量赋值为1,或者在下面的触发中启用新的变量};
#trigger {变量赋值二} {#case 变量 {} {} {}
如果用这个方法,须要在每样技能完成时#show @learnwhat;当然learnwhat的初始值要设定为最初触发的名字

jsad 2009-04-28 12:52

回复: 问一个自动学习机器人的问题
 
恩,我从前用这个,现在用
#trigger {(%x)~((*)~)*~-%s%d~/%s%d} {learn-name=%additem(%1,learn-name);learn-id=%additem(%2,learn-id)}。开始学习用字符串命令代替多个变量赋值了。
这2个方法差不多,就是想换换花样


引用:

作者: mdcfil (帖子 101884)
至于你说的skills直接抓取要学武功及其id也不是很难一个触发就搞定了
#trigger {(%x)~((*)~)*~-%s%d~/%s%d} {learn-name@namelist=%1;learn-id@namelist=%2;#add ("{learn-name@namelist...


suming 2012-08-18 15:10

回复: 问一个自动学习机器人的问题
 
:em19::em22::em24::em23:啊啊 为什么我什么为什么为什么
啊啊 为什么我什么为什么为什么
:em01:

cjsscn 2012-10-15 16:38

回复: 问一个自动学习机器人的问题
 
看看觉得好高深啊,还是努力学习变量吧

czcs0932 2012-10-26 15:09

回复: 问一个自动学习机器人的问题
 
引用:

作者: mdcfil (帖子 101863)
#case @num {learnid=@learnone ("{learnid=@learnone")} {learnid=@learntow ("{learnid=@learntow")} {learnid=@learnthree ("{learnid=@learnthree")} {learn...

声望是怎么来的啊啊啊啊啊


所有时间均为格林尼治时间 +9, 现在的时间是 23:49.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1