|
|
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 word;
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 word;
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 word;
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 word;
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 word;
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 word;
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 word;
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 word;
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 word;
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 word;
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.
|
|