• 3554阅读
  • 1回复

试用的天龙八部 [复制链接]

上一主题 下一主题
在线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-09-16
— 本帖被 啊冲 从 Delphi 移动到本区(2013-10-28) —
http://yunpan.cn/QGqpIax4PydWF

unit Gamedy;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, registry, StdCtrls, RzTabs, ExtCtrls, RzPanel, RzBckgnd,
  RzButton, RzEdit, RzLabel, RzShellDialogs, Mask,shellapi, ComCtrls,
  RzLstBox, RzCmboBx, RzSpnEdt;
  //一下函数是其他单元要调用的要前置
  function GetCurBlood:integer;// 人物当前血值
  function GetCurBloods:integer; //血值上限
  function GetRoleBase:integer; // 人物基址
  function GetRoleBase1:integer; //BB基址
  function GetBlueBlood:integer; //人物当前蓝值
  function GetBlueBloods:integer; // 蓝值上限
  function GetGrade:integer;//人物等级
  function Outatt:integer;//外功攻击
  function Outdefense:integer;//外功防御
  function Witatt:integer;//内功攻击
  function Witdefense:integer;// 内功防御
  function Vitality:integer; //活力
  function Vitalitys:integer;//活力及上限
  function Energy:integer;  //精力
  function Energys:integer; //精力上限
  function BBCurBlood:integer; //BB血
  function BBCurBloods:integer;//BB血上限
  function BBGrade:integer;//BB等级
  function BBhappy:integer;//BB快乐度
  function Physi:integer;//体力
  function Confor:integer;//定力
  function Shenfa:integer;//身法
  function Force:integer;//力量
  function Aura:integer;//灵气
  function Ecejy:integer;//BB经验
var
Gameh:hwnd;  //游戏窗口句柄
GamePid:Thandle;  //进程ID
GamehProcess:Thandle;  //进程句柄

const
GameCaption='《天龙八部2》 2.00.1890 (东部电信:玉女心经)';
GameWndclassName='TianLongBaBu WndClass';
GameBase=$006B9EBC;  //////////////////////////人物基址
GameBase1=$006B3230; ////////////////////////// 宝宝基址

implementation
function compyt(Str: pchar): boolean;
begin
  result:= Pos(GameCaption,Str)>0;
end;
function GetRoleBase:integer; //人物基址
var
ptmp:integer;
readByte:Dword;
begin
result:=0;
Gameh:=FindWindow(GameWndclassName,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
//[[[[006B9EBC]+c]+158]+4]+8f4 ///////人物基址//////////////////////////////////////////
ReadProcessMemory(GamehProcess,pointer(GameBase),@ptmp,4,readByte);
ReadProcessMemory(GamehProcess,pointer(ptmp+$c),@ptmp,4,readByte);
ReadProcessMemory(GamehProcess,pointer(ptmp+$158),@ptmp,4,readByte);
ReadProcessMemory(GamehProcess,pointer(ptmp+$4),@ptmp,4,readByte);
result:=ptmp;
end;

function GetCurBlood:integer;//人物当前血值
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$8f4),@ptmp,4,readByte);
result:=ptmp;
end;
function GetCurBloods:integer; //人物血上限
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$960),@ptmp,4,readByte);
result:=ptmp;
end;

function GetBlueBlood:integer; //人物当前蓝值
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$8f8),@ptmp,4,readByte);
result:=ptmp;
end;
function GetBlueBloods:integer; // 人物蓝上限
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$964),@ptmp,4,readByte);
result:=ptmp;
end;
function GetGrade:integer; //人物等级
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$5c),@ptmp,4,readByte);
result:=ptmp;
end;
function Outatt:integer; //外功攻击
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$950),@ptmp,4,readByte);
result:=ptmp;
end;
function Outdefense:integer;   //外功防御
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$958),@ptmp,4,readByte);
result:=ptmp;
end;
function Witatt:integer;  //内功攻击
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$954),@ptmp,4,readByte);
result:=ptmp;
end;
function Witdefense:integer; // 内功防御
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$95C),@ptmp,4,readByte);
result:=ptmp;
end;
function Vitality:integer;  //人物活力
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$908),@ptmp,4,readByte);
result:=ptmp;
end;
function Vitalitys:integer; //人物活力上限
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$90C),@ptmp,4,readByte);
result:=ptmp;
end;
function Energy:integer;//人物精力
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$910),@ptmp,4,readByte);
result:=ptmp;
end;
function Energys:integer;//人物精力上限
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$914),@ptmp,4,readByte);
result:=ptmp;
end;
function Physi:integer;//体力
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$938),@ptmp,4,readByte);
result:=ptmp;
end;
function Confor:integer;//定力
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$93C),@ptmp,4,readByte);
result:=ptmp;
end;
function Shenfa:integer;//身法
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$940),@ptmp,4,readByte);
result:=ptmp;
end;
function Force:integer;//力量
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$948),@ptmp,4,readByte);
result:=ptmp;
end;
function Aura:integer;//灵气
var
base,ptmp:integer;
readByte:Dword;
begin
result:=0;
base:=GetRoleBase;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base+$94C),@ptmp,4,readByte);
result:=ptmp;
end;
function GetRoleBase1:integer; //BB基址
var
ptmp1:integer;
readByte1:Dword;
begin
result:=0;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
//[[006B3230]+4915c]+3C ............宝宝基址/////////////////////////////////////////
ReadProcessMemory(GamehProcess,pointer(GameBase1),@ptmp1,4,readByte1);
ReadProcessMemory(GamehProcess,pointer(ptmp1+$4915c),@ptmp1,4,readByte1);
result:=ptmp1;
end;
function BBCurBlood:integer;// BB当前血值
var
base1,ptmp1:integer;
readByte1:Dword;
begin
result:=0;
base1:=GetRoleBase1;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base1+$3c),@ptmp1,4,readByte1);
result:=ptmp1;
end;
function BBCurBloods:integer;//BB 血上限
var
base1,ptmp1:integer;
readByte1:Dword;
begin
result:=0;
base1:=GetRoleBase1;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base1+$40),@ptmp1,4,readByte1);
result:=ptmp1;
end;
function BBGrade:integer; //BB等级
var
base1,ptmp1:integer;
readByte1:Dword;
begin
result:=0;
base1:=GetRoleBase1;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base1+$34),@ptmp1,4,readByte1);
result:=ptmp1;
end;
function BBhappy:integer;  //BB快乐度
var
base1,ptmp1:integer;
readByte1:Dword;
begin
result:=0;
base1:=GetRoleBase1;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base1+$4c),@ptmp1,4,readByte1);
result:=ptmp1;
end;
function Ecejy:integer;//BB经验
var
base1,ptmp1:integer;
readByte1:Dword;
begin
result:=0;
base1:=GetRoleBase1;
Gameh:=FindWindow(nil,GameCaption);
if Gameh=0 then exit;
GetWindowThreadProcessID(Gameh,GamePid);
GamehProcess:=OpenProcess(windows.PROCESS_ALL_ACCESS,false,GamePid);
ReadProcessMemory(GamehProcess,pointer(base1+$38),@ptmp1,4,readByte1);
result:=ptmp1;
end;
end.
附件: 试用的天龙八部.rar (697 K) 下载次数:36
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线l942023981

只看该作者 沙发  发表于: 2016-01-25
看不懂
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个