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

📄 formmemorymodifier.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          temp:=length(tlabel2(frmtrainerdesigner.Components[i]).Command);
          trainer.writebuffer(temp,4);
          x:=pchar(tlabel2(frmtrainerdesigner.Components[i]).Command);
          trainer.writebuffer(pointer(x)^,temp);

          //cursor
          trainer.WriteBuffer(tlabel2(frmtrainerdesigner.Components[i]).cursor,sizeof(tcursor));

          //tag
          trainer.WriteBuffer(tlabel2(frmtrainerdesigner.Components[i]).tag,sizeof(integer));

          //fontstyle
          tempb:=tlabel2(frmtrainerdesigner.Components[i]).Font.Style=[fsUnderline];
          trainer.WriteBuffer(tempb,sizeof(tempb));
        end;

      end;

      temp:=$ffffffff;  //indicate no other objects (although the eof would be a good indication too...)
      trainer.WriteBuffer(temp,4);
    end;

    //save to file
    trainer.SaveToFile(savedialog1.filename);
    trainer.free;

    showmessage('Trainer generated');
  end;
end;

procedure TfrmMemoryModifier.Button5Click(Sender: TObject);
var HI: HICON;
    test: TMemorystream;
begin
  if opendialog2.execute then
  begin
    HI:=ExtractIcon(hinstance,pchar(opendialog2.filename),0);
    if hi=1 then
      raise exception.Create('This file type is not supported');

    if hi=0 then
      raise exception.Create('No icon found in this file');


    icon.Picture.Icon.Handle:=HI;
    test:=TMemoryStream.Create;
    icon.Picture.Icon.SaveToStream(test);

    try
      if test.Size<>766 then
        raise exception.Create('The size of this icon is '+IntToStr(test.size)+'. It should be 766');
    finally
      test.free;
    end;

    frmMemoryTrainerPreview.Icon:=icon.Picture.Icon;
    if frmTrainerDesigner<>nil then frmtrainerdesigner.Icon:=icon.Picture.Icon;
  end;
end;

procedure TfrmMemoryModifier.editTitleChange(Sender: TObject);
begin
  frmMemoryTrainerPreview.Caption:=edittitle.Text;
  if frmTrainerDesigner<>nil then frmTrainerdesigner.Caption:=edittitle.Text;
  changed:=true;
end;

procedure TfrmMemoryModifier.Button6Click(Sender: TObject);
var index: integer;
    i,j: integer;
begin
  index:=recordview.ItemIndex;
  if index<>-1 then
  begin
    for i:=0 to length(trainerdata[index].codeentrys)-1 do
      setlength(trainerdata[index].codeentrys[i].originalopcode,0);

    setlength(trainerdata[index].codeentrys,0);
    setlength(trainerdata[index].addressentrys,0);

    for i:=index to length(trainerdata)-2 do
      trainerdata[i]:=trainerdata[i+1];

    setlength(trainerdata,length(trainerdata)-1);
    recordview.DeleteSelected;
  end;

  frmMemoryTrainerPreview.UpdateScreen;
  if frmtrainerdesigner<>nil then frmtrainerdesigner.updatecheats
end;

procedure TfrmMemoryModifier.spbUpClick(Sender: TObject);
var temp:TTrainerdata;
    indeX: integer;
    desc,hotkey: string;
begin
  index:=recordview.ItemIndex;
  if index>=1 then
  begin
    temp:=trainerdata[index];
    trainerdata[index]:=trainerdata[index-1];
    trainerdata[index-1]:=temp;

    desc:=recordview.Items[index].Caption;
    hotkey:=recordview.Items[index].SubItems[0];
    recordview.Items[index]:=recordview.items[index-1];

    recordview.Items[index-1].Caption:=desc;
    recordview.Items[index-1].SubItems[0]:=hotkey;

    recordview.Items[index-1].Selected:=true;
  end;

  spbUp.Enabled:=recordview.itemindex>0;
  spbDown.enabled:=recordview.itemindex<(recordview.Items.Count-1);

  frmMemoryTrainerPreview.UpdateScreen;
  if frmtrainerdesigner<>nil then frmtrainerdesigner.updatecheats
end;

procedure TfrmMemoryModifier.spbDownClick(Sender: TObject);
var temp:TTrainerdata;
    indeX: integer;
    desc,hotkey: string;
begin
  index:=recordview.ItemIndex;
  if index<recordview.Items.Count-1 then
  begin
    temp:=trainerdata[index];
    trainerdata[index]:=trainerdata[index+1];
    trainerdata[index+1]:=temp;

    desc:=recordview.Items[index].Caption;
    hotkey:=recordview.Items[index].SubItems[0];
    recordview.Items[index]:=recordview.items[index+1];

    recordview.Items[index+1].Caption:=desc;
    recordview.Items[index+1].SubItems[0]:=hotkey;

    recordview.Items[index+1].Selected:=true;
  end;

  spbUp.Enabled:=recordview.itemindex>0;
  spbDown.enabled:=recordview.itemindex<(recordview.Items.Count-1);

  frmMemoryTrainerPreview.UpdateScreen;
  if frmtrainerdesigner<>nil then frmtrainerdesigner.updatecheats
end;

procedure TfrmMemoryModifier.LoadButtonClick(Sender: TObject);
begin
  if opendialog3.Execute then
    edit2.text:=extractfilename(opendialog3.filename);
end;

