看流星社区

 找回密码
 注册账号
查看: 2338|回复: 2

查找npc的一个函数。以前写的。

[复制链接]

该用户从未签到

发表于 2011-4-5 10:05:00 | 显示全部楼层 |阅读模式
Function findnpc(npc:cardinal):LongBool;
var
i,j,k,l,m,htkg,guaiidqing:integer;
npcopendz,guaiid,ydkg:cardinal;
exited,oped:LongBool;
npcopen:integer;
begin
beep;
//=====================清除目标以及一切窗口
for m:=0 to 5 do
begin
postmessage(hwd,WM_KEYDOWN,27,0);
postmessage(hwd,WM_KEYUP,27,0);
end;
//=====================开始查找npc
exited:=false;
for i:=0 to 13 do
begin
//=====================如果查找到退出
if exited then break;  
//=====================先快速查找一列
//=====================移动禁止 后台允许
ydkg:=dumem(base+$20);
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
htkg:=1;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(ydkg+$A1D), @htkg, 4, BytesWrite);
//bReadSucceed :=WriteProcessMemory(PHND, Pointer(houtai), @htkg, 4, BytesWrite);
CloseHandle(PHND);
end;

for j:=0 to 9 do
begin
SendMessage (hwd, WM_lBUTTONDOWN,1,MAKELPARAM((10+i*40),(60+j*40)));
SendMessage (hwd, WM_LBUTTONUP,1,MAKELPARAM((10+i*40),(60+j*40)));
k:=10+i*40;
l:=60+j*40;
sleep(100);
form1.button43.caption:=concat(inttostr(k),',',inttostr(l));
end;
//=====================判断本列是否有npc
sleep(1000);
guaiid:=DuMem(basep+$A00);
//=====================仔细查找本列
if (guaiid <> 0) then
begin
//=====================清空目标
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
guaiidqing:=0;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(basep+$A00), @guaiidqing, 16, BytesWrite);
CloseHandle(PHND);
end;

//=====================仔细查找
for j:=0 to 9 do
begin
SendMessage (hwd, WM_lBUTTONDOWN,1,MAKELPARAM((10+i*40),(60+j*40)));
SendMessage (hwd, WM_LBUTTONUP,1,MAKELPARAM((10+i*40),(60+j*40)));
k:=10+i*40;
l:=60+j*40;
form1.button43.caption:=concat(inttostr(k),',',inttostr(l));
sleep(2000);
guaiid:=DuMem(basep+$A00);
//=====================如果不为目标npc,清空
if (guaiid <> npc) then
begin
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
guaiidqing:=0;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(basep+$A00), @guaiidqing, 16, BytesWrite);
CloseHandle(PHND);
end;

end else
//=====================如果为目标
begin
//=====================移动允许
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
htkg:=0;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(ydkg+$A1D), @htkg, 4, BytesWrite);
CloseHandle(PHND);
end;

//=====================点击目标
SendMessage (hwd, WM_lBUTTONDOWN,1,MAKELPARAM(k,l));
SendMessage (hwd, WM_LBUTTONUP,1,MAKELPARAM(k,l));
sleep(2000);
//=====================判断是否打开窗体

npcopen:=0;
npcopendz:=dumem(dumem(dumem(base+4)+8)+$240);
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
bReadSucceed :=readProcessMemory(PHND, Pointer(npcopendz+$6c), @npcopen, 1, BytesWrite);
CloseHandle(PHND);
end;

IF npcopen=1 then oped:=true else oped:=false;

PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
npcopen:=0;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(npcopendz+$54), @npcx, 1, BytesWrite);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(npcopendz+$58), @npcy, 1, BytesWrite);
CloseHandle(PHND);
end;

for m:=0 to 5 do
begin
postmessage(hwd,WM_KEYDOWN,27,0);
postmessage(hwd,WM_KEYUP,27,0);
end;

exited:=true;
break;
end;

end;

end;

end;  
//=====================移动允许,后台关闭
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
htkg:=0;
bReadSucceed :=WriteProcessMemory(PHND, Pointer(ydkg+$A1D), @htkg, 4, BytesWrite);
//bReadSucceed :=WriteProcessMemory(PHND, Pointer(houtai), @htkg, 4, BytesWrite);
CloseHandle(PHND);
end;

if exited and oped then Result:=true else Result:=false;
end;

