热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

0,4捡物

1{人物可以捡起的物品最大范围
1 {人物可以捡起的物品最大范围 <&#61;9}
2 跑去捡
{此段代码需要hook的支持}
/// 
/// 捡物
/// 

/// 物品IDparam>
/// 系统物品ID/param>
procedure pickUpGoods(Id1:DWORD;Id2:DWORD);
begin
  ASM
    MOV ECX,[$924e0c]
    PUSH Id1 //4FAA {物品ID}
    PUSH Id2 //0C01014BD {系统ID}
    MOV ECX,[ECX&#43;$20]
    ADD ECX,$0EC
    MOV EBX,$00583060
    CALL EBX
  END;
end;

{此段代码需要hook的支持}
///  
/// {人物是在游戏当中还是小退} 
/// 
 

function InGame():Boolean; 
var gameretn:DWORD; 
begin 
  asm 
   mov eax,[$00924D48] 
   mov gameretn,eax 
  end; 
  if gameretn&#61;0  then Result:&#61;true{在游戏当中} 
  else if gameretn>&#61;1 then  Result:&#61;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&#61;False then  Exit;
  asm
   mov eax,[$924E0C]
   mov eax,[eax&#43;$1c]
   mov eax,[eax&#43;$8]
   mov eax,[eax&#43;$28]
   mov ecx,[eax&#43;$18]
   mov gdsTmp,ecx
  end;
  for I:&#61;0 to 768 do
  begin
    pGds:&#61;pointer(gdsTmp&#43;I*4);
    if pGds^>0 then
    begin
      pGds        :&#61;Pointer(pGds^&#43;$4);
      Gds_id1     :&#61;Pointer(pGds^&#43;$110); {物品ID}
      Gds_id2     :&#61;Pointer(pGds^&#43;$10C); {系统物品ID}
      Gds_name    :&#61;Pointer(pGds^&#43;$164);
      Gds_name1   :&#61;Pointer(Gds_name^&#43;$0);
      Gds_distance:&#61;Pointer(pGds^&#43;$154);
      for L:&#61;0 to  ListBox1.Count-1 do {}
      begin           {}
        if Gds_name1<>ListBox1.Items[L] then continue;
        Gds_id1tmp:&#61;Gds_id1^;
        Gds_id2tmp:&#61;Gds_id2^;
        Gds_distance1:&#61;Gds_distance^;
      end;
    end;
  end;
   if Gds_distance1<&#61;9 then pickUpGoods(Gds_id1tmp,Gds_id2tmp);{捡物}
end;



通过 Wiz 发布



附件列表

 

转:https://www.cnblogs.com/xe2011/archive/2012/05/29/2524198.html



推荐阅读
author-avatar
马仔盛世焚花
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有