procedure TfrmMemoryModifier.FormCreate(Sender: TObject);
Var SNAPHandle: THandle;
    ProcessEntry: ProcessEntry32;
    Check: Boolean;
    FullProcessName,ProcessName: String;
    I: Integer;
begin
  changed:=false;

  left:=mainform.left-180;
  if left<0 then left:=0;

  top:=mainform.top+( (mainform.clientheight div 2)-(height div 2));

  combobox1.clear;
  SNAPHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  If SnapHandle>0 then
  begin
    ProcessEntry.dwSize:=SizeOf(ProcessEntry);
    Check:=Process32First(SnapHandle,ProcessEntry);
    while check=true do
    begin
      ProcessName:='';
      FullProcessName:='';
      FullProcessName:=processentry.szExeFile;
      i:=Length(FullProcessName);
      while (i>0) and (FullProcessname[i-1]<>'\') do dec(i);
      processname:=copy(FullProcessName,i,length(FullProcessname)-i+1);
      combobox1.Items.Add(processname);
      check:=Process32Next(SnapHandle,ProcessEntry);
    end;
  end else raise exception.Create('I can''t get the process list.');

  frmMemoryTrainerPreview:=tfrmMemoryTrainerPreview.create(self);
  frmMemoryTrainerPreview.left:=left+width;
  frmMemoryTrainerPreview.Top:=top;
  frmMemoryTrainerPreview.Height:=height;
  

end;

procedure TfrmMemoryModifier.Edit2Change(Sender: TObject);
begin
  changed:=true;
end;

procedure TfrmMemoryModifier.ComboBox1Change(Sender: TObject);
begin
  changed:=true;
end;

procedure TfrmMemoryModifier.Button3Click(Sender: TObject);
begin
  if changed or (recordview.items.count>0) then
  begin
    if messagedlg('Are you sure?',mtConfirmation,[mbyes,mbno],0)=mrYes then modalresult:=mrcancel;
  end else modalresult:=mrcancel;

  if modalresult=mrcancel then close;
end;

procedure TfrmMemoryModifier.Button7Click(Sender: TObject);
begin
  if frmTrainerDesigner<>nil then
  begin
    frmTrainerDesigner.Close;
    exit;
  end;

  button2.Enabled:=false;

  frmMemoryTrainerPreview.Visible:=false;
  frmTrainerDesigner:=Tfrmtrainerdesigner.create(self);
  frmTrainerdesigner.Caption:=edittitle.Text;
  frmtrainerdesigner.Icon:=frmMemoryTrainerPreview.Icon;
  frmTrainerDesigner.BoundsRect:=frmMemoryTrainerPreview.BoundsRect;
  frmTrainerDesigner.show;

  button7.Caption:='Use default trainer layout';
end;

procedure TfrmMemoryModifier.EditHotkeyKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var newstr: String;
begin
  laststate:=Key;
  lastshiftstate:=Shift;

  newstr:='';
  if ssCtrl in Shift then newstr:='Ctrl';
  if ssAlt in shift then if newstr='' then newstr:='Alt' else newstr:=newstr+'+Alt';
  if ssShift in Shift then if newstr='' then newstr:='Shift' else newstr:=newstr+'+Shift';

  if newstr='' then
    newstr:=KeyToStr(key)
  else
    newstr:=newstr+'+'+KeyToStr(key);

  edithotkey.text:=newstr;
  key:=0;
end;

procedure TfrmMemoryModifier.CheckBox1Click(Sender: TObject);
begin
  edithotkey.Enabled:=checkbox1.Checked;
end;

procedure TfrmMemoryModifier.FormShow(Sender: TObject);
begin
  if not dontshowdefault then frmMemoryTrainerPreview.Show;
end;

procedure TfrmMemoryModifier.EditHotkeyKeyPress(Sender: TObject;
  var Key: Char);
begin
  key:=#0;
end;

procedure TfrmMemoryModifier.recordviewDblClick(Sender: TObject);
var i,j: integer;
begin
{  i:=recordview.ItemIndex;
  if i<>-1 then
  begin
    FrmMemoryTrainerAddEntry:=tFrmMemoryTrainerAddEntry.create(self);
    FrmMemoryTrainerAddEntry.editmode:=true;

    with FrmMemoryTrainerAddEntry do
    begin
      editDescription.Text:=trainerdata[i].description;
      edithotkey.Text:=trainerdata[i].hotkeytext;
      laststate:=trainerdata[i].hotkey;
      lastshiftstate:=[];

      if (trainerdata[i].hotshift and MOD_CONTROL)=MOD_CONTROL then lastshiftstate:=lastshiftstate+[ssctrl];
      if (trainerdata[i].hotshift and MOD_ALT)=MOD_ALT then lastshiftstate:=lastshiftstate+[ssalt];
      if (trainerdata[i].hotshift and MOD_Shift)=MOD_Shift then lastshiftstate:=lastshiftstate+[ssshift];

      for j:=0 to length(trainerdata[i].codeentrys)-1 do
      begin
        trainerdata[i].codeentrys[j].address
        trainerdata[i].codeentrys[j].originalopcode


      end;
    end;

    FrmMemoryTrainerAddEntry.showmodal;

    frmMemoryTrainerPreview.UpdateScreen;
    if frmTrainerDesigner<>nil then
      frmTrainerDesigner.UpdateCheats;
  end;}
end;

end.

⌨️ 快捷键说明

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