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

📄 mainform.pas

📁 纵横天地(开源) Delphi的功能很多``很值得大家学习
💻 PAS
📖 第 1 页 / 共 5 页
字号:
                     SellIsFinish:=GetBeiBaoInfo('出售','未用');
                     exit;
                 end;
             end;  //寻路END
         end;
    end
    else
      SellIsFinish:=SellFinish;


    if  CheckBox24.Checked then    //购买物品
    begin
        if not BuyIsFinish then
        begin
           Timer2.Enabled :=False;
           if IsXunLuStop(GoCityX,GoCityY)  then
           begin
               if not BuyNpcIsOpen then   //打开NPC
               begin
                   NpcID:=GetGuaiWuInfo('怪物ID',ComboBox5.Text);
                   if NpcID>0 then
                   begin
                       Call.OpenNpc(NpcID);
                       BuyNpcIsOpen:=True;
                       exit;
                   end;
               end;

               if BuyNpcIsOpen then  //如果NPC已经打开
               begin
                   if BuyYaoPinFun=BuyFinish then
                   begin
                       BuyIsFinish:=True;
                       exit;
                   end;
               end;
           end;  //寻路END
        end;
    end
    else
        BuyIsFinish:=True;


    if CheckBox25.Checked then
    begin
      if not XiuLiIsFinish then
      begin
           if IsXunLuStop(GoCityX,GoCityY)  then
           begin
                   if not XiuLiNpcIsOpen then   //打开NPC
                   begin
                       NpcID:=GetGuaiWuInfo('怪物ID',ComboBox5.Text);
                       if NpcID>0 then
                       begin
                           Call.OpenNpc(NpcID);
                           XiuLiNpcIsOpen:=True;
                           exit;
                       end;
                   end;

                   if XiuLiNpcIsOpen then
                   begin
                      Call.XiuLiZhuangBei;
                      Sleep(100);
                      XiuLiIsFinish:=True;
                   end;
           end;
      end;
    end
    else
       XiuLiIsFinish:=True;

    if  (SellIsFinish=SellFinish)and(BuyIsFinish=True)and(XiuLiIsFinish=True) then
    begin
        StatusBar1.Panels[0].Text :='提示: 正在返回挂机点...';
        YaoPinState:='有药';
        if IsXunLuStop(BackX,BackY)  then
        begin
           Timer3.Enabled :=False;
           SellIsFinish:=NoSellFinish;
           BuyIsFinish:=False;
           XiuLiIsFinish:=False;
           SellNpcIsOpen:=False;
           BuyNpcIsOpen:=False;
           XiuLiNpcIsOpen:=False;
           StatusBar1.Panels[0].Text :='';
           Timer2.Enabled :=True;
        end;
    end;
end;

Function GuaiIsDead:Boolean;
var
  KillGuaiAddr,KillGuaiXue:Integer;
begin
  Result:=False;
  KillGuaiAddr:=0;
  ReadProcessMemory(hProcess, Pointer(KillGuaiBase), @KillGuaiAddr, 4, ByteRead);
  if KillGuaiAddr<>0 then
  begin
     ReadProcessMemory(hProcess, Pointer(KillGuaiAddr+$150), @KillGuaiXue, 4, ByteRead);
     if (KillGuaiXue=0)  then
     begin
        Result:=True;
        exit;
     end;
  end
  else
     Result:=True;
end;

procedure TForm1.KillGuaiProc;
var
  KillGuaiAddr,IsFull,IsNoYao,IsSunHuai:Integer;
  KillGuaiXue:Integer;
  ZhuangTai:Byte;
