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

📄 unit2.pas.svn-base

📁 这是一段游戏修改工具的源代码.ring3功能由dephi开发,驱动是C开发.希望对大家有帮助
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
unit Unit2;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,math,  StdCtrls,ceclient, ComCtrls, ExtCtrls, Menus, Buttons,clipbrd, XPMan,registry,debugger,cefuncproc,netapis;resourcestring  CEnorm = 'Cheat Engine 5.0 client';  CERegion = 'Cheat Engine 5.0 client - Please wait!';  CESearch = 'Cheat Engine 5.0 client - Please wait!';  CERegionSearch = 'Cheat Engine 5.0 client - Please wait!';  CEWait= 'Cheat Engine 5.0 client - Please wait!';  strNoDescription='No description';  strClose='Close';  strStop='Stop';  strOk='OK';//scanoptionsconst  SO_FASTSCAN=$1;  SO_HEXADECIMAL=$2;  SO_READONLY=$4;  SO_FINDONLYONE=$8;  SO_ISBINARY=$10;  SO_UNICODE=$20;type grouptype = array[1..4] of boolean;type TSkin = record    Marker:             String[6];    backgroundimage:    Boolean;    ProcessTextColor:   TColor;    Normaltextcolor:    TColor;    InvertedNormalTextColor: TColor;    Groupboxcolor:      TColor;    Backgroundcolor:    TColor;    Selectedrecordcolor: TColor;    Selectedrecordcolor2: TColor;    Textfieldcolor:     TColor;    Textfieldbackgroundcolor: TColor;    showHelp:           Boolean;end;type  TMainForm = class(TForm)    Splitter1: TSplitter;    Panel1: TPanel;    Panel2: TPanel;    SortByFrozenButton: TButton;    SortByDescriptionButton: TButton;    SortByAddressButton: TButton;    SortByTypeButton: TButton;    SortByValueButton: TButton;    Panel3: TPanel;    Label30: TLabel;    Label29: TLabel;    Label12: TLabel;    Label27: TLabel;    Label15: TLabel;    Label16: TLabel;    Label13: TLabel;    Label18: TLabel;    Label23: TLabel;    Label28: TLabel;    Label3: TLabel;    Label9: TLabel;    Label10: TLabel;    Label11: TLabel;    Label14: TLabel;    Label17: TLabel;    Label19: TLabel;    Label20: TLabel;    Label21: TLabel;    Label22: TLabel;    Label24: TLabel;    Label25: TLabel;    Label26: TLabel;    Label31: TLabel;    Label32: TLabel;    Label33: TLabel;    Label34: TLabel;    Label35: TLabel;    Label36: TLabel;    Label37: TLabel;    Label39: TLabel;    Label40: TLabel;    Label41: TLabel;    Label42: TLabel;    Label43: TLabel;    CheckBox1: TCheckBox;    CheckBox2: TCheckBox;    CheckBox3: TCheckBox;    CheckBox4: TCheckBox;    CheckBox5: TCheckBox;    CheckBox6: TCheckBox;    CheckBox7: TCheckBox;    ScrollBar1: TScrollBar;    Panel4: TPanel;    advancedbutton: TSpeedButton;    CommentButton: TSpeedButton;    Panel5: TPanel;    ProcessLabel: TLabel;    FoundLabel: TLabel;    ScanText: TLabel;    Label4: TLabel;    Label8: TLabel;    LoadButton: TSpeedButton;    SaveButton: TSpeedButton;    SpeedButton1: TSpeedButton;    Logo: TImage;    Label6: TLabel;    SpeedButton2: TSpeedButton;    SpeedButton3: TSpeedButton;    SpeedButton4: TSpeedButton;    FControl: TEdit;    FoundList: TListBox;    GroupBox1: TGroupBox;    Label1: TLabel;    Label2: TLabel;    Dos: TRadioButton;    Windows: TRadioButton;    Readonly: TCheckBox;    FromAddress: TMemo;    ToAddress: TMemo;    cbFastScan: TCheckBox;    NewScan: TButton;    NextScanButton: TButton;    ScanType: TComboBox;    VarType: TComboBox;    Button3: TButton;    Button1: TButton;    ProgressBar1: TProgressBar;    HexadecimalCheckbox: TCheckBox;    UndoScan: TButton;    rbBit: TRadioButton;    rbDec: TRadioButton;    scanvalue: TEdit;    cbCaseSensitive: TCheckBox;    PopupMenu2: TPopupMenu;    Deletethisrecord1: TMenuItem;    Browsethismemoryregion1: TMenuItem;    SetHotkey1: TMenuItem;    Freezealladdresses2: TMenuItem;    Unfreezealladdresses1: TMenuItem;    N5: TMenuItem;    Setbreakpoint1: TMenuItem;    Findoutwhatreadsfromthisaddress1: TMenuItem;    sep1: TMenuItem;    Calculatenewvaluepart21: TMenuItem;    N4: TMenuItem;    Cut1: TMenuItem;    Copy1: TMenuItem;    Paste1: TMenuItem;    N1: TMenuItem;    Groupoption1: TMenuItem;    Settonogroup1: TMenuItem;    N2: TMenuItem;    Settogroup11: TMenuItem;    Settogroup21: TMenuItem;    Settogroup31: TMenuItem;    Settogroup41: TMenuItem;    N3: TMenuItem;    Sortaddressesbygroup1: TMenuItem;    PopupMenu1: TPopupMenu;    Browsethismemoryarrea1: TMenuItem;    Removeselectedaddresses1: TMenuItem;    Selectallitems1: TMenuItem;    OpenDialog1: TOpenDialog;    SaveDialog1: TSaveDialog;    TopDisabler: TTimer;    emptypopup: TPopupMenu;    ccpmenu: TPopupMenu;    Cut2: TMenuItem;    Copy2: TMenuItem;    Paste2: TMenuItem;    StatusBar1: TStatusBar;    cbSpeedhack: TCheckBox;    Label52: TLabel;    Edit2: TEdit;    Edit1: TEdit;    Label51: TLabel;    btnSetSpeedhack: TButton;    CheckBox8: TCheckBox;    RadioButton3: TRadioButton;    Findoutwhataccessesthisaddress1: TMenuItem;    FreezeTimer: TTimer;    UpdateTimer: TTimer;    UpdateFoundlisttimer: TTimer;    cbUnicode: TCheckBox;    Label5: TLabel;    Label7: TLabel;    procedure FormClose(Sender: TObject; var Action: TCloseAction);    procedure SpeedButton1Click(Sender: TObject);    procedure DosClick(Sender: TObject);    procedure WindowsClick(Sender: TObject);    procedure FormCreate(Sender: TObject);    procedure VarTypeChange(Sender: TObject);    procedure ScanTypeChange(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure SpeedButton3Click(Sender: TObject);    procedure Deletethisrecord1Click(Sender: TObject);    procedure ScrollBar1Change(Sender: TObject);    procedure NewScanClick(Sender: TObject);    procedure CheckBox1Click(Sender: TObject);    procedure Layoutsettings1Click(Sender: TObject);    procedure NextScanButtonClick(Sender: TObject);    procedure ValueClick(Sender: TObject);    procedure CommentButtonMouseMove(Sender: TObject; Shift: TShiftState;      X, Y: Integer);    procedure SpeedButton2Click(Sender: TObject);    procedure CommentButtonClick(Sender: TObject);    procedure SaveButtonClick(Sender: TObject);    procedure LoadButtonClick(Sender: TObject);    procedure FControlEnter(Sender: TObject);    procedure FControlExit(Sender: TObject);    procedure Label28Click(Sender: TObject);    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);    procedure AddressClick(Sender: TObject);    procedure Typeclick(Sender: TObject);    procedure FControlKeyDown(Sender: TObject; var Key: Word;      Shift: TShiftState);    procedure FControlKeyPress(Sender: TObject; var Key: Char);    procedure Cut1Click(Sender: TObject);    procedure Copy1Click(Sender: TObject);    procedure Paste1Click(Sender: TObject);    procedure Calculatenewvaluepart21Click(Sender: TObject);    procedure PopupMenu2Popup(Sender: TObject);    procedure SettogroupXClick(Sender: TObject);    procedure Settonogroup1Click(Sender: TObject);    procedure Freezealladdresses2Click(Sender: TObject);    procedure Unfreezealladdresses1Click(Sender: TObject);    procedure Panel1Resize(Sender: TObject);    procedure Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);    procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;      State: TDragState; var Accept: Boolean);    procedure slectItem(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure CheckBox2MouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure ScrollBar1Enter(Sender: TObject);    procedure SpeedButton4Click(Sender: TObject);    procedure FormShow(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Browsethismemoryarrea1Click(Sender: TObject);    procedure Browsethismemoryregion1Click(Sender: TObject);    procedure scanvalueKeyPress(Sender: TObject; var Key: Char);    procedure CheckBox8Click(Sender: TObject);    procedure cbSpeedhackClick(Sender: TObject);    procedure btnSetSpeedhackClick(Sender: TObject);    procedure RadioButton3Click(Sender: TObject);    procedure Setbreakpoint1Click(Sender: TObject);    procedure Findoutwhatreadsfromthisaddress1Click(Sender: TObject);    procedure Findoutwhataccessesthisaddress1Click(Sender: TObject);    procedure advancedbuttonClick(Sender: TObject);    procedure Label5Click(Sender: TObject);    procedure Label7Click(Sender: TObject);  private    { Private declarations }    numberoflines: integer;    frozenbox:   array of TCheckbox;    description: array of TLabel;    address:     array of TLabel;    ValType:     array of TLabel;    Value:       array of TLabel;    Select:      array of TLabel;    oldwidth,oldheight: integer;    newaddress: Dword;    isbit: boolean;    old8087CW: word;    procedure LoadDefaultSkin;    procedure copySelectedRecords;    procedure Paste;    procedure setfoundlisthorizontal;    procedure WMGetMinMaxInfo(var Message: TMessage); message WM_GETMINMAXINFO;    procedure SetWriteBreakpoint(address:dword;size: integer);    procedure SetReadBreakpoint(address:dword;size: integer);    procedure SetReadWriteBreakpoint(address:dword;size: integer);      public    { Public declarations }    Advanced: boolean;    ProcessOpened: boolean;    max: integer;    buffersize: dword;    opening: string;    numberofrecords,oldNumberOfRecords,oldcodelistcount: Integer;    memrec: array of Memoryrecord;    oldmemrec: array of Memoryrecord;    oldcomments: string;    values: array of String[255];    Hotkeystrings: Array of string;    Hotkeys: array of integer;    selected: array of Boolean;    lastselected: Integer;    LastLastSelected: Integer;    FirstShiftSelected: Integer;    lag: Integer;    skin:       TSkin;    MemImage:   TMemoryStream;    CheatEngineDir: String;    updatetimerspeed,freezetimerspeed: integer;    Procedure AddToRecord(line:Integer);    procedure updatescreen;    procedure Updateskin;    procedure Deleterecords;    procedure Deletegroups(groups: grouptype);    procedure UpdateScantype;    procedure UpdateList;    procedure ShowValues;    function CheckIfSaved: boolean;    procedure Resync;    procedure ReserveMem;    procedure Addaddress(description: string; address:dword; const offsets: array of dword; offsetcount: integer; ispointer: boolean; vartype: integer; length: integer; startbit:integer; unicode,showashex: boolean);  end;var  MainForm: TMainForm;  Skip_PAGE_NOCACHE: Boolean;implementationuses processwindow, Unit1, changetimerunit, TypePopup, addformunit,  commentsunit, layoutunit, Unit3, Standaloneunit, Changeoffsetunit,  formsettingsunit, MemoryBrowserFormUnit,formscanningunit,opensave,  FoundCodeUnit, AdvancedOptionsUnit,mainunit2;{$R *.DFM}procedure TMainForm.WMGetMinMaxInfo(var Message: TMessage);var MMInfo: ^MINMAXINFO;begin //the constraint function of the form behaves weird when draging from the top or left side, so I have to do this myself.  MMInfo:=ptr(message.LParam);  MMInfo.ptMinTrackSize:=point(515,501);end;procedure TMainform.ShowValues;var i,rec: integer;begin  for i:=0 to numberoflines-1 do  begin    rec:=scrollbar1.Position+i;    if rec<numberofrecords then    begin      value[i].Caption:=values[rec];    end;  end;end;procedure TMainform.setfoundlisthorizontal;var i,maxwidth,chars,maxchars: integer;begin  maxwidth:=0;  maxchars:=0;  for i:=0 to foundlist.Items.Count-1 do  begin    chars:=length(foundlist.Items[i]); //faster than 2 time retrieving    if chars>maxchars then    begin      maxchars:=chars;    end;  end;  foundlist.ScrollWidth:=8*maxchars;end;procedure TMainForm.ReserveMem;begin  setlength(memrec,numberofrecords);  setlength(values,NumberOfRecords);  setlength(selected,numberofrecords);  setlength(hotkeystrings,NumberOfRecords);  setlength(Hotkeys,numberofrecords);end;procedure TMainForm.resync;var i,j,datasend: integer;begin  output[0]:=6;   //clear record list  sendbuf(1);  //put all adresses back  for i:=0 to numberofrecords-1 do  begin    //if (i mod 2000)=0 then sleep(lag*4);  //resync should be made safe so a lof of sleeping...    output[0]:=CS_AddAddress;    pdword(@output[1])^:=memrec[i].Address;    case memrec[i].VarType of      0: output[5]:=1;      1: output[5]:=2;      2: output[5]:=4;      3: output[5]:=4;      4: output[5]:=8;      5: output[5]:=memrec[i].bitlength div 8+1;      6: output[5]:=8;      7: output[5]:=memrec[i].Bit;      8: output[5]:=memrec[i].bit;    end;    sendbuf(6);  end;  //and freeze the frozen ones  //the client should have received the values before the desync  for i:=0 to numberofrecords-1 do  begin    if memrec[i].Frozen then    begin      if (values[i]<>'NYA') and (values[i]<>'??') then      begin        output[0]:=CS_FREEZEADDRESS;  //freeze address        pword(@output[1])^:=i;        sendbuf(3);      end;    end;  end;end;procedure TMainForm.copySelectedRecords;var clip: TClipboard;    textform: string;    i:  Integer;begin  //  clip:=TClipboard.Create;  textform:='CETables-';//  textform:='aaa'+chr(13)+'FFFFFF'+chr(13)+'DWORD'+chr(13); there can only be an CR when hex editing the savetable.  for i:=0 to numberofrecords-1 do  begin    if selected[i] then      textform:=textform+memrec[i].Description+chr(13)+'$'+IntTohex(memrec[i].Address,8)+chr(13)+IntToStr(memrec[i].VarType)+chr(13);  end;  clip.SetTextBuf(pchar(textform));  //text address typeend;procedure TMainform.paste;var clip: TClipboard;    textform: string;    textform2: Pchar;    i,j,k,l: Integer;    last: Integer;    temprec: array of memoryRecord;begin  //paste  k:=0;  j:=0;

⌨️ 快捷键说明

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