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

📄 addaddress.pas

📁 冒险岛吸怪源码UCE的制作材料 用于冒险岛游戏的外挂
💻 PAS
📖 第 1 页 / 共 2 页
字号:

   // mainform.memrec[MainForm.NumberOfRecords-1].VarType:=Vartype.itemindex;
    //
    mainform.memrec[MainForm.NumberOfRecords-1].VarType:=vartype2;

    mainform.memrec[MainForm.NumberOfRecords-1].Bit:=bit;
    mainform.memrec[MainForm.NumberOfRecords-1].bitlength:=nrofbits;
    mainform.memrec[MainForm.NumberOfRecords-1].unicode:=cbunicode.Checked;



    {add pointer stuff}
    mainform.memrec[MainForm.NumberOfRecords-1].IsPointer:=cbpointer.Checked;
    setlength(mainform.memrec[mainform.NumberOfRecords-1].pointers,length(pointerinfo));

    for i:=0 to length(pointerinfo)-1 do
    begin
      if i=length(pointerinfo)-1 then
      begin
        mainform.memrec[mainform.NumberOfRecords-1].pointers[i].Interpretableaddress:=pointerinfo[length(pointerinfo)-1].address.text;
        mainform.memrec[mainform.NumberOfRecords-1].pointers[i].Address:=pt;
      end;

      mainform.memrec[mainform.NumberOfRecords-1].pointers[i].offset:=offsets[i];
    end;



    mainform.memrec[MainForm.NumberOfRecords-1].Frozen:=false;
    mainform.memrec[MainForm.NumberOfRecords-1].FrozenValue:=0;
    MainForm.FrozenFvalue[MainForm.NumberOfRecords-1]:=0;
    mainform.FrozenStrings[MainForm.NumberOfRecords-1]:='';
    mainform.Hotkeystrings[Mainform.NumberOfRecords-1]:='';
    mainform.Hotkeys[MainForm.NumberOfRecords-1]:=-1;

    MainForm.UpdateScreen;
    MainForm.updatelist;

    addform.close;
  end else showmessage('This address is already in the list');
end;

procedure TAddForm.VarTypeChange(Sender: TObject);
begin
  bitpanel.Visible:=Vartype.itemindex=0;
  if vartype.ItemIndex=7 then
  begin
    valuepanel.visible:=true;
    valuepanel.BringToFront;
    label12.Caption:='Nr. of Characters';
  end
  else if vartype.itemindex=8 then
  begin
    valuepanel.visible:=true;
    label12.Caption:='Nr. of Bytes';
  end
  else valuepanel.visible:=false;
end;

procedure TAddForm.FormShow(Sender: TObject);
begin
  addform.cbPointer.checked:=false;
  NewAddress.SetFocus;
  NewAddress.SelectAll;
  description.Text:='No description';
end;

procedure TAddForm.NewAddressKeyPress(Sender: TObject; var Key: Char);
begin
  if cbpointer.checked then timer1.Interval:=1;
end;

procedure TAddForm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  decimal(key);
end;

procedure TAddForm.cbPointerClick(Sender: TObject);
var i: integer;
begin
  if cbpointer.checked then
  begin

    newaddress.Enabled:=false;

    button3.visible:=true;
    button4.visible:=true;

    //create a address+offset combination and disable the normal address

    setlength(pointerinfo,1);
    pointerinfo[length(pointerinfo)-1].addresstext:=Tlabel.Create(self);
    with pointerinfo[length(pointerinfo)-1].addresstext do
    begin
      top:=142;
      left:=4;
      caption:='Address of pointer';
      parent:=self;
    end;

    pointerinfo[length(pointerinfo)-1].address:=TEdit.create(self);
    with pointerinfo[length(pointerinfo)-1].address do
    begin
      top:=140;
      left:=92;
      width:=105;
      onkeypress:=newaddress.onkeypress;
      parent:=self;
    end;

    pointerinfo[length(pointerinfo)-1].offsettext:=Tlabel.create(self);
    with pointerinfo[length(pointerinfo)-1].offsettext do
    begin
      top:=142;
      left:=212;
      caption:='Offset (Hex)';
      parent:=self;
    end;

    pointerinfo[length(pointerinfo)-1].offset:=TEdit.create(self);
    with pointerinfo[length(pointerinfo)-1].offset do
    begin
      top:=140;
      left:=275;
      width:=70;
      text:='0';
      hint:='Fill in the nr. of bytes after the location the pointer points to';
      showhint:=true;
      onkeypress:=offsetKeyPress;
      parent:=self;
    end;

    pointerinfo[length(pointerinfo)-1].ValueAtAddressText:=TLabel.Create(self);
    with pointerinfo[length(pointerinfo)-1].ValueAtAddressText do
    begin
      top:=126;
      left:=4;
