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

📄 unit2.pas.svn-base

📁 这是一段游戏修改工具的源代码.ring3功能由dephi开发,驱动是C开发.希望对大家有帮助
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
      toaddress.text:='BFFFFFFF';      dos.checked:=true;    end else    begin      FromAddress.text:='00400000';      ToAddress.text:='7FFFFFFF';      windows.checked:=true;    end;    //-------------NEW SCAN    foundlabel.Caption:='0';    foundlist.Clear;    newscan.Caption:='First Scan';    Groupbox1.Enabled:=true;    for i:=0 to groupbox1.ControlCount-1 do      groupbox1.Controls[i].Enabled:=true;    scanvalue.Enabled:=true;    newscan.Enabled:=true;    nextscanbutton.Enabled:=false;    vartype.Enabled:=true;    scantype.Enabled:=true;    scantext.enabled:=true;    label4.enabled:=true;    label8.Enabled:=true;    HexadecimalCheckbox.Enabled:=true;    scanvalue.visible:=true;    scantext.Visible:=true;    scanvalue.text:='';    checkbox8.Enabled:=true;    cbspeedhack.Enabled:=true;    Updatescantype;    Scantype.ItemIndex:=0;    //-----------------------    //Get the expectedFilename    //-----------------------    if savedialog1.Filename<>'' then exit;    if opendialog1.Filename<>'' then exit;    Fname:=copy(processlabel.caption,pos('-',processlabel.caption)+1,length(processLabel.caption));  if FName[length(FName)-3]='.' then  //it's a filename    expectedFilename:=copy(FName,1,length(FName)-4)  else //it's a normal title;    expectedFilename:=FName;    savedialog1.FileName:=expectedFilename;    Opendialog1.FileName:=expectedFilename;  end;end;procedure TMainForm.DosClick(Sender: TObject);begin  FromAddress.text:='80000000';  ToAddress.text:='BFFFFFFF';end;procedure TMainForm.WindowsClick(Sender: TObject);begin  FromAddress.text:='00400000';  ToAddress.text:='7FFFFFFF';end;procedure TMainForm.FormCreate(Sender: TObject);begin  scanvalue.text:='';  fromaddress.Text:='00400000';  toaddress.Text:='7FFFFFFF';  isbit:=false;  panel3.DoubleBuffered:=true;  old8087CW:=Get8087CW;  Set8087CW($133f);  //for those changingmy code: 133f is NOT meant to be 1337  Memimage:=TMemorystream.Create;  FirstShiftSelected:=-1;  oldwidth:=screen.width;  oldheight:=screen.height;  oldnumberofrecords:=0;  logo.Hint:='Left-click to go to the Cheat Engine Homepage'#13#10+             'Right-click to access the menu';  logo.ShowHint:=true;  numberoflines:=7;  setlength(frozenbox,7);  frozenbox[0]:=checkbox1;  frozenbox[1]:=checkbox2;  frozenbox[2]:=checkbox3;  frozenbox[3]:=checkbox4;  frozenbox[4]:=checkbox5;  frozenbox[5]:=checkbox6;  frozenbox[6]:=checkbox7;  setlength(description,7);  description[0]:=label28;  description[1]:=label9;  description[2]:=label17;  description[3]:=label19;  description[4]:=label33;  description[5]:=label32;  description[6]:=label31;  setlength(address,7);  address[0]:=label23;  address[1]:=label10;  address[2]:=label20;  address[3]:=label21;  address[4]:=label34;  address[5]:=label35;  address[6]:=label36;  setlength(valtype,7);  valtype[0]:=label18;  valtype[1]:=label11;  valtype[2]:=label22;  valtype[3]:=label24;  valtype[4]:=label40;  valtype[5]:=label39;  valtype[6]:=label37;  setlength(value,7);  value[0]:=label13;  value[1]:=label14;  value[2]:=label25;  value[3]:=label26;  value[4]:=label41;  value[5]:=label42;  value[6]:=label43;  setlength(select,7);  select[0]:=label12;  select[1]:=label3;  select[2]:=label16;  select[3]:=label15;  select[4]:=label27;  select[5]:=label29;  select[6]:=label30;  updatescreen;  newaddress:=0;  VarType.ItemIndex:=3;  UpdateScantype;  ScanType.ItemIndex:=0;end;procedure TMainForm.ScanTypeChange(Sender: TObject);begin  updatescantype;end;procedure TMainForm.VarTypeChange(Sender: TObject);var a: int64;    b: double;    c: Integer;    d: single;    hexvis: boolean;    decbitvis: boolean;    hexleft: integer;    hextext: string;    hexwidth: integer;    casevis: boolean;    oldscantype: integer;    error: integer;    temp:string;begin  hexvis:=true;  hexleft:=187;  hexwidth:=38;  hextext:='Hex';  casevis:=false;  decbitvis:=false;  if not (oldscantype in [smallerthan,biggerthan,exact_value,Advanced_Scan]) then    scantype.itemindex:=0;  //Scantype.itemindex:=0;  case vartype.itemindex of  0: begin //binary       if (hexadecimalcheckbox.visible) then       begin         //convert it was type 0,1,2 or 6         if hexadecimalcheckbox.Checked then         begin           //convert from hex to dec           if length(scanvalue.Text)>0 then           begin             if scanvalue.Text[1]='-' then               val('-$'+copy(scanvalue.text,2,length(scanvalue.Text)),a,error)             else               val('$'+scanvalue.Text,a,error);           end;         end else val(scanvalue.text,a,error);       end;       hexadecimalcheckbox.Checked:=true;       rbdec.checked:=true;       scanvalue.Text:=IntToStr(a);       HexadecimalCheckbox.visible:=false;       decbitvis:=true;       Scantype.itemindex:=0;     end;   1,2,3,4:     begin       casevis:=false;       scanvalue.MaxLength:=0;       if rbdec.visible then       begin         if rbbit.checked then           scanvalue.text:=IntToStr(binToInt(scanvalue.text))         //else keep it the same       end       else       begin         if hexadecimalcheckbox.Checked and hexadecimalcheckbox.Visible then           val('$'+copy(scanvalue.text,1,length(scanvalue.Text)),a,c)         else           val(scanvalue.text,a,c);         scanvalue.Text:=IntToStr(a);       end;       hexadecimalcheckbox.enableD:=true;       hexadecimalcheckbox.Checked:=false;     end;  5: begin //float;       hexvis:=false;       temp:=scanvalue.text;       if rbdec.visible then       begin         //it was a bit         if rbbit.checked then           temp:=IntToStr(binToInt(scanvalue.text))         //else keep it the same       end       else       begin         if hexadecimalcheckbox.visible then         begin           if hexadecimalcheckbox.Checked then             val('$'+copy(scanvalue.text,1,length(scanvalue.Text)),a,c)           else             val(scanvalue.text,a,c);           temp:=IntToStr(a);         end;       end;       hexadecimalcheckbox.Checked:=false;       HexadecimalCheckbox.enabled:=false;       scanvalue.MaxLength:=0;       val(temp,d,c);       Scanvalue.Text:=FloatToStr(d);     end;  6: begin //double       hexvis:=false;       temp:=scanvalue.text;       if rbdec.visible then       begin         //it was a bit         if rbbit.checked then           temp:=IntToStr(binToInt(scanvalue.text))         //else keep it the same       end       else       begin         if hexadecimalcheckbox.visible then         begin           if hexadecimalcheckbox.Checked then             val('$'+copy(scanvalue.text,1,length(scanvalue.Text)),a,c)           else             val(scanvalue.text,a,c);           temp:=IntToStr(a);         end;       end;       hexadecimalcheckbox.Checked:=false;       HexadecimalCheckbox.enabled:=false;       scanvalue.MaxLength:=0;       val(temp,b,c);       Scanvalue.Text:=FloatToStr(b);     end;  7: begin //text       scantype.itemindex:=0;       casevis:=true;       cbCasesensitive.Checked:=true;       cbCasesensitive.ShowHint:=false;       hexadecimalcheckbox.enabled:=true;       hexadecimalcheckbox.checkeD:=cbCaseSensitive.checked;       hexvis:=false;       hextext:='Unicode';       hexleft:=170;       hexwidth:=61;     end;  8: begin  //array of byte       scantype.itemindex:=0;       scanvalue.MaxLength:=0;       hexadecimalcheckbox.enableD:=true;       hexadecimalcheckbox.Checked:=true;       for c:=1 to length(scanvalue.Text) do         case scanvalue.text[c] of           '-',' '  :  ;           '0'..'9' :  ;           'A'..'F' :  ;           else     begin                      scanvalue.text:='';                      break;                    end;         end;     end;  end;  hexadecimalcheckbox.Caption:=hextext;  hexadecimalcheckbox.left:=hexleft;  hexadecimalcheckbox.Width:=hexwidth;  HexadecimalCheckbox.visible:=hexvis;  rbdec.visible:=decbitvis;  rbbit.Visible:=decbitvis;  cbCaseSensitive.visible:=casevis;  cbfastscan.Enabled:=vartype.ItemIndex in [2..6];  UpdateScanType;end;procedure TMainForm.Button1Click(Sender: TObject);begin  if addform=nil then addform:=TAddform.Create(self);  addform.showmodal;end;Procedure TMainForm.AddToRecord(line:Integer);var error: Integer;    Address: Dword;    i,j:  Integer;    bit: Integer;    tmp: string;    pc: ^char;    found: boolean;    bitl,nrofbits: integer;begin//first check if this address is already in the list!  i:=getvartype;  nrofbits:=length(foundlist.Items[line])-11;  if i=5 then //binary  begin    val(FoundList.Items[line][10],bit,error);    bitl:=nrofbits;  end  else  begin    bit:=0;    bitl:=0;  end;  if i=7 then //text    bit:=length(FoundList.Items[line])-8;  //in case of text use the bit record space for length  if i=8 then //array of bytes  begin    //bit will get the number of spaces +1    tmp:=foundlist.Items[line];    pc:=@tmp[9];    bit:=0;    while pc^<>chr(0) do    begin      if pc^=' ' then inc(bit);      inc(pc);    end;  end;  val('$'+FoundList.Items[line],address,error);  found:=false;  for j:=0 to NumberOfRecords-1 do    if (memrec[j].Address=address) and       (i=memrec[j].vartype) and       (bit=memrec[j].Bit) then    begin      if memrec[j].vartype=5 then      begin        if memrec[i].bitlength=bitl then        begin          found:=true;          break;        end;      end      else      begin        found:=true;        break;      end;    end;  if not found then  begin    inc(NumberOfRecords);    ReserveMem;    memrec[NumberOfRecords-1].Description:='No Description';    memrec[NumberOfRecords-1].Address:=address;    if getscantype=string_scan then memrec[NumberOfRecords-1].VarType:=0 else                                    memrec[NumberOfRecords-1].VarType:=getvartype;    memrec[NumberOfRecords-1].Frozen:=false;    memrec[NumberOfRecords-1].FrozenValue:=0;    memrec[NumberOfRecords-1].Bit:=bit;    memrec[NumberOfRecords-1].bitlength:=bitl;    hotkeys[NumberOfRecords-1]:=-1;    //add    output[0]:=CS_ADDADDRESS;    pdword(@output[1])^:=memrec[NumberOfRecords-1].Address;    output[5]:=memrec[NumberOfRecords-1].VarType;    output[6]:=memrec[NumberOfRecords-1].Bit;    output[7]:=memrec[NumberOfRecords-1].Bitlength;    sendbuf(8);  end

⌨️ 快捷键说明

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