该用户从未签到

 楼主| 发表于 2011-4-5 10:05:41 | 显示全部楼层
{
//如果钱大于数量则先发邮件再定位npc
gold:=dumem(basep+$4fc);
gold:=gold-10000;
if gold > 100000 then
begin
button36.Click;
button3.Click;
while moveed do sleep(1000);
npc:=strtoint64(edit79.text);
while not findnpc(npc) do
begin
button36.Click;
button3.Click;
while moveed do sleep(1000);
end;
sleep(1000);
xsbb:=dumem(dumem(dumem(base+4)+8)+$204);
ydkg:=dumem(base+$20);
xskg:=1;
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
bReadSucceed :=WriteProcessMemory(PHND, Pointer(ydkg+$A1D), @xskg, 1, tt);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(xsbb+$6c), @xskg, 1, tt);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(xsbb+$54), @npcx, 1, tt);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(xsbb+$58), @npcy, 1, tt);
//////bReadSucceed :=WriteProcessMemory(PHND, Pointer(houtai), @xskg, 1, tt)
CloseHandle(PHND);
end;
sleep(500);
myinifile:=TInifile.Create('d:\!新盘\完美仓库名.ini');
strt:=myinifile.readstring(pchar(fwqnam),'名称','取名出错');
myinifile.Destroy;
SendMessage (hwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(148,117));
sleep(500);
        str:=strt;
      for  i:=0  to  length(strt)  do
          begin
              postmessage(hwd,wm_char,integer(str),0);
          end;
sleep(500);
SendMessage (hwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(148,139));
sleep(500);
postmessage(hwd,wm_char,integer('1'),0);
sleep(500);
SendMessage (hwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(148,174));
sleep(500);
postmessage(hwd,wm_char,integer('1'),0);
sleep(500);
SendMessage (hwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(257,408));
sleep(500);
strt:=inttostr(gold);
str:=strt;
      for  i:=0  to  length(strt)  do
          begin
SendMessage (hwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(257,408));
              postmessage(hwd,wm_char,integer(str),0);
          end;
sleep(500);
SendMessage (hwd, WM_LBUTTONDOWN,MK_LBUTTON,MAKELPARAM(223,446));
SendMessage (hwd, WM_LBUTTONUP,MK_LBUTTON,MAKELPARAM(223,446));
sleep(500);
PHND := OpenProcess(PROCESS_ALL_ACCESS, False,pid);
if PHND<>0 then
begin
xskg:=0;
xsbb:=dumem(dumem(dumem(base+4)+8)+$204);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(xsbb+$6c), @xskg, 1, tt);
//bReadSucceed :=WriteProcessMemory(PHND, Pointer(houtai), @xskg, 1, tt);
bReadSucceed :=WriteProcessMemory(PHND, Pointer(ydkg+$A1D), @xskg, 1, tt);
CloseHandle(PHND);
end;
for i:=0 to 5 do
begin
postmessage(hwd,WM_KEYDOWN,27,0);
postmessage(hwd,WM_KEYUP,27,0);
end;
//bReadSucceed :=WriteProcessMemory(PHND, Pointer(houtai), @xskg, 4, tt);
end;

button38.Click;
button3.Click;
while moveed do sleep(1000);
npc:=strtoint64(edit79.text);
while not findnpc(npc) do
begin
button38.Click;
button3.Click;
while moveed do sleep(1000);
end;
sell; }
{SendMessage (wmhwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(79,340));
sleep(20000);
for i:=0 to 4 do
begin
postmessage(hwd,WM_KEYDOWN,27,0);
postmessage(hwd,WM_KEYUP,27,0);
end;
button36.Click;
button3.Click;
while moveed do sleep(1000);
npc:=strtoint64(edit79.text);
while not findnpc(npc) do sleep(1000);
sleep(1000);
SendMessage (wmhwd, WM_LBUTTONDBLCLK,MK_LBUTTON,MAKELPARAM(79,340));
sleep(20000);
for i:=0 to 4 do
begin
postmessage(hwd,WM_KEYDOWN,27,0);
postmessage(hwd,WM_KEYUP,27,0);
end;
beep;
sleep(1000);
beep;  }
//查找邮箱
//挂机

该用户从未签到

发表于 2011-12-2 19:00:48 | 显示全部楼层
对于本帖我不发布任何意见
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 17:47

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表