开心网外挂开发之 三

简介:

经过前两篇文章,我们已经可以得到了我们的花园的基本信息了,并用xml反序列化来映射到相应的实体类中,有了花园信息,我就就要来研究其一些动作的实现了,比如说:浇水、除草、收获、偷盗等等功能具体是怎么来实现的, 首先还是打开fiddler2抓一下包看看

收获:

GET /!house/!garden/havest.php?
verify=22842320%5F1062%5F22842320%5F1245934796%5Fb2a24c5dfb54cbeb1498d95d42b820a4&seedid=0&farmnum=13&fuid=0&r=0%2E24021180626004934 HTTP/1.1
成功

<data><leftnum>2</leftnum><stealnum>0</stealnum>
<num>2</num><seedname>雪莲</seedname>
<fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop/xuelian.swf
</fruitpic><ret>succ</ret></data>
失败

<data><ret>fail</ret><reason>这块地没有东西可收获</reason></data>

偷盗:

GET /!house/!garden/havest.php?
verify=22842320%5F1062%5F22842320%5F1245934796%5Fb2a24c5dfb54cbeb1498d95d42b820a4
&seedid=0
&farmnum=14
&fuid=7033784
&r=0%2E7748989406973124 HTTP/1.1
成功

<data><anti>0</anti><leftnum>46</leftnum><stealnum>1</stealnum>
<num>1</num><seedname>牧草</seedname>
<fruitpic>http://img.kaixin001.com.cn//i2/house/garden/crop3/gouweiba.swf
</fruitpic><ret>succ</ret></data>
失败

<data><anti>0</anti><ret>fail</ret><reason>已偷过,做人要厚道</reason></data>

犁地:

GET /!house/!garden/plough.php?
verify=22842320%5F1062%5F22842320%5F1245934796%5Fb2a24c5dfb54cbeb1498d95d42b820a4
&seedid=0
&farmnum=13
&fuid=0
&r=0%2E09461198281496763 HTTP/1.1

成功
<data><ret>succ</ret></data>

失败
<data><ret>fail</ret><reason>已经犁过了,该播种了</reason></data>

播种:

GET /!house/!garden/farmseed.php?
verify=22842320%5F1062%5F22842320%5F1245934796%5Fb2a24c5dfb54cbeb1498d95d42b820a4
&seedid=63
&farmnum=13
&fuid=0
&r=0%2E42840757546946406 HTTP/1.1

成功
<data><ret>succ</ret></data>

失败
<data><ret>fail</ret><reason>这里不可以种喔</reason></data>

上面是几种基本状态请求的URL和返回操作成功还是失败的XML,我们可以按照上一扁的方法把返回的XML进行反序列化来让我们的程序得到这些状态。

我们先分析每个请求都向服务器发送了什么信息,其中的参数大部发好理解,我们就不说了,就一个verify和一个r不太清楚做什么用,我尝试着在浏览器里把这两个参数去掉然后访问,结果是,r有没有都无所谓,哪我们就不考虑它了,还有一个缺不可缺少,而且每次登录这个verify都会变化,我们哪里去取到这个值呢, 在分析了多个页面的原代码后,我们在http://www.kaixin001.com/!house/index.php页面的代码中找到了这串值,

