由于时间关系,我没有用C语言写成程序,而是直接用perl语言写的。 

基本原理就是,玩球,赚狗粮。然后喂养其他小狗赚骨头。

1.你必须知道什么是perl。

如果你用的Linux,Unix,那么他们会自带。如果你用的Windows,那么你只需要安装Active Perl。在windows的“运行”中输入"cmd"运行,然后输入"perl -v",如果出现版本信息之后,说明安装成功。

Windows用户可以到http://www.onlinedown.net/soft/8364.htm下载。

2.你必须要有HTTPLook。

你可以到我的上一篇文章中,查看说明。这是用来抓包,产生头文件的。

3.利用HTTPLook产生浏览器头文件。

在需要的情况下,首先打开HTTPLook的三角运行按钮。然后在IE或者FireFox做相关操作,然后关闭HTTPLook的正方形红色按钮。那么你就可以在HTTPLook中看到整个运行情况。将下面各个需要的内容,直接从右方拷贝下来,做成相应的txt文件。

dog_init.txt   登录狗狗时(必须在动作前开,登录完成后关闭HTPPLook的抓包功能,下面同理)。头文件第一行是GET /pet-profile.do?method=dogXML&actor......  或者你可以直接看左边的URL地址,后面是否如此。

记住上面的PID和ACTOR_FID的数值,下面有用。

dog_pelt.txt  点击小狗抓球的动作时。头文件第一行是 POST /pet-profile.do

dog_store.txt 点击进入商店时。头文件第一行是GET /store.do

dog_buy.txt 点击购买5更骨头的食物时。头文件第一行是POST /store.do

dog_ids.txt 点击查看所有饿的狗时。头文件第一行是GET /hall.do?method=hungry

dog_hungry.txt 点击某一只饿狗时。头文件第一行是GET /hall.do?method=hungry

dog_feed.txt  点击给某一只狗喂食时。头文件第一行是POST /pet-profile.do

登录校内网,完成上面的步骤把上面的内容全部拷贝放到上述的文件中。

特别注意,在所有文件中,要把Accept-Encoding: 后面全部改成UTF-8。因为程序不会去解压zip格式。

 下面是一个例子(dog_hungry.txt):