//      width:=57;
      caption:='This pointer points to address ????????.';// The offset you chose brings it to ????????';
      showhint:=true;
      onkeypress:=offsetKeyPress;
      parent:=self;
    end;

    pointerinfo[length(pointerinfo)-1].FinalDestination:=TLabel.Create(self);
    with pointerinfo[length(pointerinfo)-1].FinalDestination do
    begin
      top:=126;
      left:=212;
//      width:=57;
      caption:='The offset you chose brings it to ????????';
      showhint:=true;
      onkeypress:=offsetKeyPress;
      parent:=self;
    end;



    height:=height+66;
  end
  else
  begin
    height:=170;
    newaddress.enabled:=true;
    button3.visible:=false;
    button4.visible:=false;

    for i:=0 to length(PointerInfo)-1 do
    begin
      pointerinfo[i].addresstext.free;
      pointerinfo[i].address.Free;
      pointerinfo[i].offsettext.Free;
      pointerinfo[i].offset.Free;
      pointerinfo[i].ValueAtAddressText.Free;
      pointerinfo[i].FinalDestination.Free;
    end;

    setlength(pointerinfo,0);

  end;

end;

procedure TAddForm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
  if key<>'-' then hexadecimal(key);
end;

procedure TAddForm.Button4Click(Sender: TObject);
begin
  if length(pointerinfo)=1 then cbPointer.checked:=false
  else
  begin
    pointerinfo[length(pointerinfo)-1].addresstext.free;
    pointerinfo[length(pointerinfo)-1].address.free;
    pointerinfo[length(pointerinfo)-1].offsettext.free;
    pointerinfo[length(pointerinfo)-1].offset.free;
    pointerinfo[length(pointerinfo)-1].valueataddresstext.free;
    pointerinfo[length(pointerinfo)-1].FinalDestination.free;
    pointerinfo[length(pointerinfo)-2].address.enabled:=true;
    pointerinfo[length(pointerinfo)-2].address.text:='';

    setlength(pointerinfo,length(pointerinfo)-1);
    height:=height-25;

  end;
end;

procedure TAddForm.Button3Click(Sender: TObject);
begin
  pointerinfo[length(pointerinfo)-1].address.text:='result of next pointer';
  pointerinfo[length(pointerinfo)-1].address.enabled:=false;

  setlength(pointerinfo,length(pointerinfo)+1);

  pointerinfo[length(pointerinfo)-1].addresstext:=Tlabel.Create(self);
  with pointerinfo[length(pointerinfo)-1].addresstext do
  begin
    top:=pointerinfo[length(pointerinfo)-2].addresstext.top+36;
    left:=4;
    caption:='Address of pointer';
    parent:=self;
  end;

  pointerinfo[length(pointerinfo)-1].address:=TEdit.create(self);
  with pointerinfo[length(pointerinfo)-1].address do
  begin
    top:=pointerinfo[length(pointerinfo)-2].address.top+36;
    left:=92;
    width:=105;
    onkeypress:=newaddress.onkeypress;
    parent:=self;
  end;

  pointerinfo[length(pointerinfo)-1].offsettext:=Tlabel.create(self);
  with pointerinfo[length(pointerinfo)-1].offsettext do
  begin
    top:=pointerinfo[length(pointerinfo)-2].offsettext.top+36;
    left:=212;
    caption:='Offset (Hex)';
    parent:=self;
  end;

  pointerinfo[length(pointerinfo)-1].offset:=TEdit.create(self);
  with pointerinfo[length(pointerinfo)-1].offset do
  begin
    top:=pointerinfo[length(pointerinfo)-2].offset.top+36;
    left:=275;
    width:=70;
    text:='0';
    hint:='Fill in the nr. of bytes after the location the pointer points to';
    showhint:=true;
    onkeypress:=offsetKeyPress;
    parent:=self;
  end;

  pointerinfo[length(pointerinfo)-1].ValueAtAddressText:=TLabel.Create(self);
  with pointerinfo[length(pointerinfo)-1].ValueAtAddressText do
  begin
    top:=pointerinfo[length(pointerinfo)-2].ValueAtAddressText.top+36;
    left:=4;
    caption:='This pointer points to address ????????.';// The offset you chose brings it to ????????';
    showhint:=true;
    onkeypress:=offsetKeyPress;
    parent:=self;
  end;

  pointerinfo[length(pointerinfo)-1].FinalDestination:=TLabel.Create(self);
  with pointerinfo[length(pointerinfo)-1].FinalDestination do
  begin
    top:=pointerinfo[length(pointerinfo)-2].FinalDestination.top+36;
    left:=212;
    caption:='The offset you chose brings it to ????????';
    showhint:=true;
    onkeypress:=offsetKeyPress;
    parent:=self;
  end;

  height:=height+36;
end;

procedure TAddForm.Timer1Timer(Sender: TObject);
begin
  timer1.Interval:=1000;
  if visible and cbpointer.checked then
    processaddress;
end;

end.

⌨️ 快捷键说明

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