rockbt 发表于 2009-12-27 14:12:25

推荐linux/windows跨平台客户端kildclient,支持perl脚本,附大量机器人

网站:http://kildclient.sourceforge.net/phpwebsite/index.php
文档:http://kildclient.sourceforge.net/manual/index.html
very good

安装:
ubuntu 中只要:
      apt-get install kildclient
windows 版本:
      最近仔细看了看其网站,发现也有windows版本了。
      下载页面
      注意要先装 ActivePerl 5.10.0,下载页中有

注意:
1、使用我的程序前必须改以下设置,否则基本上这些程序都会报错,因为默认的命令分割符不是分号[;]。
方法:world->edit->input,把Command separator改成:[;],不要方括号的!
2、默认的编码是utf-8,国内的游戏都是gb,改成gb18030就全部都支持了。
方法:world->edit->advanced,改Charactor Set

回复中的机器人列表:
1. 打坐
2. 吐纳
3. 朱熹
4. 战斗辅助(武当)
5. HYD辅助
6. 遍历
7. 领悟
8. 学习
9. 练功
10. 走路
11. 慢速走路
12. 跳楼
13. 红豆机器人

[ 本帖最后由 rockbt 于 2010-4-25 08:18 PM 编辑 ]

rockbt 发表于 2009-12-30 14:04:37

一个在发呆室打坐的插件(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 ".$_);
    $::world->echo("tuna ".$_);
    $::world->echo("\n");
}

sub lian{
    if($flag1==0){
      $::world->send("dazuo ".$args);
      $flag1++;
    } else {
      $::world->send("tuna ".$args);
      $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");
}

rockbt 发表于 2009-12-30 14:05:49

在发呆室练功的插件

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");
}

leftie 发表于 2009-12-30 14:21:06

......

rockbt 发表于 2010-1-2 14:29:20

朱熹机器人

用于kildclient的perl版朱熹机器人。
通常五次以内就能得到正确答案。

ddid 发表于 2010-1-2 16:37:54

虽然看的不是太懂,不过这个程序给了我一个启示。

sure的javascript版朱熹机器人一直有个不是很完美的地方(sure的朱熹机器人本身已经很完美了,但要是能再完美一点就好了……),就是第一次猜数的时候总是"guess 1234",曾经想改一下可以随机生成4位不重复数字,但发现实现起来比较麻烦,楼上这个倒是提供了一个比较简单的方法。

rockbt 发表于 2010-1-3 10:33:55

原帖由 ddid 于 2010-1-2 04:37 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
虽然看的不是太懂,不过这个程序给了我一个启示。

sure的javascript版朱熹机器人一直有个不是很完美的地方(sure的朱熹机器人本身已经很完美了,但要是能再完美一点就好了……),就是第一次猜数的时候总是"guess ...

开始是什么数字没什么关系的。

rockbt 发表于 2010-1-21 13:51:40

发一个练功机器人

用法:载入插件后打:/lian6::help
后面有新的,效率更高,别用这个了。
文件: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 = $_;
    $times = $_;
    $::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");
}

[ 本帖最后由 rockbt 于 2010-3-1 10:09 AM 编辑 ]

rockbt 发表于 2010-1-21 13:56:01

获取体力、精力等信息的插件,上面的机器人要用的

文件名:hp.pl
package 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{
    ${$_} = $_;
}

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("【 精神 】 (+)[\/ ]+(+).*【 精力 】 (+)[\/ ]+(+)",
            '/hp1::getvar("js1",$_);/hp1::getvar("js2",$_);/hp1::getvar("jl1",$_);/hp1::getvar("jl2",$_)',{name=>"hp"});
    $::world->trigger("【 气血 】 (+)[\/ ]+(+).*【 内力 】 (+)[\/ ]+(+)",
            '/hp1::getvar("qx1", $_ );/hp1::getvar("qx2", $_ );/hp1::getvar("nl1",$_);/hp1::getvar("nl2",$_)',{name=>"hp"});
    $::world->trigger("【 食物 】 (+)[\/ ]+(+)",
            '/hp1::getvar("sw1",$_);/hp1::getvar("sw2",$_)',{name=>"hp"});
    $::world->trigger("【 饮水 】 (+)[\/ ]+(+)",
            '/hp1::getvar("ys1",$_);/hp1::getvar("ys2",$_)',{name=>"hp"});
    $::world->send('hp');
}

sub stop {
    $::world->deltrigger('hp');
}

sub UNLOAD {
    $::world->deltrigger('hp');
}

lzkd 发表于 2010-1-21 13:58:54

楼主比我执着。。。。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 推荐linux/windows跨平台客户端kildclient,支持perl脚本,附大量机器人