POST /pet-profile.do HTTP/1.1
Accept: */*
Accept-Language: zh-CN
Referer: http://i.static.xiaonei.com/pet/swf/dog_v2.swf?ver=081016
x-flash-version: 9,0,124,0
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Accept-Encoding: UTF-8
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
Host: dog.xiaonei.com
Connection: Keep-Alive
Cache-Control: no-cache
Cookie:校内网狗狗刷骨机完全版(不再维护)校内网狗狗刷骨机完全版(不再维护)..

 

4.运行下面的Perl文件。

dog4.pl 用于玩球产生狗粮。因为每5根骨头产生一次狗粮,因此玩球得分的概率还是非常高的。将所有的骨头全部换成狗粮。注意将文件中的PID=>XXXXXX和ACTOR_FID=>XXXXXXX改成上面你得到的值。登录狗狗时,可以在URL中看到。然后在命令行中进入文件目录(上述头文件也必须同在该目录下),运行perl dog4.pl就可以了。检查自己的骨头和狗粮是否发生变化,如果变化那么就成功了。

 

校内网狗狗刷骨机完全版(不再维护)#!/usr/bin/perl
校内网狗狗刷骨机完全版(不再维护)#crack dog
校内网狗狗刷骨机完全版(不再维护)#Catch Ball -> buy food

校内网狗狗刷骨机完全版(不再维护)
use XML::Simple;
校内网狗狗刷骨机完全版(不再维护)
use Data::Dumper;
校内网狗狗刷骨机完全版(不再维护)
use Time::HiRes qw(gettimeofday);
校内网狗狗刷骨机完全版(不再维护)
use Digest::MD5  qw(md5_hex);
校内网狗狗刷骨机完全版(不再维护)
use LWP;
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
use constant PID=>XXXXXX;
校内网狗狗刷骨机完全版(不再维护)
use constant ACTOR_FID=>XXXXXXX;
校内网狗狗刷骨机完全版(不再维护)
use constant METHOD=>"pelt";
校内网狗狗刷骨机完全版(不再维护)
use constant APPURL=>"http://dog.xiaonei.com/";
校内网狗狗刷骨机完全版(不再维护)
use constant PROFILE_URL=>APPURL."pet-profile.do";
校内网狗狗刷骨机完全版(不再维护)
use constant XMLURL=>PROFILE_URL."?method=dogXML&actor%5Fid=".ACTOR_FID."&pid=".PID."&";
校内网狗狗刷骨机完全版(不再维护)
use constant STROE_URL=>APPURL."store.do";
校内网狗狗刷骨机完全版(不再维护)
use constant INI_HEADER_FILE=>"dog_init.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant PELT_HEADER_FILE=>"dog_pelt.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant STORE_HEADER_FILE=>"dog_store.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant BUY_HEADER_FILE=>"dog_buy.txt";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
%init_header = readhead(INI_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%pelt_header = readhead(PELT_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%store_header = readhead(STORE_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%buy_header = readhead(BUY_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
&main;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)
sub main
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
print "start\n";
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $key = &getInit;
校内网狗狗刷骨机完全版(不再维护)  
my $goal,$num;
校内网狗狗刷骨机完全版(不再维护)  
my $catch = 0;
校内网狗狗刷骨机完全版(不再维护)  
my $failed = 0;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
while(1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    (
$key,$goal,$num= pelt($key);
校内网狗狗刷骨机完全版(不再维护)    
if($goal>0)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
$catch++;
校内网狗狗刷骨机完全版(不再维护)    }
else
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
$failed++;
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)    
print $catch.":".$failed."\tgoal=".$goal."\tbone=".$num."\n";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
if($num>=5)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
&buyfood;
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)    
my $range = 3;
校内网狗狗刷骨机完全版(不再维护)    
my $random_number = 5+int(rand($range));
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
sleep($random_number);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#初始化
校内网狗狗刷骨机完全版(不再维护)#返回key

校内网狗狗刷骨机完全版(不再维护)
sub getInit
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my ($seconds, $microseconds= gettimeofday();
校内网狗狗刷骨机完全版(不再维护)  
$milliseconds = int($microseconds/1000);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
#load user info
校内网狗狗刷骨机完全版(不再维护)
  my $infourl = XMLURL."t=".$seconds.$milliseconds;
校内网狗狗刷骨机完全版(不再维护)  
my $name = "INIT";
校内网狗狗刷骨机完全版(不再维护)  
my $method = "GET";
校内网狗狗刷骨机完全版(不再维护)  
my $file = httpcon(\$name,\$method,\$infourl,\%init_header);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my $xs1 = XML::Simple->new();
校内网狗狗刷骨机完全版(不再维护)  
my $doc = $xs1->XMLin($file);
校内网狗狗刷骨机完全版(不再维护)  
#print Dumper($doc),"\n";
校内网狗狗刷骨机完全版(不再维护)
  my $pet = $doc->{'pet_id'}->{'content'};
校内网狗狗刷骨机完全版(不再维护)  
my $bone = $doc->{'num_bones_available'}->{'content'};
校内网狗狗刷骨机完全版(不再维护)  
my $key = $doc->{'key'};
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
print "init key:".$key."\tbone=".$bone."\n";
校内网狗狗刷骨机完全版(不再维护)  
return $key;
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#捡盘子输入一个key
校内网狗狗刷骨机完全版(不再维护)#返回最后一次的@_[0]key,@_[1]goal,@_[2]bones

校内网狗狗刷骨机完全版(不再维护)
sub pelt
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my($key= @_;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $code = $key."#".PID."#".ACTOR_FID;
校内网狗狗刷骨机完全版(不再维护)  
$code = md5_hex($code);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $content="code=".$code."&pid=".PID."&actor%5Fid=".ACTOR_FID."&method=".METHOD;
校内网狗狗刷骨机完全版(不再维护)  
my $len = length($content);
校内网狗狗刷骨机完全版(不再维护)  
my %headers=%pelt_header;
校内网狗狗刷骨机完全版(不再维护)  
$headers{"Content-Length"}="$len";
校内网狗狗刷骨机完全版(不再维护)  
my $name = "PELT";
校内网狗狗刷骨机完全版(不再维护)  
my $method="POST";
校内网狗狗刷骨机完全版(不再维护)  
my $url = PROFILE_URL;
校内网狗狗刷骨机完全版(不再维护)  
my $file = httpcon(\$name,\$method,\$url,\%headers,\$content);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my @rst=split(/[\|]/,$file);
校内网狗狗刷骨机完全版(不再维护)  
return ($rst[1],$rst[0],$rst[2]);
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#buy food
校内网狗狗刷骨机完全版(不再维护)
sub buyfood{
校内网狗狗刷骨机完全版(不再维护)  
my $name = "STORE";
校内网狗狗刷骨机完全版(不再维护)  
my $method="GET";
校内网狗狗刷骨机完全版(不再维护)  
my $url = STROE_URL;
校内网狗狗刷骨机完全版(不再维护)  
my $file = httpcon(\$name,\$method,\$url,\%store_header);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my $b_tsc=0;
校内网狗狗刷骨机完全版(不再维护)  
if($file=~/PET\.tsc\s+=\s+'(\w+)';/g)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
$b_tsc=$1;
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
if($b_tsc eq 0)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
return;
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $content = "method=buyfood&buy_id=1&buy_count=1&tsc=".$b_tsc;
校内网狗狗刷骨机完全版(不再维护)  
my $len = length($content);
校内网狗狗刷骨机完全版(不再维护)  
my %headers=%buy_header;
校内网狗狗刷骨机完全版(不再维护)  
$headers{"Content-Length"}="$len";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my $name = "BUY";
校内网狗狗刷骨机完全版(不再维护)  
my $method="POST";
校内网狗狗刷骨机完全版(不再维护)  
my $url = STROE_URL;
校内网狗狗刷骨机完全版(不再维护)  
$file = httpcon(\$name,\$method,\$url,\%headers,\$content);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
print "Buy 5 foods.\n";
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#sub  : http connection
校内网狗狗刷骨机完全版(不再维护)#input:
校内网狗狗刷骨机完全版(不再维护)#       $name, the connection name, to log
校内网狗狗刷骨机完全版(不再维护)#       $method, GET/POST
校内网狗狗刷骨机完全版(不再维护)#       $URL, complete URL
校内网狗狗刷骨机完全版(不再维护)#       %head, header,(opt)
校内网狗狗刷骨机完全版(不再维护)#       $content, content (opt, but must after %head)
校内网狗狗刷骨机完全版(不再维护)#output:
校内网狗狗刷骨机完全版(不再维护)#       $WEB result

校内网狗狗刷骨机完全版(不再维护)
sub httpcon
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my ($name,$method,$url,$head,$content= @_;
校内网狗狗刷骨机完全版(不再维护)  
my $num = @_;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $agent = LWP::UserAgent->new;
校内网狗狗刷骨机完全版(不再维护)  
my $request = HTTP::Request->new($$method=>$$url);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
if($num>3)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
$request->header(%$head);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
if($num>4)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
$request->content($$content);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $res = $agent->request($request);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
$res->is_success or print "$$name error:", $res->message,"\n";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
$res->content;
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#sub    :   readheadfile
校内网狗狗刷骨机完全版(不再维护)#input  :   $filename
校内网狗狗刷骨机完全版(不再维护)#output :   %head

校内网狗狗刷骨机完全版(不再维护)
sub readhead
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my($filename= @_;
校内网狗狗刷骨机完全版(不再维护)  
my %ret;
校内网狗狗刷骨机完全版(不再维护)  
open MYFILE,"<$filename"
校内网狗狗刷骨机完全版(不再维护)    or 
die "Can't open head for append: $!";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my $str;
校内网狗狗刷骨机完全版(不再维护)  
my @stuff = <MYFILE>;
校内网狗狗刷骨机完全版(不再维护)  
close(MYFILE);
校内网狗狗刷骨机完全版(不再维护)  
foreach $str (@stuff) {
校内网狗狗刷骨机完全版(不再维护)    
#print $str;
校内网狗狗刷骨机完全版(不再维护)
    chomp $str;
校内网狗狗刷骨机完全版(不再维护)    
if($str=~/(\w+): (\w+)/g)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
my @sp = split (/:/,$str,2);
校内网狗狗刷骨机完全版(不再维护)      
$ret{$sp[0]}=$sp[1];
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
return %ret;
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)

 

5.如果你有了足够的狗粮,比如几百几千甚至几万的。那么现在是把它变成骨头的时候了。运行下面的程序。同理,也要修改两个ID。如果你用骨头买了所有的东西之后,你想爬上热心排行榜,就先赚几千几万根骨头,然后把下文中的if($num > RESERVE_BONES)及其下面的四句前面的#删除,并且修改文件开始的RESERVE_BONES=>2000为你想保留的骨头数。此外如果你不想被人发现的话请修改sleep(5)中数字(最小为5,每5秒喂一只狗),修改成20,30的。下面运行这个程序,就可以不断的喂狗,赚粮再喂狗。

 

校内网狗狗刷骨机完全版(不再维护)#!/usr/bin/perl
校内网狗狗刷骨机完全版(不再维护)#crack dog
校内网狗狗刷骨机完全版(不再维护)#feed dog <=> buy food
校内网狗狗刷骨机完全版(不再维护)#version 7

校内网狗狗刷骨机完全版(不再维护)

校内网狗狗刷骨机完全版(不再维护)
use XML::Simple;
校内网狗狗刷骨机完全版(不再维护)
use Data::Dumper;
校内网狗狗刷骨机完全版(不再维护)
use Time::HiRes qw(gettimeofday);
校内网狗狗刷骨机完全版(不再维护)
use Digest::MD5  qw(md5_hex);
校内网狗狗刷骨机完全版(不再维护)
use LWP;
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
use constant PID=>XXXXX;
校内网狗狗刷骨机完全版(不再维护)
use constant ACTOR_FID=>XXXXXX;
校内网狗狗刷骨机完全版(不再维护)
use constant RESERVE_BONES=>2000;
校内网狗狗刷骨机完全版(不再维护)
use constant METHOD=>"doing";
校内网狗狗刷骨机完全版(不再维护)
use constant APPURL=>"http://dog.xiaonei.com/";
校内网狗狗刷骨机完全版(不再维护)
use constant PROFILE_URL=>APPURL."pet-profile.do";
校内网狗狗刷骨机完全版(不再维护)
use constant DOGIDS_URL=>APPURL."hall.do?method=hungry";
校内网狗狗刷骨机完全版(不再维护)
use constant XMLURL=>PROFILE_URL."?method=dogXML&actor%5Fid=".ACTOR_FID."&pid=";
校内网狗狗刷骨机完全版(不再维护)
use constant HUNGRY_HEADER_FILE=>"dog_hungry.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant FEED_HEADER_FILE=>"dog_feed.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant DOGS_HEADER_FILE=>"dog_ids.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant STROE_URL=>APPURL."store.do";
校内网狗狗刷骨机完全版(不再维护)
use constant STORE_HEADER_FILE=>"dog_store.txt";
校内网狗狗刷骨机完全版(不再维护)
use constant BUY_HEADER_FILE=>"dog_buy.txt";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
%hungry_header = readhead(HUNGRY_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%feed_header = readhead(FEED_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%dogids_header = readhead(DOGS_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%store_header = readhead(STORE_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
%buy_header = readhead(BUY_HEADER_FILE);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
&main;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)
sub main
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
print "start\n";
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
while(1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
$tt = localtime(time);
校内网狗狗刷骨机完全版(不再维护)    
print "----------------------------------\n".
校内网狗狗刷骨机完全版(不再维护)    
"Feed at $tt\n----------------------------------\n";
校内网狗狗刷骨机完全版(不再维护)    
my ($is,@dogIds= &getHungryDogs;
校内网狗狗刷骨机完全版(不再维护)    
校内网狗狗刷骨机完全版(不再维护)    
if($is eq 1)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
#print "start feed upper dogs\n";
校内网狗狗刷骨机完全版(不再维护)
      my $isSucceed=0,$id,$key,$goal,$num=0,$isHungry="false",$canFeed="false";
校内网狗狗刷骨机完全版(不再维护)      
foreach $id (@dogIds)
校内网狗狗刷骨机完全版(不再维护)      {
校内网狗狗刷骨机完全版(不再维护)        (
$isSucceed,$key,$isHungry,$canFeed)= getHungryDogXMLFile($id);
校内网狗狗刷骨机完全版(不再维护)        
if($isSucceed eq 1 && $isHungry eq "true" && $canFeed eq "true")
校内网狗狗刷骨机完全版(不再维护)        {
校内网狗狗刷骨机完全版(不再维护)          
print "feed $id dog\t";
校内网狗狗刷骨机完全版(不再维护)          (
$isSucceed,$key,$goal,$num)= feed($key,$id);
校内网狗狗刷骨机完全版(不再维护)          
if($isSucceed eq 1)
校内网狗狗刷骨机完全版(不再维护)          {
校内网狗狗刷骨机完全版(不再维护)            
print "goal=".$goal."\tbone=".$num."\n";
校内网狗狗刷骨机完全版(不再维护)          }
else
校内网狗狗刷骨机完全版(不再维护)          {
校内网狗狗刷骨机完全版(不再维护)            
print "feed failed.\n"
校内网狗狗刷骨机完全版(不再维护)          }
校内网狗狗刷骨机完全版(不再维护)        }        
校内网狗狗刷骨机完全版(不再维护)        
sleep(5);
校内网狗狗刷骨机完全版(不再维护)      }
校内网狗狗刷骨机完全版(不再维护)      
校内网狗狗刷骨机完全版(不再维护)
#      if($num > RESERVE_BONES)
校内网狗狗刷骨机完全版(不再维护)#      {
校内网狗狗刷骨机完全版(不再维护)#        &buyfood;            
校内网狗狗刷骨机完全版(不再维护)#      }

校内网狗狗刷骨机完全版(不再维护)

校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#初始化
校内网狗狗刷骨机完全版(不再维护)#input: $petID
校内网狗狗刷骨机完全版(不再维护)#返回isSucceed,key,isHungry,canFeed

校内网狗狗刷骨机完全版(不再维护)
sub getHungryDogXMLFile
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my ($petid)=@_;
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
my ($seconds, $microseconds= gettimeofday();
校内网狗狗刷骨机完全版(不再维护)  
$milliseconds = int($microseconds/1000);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
#load user info
校内网狗狗刷骨机完全版(不再维护)
  my $infourl = XMLURL.$petid."&t=".$seconds.$milliseconds;
校内网狗狗刷骨机完全版(不再维护)  
my $name = "HUNGRY";
校内网狗狗刷骨机完全版(不再维护)  
my $method = "GET";
校内网狗狗刷骨机完全版(不再维护)  
my ($succe,$file= httpcon(\$name,\$method,\$infourl,\%hungry_header);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
if($succe eq 1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
my $xs1 = XML::Simple->new();
校内网狗狗刷骨机完全版(不再维护)    
my $doc = $xs1->XMLin($file);
校内网狗狗刷骨机完全版(不再维护)    
#print Dumper($doc),"\n";
校内网狗狗刷骨机完全版(不再维护)
    my $isHungry = $doc->{'is_pet_hungry'}->{'content'};
校内网狗狗刷骨机完全版(不再维护)    
my $canFeed = $doc->{'can_feed'}->{'content'};
校内网狗狗刷骨机完全版(不再维护)    
my $key = $doc->{'key'};
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
#  print "init key:".$key."\tbone=".$bone."\n";
校内网狗狗刷骨机完全版(不再维护)
    return (1,$key,$isHungry,$canFeed);
校内网狗狗刷骨机完全版(不再维护)  }
else
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
#failed
校内网狗狗刷骨机完全版(不再维护)
    return (0,0,0,0);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#捡盘子输入一个key,petid
校内网狗狗刷骨机完全版(不再维护)#返回最后一次的@_[0]isSucceed,@_[1]key,@_[2]goal,@_[3]bones

校内网狗狗刷骨机完全版(不再维护)
sub feed
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  
my($key,$petid= @_;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
#code + "#" + INFO["pet_id"] + "#" + INFO["actor_id"];
校内网狗狗刷骨机完全版(不再维护)
  my $code = $key."#".$petid."#".ACTOR_FID;
校内网狗狗刷骨机完全版(不再维护)  
$code = md5_hex($code);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  
my $content="code=".$code."&active%5Fid=1&pid=".$petid."&actor%5Fid=".ACTOR_FID."&method=".METHOD;
校内网狗狗刷骨机完全版(不再维护)  
my $len = length($content);
校内网狗狗刷骨机完全版(不再维护)  
my %headers=%feed_header;
校内网狗狗刷骨机完全版(不再维护)  
$headers{"Content-Length"}="$len";
校内网狗狗刷骨机完全版(不再维护)  
my $name = "FEED";
校内网狗狗刷骨机完全版(不再维护)  
my $method="POST";
校内网狗狗刷骨机完全版(不再维护)  
my $url = PROFILE_URL;
校内网狗狗刷骨机完全版(不再维护)  
my ($succe,$file= httpcon(\$name,\$method,\$url,\%headers,\$content);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
if($succe eq 1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
my @rst=split(/[\|]/,$file);
校内网狗狗刷骨机完全版(不再维护)    
return (1,$rst[1],$rst[0],$rst[2]);
校内网狗狗刷骨机完全版(不再维护)  }
else
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
return (0,0,0,0);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#buy food
校内网狗狗刷骨机完全版(不再维护)
sub buyfood{
校内网狗狗刷骨机完全版(不再维护)  
my $name = "STORE";
校内网狗狗刷骨机完全版(不再维护)  
my $method="GET";
校内网狗狗刷骨机完全版(不再维护)  
my $url = STROE_URL;
校内网狗狗刷骨机完全版(不再维护)  
my ($isSucceed,$file= httpcon(\$name,\$method,\$url,\%store_header);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
if($isSucceed eq 1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
my $b_tsc=0;
校内网狗狗刷骨机完全版(不再维护)    
if($file=~/PET\.tsc\s+=\s+'(\w+)';/g)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
$b_tsc=$1;
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
if($b_tsc eq 0)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      
return;
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)    
my $content = "method=buyfood&buy_id=3&buy_count=1&tsc=".$b_tsc;
校内网狗狗刷骨机完全版(不再维护)    
my $len = length($content);
校内网狗狗刷骨机完全版(不再维护)    
my %headers=%buy_header;
校内网狗狗刷骨机完全版(不再维护)    
$headers{"Content-Length"}="$len";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
my $name = "BUY";
校内网狗狗刷骨机完全版(不再维护)    
my $method="POST";
校内网狗狗刷骨机完全版(不再维护)    
my $url = STROE_URL;
校内网狗狗刷骨机完全版(不再维护)    (
$isSucceed,$file= httpcon(\$name,\$method,\$url,\%headers,\$content);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)    
if($isSucceed eq 1)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)        
print "*****  Buy 40 foods.   **********\n";
校内网狗狗刷骨机完全版(不再维护)    }
else
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)        
print "*****  Did not buy foods.   *****\n";
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)
#output:$isSucceed, @_, pets' ids
校内网狗狗刷骨机完全版(不再维护)
sub getHungryDogs{
校内网狗狗刷骨机完全版(不再维护)  
my $name = "DOGIDS";
校内网狗狗刷骨机完全版(不再维护)  
my $method="GET";
校内网狗狗刷骨机完全版(不再维护)  
my $url = DOGIDS_URL;
校内网狗狗刷骨机完全版(不再维护)  
my ($succe,$file= httpcon(\$name,\$method,\$url,\%dogids_header);
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  
if($succe eq 1)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    
my @ret;
校内网狗狗刷骨机完全版(不再维护)    
my $index=0;
校内网狗狗刷骨机完全版(不再维护)    
while($file=~/pet-profile.do\?pid=(\w+)\"><img/g)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      $ret[$index]= $1;
校内网狗狗刷骨机完全版(不再维护)      #print 
"id:",$1,"\n";
校内网狗狗刷骨机完全版(不再维护)      $index++;
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)    return (1,@ret);
校内网狗狗刷骨机完全版(不再维护)  }else
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    return (0,@ret);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)#sub  : http connection
校内网狗狗刷骨机完全版(不再维护)#input:
校内网狗狗刷骨机完全版(不再维护)#       $name, the connection name, to log
校内网狗狗刷骨机完全版(不再维护)#       $method, GET/POST
校内网狗狗刷骨机完全版(不再维护)#       $URL, complete URL
校内网狗狗刷骨机完全版(不再维护)#       %head, header,(opt)
校内网狗狗刷骨机完全版(不再维护)#       $content, content (opt, but must after %head)
校内网狗狗刷骨机完全版(不再维护)#output:
校内网狗狗刷骨机完全版(不再维护)#       $isSuccess 1/0
校内网狗狗刷骨机完全版(不再维护)#       $WEB result
校内网狗狗刷骨机完全版(不再维护)sub httpcon
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  my ($name,$method,$url,$head,$content) = @_;
校内网狗狗刷骨机完全版(不再维护)  my $num = @_;
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  my $agent = LWP::UserAgent->new;
校内网狗狗刷骨机完全版(不再维护)  my $request = HTTP::Request->new($$method=>$$url);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  if($num>3)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    $request->header(%$head);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  if($num>4)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    $request->content($$content);
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  my $res = $agent->request($request);
校内网狗狗刷骨机完全版(不再维护)  
校内网狗狗刷骨机完全版(不再维护)  if($res->is_success)
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    return (1,$res->content);
校内网狗狗刷骨机完全版(不再维护)  }else
校内网狗狗刷骨机完全版(不再维护)  {
校内网狗狗刷骨机完全版(不再维护)    print 
"$$name error:", $res->message,"\n";
校内网狗狗刷骨机完全版(不再维护)    return (0,
"");
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)#sub    :   readheadfile
校内网狗狗刷骨机完全版(不再维护)#input  :   $filename
校内网狗狗刷骨机完全版(不再维护)#output :   %head
校内网狗狗刷骨机完全版(不再维护)sub readhead
校内网狗狗刷骨机完全版(不再维护){
校内网狗狗刷骨机完全版(不再维护)  my($filename) = @_;
校内网狗狗刷骨机完全版(不再维护)  my %ret;
校内网狗狗刷骨机完全版(不再维护)  open MYFILE,
"<$filename"
校内网狗狗刷骨机完全版(不再维护)    or die 
"Can't open head for append: $!";
校内网狗狗刷骨机完全版(不再维护)
校内网狗狗刷骨机完全版(不再维护)  my $str;
校内网狗狗刷骨机完全版(不再维护)  my @stuff = <MYFILE>;
校内网狗狗刷骨机完全版(不再维护)  close(MYFILE);
校内网狗狗刷骨机完全版(不再维护)  foreach $str (@stuff) {
校内网狗狗刷骨机完全版(不再维护)    #print $str;
校内网狗狗刷骨机完全版(不再维护)    chomp $str;
校内网狗狗刷骨机完全版(不再维护)    if($str=~/(\w+): (\w+)/g)
校内网狗狗刷骨机完全版(不再维护)    {
校内网狗狗刷骨机完全版(不再维护)      my @sp = split (/:/,$str,2);
校内网狗狗刷骨机完全版(不再维护)      $ret{$sp[0]}=$sp[1];
校内网狗狗刷骨机完全版(不再维护)    }
校内网狗狗刷骨机完全版(不再维护)  }
校内网狗狗刷骨机完全版(不再维护)  return %ret;
校内网狗狗刷骨机完全版(不再维护)}
校内网狗狗刷骨机完全版(不再维护)

 

当然,如果你懂得Perl编程的话,可以直接调用我的程序,完成狗狗里的所有动作,也可以改写成C++语言的程序。

 

声明:版权所有,不维护和回答问题,对使用者造成的损失不负责。如果狗狗程序发生改变,而导致程序失效,请自己关闭程序。本人对该版本不再升级,其他用户可以修改、学习、使用和发布。

 

相关文章:

  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
  • 2021-11-24
猜你喜欢
  • 2021-05-29
  • 2021-08-08
  • 2021-04-15
  • 2021-12-17
  • 2021-10-27
相关资源
相似解决方案