- 浏览: 2058514 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
{///////////////////////////////////////////////////////////////////////////// //已知BUG interface uses const type
function Preprocess(aPassWord, aVerifyCode:string):string; //取得Flash版本 通过GetFlaseVersion得到 IdHTTP Referer的全部字串 //取得验证码 //将汉字转换为unicode码 //将unicode码转换为汉字 //提取字符串 function HashStr2BinStr(Hash: string):string; function Fmd5(str: string):string; //以Web形式登录QQ //登录QQ校友社区 //取自己农场数据 //取好友列表数据 //取好友农场数据 //计算等级 返回等级 //分析仓库商店背包数据 aType 0仓库1商店2背包
//取得farmKey //写日志文件 implementation
//提取字符串 function HashStr2BinStr(Hash:string):string; function Fmd5(str:string):string; function md5_3(str:string):string; function Preprocess(aPassWord, aVerifyCode:string):string; //取得Flash版本 //取得验证码
//将unicode码转换为汉字 //以Web形式登录QQ aIdHTTP.Post('http://ptlogin2.qq.com/login', PostData, RespData); tmpStr:= SubString(aIdHTTP.Response.RawHeaders.Text, 'Set-Cookie: pt2gguin=', ';'); //登录QQ校友社区 aIdHTTP.Request.CustomHeaders.Clear; tmpStr:= SubString(aIdHTTP.Response.RawHeaders.Text, 'Set-Cookie: pst=', ';'); QQ_Cookie:= QQ_Cookie + ' pst=' + IntToStr(Cookie_pst) + ';'; QQ_Cookie:= Format(Const_Cookie, [Cookie_pt2gguin, Cookie_uin, Cookie_skey, Cookie_ptcz, Result:= True; |
//取自己农场数据
function GetMyFarmLandDB(aIdHTTP: TIdHTTP; var aWebStr: string): Boolean;
var
RespData: TStringStream;
begin
RespData:= TStringStream.Create('');
Result:= False;
try
aIdHTTP.Request.Accept:= '*/*';
aIdHTTP.Request.ContentType:= '';
aIdHTTP.Request.Host:= ConnHost;
aIdHTTP.Request.Referer:= FlaseVersion;
aIdHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 2.0.50727)';
aIdHTTP.Request.AcceptEncoding:= 'gzip, deflate';
aIdHTTP.Request.URL:= '/api.php?mod=user&act=run';
aIdHTTP.Request.ContentVersion:= 'x-flash-version: 10,0,22,87';
QQ_Cookie:= Format(Const_Cookie, [Cookie_pt2gguin, Cookie_uin, Cookie_skey, Cookie_ptcz,
Cookie_pvid, Cookie_name, Cookie_pst]);
aIdHTTP.Request.CustomHeaders.Clear;
aIdHTTP.Request.RawHeaders.Values['Cookie'] := QQ_Cookie;
try
aIdHTTP.Get('http://'+ConnHost+'/api.php?mod=user&act=run', RespData);
except
end;
Result:= True;
aWebStr:= Utf8ToAnsi(RespData.DataString);
except
end;
RespData.Free;
end;
//取好友列表数据
function GetFriendsListDB(aIdHTTP: TIdHTTP; var aWebStr: string): Boolean;
var
PostData, RespData, tmpRespData: TStringStream;
tmpaWebStr: string;
begin
farmTime:= DateTimeToServerTime(Now());
farmTime:= farmTime - Const_DelayFarmTime;
//取key
GetFarmKey(farmTime, farmTime, farmKey);
PostData:= TStringStream.Create( Format(Const_FriendsRefresh, [farmTime, farmKey]) );
RespData:= TStringStream.Create('');
Result:= False;
try
aIdHTTP.Request.Accept:= '*/*';
aIdHTTP.Request.ContentType:= 'application/x-www-form-urlencoded';
aIdHTTP.Request.Host:= ConnHost;
aIdHTTP.Request.Referer:= FlaseVersion;
aIdHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 2.0.50727)';
aIdHTTP.Request.AcceptEncoding:= 'gzip, deflate';
aIdHTTP.Request.URL:= '/api.php?mod=friend';
aIdHTTP.Request.ContentVersion:= 'x-flash-version: 10,0,22,87';
QQ_Cookie:= Format(Const_Cookie, [Cookie_pt2gguin, Cookie_uin, Cookie_skey, Cookie_ptcz,
Cookie_pvid, Cookie_name, Cookie_pst]);
aIdHTTP.Request.CustomHeaders.Clear;
aIdHTTP.Request.RawHeaders.Values['Cookie'] := QQ_Cookie;
try
aIdHTTP.Post('http://'+ConnHost+'/api.php?mod=friend', PostData, RespData);
except
end;
Result:= True;
aWebStr:= Utf8ToAnsi(RespData.DataString);
if aWebStr='' then
aWebStr:= tmpaWebStr;
except
end;
RespData.Free;
end;
//取好友农场数据
function GetFriendFarmLandDB(aIdHTTP: TIdHTTP; aUserID: integer; var aWebStr: string): Boolean;
var
RespData: TStringStream;
begin
RespData:= TStringStream.Create('');
Result:= False;
try
aIdHTTP.Request.Accept:= '*/*';
aIdHTTP.Request.ContentType:= '';
aIdHTTP.Request.Host:= ConnHost;
aIdHTTP.Request.Referer:= FlaseVersion;
aIdHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 2.0.50727)';
aIdHTTP.Request.AcceptEncoding:= 'gzip, deflate';
aIdHTTP.Request.URL:= '/api.php?mod=user&act=run&flag=1&ownerId='+IntToStr(aUserID);
aIdHTTP.Request.ContentVersion:= 'x-flash-version: 10,0,22,87';
QQ_Cookie:= Format(Const_Cookie, [Cookie_pt2gguin, Cookie_uin, Cookie_skey, Cookie_ptcz,
Cookie_pvid, Cookie_name, Cookie_pst]);
aIdHTTP.Request.CustomHeaders.Clear;
aIdHTTP.Request.RawHeaders.Values['Cookie'] := QQ_Cookie;
try
aIdHTTP.Get('http://'+ConnHost+'/api.php?mod=user&act=run&flag=1&ownerId='+IntToStr(aUserID), RespData);
except
end;
Result:= True;
aWebStr:= Utf8ToAnsi(RespData.DataString);
except
end;
RespData.Free;
end;
//计算等级 返回等级
function ResultLevel(aSumExp:integer; var aNowExp, aOutLevelMaxExp: integer): integer;
var
iCount, tmpExp, tmpLevelExp, tmpSumMaxExp: integer;
begin
iCount:= 0;
//当前等级经验
tmpExp:= aSumExp;
//累计升级经验
tmpSumMaxExp:= CONST_OneLevelNum;
//当前等级升级经验
tmpLevelExp:= CONST_OneLevelNum;
if tmpSumMaxExp<aSumExp then
begin
inc(iCount);
tmpExp:= tmpExp - tmpLevelExp;
end;
//如果当前等级升级经验 小于 累计经验
while tmpSumMaxExp<aSumExp do
begin
tmpLevelExp:= tmpLevelExp + CONST_OneLevelNum;
//累计升级经验
tmpSumMaxExp:= tmpSumMaxExp + tmpLevelExp;
if tmpSumMaxExp<aSumExp then
begin
inc(iCount);
tmpExp:= tmpExp - tmpLevelExp;
end;
end;
//返回当前等级经验
aNowExp:= tmpExp;
//返回当前等级升级经验
aOutLevelMaxExp:= (iCount+1)*CONST_OneLevelNum;
Result:= iCount;
end;
//取背包数据
function PostBagsBD(aIdHTTP:TIdHTTP; var aWebStr: string; aType: TBagsType): boolean;
var
PostData, RespData: TStringStream;
tmpStr: string;
begin
farmTime:= DateTimeToServerTime(Now());
farmTime:= farmTime - Const_DelayFarmTime;
//取key
GetFarmKey(farmTime, farmTime, farmKey);
PostData:= TStringStream.Create( Format(Const_farmKey, [farmTime, farmKey]) );
RespData:= TStringStream.Create('');
Result:= False;
try
aIdHTTP.Request.Accept:= '*/*';
aIdHTTP.Request.ContentType:= 'application/x-www-form-urlencoded';
aIdHTTP.Request.Host:= ConnHost;
aIdHTTP.Request.Referer:= FlaseVersion;
aIdHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 2.0.50727)';
aIdHTTP.Request.AcceptEncoding:= 'gzip, deflate';
aIdHTTP.Request.ContentVersion:= 'x-flash-version: 10,0,22,87';
case aType of
farm_Warehouse : tmpStr:= '/api.php?mod=repertory&act=getUserCrop';
farm_Goods : tmpStr:= '/api.php?mod=repertory&act=getSeedInfo';
farm_Bag : tmpStr:= '/api.php?mod=repertory&act=getUserSeed';
end;
aIdHTTP.Request.URL:= tmpStr;
try
aIdHTTP.Post('http://'+ConnHost+tmpStr, PostData, RespData);
except
end;
Result:= True;
aWebStr:= Utf8ToAnsi(RespData.DataString);
except
end;
RespData.Free;
end;
//动作类型 0偷取 1杀虫 2浇水 3除草 4收获
// 5松土 6种植 7全部卖出 8购买种子
// 9查看消息 10所有动作(在PostAction中没有实现义意,不作操作)
//
//aActionType动作类型 是种植\卖出\购买种子还是做什么在此赋值
//aOwnerId是自己的UserID 必须为自己的UserID
//aPlace为地块的序号,从0开始 不用时可为0
//aSeedID 为作物\种子的aID 种植\卖出\购买种子时用到 不用时可为0
function PostAction(aIdHTTP: TIdHTTP; var aWebStr: string; aActionType: TActionType;
aOwnerId, aPlace, aSeedID: integer): boolean;
var
PostData, RespData: TStringStream;
tmpGetStr: string;
begin
farmTime:= DateTimeToServerTime(Now());
farmTime:= farmTime - Const_DelayFarmTime;
//取key
GetFarmKey(farmTime, farmTime, farmKey);
PostData:= TStringStream.Create( Format(Const_Action, [farmKey, Cookie_name, aOwnerId, farmTime, Cookie_name, aPlace]) );
RespData:= TStringStream.Create('');
Result:= False;
try
aIdHTTP.Request.Accept:= '*/*';
aIdHTTP.Request.ContentType:= 'application/x-www-form-urlencoded';
aIdHTTP.Request.Host:= ConnHost;
aIdHTTP.Request.Referer:= FlaseVersion;
aIdHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Embedded Web Browser from: http://bsalsa.com/; .NET CLR 2.0.50727)';
aIdHTTP.Request.AcceptEncoding:= 'gzip, deflate';
aIdHTTP.Request.ContentVersion:= 'x-flash-version: 10,0,22,87';
case aActionType of
//偷取
Action_scrounge : tmpGetStr:= '/api.php?mod=farmlandstatus&act=scrounge';
//喷虫
Action_spraying : begin
tmpGetStr:= '/api.php?mod=farmlandstatus&act=spraying';
PostData:= TStringStream.Create( Format('tId=0&'+Const_Action,
[farmKey, Cookie_name, aOwnerId, farmTime, Cookie_name, aPlace]) );
end;
//浇水
Action_water : tmpGetStr:= '/api.php?mod=farmlandstatus&act=water';
//除草
Action_clearWeed: tmpGetStr:= '/api.php?mod=farmlandstatus&act=clearWeed';
//收获
Action_harvest : begin
tmpGetStr:= '/api.php?mod=farmlandstatus&act=harvest';
PostData:= TStringStream.Create( Format('place=%d&ownerId=%d&farmTime=%d&farmKey=%s',
[aPlace, aOwnerId, farmTime, farmKey]) );
end;
//松土
Action_scarify : begin
tmpGetStr:= '/api.php?mod=farmlandstatus&act=scarify';
PostData:= TStringStream.Create( Format('place=%d&ownerId=%d&farmTime=%d&farmKey=%s',
[aPlace, aOwnerId, farmTime, farmKey]) );
end;
//种植
Action_planting : begin
tmpGetStr:= '/api.php?mod=farmlandstatus&act=planting';
PostData:= TStringStream.Create( Format('place=%d&cId=%d&ownerId=%d&farmTime=%d&farmKey=%s',
[aPlace, aSeedID, aOwnerId, farmTime, farmKey]) );
end;
//卖出
Action_Sale: begin
tmpGetStr:= '/api.php?mod=repertory&act=sale';
PostData:= TStringStream.Create( Format('cId=%d&farmTime=%d&number=%d&farmKey=%s',
[aSeedID, farmTime, aPlace, farmKey]) );
end;
//全部卖出
Action_SaleAll : begin
tmpGetStr:= '/api.php?mod=repertory&act=saleAll';
PostData:= TStringStream.Create( Format('farmTime=%d&farmKey=%s',
[farmTime, farmKey]) );
end;
//买东西
Action_Buy : begin
tmpGetStr:= '/api.php?mod=repertory&act=buySeed';
PostData:= TStringStream.Create( Format('number=%d&cId=%d&farmTime=%d&farmKey=%s',
[aPlace, aSeedID, farmTime, farmKey]) );
end;
//查看消息
Action_getAllInfo : begin
tmpGetStr:= '/api.php?mod=chat&act=getAllInfo';
PostData:= TStringStream.Create( Format('uId==%d&farmTime=%d&farmKey=%s',
[aOwnerId, farmTime, farmKey]) );
end;
end;
aIdHTTP.Request.URL:= tmpGetStr;
try
aIdHTTP.Post('http://'+ConnHost+tmpGetStr, PostData, RespData);
if aIdHTTP.ResponseCode = 200 then
Result:= True;
aWebStr:= Utf8ToAnsi(RespData.DataString);
except
end;
except
end;
RespData.Free;
end;
//取得farmKey
function GetfarmKey(aInputTimeInt: Int64; var aFarmTime: int64; var aFarmKey: string): Boolean;
var
tmpaIdHTTP: TIdHTTP;
RespData: TStringStream;
tmpStr: string;
tmpTimePos, tmpKeyPos: integer;
begin
Result:= False;
afarmTime:= aInputTimeInt;
afarmKey:= LowerCase(Fmd5( IntToStr(afarmTime) + Copy('sdoit78sdopig7w34057', (afarmTime mod 10)+1, 20) ));
Result:= True;
end;
//写日志文件
procedure WriteLog(aQQnum, aLogStr, aAppPah: String);
var
F : TextFile;
tmpStr: string;
begin
tmpStr:= aAppPah + '日志\';
if not DirectoryExists(tmpStr) then
if not CreateDir(tmpStr) then
begin
//Application.ProcessMessages;
end;
tmpStr:= tmpStr+ aQQnum + '\';
if not DirectoryExists(tmpStr) then
if not CreateDir(tmpStr) then
begin
//Application.ProcessMessages;
end;
tmpStr:= tmpStr+FormatDateTime('YYYYMM', Date())+'\';
if not DirectoryExists(tmpStr) then
if not CreateDir(tmpStr) then
begin
//Application.ProcessMessages;
end;
tmpStr:= tmpStr+FormatDateTime('YYYYMMDD', Date())+'.Log';
AssignFile(F, tmpStr);
if FileExists(tmpStr) then
Append(F)
else
ReWrite(F);
Writeln(F, aLogStr);
CloseFile(F);
end;
initialization
DelayedDpikeInt:= 0;
QQ_ServerTime:= DateTimeToServerTime(Now());
Loc_ServerTime:= QQ_ServerTime;
end.
发表评论
-
form打开时的关闭代码
2011-10-25 20:29 1573摘自:http://topic.csdn.n ... -
TUpdateSQL更新问题 提示Update Failed
2011-08-29 20:26 1238摘自:http://topic.csdn.net/u/200 ... -
图解如何用Eurekalog跟踪程序错误
2011-08-12 07:28 941图解如何用Eurekalog跟踪程序错误 摘自:h ... -
VirtualBox 复制VDI 并能创建新的虚拟机
2011-07-21 11:14 2739摘自:http://www.nonabyte.net/how- ... -
截获所有异常 不报错
2011-07-12 16:52 1239摘自:http://media.ccidnet.c ... -
delphi exe程序以及DLL程序如何在模块内部获得各自的路径
2011-07-11 16:38 1305delphi Exe程序以及DLL程序如何在模块内部获得各自的 ... -
Delphi文本文件读写
2011-07-11 14:55 1244Delphi文本文件读写 (2008-10-31 1 ... -
Delphi自定义的消息的使用
2011-05-31 14:12 2315阅:已验证,可通过; 摘自:http://blog.1 ... -
怎么查看OutputDebugString输出的信息?debugview
2011-05-25 16:02 3835网上很多说用debugview查看,我自己写了一个程序,里面用 ... -
Delphi里查看该变量的内存值
2011-05-25 13:32 1122Delphi里查看该变量的内存值:Run==>Evalu ... -
注册表操作 写入autorun启动项,键值为本程序的全路径
2011-05-20 15:40 1825procedure TForm4.Button2Click ... -
报说包frx7和frxdb7都包含了某个单元的错误
2011-05-11 09:59 10221. 问题描述:在安装FastReport3的时候,安装到- ... -
Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏
2011-05-03 14:34 1462摘自:http://blog.csdn.net/g ... -
WM_USER的说明 用户消息ID
2011-04-28 10:46 1687WM_USER 摘自:http://baike.bai ... -
ToolButton不能改变大小
2011-04-28 10:38 3462问题描述:ToolButton不能改变大小? 问 ... -
Delphi里TOOLBAR 上的button的caption为什么显示不出来啊
2011-04-20 17:55 1767Delphi里TOOLBAR 上的button的caption ... -
delphi指针简单入门
2011-04-11 21:42 1156摘自:http://topic.csdn.net/t/2003 ... -
Delphi中paramstr的用法 应用程序间传递数据
2011-04-01 14:33 2104Delphi中paramstr的用法 应用程序间传递数据 ... -
Delphi中的THashedStringList对象 --大数据量时
2011-04-01 13:54 5147Delphi中的THashedStringLi ... -
inherited Create(AOwner); 和直接写inherited有区别吗
2011-03-26 15:44 1323摘自:http://zhidao.baidu.com/que ...
相关推荐
通过研究QQ开心农场的C#源码,开发者不仅可以学习到游戏开发的基本流程,还能深入理解C#语言的特性和面向对象设计原则。对于想要提升C#编程技能或进入游戏开发领域的学习者来说,这是一个宝贵的实践案例。
【标题】"开心农场 源码(腾讯农场)"揭示了这是一个关于腾讯公司早期非常流行的社交游戏——开心农场的游戏源代码。开心农场是中国互联网上的一款现象级应用,它让玩家可以模拟种植、收割作物,饲养动物,体验虚拟...
6. **QQ开心农场核心C#源码**: 这是整个项目的核心部分,可能包括游戏逻辑、用户界面、服务器通信等模块。学习这部分源码能深入理解游戏的运作机制,例如作物生长算法、时间管理、库存系统、用户交互逻辑等。 在...
在QQ农场的核心源码中,C#主要负责处理游戏逻辑、用户交互、数据存储和网络通信等功能。 游戏逻辑部分,C#源码会包含作物生长的模拟算法,如生长周期、成熟时间、收获规则等。这些算法决定了农场的运行机制,使得每...
【开心农场源代码详解】 开心农场是一款深受用户喜爱的在线模拟经营类游戏,它让玩家在虚拟世界中体验种植、收获、偷菜的乐趣。这款源代码的发布,为开发者提供了一个深入了解游戏机制和互动设计的平台,同时也为想...
《开心农场源码及素材.zip》是一个包含游戏开发资源的压缩包,主要针对的是使用Java编程语言开发的一款名为“开心农场”的游戏。该压缩包提供了完整的源代码和配套素材,使得开发者或者对游戏开发感兴趣的人可以直接...
《开心农场源代码》是一款基于网络的模拟经营类游戏,其设计灵感来源于广受欢迎的QQ农场。这款游戏允许玩家扮演农场主的角色,体验种植、收获、饲养动物等农耕生活,同时融入了社交互动元素,如偷菜、互相帮助等,为...
开心农场作为QQ农场的另一个流行称呼,强调了游戏的核心玩法——种植、收获和养殖。 【标签】"农场 dz"明确了这个插件的主题与农场类游戏有关,且与Discuz!(dz)软件兼容。Discuz! 是一个开源的PHP论坛软件,广泛...
【C#开心农场项目源码】是一个基于C#编程语言实现的模拟农场经营的游戏项目,其设计灵感来源于曾经风靡一时的QQ农场。这个项目旨在为开发者提供一个学习和研究C#编程、游戏开发以及数据库应用的实例。下面将详细阐述...
在本文中,我们将深入探讨如何利用Unity开发一款农场模拟经营游戏,同时基于提供的"Farm new nen"源码,我们将解析其设计思路和技术要点。 首先,让我们了解一下农场模拟经营游戏的基本概念。此类游戏通常让玩家...