0,4捡物

1 {人物可以捡起的物品最大范围 <=9}
2 跑去捡
 
 
 
{此段代码需要hook的支持}
/// <summary>
/// 捡物
/// </summary>
/// <param name="Id1">物品IDparam>
/// <param name="Id2">系统物品ID/param>
procedure pickUpGoods(Id1:DWORD;Id2:DWORD);
begin
  ASM
    MOV ECX,[$924e0c]
    PUSH Id1 //4FAA {物品ID}
    PUSH Id2 //0C01014BD {系统ID}
    MOV ECX,[ECX+$20]
    ADD ECX,$0EC
    MOV EBX,$00583060
    CALL EBX
  END;
end;

{此段代码需要hook的支持}
/// <summary> 
/// {人物是在游戏当中还是小退} 
/// </summary> 
function InGame():Boolean; 
var gameretn:DWORD; 
begin 
  asm 
   mov eax,[$00924D48] 
   mov gameretn,eax 
  end; 
  if gameretn=0  then Result:=true{在游戏当中} 
  else if gameretn>=1 then  Result:=False; {人物在角色选择界面} 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
{本段代码的目的 捡物}
var
  I:Integer;
  L:Integer;
  pGds           :PDWORD;
  gdsTmp         :DWORD;
  Gds_id1        :PDWORD;
  Gds_id2        :PDWORD;
  Gds_distance   :PSingle;
  Gds_name       :PDWORD;
  Gds_name1      :PWideChar;
  gds_posx       :PSingle;
  gds_posy       :PSingle;
  gds_posz       :PSingle;
  Gds_A_B        :Single;
  Gds_id1tmp     :DWORD;
  Gds_id2tmp     :DWORD;
  Gds_distance1  :Single;
begin
   if InGame=False then  Exit;
  asm
   mov eax,[$924E0C]
   mov eax,[eax+$1c]
   mov eax,[eax+$8]
   mov eax,[eax+$28]
   mov ecx,[eax+$18]
   mov gdsTmp,ecx
  end;
  for I:=0 to 768 do
  begin
    pGds:=pointer(gdsTmp+I*4);
    if pGds^>0 then
    begin
      pGds        :=Pointer(pGds^+$4);
      Gds_id1     :=Pointer(pGds^+$110); {物品ID}
      Gds_id2     :=Pointer(pGds^+$10C); {系统物品ID}
      Gds_name    :=Pointer(pGds^+$164);
      Gds_name1   :=Pointer(Gds_name^+$0);
      Gds_distance:=Pointer(pGds^+$154);
      for L:=0 to  ListBox1.Count-1 do {}
      begin           {}
        if Gds_name1<>ListBox1.Items[L] then continue;
        Gds_id1tmp:=Gds_id1^;
        Gds_id2tmp:=Gds_id2^;
        Gds_distance1:=Gds_distance^;
      end;
    end;
  end;
   if Gds_distance1<=9 then pickUpGoods(Gds_id1tmp,Gds_id2tmp);{捡物}
end;
 





附件列表

 

posted @ 2012-05-29 16:43  XE2011  阅读(234)  评论(0)    收藏  举报