⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.pas

📁 纵横天地(开源) Delphi的功能很多``很值得大家学习
💻 PAS
📖 第 1 页 / 共 5 页
字号:
{******************************************************************************}
{    编码比较混乱,不符合规则,如果伤到你眼睛,还请见谅 ^_^                       }
{                -----DeepBlue   12/11/2008                                    }
{    如果有什么问题或者疑问,请与我联系                                         }
{                -----deepblueemail@163.com                                    }
{******************************************************************************}

unit MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls, StdCtrls, Buttons,tlhelp32,shellapi, ImgList, IniFiles;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    StatusBar1: TStatusBar;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    TabSheet6: TTabSheet;
    TabSheet7: TTabSheet;
    LabeledEdit1: TLabeledEdit;
    LabeledEdit2: TLabeledEdit;
    LabeledEdit3: TLabeledEdit;
    LabeledEdit4: TLabeledEdit;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    CheckBox1: TCheckBox;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    LabeledEdit5: TLabeledEdit;
    LabeledEdit7: TLabeledEdit;
    Label1: TLabel;
    CheckBox2: TCheckBox;
    Edit2: TEdit;
    ComboBox2: TComboBox;
    LabeledEdit6: TLabeledEdit;
    LabeledEdit8: TLabeledEdit;
    Label2: TLabel;
    CheckBox3: TCheckBox;
    Edit3: TEdit;
    ComboBox3: TComboBox;
    LabeledEdit9: TLabeledEdit;
    LabeledEdit10: TLabeledEdit;
    Label3: TLabel;
    Label4: TLabel;
    LabeledEdit11: TLabeledEdit;
    LabeledEdit12: TLabeledEdit;
    ComboBox4: TComboBox;
    CheckBox4: TCheckBox;
    Edit4: TEdit;
    Label5: TLabel;
    PageControl2: TPageControl;
    TabSheet8: TTabSheet;
    TabSheet9: TTabSheet;
    CheckBox11: TCheckBox;
    LabeledEdit19: TLabeledEdit;
    Label6: TLabel;
    CheckBox5: TCheckBox;
    LabeledEdit13: TLabeledEdit;
    CheckBox6: TCheckBox;
    LabeledEdit14: TLabeledEdit;
    LabeledEdit16: TLabeledEdit;
    LabeledEdit18: TLabeledEdit;
    CheckBox10: TCheckBox;
    CheckBox8: TCheckBox;
    LabeledEdit15: TLabeledEdit;
    LabeledEdit17: TLabeledEdit;
    CheckBox9: TCheckBox;
    CheckBox7: TCheckBox;
    GroupBox3: TGroupBox;
    ListBox1: TListBox;
    Edit5: TEdit;
    CheckBox12: TCheckBox;
    Edit6: TEdit;
    LabeledEdit20: TLabeledEdit;
    Label7: TLabel;
    CheckBox13: TCheckBox;
    Edit7: TEdit;
    LabeledEdit21: TLabeledEdit;
    Label8: TLabel;
    CheckBox14: TCheckBox;
    Edit8: TEdit;
    LabeledEdit22: TLabeledEdit;
    Label9: TLabel;
    CheckBox15: TCheckBox;
    Edit9: TEdit;
    LabeledEdit23: TLabeledEdit;
    Label10: TLabel;
    CheckBox16: TCheckBox;
    Edit10: TEdit;
    LabeledEdit24: TLabeledEdit;
    Label11: TLabel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    Label12: TLabel;
    GroupBox7: TGroupBox;
    CheckBox23: TCheckBox;
    CheckBox24: TCheckBox;
    CheckBox25: TCheckBox;
    GroupBox8: TGroupBox;
    Label13: TLabel;
    ComboBox5: TComboBox;
    LabeledEdit25: TLabeledEdit;
    LabeledEdit26: TLabeledEdit;
    Edit11: TEdit;
    PageControl3: TPageControl;
    TabSheet10: TTabSheet;
    TabSheet11: TTabSheet;
    TabSheet12: TTabSheet;
    ListBox2: TListBox;
    CheckBox17: TCheckBox;
    CheckBox18: TCheckBox;
    SpeedButton8: TSpeedButton;
    CheckBox19: TCheckBox;
    CheckBox20: TCheckBox;
    ListBox3: TListBox;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    GroupBox4: TGroupBox;
    CheckBox21: TCheckBox;
    CheckBox22: TCheckBox;
    CheckBox26: TCheckBox;
    CheckBox27: TCheckBox;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    ListBox4: TListBox;
    GroupBox5: TGroupBox;
    CheckBox28: TCheckBox;
    CheckBox29: TCheckBox;
    CheckBox30: TCheckBox;
    GroupBox6: TGroupBox;
    CheckBox31: TCheckBox;
    CheckBox32: TCheckBox;
    CheckBox33: TCheckBox;
    CheckBox34: TCheckBox;
    Memo1: TMemo;
    GroupBox9: TGroupBox;
    CheckBox35: TCheckBox;
    LabeledEdit27: TLabeledEdit;
    LabeledEdit28: TLabeledEdit;
    LabeledEdit29: TLabeledEdit;
    SpeedButton13: TSpeedButton;
    FindZhTime: TTimer;
    Timer1: TTimer;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    ListBox5: TListBox;
    Timer2: TTimer;
    Timer3: TTimer;
    Button1: TButton;
    Label15: TLabel;
    CheckBox36: TCheckBox;
    Button2: TButton;
    Button3: TButton;
    GroupBox10: TGroupBox;
    CheckBox37: TCheckBox;
    LabeledEdit30: TLabeledEdit;
    CheckBox38: TCheckBox;
    Button4: TButton;
    GroupBox11: TGroupBox;
    Memo2: TMemo;
    Timer4: TTimer;
    CheckBox39: TCheckBox;
    procedure CheckBox35Click(Sender: TObject);
    procedure CheckBox25Click(Sender: TObject);
    procedure CheckBox5Click(Sender: TObject);
    procedure CheckBox6Click(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure CheckBox8Click(Sender: TObject);
    procedure CheckBox9Click(Sender: TObject);
    procedure CheckBox10Click(Sender: TObject);
    procedure CheckBox11Click(Sender: TObject);
    procedure CheckBox12Click(Sender: TObject);
    procedure CheckBox13Click(Sender: TObject);
    procedure CheckBox14Click(Sender: TObject);
    procedure CheckBox15Click(Sender: TObject);
    procedure CheckBox16Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure GetMousePosHwndAndClassName(Sender:TPoint);
    procedure FindZhTimeTimer(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton11Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure CheckBox33Click(Sender: TObject);
    procedure CheckBox34Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure CheckBox31Click(Sender: TObject);
    procedure TabSheet1Show(Sender: TObject);
    procedure TabSheet2Show(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure ListBox4DblClick(Sender: TObject);
    procedure ListBox2DblClick(Sender: TObject);
    procedure ListBox3DblClick(Sender: TObject);
    procedure CheckBox19Click(Sender: TObject);
    procedure CheckBox20Click(Sender: TObject);
    procedure CheckBox26Click(Sender: TObject);
    procedure CheckBox27Click(Sender: TObject);
    procedure TabSheet4Show(Sender: TObject);
    procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    procedure ComboBox5Click(Sender: TObject);
    procedure Panel1DblClick(Sender: TObject);
    procedure CheckBox23Click(Sender: TObject);
    procedure CheckBox24Click(Sender: TObject);
    procedure StatusBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure StatusBar1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CheckBox37Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure CheckBox39Click(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure TabSheet6Show(Sender: TObject); //自定义过程
  private
     procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;
  public
    HotKeyId:Integer;
    procedure AddtoList(AddName:String;ListBox:TListBox);
    Function  FindInList(FindStr:String;ListBox:TListBox):Boolean;
    Function  GoCity:Boolean;
    procedure KillGuaiProc;
    procedure LoadInitFile(FName:string);
    procedure SaveInitFile;
  end;
  {$include ../Common/CommonType.inc }

const
  {$include ../Common/CommonConst.inc }
  GameBase=$833C5C;
  XuanZhongGuaiBase=$833A3C;   //直接写入怪ID可实现选怪
  KillGuaiBase=$81D6E8;
  WriteGuaiIDBase=$833BD0;     //直接写入怪ID可实现选怪

//***********以下地址实现飞天功能***********//
  Addr1=$42C69C;
  Addr2=$42C6A0;
  Addr3=$42C6B0;
//*****************************************//
  BaoMan=0;
  NoBaoMan=-1;
  HaveYao=0;
  NoHaveYao=-1;
  SellFinish=0;
  NoSellFinish=-1;
  ZhungBeiDamage=0;
  NoZhungBeiDamage=-1;
  BuyFinish=0;


  //****************自定义消息,负责与DLL通信*****************//
      WM_GETMAXBLOODADDR=WM_USER+100;
      WM_GETNPCLISTADDR=WM_USER+101;
      WM_AOTOMOVE=WM_USER+102;
  //****************自定义消息结束***************************//
  SaveMaxXueAddr:Integer=$4EB476;  //读取这个地址可获得最大血基址
  SaveNpcListAddr:Integer=$4EB47B; 

var
  {$include ../Common/CommonVar.inc }
  Form1: TForm1;
  FileName:TIniFile;
  ZhHwnd:THandle;
  ZhPID:DWORD;
  
  JiNengAddr:Pointer;
  MaxXueAddr,ConstNpcListAddr:Integer;

//**************人物信息******************************//
  CurXue,MaxXue,CurLan,MaxLan:Integer;
  RenX,RenY,RenZ:Single;
  BackX,BackY,BackZ:Integer;
  DingDianX,DingDianY,DingDianZ:Integer;
  GoCityX,GoCityY,GoCityZ:Integer;

  YaoPinState:string;
  YaoPin1ID,YaoPin2ID,YaoPin3ID,YaoPin4ID:Integer;

  IsBhing:Boolean;
  IsDingDian:Boolean;
  
  Function GetPersonInfo:Boolean;
  Function GetBeiBaoInfo(DoType:String;FindWuName:string):Integer;
  Function GetGuaiWuInfo(DoType:String;FindGuaiName:string):Integer;
  Function GetWuPinInfo:Integer;    //得到箱子里物品的信息
  Function SleepFun(TimeM:Integer;FirstTickCount:Integer):Boolean;
  Function IsXunLuStop(MuDiX,MuDiY:Integer):Boolean;
  Function BuyYaoPinFun:Integer;
  Function NoZhanDouBaoHu:Boolean;
  Function DingDianProc:Boolean;
  procedure ZhanDouBaoHu;  
  procedure UseJiNeng;
  procedure InitGameProcess;
  Function GuaiIsDead:Boolean;
  procedure Down;
  procedure StartFeiTian;
  procedure StopFeiTian;

  
  Function StartHook(lpHwnd:HWND;aHandle:THandle):HHOOK;stdcall;external 'LM.dll' name 'StartHook';
  Function EndHook:Boolean;stdcall;external 'LM.dll' name 'EndHook';
implementation
uses
Call,HotKeyUnit;
var
FormH,FormW:Integer;
HotKeyThread:THotKeyThread;
{$R *.dfm}

procedure TForm1.HotKeyDown(var Msg: Tmessage);
begin
  if (Msg.LparamLo = 0) AND (Msg.LParamHi = VK_Insert) then // 假设热键为ALT+F8 
  begin
     CheckBox31.Checked:=not CheckBox31.Checked;
  end;
    msg.Result:=1;
end;

procedure TForm1.GetMousePosHwndAndClassName(Sender: TPoint);
var
hWnd: THandle;
aName:array [0..255] of char;
TempaName:String;
begin
  hWnd:=WindowFromPoint(Sender);  
  if Boolean(GetClassName(hWnd,aName,256)) then
  begin
    TempaName:= String(aName);
    if Pos('纵横时空',Trim(TempaName))<>0 then
    begin
      ZhHwnd:=hWnd;
      Form1.Caption :='获取成功,请松开鼠标';
      Image1.Enabled :=False;
      Image1.Visible :=False;
      Timer1.Enabled :=True;
    end;
  end;  
  FlashWindow(hWnd,true);
end; 

procedure XChangeCheckBox(ChkBox1,ChkBox2:TCheckBox);
begin
    if ChkBox1.Checked then
    begin
      ChkBox2.Checked:=False;
    end;
end;

procedure TForm1.AddtoList(AddName:String;ListBox:TListBox);
var
j,k:Integer;
begin
    if ListBox.Count = 0 then
      ListBox.Items.Add(AddName)
    else
    begin
      j:=ListBox.Items.IndexOf(AddName);
      k:=ListBox.Count;
      if (j>=k)or(j<0) then
        ListBox.Items.Add(AddName);
    end;
end;

Function  TForm1.FindInList(FindStr:String;ListBox:TListBox):Boolean;
var
j,k:DWORD;
begin
    Result:=False;
    if ListBox.Count <>0 then
    begin
      j:=ListBox.Items.IndexOf(FindStr);
      k:=ListBox.Count;
      if j<k then
        Result:=True;
    end;
end;

Function  TForm1.GoCity:Boolean;
const
{$j+}SellIsFinish:Integer=NoSellFinish{$j-};
{$j+}BuyIsFinish:Boolean=False{$j-};
{$j+}XiuLiIsFinish:Boolean=False{$j-};
{$j+}SellNpcIsOpen:Boolean=False{$j-};
{$j+}XiuLiNpcIsOpen:Boolean=False{$j-};
{$j+}BuyNpcIsOpen:Boolean=False{$j-};
var
NpcID:Integer;
IsHaveYaoPin,XueLanPanDuan:Integer;
begin
    XueLanPanDuan:=0;
    if CheckBox23.Checked then      //卖物
    begin
         if  SellIsFinish=NoSellFinish then
         begin
             Timer2.Enabled :=False;
             if IsXunLuStop(GoCityX,GoCityY)  then
             begin
                 if not SellNpcIsOpen then   //打开NPC
                 begin
                     NpcID:=GetGuaiWuInfo('怪物ID',ComboBox5.Text);
                     if NpcID>0 then
                     begin
                         Call.OpenNpc(NpcID);
                         SellNpcIsOpen:=True;
                         exit;
                     end;
                 end;

                 if (SellNpcIsOpen)and(SellIsFinish=NoSellFinish) then  //如果NPC已经打开
                 begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -