推荐linux/windows跨平台客户端kildclient,支持perl脚本,附大量机器人
网站:[url=http://kildclient.sourceforge.net/phpwebsite/index.php]http://kildclient.sourceforge.net/phpwebsite/index.php[/url]文档:[url=http://kildclient.sourceforge.net/manual/index.html]http://kildclient.sourceforge.net/manual/index.html[/url]
very good
安装:
ubuntu 中只要:
apt-get install kildclient
windows 版本:
最近仔细看了看其网站,发现也有windows版本了。
[url=http://kildclient.sourceforge.net/phpwebsite/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=2]下载页面[/url]
注意要先装 [url=http://www.activestate.com/Products/ActivePerl/?mp=1]ActivePerl 5.10.0[/url],下载页中有
注意:
1、使用我的程序前必须改以下设置,否则基本上这些程序都会报错,因为默认的命令分割符不是分号[[color=Red];[/color]]。
方法:[color=Red]world->edit->input[/color],把Command separator改成:[[color=Red];[/color]],[color=Red]不要方括号的![/color]
2、默认的编码是utf-8,国内的游戏都是gb,改成gb18030就全部都支持了。
方法:[color=Red]world->edit->advanced[/color],改Charactor Set
回复中的机器人列表:
1. 打坐
2. 吐纳
3. 朱熹
4. 战斗辅助(武当)
5. HYD辅助
6. 遍历
7. 领悟
8. 学习
9. 练功
10. 走路
11. 慢速走路
12. 跳楼
13. 红豆机器人
[[i] 本帖最后由 rockbt 于 2010-4-25 08:18 PM 编辑 [/i]]
一个在发呆室打坐的插件(perl)
package zuogong;#: Version: 1.0
#: Description: A dazuo tuna Plugin
#: Author: Fu Huizhong
our $flag1=0;
our @args=(300,160);
sub set{
if(@_ != 2){
$::world->echo("Usage:mlearn::set(dazuo_N,tuna_N)\n");
return;
}
@args=@_;
$::world->echo("dazuo ".$_[0]);
$::world->echo("tuna ".$_[1]);
$::world->echo("\n");
}
sub lian{
if($flag1==0){
$::world->send("dazuo ".$args[0]);
$flag1++;
} else {
$::world->send("tuna ".$args[1]);
$flag1=0;
}
}
sub start{
$::world->trigger('你发呆了一会儿,发现自己居然精神百倍!','/$world->timer({interval=>1,count =>1,temporary=>1,action=>"/zuogong::lian"})',{name=>"zuogong:lian"});
$::world->trigger("你.*,深深吸了口气,站了起来。","fadai",{name=>"zuogong:fd1"});
$::world->trigger('你吐纳完毕,睁开双眼,站了起来。','fadai',{name=>"zuogong:fd2"});
$::world->send("fadai");
}
sub stop{
$::world->deltrigger('zuogong:fd1');
$::world->deltrigger('zuogong:fd2');
$::world->deltrigger('zuogong:lian');
}
sub UNLOAD{
$::world->deltrigger('zuogong:fd1');
$::world->deltrigger('zuogong:fd2');
$::world->deltrigger('zuogong:lian');
}
sub help {
$::world->echonl("Usage in fadai room:",
"1. /zuogong::set(dazuo_N,tuna_N)",
"2. /zuogong::start",
"3. /zuogong::stop");
}
在发呆室练功的插件
package mlian;#: Version: 1.0
#: Description: A multi skills practise Plugin
#: Author: Fu Huizhong
our $flag1=0;
our @skills=("dodge","cuff");
sub set{
@skills=@_;
$::world->echo("lian skills ");
foreach $s (@_){
$::world->echo($s.' ');
}
$::world->echo("\n");
}
sub mymotions{
if( $flag1>=@skills ){
$flag1=0;
}
my $skill = $skills[$flag1];
$flag1++;
$::world->send("lian $skill 20");
}
sub start{
$::world->trigger("你反复练习.*,获得了不少进步!","fadai",{name=>"mlian:t1"});
$::world->trigger('你发呆了一会儿,发现自己居然精神百倍!','/$world->timer({interval=>1,count =>1,temporary=>1,action=>"/mlian::mymotions"})',{name=>"mlian:t2"});
$::world->trigger("你的内力不够练.*。","dazuo 300",{name=>"mlian:t3"});
$::world->trigger("你.*,深深吸了口气,站了起来。","fadai",{name=>"mlian:t4"});
$::world->send("fadai");
}
sub stop{
my $i=4;
while($i>=1){
$::world->deltrigger('mlian:t'.$i);
$i--;
}
}
sub UNLOAD {
my $i=4;
while($i>=1){
$::world->deltrigger('mlian:t'.$i);
$i--;
}
}
sub help {
$::world->echonl("Usage in fadai room:",
"1. /mlian::set(skill_1,skill_2 ...)",
"2. /mlian::start",
"3. /mlian::stop");
} ......
朱熹机器人
用于kildclient的perl版朱熹机器人。通常五次以内就能得到正确答案。 虽然看的不是太懂,不过这个程序给了我一个启示。
sure的javascript版朱熹机器人一直有个不是很完美的地方(sure的朱熹机器人本身已经很完美了,但要是能再完美一点就好了……),就是第一次猜数的时候总是"guess 1234",曾经想改一下可以随机生成4位不重复数字,但发现实现起来比较麻烦,楼上这个倒是提供了一个比较简单的方法。 [quote]原帖由 [i]ddid[/i] 于 2010-1-2 04:37 PM 发表 [url=http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=115643&ptid=10723][img]http://pkuxkx.net/forum/images/common/back.gif[/img][/url]
虽然看的不是太懂,不过这个程序给了我一个启示。
sure的javascript版朱熹机器人一直有个不是很完美的地方(sure的朱熹机器人本身已经很完美了,但要是能再完美一点就好了……),就是第一次猜数的时候总是"guess ... [/quote]
开始是什么数字没什么关系的。
发一个练功机器人
用法:载入插件后打:/lian6::help[color=Red]后面有新的,效率更高,别用这个了。[/color]
文件:lian.pl
package lian6;
#: Version: 1.0
#: Description: A multi skills practise Plugin
#: Author: Fu Huizhong
BEGIN {
$::world->requireplugin('hp1');
}
our $flag1=0;
our $skill="cuff";
our $times = 25;
our $sleepn = 0;
sub set{
if(@_!=2){
$::world->echo("Usage:/lian6::set(skill,times)\n");
return;
}
$skill = $_[0];
$times = $_[1];
$::world->echo("lian skill $skill for $times");
$::world->echo("\n");
}
sub mymotions{
$::world->send("hp","lian $skill $times");
$sleepn = 0;
}
sub mydazuo{
my $dzn = $times*10;
$::world->send("dazuo $dzn");
}
sub mysleep{
$flag1=0;
if($sleepn<3){
$::world->send("sleep");
$sleepn += 1;
}else{
mymotions;
}
}
sub recover{
if($::hp1::nl1>$times*20){
$::world->send("exert recover");
}else{
mymotions;
}
}
sub start{
my $ret=$::world->triggerenabled('lian');
if( defined($ret) ){
$::world->deltrigger('lian');
}
::hp1::start;
$::world->trigger("你.*练习.*,获得了.*进步!","/lian6::recover",{name=>"lian"});
$::world->trigger('你深深吸了几口气,脸色看起来好多了','/$world->timer({interval=>1,count =>1,temporary=>1,action=>"/lian6::mymotions"})',{name=>"lian"});
$::world->trigger('你现在气力充沛。','/$world->timer({interval=>1,count =>1,temporary=>1,action=>"/lian6::mymotions"})',{name=>"lian"});
$::world->trigger("你的内力不够练.*。","/lian6::mydazuo",{name=>"lian"});
$::world->trigger("你.*,深深吸了口气,站了起来。",'/$world->timer({interval=>1,count =>1,temporary=>1,action=>"/lian6::mymotions"})',{name=>"lian"});
$::world->trigger('你的内力不够。','/lian6::mydazuo',{name=>'lian'});
$::world->trigger("你现在的气太少了,无法产生内息运行全身经脉。",'/lian6::mysleep',{name=>"lian"});
$::world->trigger("你的体力太低了。",'/lian6::mysleep',{name=>"lian"});
$::world->trigger("你的体力不够练.*",'/lian6::mysleep',{name=>"lian"});
$::world->trigger("你的体力太差了,不能练.*。",'/lian6::mysleep',{name=>"lian"});
$::world->trigger('你一觉醒来,精神抖擞地活动了几下手脚。','eat liang;drink jiudai;/lian6::mymotions',{name=>'lian'});
$::world->trigger('你刚在三分钟内睡过一觉, 多睡对身体有害无益! ',
'/$world->timer({interval=>24,count =>1,temporary=>1,action=>"/lian6::mymotions"})',{name=>'lian'});
mymotions;
}
sub stop{
$::world->deltrigger('lian');
}
sub UNLOAD {
$::world->deltrigger('lian');
}
sub help {
$::world->echonl("Usage in fadai room:",
"1. /lian6::set(skill,times)",
"2. /lian6::start",
"3. /lian6::stop");
}
[[i] 本帖最后由 rockbt 于 2010-3-1 10:09 AM 编辑 [/i]]
获取体力、精力等信息的插件,上面的机器人要用的
文件名:hp.plpackage hp1;
#: Version: 1.0
#: Description: A Plugin for hp information
#: Author: Fu Huizhong
our $js1 = 100;
our $qx1 = 100;
our $jl1 = 100;
our $nl1 = 100;
our $js2 = 100;
our $qx2 = 100;
our $jl2 = 100;
our $nl2 = 100;
our $sw1 = 200;
our $sw2 = 200;
our $ys1 = 200;
our $ys2 = 200;
sub getvar{
${$_[0]} = $_[1];
}
sub show{
$::world->echonl("精神 = $js1 / $js2",
"气血 = $qx1 / $qx2",
"精力 = $jl1 / $jl2",
"内力 = $nl1 / $nl2",
"食物 = $sw1 / $sw2",
"饮水 = $ys1 / $ys2");
}
sub start{
my $ret=$::world->triggerenabled('hp');
if( defined($ret) ){
$::world->deltrigger('hp');
}
$::world->trigger("【 精神 】 ([0-9]+)[\/ ]+([0-9]+).*【 精力 】 ([0-9]+)[\/ ]+([0-9]+)",
'/hp1::getvar("js1",$_[1]);/hp1::getvar("js2",$_[2]);/hp1::getvar("jl1",$_[3]);/hp1::getvar("jl2",$_[4])',{name=>"hp"});
$::world->trigger("【 气血 】 ([0-9]+)[\/ ]+([0-9]+).*【 内力 】 ([0-9]+)[\/ ]+([0-9]+)",
'/hp1::getvar("qx1", $_[1] );/hp1::getvar("qx2", $_[2] );/hp1::getvar("nl1",$_[3]);/hp1::getvar("nl2",$_[4])',{name=>"hp"});
$::world->trigger("【 食物 】 ([0-9]+)[\/ ]+([0-9]+)",
'/hp1::getvar("sw1",$_[1]);/hp1::getvar("sw2",$_[2])',{name=>"hp"});
$::world->trigger("【 饮水 】 ([0-9]+)[\/ ]+([0-9]+)",
'/hp1::getvar("ys1",$_[1]);/hp1::getvar("ys2",$_[2])',{name=>"hp"});
$::world->send('hp');
}
sub stop {
$::world->deltrigger('hp');
}
sub UNLOAD {
$::world->deltrigger('hp');
} 楼主比我执着。。。。 [quote]原帖由 [i]lzkd[/i] 于 2010-1-21 01:58 PM 发表 [url=http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=120308&ptid=10723][img]http://pkuxkx.net/forum/images/common/back.gif[/img][/url]
楼主比我执着。。。。 [/quote]
因为我感觉这个客户端用着很爽,很方便编机器人
一个学习机器人
用法:1./$world->loadplugin("/your path/hp.pl")
这个是额外的支持插件
2./$world->loadplugin("/your path/mlearn.pl")
3./mlearn1::set('师傅','技能',次数,最小气血,'休息室路径','休息室路返回径')
最小气血:气血低于这个数就去睡觉。
路径的格式:和内置函数/path('路径')一样
4./mlearn1::start
5.学完后别忘了打/mlearn1::stop,删除trigger 有点意思,友情帮顶一下.....
非linux用户飘过...
新练功机器人
要在能睡觉的地方用用法:
1、/$world->loadplugin(/your path/hp.pl)
这个插件上面的帖子里有
2、/$world->loadplugin(/your path/lian.pl)
3、/lian6::set('武功',次数,最小内力)
最小内力:一方面,当内力小于最小内力是就睡觉;另一方面,练习消耗内力的武功时,如果内力小于这个值就打坐。
打坐机器人
1、在休息室用,要睡觉的。2、需要前面帖子中的 hp.pl 插件支持。
3、载入插件后打
/dz2::start
吐纳机器人
1、在休息室用,要睡觉的。2、需要前面帖子中的 hp.pl 插件支持。
3、载入插件后打
/tuna6::start
一个执行命令脚本的程序
命令脚本实例:从ct到北京
文件名:beijing
enter shudong;say 天堂有路你不走呀
d;3
/::path("2{ne}u{sw}e{sd}2e3{ne}6n")
注意:
上面调用path函数时前面要加两个冒号(::),调用/$world->some也要写成/$::world->some
汉字编码不用改成gb码,用utf-8
各种用法(怎么载入就不说了):
1、/run::load("文件的完整路径")
2、预先先设置默认路径 /run::set("完整默认路径"),然后打 /run::load("文件名"),注:预设路径是$HOME/xkx/path
我自己的用法是设置一个alias:
/$world->alias('^f (.*)$','/run::load("$1")')
用的时候打:f 文件名 我喜欢perl啊,平时工作用的最多的就是perl了,lua,js都不熟
可惜公司的unix/linux workstation都不能连外网ttk_33 好东西ttk_00
已转至wiki
[url]http://pkuxkx.net/wiki/robot/down#kildclient[/url] [quote]原帖由 [i]zgbl[/i] 于 2010-3-1 12:56 PM 发表 [url=http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=127658&ptid=10723][img]http://pkuxkx.net/forum/images/common/back.gif[/img][/url]
好东西ttk_00
已转至wiki
http://pkuxkx.net/wiki/robot/down#kildclient [/quote]
深受鼓舞!