begin
  if GuaiIsDead then
  begin
    if  Form1.CheckBox23.Checked then  //是否卖物
    begin
        IsFull:=GetBeiBaoInfo('包满','未用');
        if IsFull=BaoMan then
        begin
             BackX:=Round(RenX);BackY:=Round(RenY); BackZ:=Round(RenZ);
             Form1.Timer2.Enabled :=False;
             Form1.Timer3.Enabled :=True;
             StatusBar1.Panels[0].Text :='提示: 背包已满,正在回城卖物...';
             exit;
        end;
    end;

    if  Form1.CheckBox24.Checked then  //是否买药
    begin
        if YaoPinState='无药' then
        begin
             BackX:=Round(RenX);BackY:=Round(RenY); BackZ:=Round(RenZ);
             Form1.Timer2.Enabled :=False;
             Form1.Timer3.Enabled :=True;
             StatusBar1.Panels[0].Text :='提示: 药品用完了,正在回城买药...';
             YaoPinState:='有药';
             exit;
        end;
    end;

    if  Form1.CheckBox25.Checked then  //修理装备
    begin
        IsSunHuai:=GetBeiBaoInfo('耐久度','未用');
        if IsSunHuai=ZhungBeiDamage then
        begin
             BackX:=Round(RenX);BackY:=Round(RenY); BackZ:=Round(RenZ);
             Form1.Timer2.Enabled :=False;
             Form1.Timer3.Enabled :=True;
             StatusBar1.Panels[0].Text :='提示: 装备已经损坏,正在回城修理装备...';
             exit;
        end;
    end;

  end; 

  if not GuaiIsDead then
  begin
    ZhanDouBaoHu;
  end;

end;

procedure TForm1.LoadInitFile(FName:string);
var
i:Integer;
FullName:string;
StrList:TStrings;
begin
    if hProcess=0 then
        exit;
    FullName:=ExtractFilePath(Paramstr (0))+FName+'.ini';
    FileName:=TIniFile.Create(FullName);
    StrList:=TStringList.Create;
    
    FileName.ReadSection('出售列表',StrList);
    if StrList.Count <> 0 then
    begin
      for i:=0 to StrList.Count -1 do
        Form1.ListBox3.Items.Add(FileName.ReadString('出售列表',StrList.Strings[i],''));
    end;
    StrList.Clear;

    FileName.ReadSection('怪物过滤',StrList);
    if StrList.Count <> 0 then
    begin
      for i:=0 to StrList.Count -1 do
        Form1.ListBox2.Items.Add(FileName.ReadString('怪物过滤',StrList.Strings[i],''));
    end;
    StrList.Clear;

    FileName.ReadSection('清理背包',StrList);
    if StrList.Count <> 0 then
    begin
      for i:=0 to StrList.Count -1 do
        Form1.ListBox4.Items.Add(FileName.ReadString('清理背包',StrList.Strings[i],''));
    end;
    StrList.Clear;


    Form1.Edit5.Text:=FileName.ReadString('技能设置','skill1','选择技能');
    Form1.LabeledEdit19.Text:=FileName.ReadString('技能设置','skill1Time','1');
    Form1.Edit6.Text:=FileName.ReadString('技能设置','skill2','选择技能');
    Form1.LabeledEdit20.Text:=FileName.ReadString('技能设置','skill2Time','1');
    Form1.Edit7.Text:=FileName.ReadString('技能设置','skill3','选择技能');
    Form1.LabeledEdit21.Text:=FileName.ReadString('技能设置','skill3Time','1');

    Form1.Edit8.Text:=FileName.ReadString('技能设置','skill4','选择技能');
    Form1.LabeledEdit22.Text:=FileName.ReadString('技能设置','skill4Time','1');
    Form1.Edit9.Text:=FileName.ReadString('技能设置','skill5','选择技能');
    Form1.LabeledEdit23.Text:=FileName.ReadString('技能设置','skill5Time','1');
    Form1.Edit10.Text:=FileName.ReadString('技能设置','skill6','选择技能');
    Form1.LabeledEdit24.Text:=FileName.ReadString('技能设置','skill6Time','1');


    Form1.Edit3.Text:=FileName.ReadString('战斗保护','EatXueCount','0');
    Form1.ComboBox3.Text:=FileName.ReadString('战斗保护','EatXue','回血脂');
    Form1.LabeledEdit9.Text:=FileName.ReadString('战斗保护','SleepXueTime','30');
    Form1.LabeledEdit10.Text:=FileName.ReadString('战斗保护','BuyXueNum','20');

    Form1.Edit4.Text:=FileName.ReadString('战斗保护','EatLanCount','0');
    Form1.ComboBox4.Text:=FileName.ReadString('战斗保护','EatLan','回灵脂');
    Form1.LabeledEdit12.Text:=FileName.ReadString('战斗保护','SleepLanTime','30');
    Form1.LabeledEdit11.Text:=FileName.ReadString('战斗保护','BuyLanNum','20');

    Form1.Edit1.Text:=FileName.ReadString('非战斗保护','EatXueCount','0');
    Form1.ComboBox1.Text:=FileName.ReadString('非战斗保护','EatXue','调息');
    Form1.LabeledEdit5.Text:=FileName.ReadString('非战斗保护','SleepXueTime','30');
    Form1.LabeledEdit7.Text:=FileName.ReadString('非战斗保护','BuyXueNum','20');

    Form1.Edit2.Text:=FileName.ReadString('非战斗保护','EatLanCount','0');
    Form1.ComboBox2.Text:=FileName.ReadString('非战斗保护','EatLan','调息');
    Form1.LabeledEdit6.Text:=FileName.ReadString('非战斗保护','SleepLanTime','30');
    Form1.LabeledEdit8.Text:=FileName.ReadString('非战斗保护','BuyLanNum','20');


    Form1.Edit11.Text:=FileName.ReadString('装备保护','XiuLiNum','1');
    Form1.LabeledEdit26.Text:=FileName.ReadString('装备保护','NaiJiuDu','20');

 //   Form1.ComboBox5.Text:=FileName.ReadString('回城NPC','NpcName','');
    StrList.Free;
