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

📄 mainform.pas

📁 这是千年外挂的源代码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
var
  i,onelen ,outlen:integer;
  packet_Header :pchar;
begin
  i      := 0;
  onelen := 0;
  packet_header := buf;
  while i < len do
    begin
      if buf[i] = '(' then
        begin
        onelen := 1;
        packet_header := @buf[i] ;
        end;
      if buf[i] = ')' then
        begin
            numbertest:=0;
            gamepacketrecv(packet_header,onelen);
            doanything;
        end;
      inc (onelen);
      inc (i);
    end;
end;

procedure Tmainfrm.Timer1Timer(Sender: TObject);
var i:integer;px,py:real;eatset1:integer;
begin
 if clienttoserver=false then
 begin
   sendfb('(luNVNNNNNNNxNTANNNNN@p^jNyWKNNSkPpV\AmYxUuNN)');
  // sendfb('(luNVNNNNNNNxNTANNNNNNNNNNNNNNNNNNNNNNNNNNNNN)');
   px:=strtoint(mainfrm.statusbar1.Panels[2].Text)/mapx * mainfrm.image1.Width;
   py:=strtoint(mainfrm.statusbar1.Panels[3].Text)/mapy * mainfrm.image1.Height;
   mainfrm.Shape1.Left:=Trunc(px)+mainfrm.Image1.Left;
   mainfrm.shape1.top:=Trunc(py);
 end;
 //吃大药设定
