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

📄 mainunit.pas

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

    NumberOfRecords: Integer;
    memrec: array of memoryrecord;
    FrozenFvalue: Array of Double;
    FrozenStrings: Array of string;
    FrozenBytes: array of array of byte;

    Hotkeystrings: Array of string;
    Hotkeys: array of integer;

    Selected: Array of Boolean;
    lastselected: Integer;
    LastLastSelected: Integer;
    FirstShiftSelected: Integer; //-1 = no shift pressed before else it contains the record that has been selected


    lastsave: array of memoryrecord;
    lastsavecount: Integer;

    NumberofLines: integer;
    freezedirection: array of TLabel;
    frozenbox:   array of TCheckbox;
    description: array of TLabel;
    address:     array of TLabel;
    ValType:     array of TLabel;
    Value:       array of TLabel;
    Select:      array of TLabel;

    Priority: Dword;
    memimage: TMemorystream;

    canceled: boolean;

    originalheight:integer;
    originalwidth:integer;

    max: integer;
    fronttext: string;


    aprilfools: boolean; 

    procedure AddToRecord(Line: Integer);
    procedure AddAutoAssembleScript(script:string);

    procedure Updatelist;
    Procedure UpdateScreen;
    procedure SetWriteBreakpoint(address: dword; size: dword);
    procedure SetReadBreakpoint(address: dword; size: dword);
    procedure setfoundlisthorizontal;
    procedure reserveMem;
    procedure ChangeValue(Itemnr: integer; NewValue:String);
    function  getStringFromRecord(itemid: Integer):string;
    procedure EnableHypermode;
    procedure disableHypermode;
    Procedure UpdateScanType;
    procedure enableGui;
    procedure disableautoassemblecheat(i: integer);
    procedure enableautoassemblecheat(i: integer);
    procedure addaddress(description: string; address:dword; const offsets: array of dword; offsetcount: integer; ispointer: boolean; vartype: integer; length: integer; startbit:integer; unicode: boolean); overload;
    procedure addaddress(description: string; address:dword; const offsets: array of dword; offsetcount: integer; ispointer: boolean; vartype: integer; length: integer; startbit:integer; unicode,showashex: boolean); overload;
  end;

var
  MainForm: TMainForm;
  ToggleWindows: TTogglewindows;

implementation

uses mainunit2,ProcessWindowUnit, MemoryBrowserFormUnit, TypePopup,
  AddAddress, HotKeys, standaloneunit, aboutunit,
  CommentsUnit, formsettingsunit, Changeoffsetunit, FoundCodeUnit, advancedoptionsunit,
  formScanningUnit, formDifferentBitSizeUnit,OpenSave,
  formMemoryTrainerUnit, MemoryTrainerDesignUnit, formhotkeyunit,
  formAddressChangeUnit, formmemoryregionsunit,formPointerOrPointeeUnit,
  frmhotkeyconfigunit, frmProcessWatcherUnit, formProcessInfo, frmautoinjectunit,
  PasteTableentryFRM, pointerscannerfrm, PointerscannerSettingsFrm,
  InjectedpointerscanornotFRM;

{$R *.DFM}

var ncol: TColor;
procedure TFlash.Col;
begin
  mainform.panel7.Color:=ncol;
end;

procedure TFlash.Execute;
var red,green: byte;
    decreasered: boolean;
begin
  decreasered:=true;
  red:=254;
  green:=0;
  while not terminated do
  begin
    if decreasered then
    begin
      dec(red,2);
      inc(green,2);
      if green>=250 then decreasered:=false;
    end
    else
    begin
      inc(red,2);
      dec(green,2);
      if red>=254 then
        decreasered:=true;
    end;
    ncol:=(green shl 8)+red;
    synchronize(col); //sigh (withouth it works too, but at least with this I know for sure it works.

    sleep(10);
  end;
  mainform.Panel7.Color:=clBtnFace;
end;