Y[B)9MK[S0$`QLQP5D(%RJ5

先也别管他起什么作用了,把它抓出来才是正经。怎么抓出来,这个返回的可不是XML是一个乱七八糟的HTML,而且这串值还在一段js代码中,好在我们还有正则表达式这个武器,一切都迎刃而解了,在VS中敲出如下代码:

[(R2SDISEQ3_E1{K}X7JD%9

 

 

由于这个值在每一次登录以后不会改变,所以我的做好是在登录后就调用这个函数,并保存在一个类的公有变量中。

获得了这个verify的值后,我们就可以放心的写接下来的代码了,接下了就简单了,按上一篇的方法,写就可以了,先设计实体代码

 

 

复制代码
[XmlRoot(ElementName  =   " data " )]
   
public   class  ReturnInfo
   {
       
public   string  ret;
       
public   string  reason;
       
public   int  anti;
   } 
复制代码

大部分时候返回的XML就包含这些值,只有收获成功的时候才返回更多的信息,我们可以把这种情况做为Returninfo的一个子类来实现

 

 

Code

 我们的操作代码也很简单

 

 

Code

 

这个函数基本上符合了我们的要求,但是和我们昨天的代码对比一下,我们发现除了返回的类型不同,其它大部分的代码都重复了

7LM)WX$3(B0LN[)0B}YYA96

这些重复的代码,我们每一个操作都要写,太麻烦了,万一要修改哪不完玩了,重构一下,一开始我的办法是把这几行代码写到一个单独的函数中,但是我们很快发现,下面两句代码也只是稍有不同

X5}UL0I}NL[V}7`F`JRZE1S

 

{UB~Z@20D_J(DK@()5B%`$P

就这一点点的差别用普通函数来重构就麻烦了,但是好在C#2.0以后有了泛型这个好东东,看我七十二变

 

Code

 

接下来我们的代码就变成了这样了

 

Code

 

是不是清爽了好多!








    本文转自无心之柳.NET博客园博客,原文链接:http://www.cnblogs.com/9527/archive/2009/08/23/1552561.html ,如需转载请自行联系原作者





相关文章
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
技术创新领域,AI(AIGC)是否会让TRIZ“下岗”?
法思诺创新直播间探讨了AI(AIGC)是否将取代TRIZ的问题。专家赵敏认为,AI与TRIZ在技术创新领域具有互补性,结合两者更务实。TRIZ提供结构化分析框架,AI加速数据处理和方案生成。DeepSeek、Gemini等AI也指出,二者各有优劣,应在复杂创新中协同使用。企业应建立双轨知识库,重构人机混合创新流程,实现全面升级。结论显示,AI与TRIZ互补远超竞争,结合二者是未来技术创新的关键。
279 0
|
10月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
221 0
|
Java Apache Maven
蓝易云 - java判断ip是否为指定网段
在这个例子中,我们首先创建了一个 `SubnetUtils`对象,它表示一个子网。然后,我们使用 `isInRange`方法来检查指定的IP地址是否在这个子网内。如果IP地址在子网内,`isInRange`方法将返回 `true`,否则返回 `false`。
310 3
|
关系型数据库 MySQL Apache
Discuz贴吧建站的搭建及维护(windows系统)
Discuz贴吧建站的搭建及维护(windows系统)
442 0
|
弹性计算 监控 负载均衡
【阿里云弹性计算】ECS实例迁移实战:无缝迁移到阿里云的步骤与技巧
【5月更文挑战第22天】阿里云ECS实例迁移实战详解,涵盖无缝迁移步骤与技巧:选择合适迁移方案,如VPC或使用阿里云工具;创建目标环境,数据迁移及配置同步;测试验证功能正常,流量切换;选择低峰期,保证数据一致,实时监控,提升迁移成功率。本文为云平台迁移提供实用指南。
639 2
|
移动开发 Unix Linux
ffmpeg编译so
ffmpeg编译so
286 0
Jupyter无法导出pdf以及报错解决方案
Jupyter无法导出pdf以及报错解决方案
2990 0
Jupyter无法导出pdf以及报错解决方案
|
存储 算法 数据库
SAP ABAP——内表(一)【内表概要介绍】
本文是SAP ABAP【内表】文章系列的开篇,主要对内表进行简单的介绍,将从概要,分类以及比较三个方面进行介绍
973 1
SAP ABAP——内表(一)【内表概要介绍】
|
存储 网络协议 算法
路由选择算法总结
路由选择算法总结
543 0
|
前端开发 小程序 API
微信小程序2.9.0基础库canvas2D新API,生成海报保存到手机功能实现
微信小程序2.9.0基础库canvas2D新API,生成海报保存到手机功能实现
515 0