zoukankan      html  css  js  c++  java
  • 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;
     





    附件列表

  • 相关阅读:
    自动识别文本中最能体现文本的主题和风格的词汇?试想一下,要找到一本 书中使用最频繁的 50 个词
    语言处理任务 NLTK 模块 功能描述
    mysql group by 去重 分类 求和
    isinstance(object, classinfo) class type(name, bases, dict)
    函数式编程 偏函数 生成器 yield
    .bash_profile vs .bashrc
    sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
    从数据库、页面加载速度角度思考 id设计 sku asin
    线性回归
    Oracle OLAP
  • 原文地址:https://www.cnblogs.com/xe2011/p/2524198.html
Copyright © 2011-2022 走看看