end;

procedure TForm1.SaveInitFile;
var
i:word;
StrList:TStrings;
begin
    if hProcess=0 then
        exit;
    StrList:=TStringList.Create;
    
    FileName.ReadSection('出售列表',StrList);
    if StrList.Count <>0 then
    begin
      for i:=0 to StrList.Count -1 do
        FileName.DeleteKey('出售列表','GoodsFilter'+inttostr(i));
    end;
    if Form1.ListBox3.Count<>0 then
    begin
      for i:= 0 to Form1.ListBox3.Count-1 do
         FileName.WriteString('出售列表','GoodsFilter'+inttostr(i),Form1.ListBox3.Items[i]);
    end;
    StrList.Clear;

    FileName.ReadSection('怪物过滤',StrList);
    if StrList.Count <>0 then
    begin
      for i:=0 to StrList.Count -1 do
        FileName.DeleteKey('怪物过滤','GuaiWu'+inttostr(i));
    end;
    if Form1.ListBox2.Count<>0 then
    begin
      for i:= 0 to Form1.ListBox2.Count-1 do
         FileName.WriteString('怪物过滤','GuaiWu'+inttostr(i),Form1.ListBox2.Items[i]);
    end;
    StrList.Clear;

    FileName.ReadSection('清理背包',StrList);
    if StrList.Count <>0 then
    begin
      for i:=0 to StrList.Count -1 do
        FileName.DeleteKey('清理背包','BeiBao'+inttostr(i));
    end;
    if Form1.ListBox4.Count<>0 then
    begin
      for i:= 0 to Form1.ListBox4.Count-1 do
         FileName.WriteString('清理背包','BeiBao'+inttostr(i),Form1.ListBox4.Items[i]);
    end;
    StrList.Clear;


    FileName.WriteString('技能设置','skill1',Form1.Edit5.Text);
    FileName.WriteString('技能设置','skill1Time',Form1.LabeledEdit19.Text);
    FileName.WriteString('技能设置','skill2',Form1.Edit6.Text);
    FileName.WriteString('技能设置','skill2Time',Form1.LabeledEdit20.Text);
    FileName.WriteString('技能设置','skill3',Form1.Edit7.Text);
    FileName.WriteString('技能设置','skill3Time',Form1.LabeledEdit21.Text);

    FileName.WriteString('技能设置','skill4',Form1.Edit8.Text);
    FileName.WriteString('技能设置','skill4Time',Form1.LabeledEdit22.Text);
    FileName.WriteString('技能设置','skill5',Form1.Edit9.Text);
    FileName.WriteString('技能设置','skill5Time',Form1.LabeledEdit23.Text);
    FileName.WriteString('技能设置','skill6',Form1.Edit10.Text);
    FileName.WriteString('技能设置','skill6Time',Form1.LabeledEdit24.Text);



    FileName.WriteString('战斗保护','EatXueCount',Edit3.Text);
    FileName.WriteString('战斗保护','EatXue',Form1.ComboBox3.Text);
    FileName.WriteString('战斗保护','SleepXueTime',LabeledEdit9.Text);
    FileName.WriteString('战斗保护','BuyXueNum',LabeledEdit10.Text);

    FileName.WriteString('战斗保护','EatLanCount',Edit4.Text);
    FileName.WriteString('战斗保护','EatLan',Form1.ComboBox4.Text);
    FileName.WriteString('战斗保护','SleepLanTime',LabeledEdit12.Text);
    FileName.WriteString('战斗保护','BuyLanNum',LabeledEdit11.Text);

    FileName.WriteString('非战斗保护','EatXueCount',Edit1.Text);
    FileName.WriteString('非战斗保护','EatXue',Form1.ComboBox1.Text);
    FileName.WriteString('非战斗保护','SleepXueTime',LabeledEdit5.Text);
    FileName.WriteString('非战斗保护','BuyXueNum',LabeledEdit7.Text);

    FileName.WriteString('非战斗保护','EatLanCount',Edit2.Text);
    FileName.WriteString('非战斗保护','EatLan',Form1.ComboBox2.Text);
    FileName.WriteString('非战斗保护','SleepLanTime',LabeledEdit6.Text);
    FileName.WriteString('非战斗保护','BuyLanNum',LabeledEdit8.Text);

    FileName.WriteString('装备保护','XiuLiNum',Form1.Edit11.Text);
    FileName.WriteString('装备保护','NaiJiuDu',Form1.LabeledEdit26.Text);

   // FileName.WriteString('回城NPC','NpcName',Form1.ComboBox5.Text);