constructor TToggleWindows.Create(CreateSuspended: Boolean);
begin
  freeonterminate:=true;
  inherited Create(CreateSuspended);
end;

procedure TToggleWindows.Execute;
begin
  toggleotherwindows;
  togglewindows:=nil;
end;

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.
//mainform.pix
  MMInfo:=ptr(message.LParam);
  if pixelsperinch=96 then
  begin
    MMInfo.ptMinTrackSize:=point(490,460);
  end;
end;

procedure TFcontrol.wmMouseWheel(var msg: TWMMousewheel);
var k: word;

begin
  //move down message

  if msg.WheelDelta>0 then
    k:=vk_up
  else
    k:=vk_down;

  mainform.FControlKeyDown(self, k,[]);
end;

procedure TMainform.Hotkey2(var Message:TMessage);
var i:integer;
    a,b: single;
begin
  case message.WParam of
    0:
    begin
      //popup/hide CE
      if advancedoptions.Pausebutton.Down then
      begin
        errorbeep;
        exit;
      end;

      beep;

      if formsettings.cbHideAllWindows.checked then
      begin
        ToggleWindow;

        if formsettings.cbCenterOnPopup.checked then
          if not allwindowsareback then
            setwindowpos(mainform.Handle,HWND_NOTOPMOST,(screen.Width div 2)-(mainform.Width div 2),(screen.Height div 2)-(mainform.height div 2),mainform.Width,mainform.Height,SWP_NOZORDER or SWP_NOACTIVATE);

        if not allwindowsareback then application.BringToFront else
          setforegroundwindow(lastforeground);

        adjustbringtofronttext;
        exit;
      end;

      application.BringToFront;
      SetForegroundWindow(mainform.Handle);

      mainform.SetFocus;

      if formsettings.cbCenterOnPopup.checked then
        setwindowpos(mainform.Handle,HWND_NOTOPMOST,(screen.Width div 2)-(mainform.Width div 2),(screen.Height div 2)-(mainform.height div 2),mainform.Width,mainform.Height,SWP_NOZORDER or SWP_NOACTIVATE);

      formstyle:=fsStayOnTop;
    end;

    1: //Pause
    begin
      with advancedoptions do
      begin
        pausedbyhotkey:=true;
        pausebutton.down:=not pausebutton.down;
        pausebutton.Click;
        pausedbyhotkey:=false;
      end;
    end;

    2: //speedhack
    begin
      if cbSpeedhack.Enabled then
      begin
        beep;
        cbSpeedhack.checked:=not cbSpeedhack.Checked;
      end;
    end;

    //3..7=set speedhack speed
    3:
    begin
      if cbspeedhack.enabled then
      begin
        cbspeedhack.Checked:=true;
        if cbspeedhack.checked then
        begin
          edit2.Text:=format('%.2f',[speedhackspeed1.speed]);
          edit1.Text:=inttostr(speedhackspeed1.sleeptime);
          btnSetSpeedhack.Click;
        end;
      end;
    end;

    4:
    begin
      if cbspeedhack.enabled then
      begin
        cbspeedhack.Checked:=true;
        if cbspeedhack.checked then
        begin
          edit2.Text:=format('%.2f',[speedhackspeed2.speed]);
          edit1.Text:=inttostr(speedhackspeed2.sleeptime);
          btnSetSpeedhack.Click;
        end;
      end;
    end;

    5:
    begin
      if cbspeedhack.enabled then
      begin
        cbspeedhack.Checked:=true;
        if cbspeedhack.checked then
        begin
          edit2.Text:=format('%.2f',[speedhackspeed3.speed]);
          edit1.Text:=inttostr(speedhackspeed3.sleeptime);
          btnSetSpeedhack.Click;
        end;
      end;
    end;

    6:
    begin
      if cbspeedhack.enabled then
      begin
        cbspeedhack.Checked:=true;
        if cbspeedhack.checked then
        begin
          edit2.Text:=format('%.2f',[speedhackspeed4.speed]);
          edit1.Text:=inttostr(speedhackspeed4.sleeptime);
          btnSetSpeedhack.Click;
        end;
      end;
    end;

    7:
    begin
      if cbspeedhack.enabled then
      begin
        cbspeedhack.Checked:=true;
        if cbspeedhack.checked then
        begin
          edit2.Text:=format('%.2f',[speedhackspeed5.speed]);
          edit1.Text:=inttostr(speedhackspeed5.sleeptime);
          btnSetSpeedhack.Click;
        end;
      end;
    end;

    8:
    begin
      //increase speed
      try
        if cbspeedhack.Enabled then
        begin
          cbspeedhack.Checked:=true;
          if cbspeedhack.Checked then
          begin
            a:=strtofloat(edit2.text);
            a:=a+speedupdelta;
            edit2.Text:=format('%.2f',[a]);
            btnSetSpeedhack.Click;
          END;
        end;
      except

      end;
    end;


    9:
    begin
      //decrease speed
      try
        if cbspeedhack.Enabled then
        begin
          cbspeedhack.Checked:=true;
          if cbspeedhack.Checked then
          begin
            a:=strtofloat(edit2.text);
            b:=b-slowdowndelta;
            edit2.Text:=format('%.2f',[b]);
            btnSetSpeedhack.Click;
          end;
        end;
      except

      end;
    end;

    10..18: //Change type (if possible)
    begin
      if vartype.Enabled then
        vartype.itemindex:=message.WParam-3
      else
      begin
        errorbeep;
      end;
    end;

    19://new scan
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning


      i:=vartype.ItemIndex;

      if newscan.Caption=strNewScan then
        newscan.Click; //start new scan

      vartype.ItemIndex:=i;
      vartype.OnChange(vartype); //set previous type
    end;

    20: //new scan unknown initial value
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      i:=vartype.ItemIndex;

      if newscan.Caption=strNewScan then
        newscan.Click; //start new scan

      vartype.ItemIndex:=i;
      vartype.OnChange(vartype);

      scantype.ItemIndex:=scantype.Items.IndexOf(StrUnknownInitialValue);
      scantype.OnChange(scantype);

      newscan.Click;
    end;

    21: //next scan IncreasedValue
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      if nextscanbutton.Enabled then
      begin
        scantype.ItemIndex:=scantype.Items.IndexOf(StrIncreasedValue);
        scantype.OnChange(scantype);

        nextscanbutton.click;
      end
      else Errorbeep;
    end;

    22: //next scan DecreasedValue
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      if nextscanbutton.Enabled then
      begin
        scantype.ItemIndex:=scantype.Items.IndexOf(StrDecreasedValue);
        scantype.OnChange(scantype);

        nextscanbutton.click;
      end
      else Errorbeep;
    end;

    23: //next scan ChangedValue
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      if nextscanbutton.Enabled then
      begin
        scantype.ItemIndex:=scantype.Items.IndexOf(StrChangedValue);
        scantype.OnChange(scantype);

        nextscanbutton.click;
      end
      else Errorbeep;
    end;

    24: //next scan unchangedValue
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      if nextscanbutton.Enabled then
      begin
        scantype.ItemIndex:=scantype.Items.IndexOf(StrUnchangedValue);
        scantype.OnChange(scantype);

        nextscanbutton.click;
      end
      else Errorbeep;
    end;

    25: //undo lastscan
    begin
      if not newscan.Enabled then exit;
      if (formscanning<>nil) and (formscanning.Visible) then exit; //it's scanning

      if undoscan.Enabled then
        undoscan.Click
      else
        Errorbeep;
    end;

    26: //cancel current scan
    begin
      if (formscanning<>nil) and (formscanning.btnCancel.Enabled) then
        formscanning.btnCancel.Click;
    end;

  end;

⌨️ 快捷键说明

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