if checkbox23.Checked=true then
   begin
    //检测药的位置
     for i:=0 to mainfrm.goodsview.Items.Count-1 do
         begin
           if (mainfrm.lowerlife0.Text<>'') and (mainfrm.lowerlife1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=gooddrug.text then eatset1:=i; end;
         end;
     //发送吃药命令    
     sendfb(leftclickshow1(1,eatset1));
   end;
   //武功检测
if (checkbox3.Checked=true)then
   begin
   for i:=0 to baseview.Items.Count-1 do
   begin
    if pos(usegest1.Text,baseview.Items.Item[i].Caption)<>0 then begin geststr1:=4;gestset1:=i; end;
    if pos(usegest2.Text,baseview.Items.Item[i].Caption)<>0 then begin geststr2:=4;gestset2:=i; end;
    if pos(usegest3.Text,baseview.Items.Item[i].Caption)<>0 then begin geststr3:=4;gestset3:=i; end;
   end;
   //一层武功
   for i:=0 to onegestview.Items.Count-1 do
   begin
    if pos(usegest1.Text,onegestview.Items.Item[i].Caption)<>0 then begin geststr1:=5;gestset1:=i; end;
    if pos(usegest2.Text,onegestview.Items.Item[i].Caption)<>0 then begin geststr2:=5;gestset2:=i; end;
    if pos(usegest3.Text,onegestview.Items.Item[i].Caption)<>0 then begin geststr3:=5;gestset3:=i; end;
   end;
    //二层武功
   for i:=0 to twogestview.Items.Count-1 do
   begin
    if pos(usegest1.Text,twogestview.Items.Item[i].Caption)<>0 then begin geststr1:=15;gestset1:=i; end;
    if pos(usegest2.Text,twogestview.Items.Item[i].Caption)<>0 then begin geststr2:=15;gestset2:=i; end;
    if pos(usegest3.Text,twogestview.Items.Item[i].Caption)<>0 then begin geststr3:=15;gestset3:=i; end;
   end;
    //掌风
   for i:=0 to palmwindview.Items.Count-1 do
   begin
    if pos(usegest1.Text,palmwindview.Items.Item[i].Caption)<>0 then begin geststr1:=24;gestset1:=i; end;
    if pos(usegest3.Text,palmwindview.Items.Item[i].Caption)<>0 then begin geststr2:=24;gestset2:=i; end;
    if pos(usegest3.Text,palmwindview.Items.Item[i].Caption)<>0 then begin geststr3:=24;gestset3:=i; end;
   end;
    //三层
   for i:=0 to threegestview.Items.Count-1 do
   begin
    if pos(usegest1.Text,threegestview.Items.Item[i].Caption)<>0 then begin geststr1:=28;gestset1:=i; end;
    if pos(usegest2.Text,threegestview.Items.Item[i].Caption)<>0 then begin geststr2:=28;gestset2:=i; end;
    if pos(usegest3.Text,threegestview.Items.Item[i].Caption)<>0 then begin geststr3:=28;gestset3:=i; end;
   end;
     //检测使用的武功
   if  (usegest1.Text<>'')and (pos(usegest1.Text,statusbar1.Panels[1].text)=0) then sendfb(leftclickshow1(geststr1,gestset1));
    sleep(300);
   if  (usegest2.Text<>'')and (pos(usegest2.Text,statusbar1.Panels[1].text)=0) then sendfb(leftclickshow1(geststr2,gestset2));
    sleep(300);
   if  (usegest3.Text<>'')and (pos(usegest3.Text,statusbar1.Panels[1].text)=0) then sendfb(leftclickshow1(geststr3,gestset3));
    end;
end;


procedure Tmainfrm.FormCreate(Sender: TObject);
var i:integer;
begin
//    fblist.Clear;
    MI := TMapInfor.Create;
    ackmonster:=true;
    skindata1.active:=true;
    FirstFlag:=true;
    clientwork:=0;
    answerok:=false;
    richview1.Clear;
    clientconnect:=true;
    richview1.AddNL('欢迎使用私服简易脱机',6,1);
 //   richview1.AddNL('http://www.freespaces.com/xunmeng110/jianyi/jianyi.zip',3,1);
    richview1.AddNL('http://xunmeng110.ys168.com',3,1);
    RichView1.Format;
    scaled := true;
    str1:='';
    INIPath:=extractFilePath(ParamStr(0));
    pagecontrol1.ActivePageIndex:=0;
    pagecontrol2.ActivePageIndex:=0;
    baseskill.ActivePageIndex:=0;
    ExtractFilePath(filepath);
    if FileExists(filepath+'item.txt') then
    mainfrm.ComboBox3.Items.LoadFromFile(filepath+'item.txt');
    if FileExists(filepath+'wp.txt') then
    mainfrm.listbox1.Items.LoadFromFile(filepath+'wp.txt');
    if FileExists(filepath+'monster.txt') then
    mainfrm.listbox2.Items.LoadFromFile(filepath+'monster.txt');
    if FileExists(filepath+'addr.txt') then
    begin
    serveraddr := TStringList.Create ;
    serveraddr.loadfromfile(filepath+'addr.txt');
    end;
    for i:=0 to serveraddr.Count-1 do
    begin
    myserver1.items.add(copy(serveraddr.strings[i],pos(',',serveraddr.strings[i])+6,length(serveraddr.strings[i])-(pos(',',serveraddr.strings[i])+5)));
    end;
    myserver1.ItemIndex:=0;

    if FileExists(filepath+'sheding.txt') then
    mainfrm.savesd.Items.LoadFromFile(filepath+'sheding.txt');
end;



//定时检测连线状况
procedure Tmainfrm.Timer2Timer(Sender: TObject);
var i,listnum:integer;
begin
if mainfrm.CheckBox15.Checked=true then
  begin
    if mainfrm.clientsocket1.Socket.Connected then
     begin
       statusbar1.Panels[0].Text:='在线中..';
       if richview1.LineCount-1>400 then richview1.Clear;
       if richview2.LineCount-1>400 then richview2.Clear;
       if richview3.LineCount-1>400 then richview3.Clear;
       if richview4.LineCount-1>400 then richview4.Clear;
     end
  else
    begin
         speedbutton2.visible:=true;
         speedbutton1.visible:=false;
         answerok :=false;
         statusbar1.Panels[0].Text:='连接中断';
         timer1.Enabled:=false;
         speedButton2Click(self);
         checkbox21.Visible:=false;
        // speedbutton5.Visible:=false;
    end;
  end;

  if mainfrm.CheckBox19.Checked=true then
     begin
       for i:=0 to mainfrm.goodsview.Items.Count-1 do
       begin
       if  pos(mainfrm.Edit17.Text,mainfrm.goodsview.Items.Item[i].Caption)>0 then
           begin
           listnum:=i;
           //mainfrm.ComboBox2.Text:=inttostr(i);
           break;
           end;
       end;
       for i:=0 to mainfrm.listView9.Items.Count-1 do
         begin
          if pos(mainfrm.Edit17.Text,mainfrm.listView9.Items.Item[i].Caption)=0 then
             begin sendfb(leftclickshow1(1,listnum));
                   //  mainfrm.ComboBox2.Text:=leftclickshow1(1,listnum);
             end;
         end;

     end;
end;

procedure Tmainfrm.Button6Click(Sender: TObject);    //添加怪物名字
var i:integer;px,py:real;
begin
  if edit14.text<>'' then listbox2.Items.Add(edit14.Text);
  if mainfrm.clientsocket1.Socket.Connected then
   for i:=0 to listview2.Items.Count-1 do
     begin
       if edit14.Text=listview2.Items.Item[i].Caption then
          combobox5.Items.Add(listview2.Items.Item[i].SubItems[1]);
     end;
end;

function eatdrug:string;           //吃药设定
var i:integer; eatset1,eatset2,eatset3,eatset4,eatset5,eatset6:integer;
    neigongeat,waigongeat,wugongeat:bool;
    neigongnum1,neigongnum2,waigongnum1,waigongnum2,wugongnum1,wugongnum2:integer;
begin
neigongeat:=false;
waigongeat:=false;
wugongeat:=false;
repeat
   begin
    eatset1:=30;eatset2:=30;eatset3:=30;eatset4:=30;eatset5:=30;eatset6:=30;//位置初始化
      //   eatdrugtime.Interval:=strtoint(edit2.Text); //定义时间
 if (mainfrm.checkbox1.Checked=true) and (mainfrm.clientsocket1.Socket.Connected) then
       begin
       //先获取物品得位置
         for i:=0 to mainfrm.goodsview.Items.Count-1 do
         begin
           if (mainfrm.lowerlife0.Text<>'') and (mainfrm.lowerlife1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.lowerlife1.text then eatset1:=i; end;
           if (mainfrm.life0.Text<>'') and (mainfrm.life1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.life1.text then eatset2:=i; end;
           if (mainfrm.neigong0.Text<>'') and (mainfrm.neigong1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.neigong1.text then eatset3:=i; end;
           if (mainfrm.waigong0.Text<>'') and (mainfrm.waigong1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.waigong1.text then eatset4:=i; end;
           if (mainfrm.wugong0.Text<>'') and (mainfrm.wugong1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.wugong1.text then eatset5:=i; end;
           if (mainfrm.yuanqi0.Text<>'') and (mainfrm.yuanqi1.Text<>'') then
            begin if mainfrm.goodsview.Items.Item[i].Caption=mainfrm.yuanqi1.text then eatset6:=i; end;
         end;
         //判断值 然后吃药

neigongnum1:=strtoint(copy(neigong,0,pos('/',neigong)-1));
neigongnum2:=strtoint(copy(neigong,pos('/',neigong)+1,length(neigong)));
waigongnum1:=strtoint(copy(waigong,0,pos('/',waigong)-1));
waigongnum2:=strtoint(copy(waigong,pos('/',waigong)+1,length(waigong)));
wugongnum1:=strtoint(copy(wugong,0,pos('/',wugong)-1));
wugongnum2:=strtoint(copy(wugong,pos('/',wugong)+1,length(wugong)));

case mainfrm.CheckBox18.Checked of
false :  begin
         if (eatset1<>30) and (strtoint(mainfrm.lowerlife0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[9].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[9].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset1)); end;
         if (eatset2<>30) and (strtoint(mainfrm.life0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[9].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[9].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset2)); end;
         if (eatset3<>30) and (strtoint(mainfrm.neigong0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[6].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[6].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset3)); end;
         if (eatset4<>30) and (strtoint(mainfrm.waigong0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[7].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[7].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset4)); end;
         if (eatset5<>30) and (strtoint(mainfrm.wugong0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[8].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[8].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset5)); end;
         if (eatset6<>30) and (strtoint(mainfrm.yuanqi0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[5].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[5].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset6)); end;
         end;
true :  begin

         //判断值 是否补满或空
        if (neigongnum1<>0) and (waigongnum1<>0) and (wugongnum1<>0) then
         begin
         if  ((neigongnum2 div neigongnum1)>=10)  then neigongeat:=true;
         if  (neigongnum2 = neigongnum1)  then neigongeat:=false;
         if  ((waigongnum2 div waigongnum1)>=10)  then waigongeat:=true;
         if  (waigongnum2 = waigongnum1)   then waigongeat:=false;
         if  ((wugongnum2  div wugongnum1 )>=10)  then wugongeat:=true;
         if  (wugongnum2  = wugongnum1 )   then wugongeat:=false;
         end
           else
           begin
         if neigongnum1=0 then neigongeat:=true;
         if waigongnum1=0 then waigongeat:=true;
         if wugongnum1=0 then wugongeat:=true;
           end;
         if (eatset1<>30) and (strtoint(mainfrm.lowerlife0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[9].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[9].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset1)); end;
         if (eatset2<>30) and (strtoint(mainfrm.life0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[9].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[9].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset2)); end;

         if neigongeat=true then sendfb(leftclickshow1(1,eatset3));
         if waigongeat=true then sendfb(leftclickshow1(1,eatset4));
         if wugongeat =true then sendfb(leftclickshow1(1,eatset5));
         if (eatset6<>30) and (strtoint(mainfrm.yuanqi0.Text)>= strtoint(trim(copy(mainfrm.basicattribe.Items.Item[5].SubItems.strings[0],0,pos('/',mainfrm.basicattribe.Items.Item[5].SubItems.strings[0])-1)))) then
             begin   sendfb(leftclickshow1(1,eatset6)); end;
        end; //对应true的begin

        end;  //对应case的
       end;
       sleep(strtoint(mainfrm.Edit2.Text));
   end;
  until mainfrm.checkbox1.Checked=false;
end;

//循环点走路找怪
procedure Tmainfrm.crcrunTimer(Sender: TObject);
var i,sitxy:integer;manx,many:integer;
begin
    manx:=abs(strtoint(StatusBar1.Panels[2].Text)-strtoint(listview1.Items.Item[0].SubItems[0]));
    many:=abs(strtoint(StatusBar1.Panels[3].Text)-strtoint(listview1.Items.Item[0].SubItems[1]));
if (manx<3) and (many<3) then
   begin
//设定循环
   for i:=0 to listview1.Items.Count-1 do
     begin
      repeat
        begin
          manx:=abs(strtoint(StatusBar1.Panels[2].Text)-strtoint(listview1.Items.Item[i+1].SubItems[0]));
          many:=abs(strtoint(StatusBar1.Panels[3].Text)-strtoint(listview1.Items.Item[i+1].SubItems[1]));
          //设定走路开步法
          if pos('无名步法',StatusBar1.Panels[1].Text)=0 then    sendfb(leftclickshow1(4,7));
           //设定走路
          sendfb(movexy(strtoint(listview1.Items.Item[i].Caption),strtoint(StatusBar1.Panels[2].Text),strtoint(StatusBar1.Panels[3].Text)));
 //   memo1.lines.Add(inttostr(2));
           //  sleep(200);
 case strtoint(listview1.Items.Item[i].Caption) of
 0 : begin
       mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)-1);
       end;
 1 : begin
        mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)+1);
        mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)-1);
     end;
 2 : begin
       mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)+1);
     end;
 3 : begin
        mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)+1);
        mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)+1);
     end;
 4 : begin
       mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)+1);
     end;
 5 : begin
        mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)-1);
        mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)+1);
     end;
 6 : begin
        mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)-1);
     end;
 7 : begin
        mainfrm.statusbar1.Panels[2].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[2].Text)-1);
        mainfrm.statusbar1.Panels[3].Text:=inttostr(strtoint(mainfrm.statusbar1.Panels[3].Text)-1);
     end;
 end;
end;//case的end;
  if clientsocket1.Active=false then exit;
      until (manx<3) and (many<3) ;
  if clientsocket1.Active=false then exit;

⌨️ 快捷键说明

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