StrList.Free;
end;



procedure EnableControl(Control:TControl);
begin
    Control.Enabled :=not Control.Enabled;
end;


procedure TForm1.CheckBox35Click(Sender: TObject);
begin
    if (Trim(LabeledEdit27.Text)='') then
    begin
        CheckBox35.Checked :=False;
        StatusBar1.Panels[0].Text :='请输入回原点的时间。。。';
        exit;
    end;

    if (Trim(LabeledEdit28.Text)='') or (Trim(LabeledEdit29.Text)='')then
    begin
        CheckBox35.Checked :=False;
        StatusBar1.Panels[0].Text :='坐标未设置,请先设置坐标。。。';
        exit;
    end;

  StatusBar1.Panels[0].Text:='';
 EnableControl(SpeedButton13);
 EnableControl(LabeledEdit27);
 EnableControl(LabeledEdit28);
 EnableControl(LabeledEdit29);
end;



procedure TForm1.CheckBox5Click(Sender: TObject);
begin
 EnableControl(LabeledEdit13);
end;

procedure TForm1.CheckBox6Click(Sender: TObject);
begin
 EnableControl(LabeledEdit14);
end;

procedure TForm1.CheckBox7Click(Sender: TObject);
begin
 EnableControl(LabeledEdit15); 
end;

procedure TForm1.CheckBox8Click(Sender: TObject);
begin
 EnableControl(LabeledEdit16); 
end;

procedure TForm1.CheckBox9Click(Sender: TObject);
begin
 EnableControl(LabeledEdit17); 
end;

procedure TForm1.CheckBox10Click(Sender: TObject);
begin
 EnableControl(LabeledEdit18); 
end;

procedure TForm1.CheckBox11Click(Sender: TObject);
begin
  if hProcess=0 then
  begin
      CheckBox11.Checked :=False;
      exit;
  end;
 EnableControl(Edit5);
 EnableControl(LabeledEdit19);
 EnableControl(SpeedButton2);
end;

procedure TForm1.CheckBox12Click(Sender: TObject);
begin
 EnableControl(Edit6);
 EnableControl(LabeledEdit20);
 EnableControl(SpeedButton3);
end;

procedure TForm1.CheckBox13Click(Sender: TObject);
begin
 EnableControl(Edit7);
 EnableControl(LabeledEdit21);
 EnableControl(SpeedButton4);
end;

procedure TForm1.CheckBox14Click(Sender: TObject);
begin
 EnableControl(Edit8);
 EnableControl(LabeledEdit22);
 EnableControl(SpeedButton5);
end;

procedure TForm1.CheckBox15Click(Sender: TObject);
begin
 EnableControl(Edit9);
 EnableControl(LabeledEdit23);
 EnableControl(SpeedButton6);
end;

procedure TForm1.CheckBox16Click(Sender: TObject);
begin

⌨️ 快捷键说明

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