ไปที่เนื้อหา


Taxido

เป็นสมาชิกตั้งแต่ 18 Dec 2006
ออฟไลน์ ใช้งานล่าสุด Dec 28 2006 06:44 AM
-----

โพสต์ที่ฉันโพสต์

ในกระทู้: Walk for Level.

18 December 2006 - 03:40:20 AM

บอทเดินสองจุด สลับตรา ตัดสายเมื่อซื่อขุนลดต่ำกว่าที่กำหนด 100% ผมใช้อยู่คับดัดแปลงแต่งเติมได้


var SwapUse, AlreadySwap,PartnerFai,FirstCombat: byte;
      Point1X,Point1Y,Point2X,Point2Y: Word;

procedure LogOn;
begin
   FirstCombat := 1;
   Point1X := xxx;
   Point1Y := xxx;
   Point2X := xxx;
   Point2Y := xxx;
end;

procedure Init;
begin
   SetIsNotEat('ยาคืนวิญญาณ');
   SetIsNotEat('ยาวิญญาณม่วง');
   SetIsNotEat('คุกกี้เนย');
   //SetIsNotEat('เนื้อแผ่น');
   //SetIsCB('ผักกาดขาวดอง');
   SetIsDp('พรมเทพท่อง');
   SetIsDp('พรมจัวจวิ้น');
   SetIsCB('กระดาษซวน');
   SetIsCB('เสาคานพันปี');
   SetIsCB('หนังขนฮวน');
   SwapUse := 1;
   PartnerFai := 100; //ซื่อน้อยกว่า<<จะตัดสาย
   AlreadySwap := 0;
   echoChat('koRn Bot โหลดเสร็จแล้วครับ',clRed);
end;

procedure BattleStarted;
begin

end;

procedure MyAttack;
var   m: TCombatMonster;
   sk: String;
   n : byte;
begin
   m := Combat.FindBestMonster;
   n := Combat.Size;
   if ((MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp <0.25*MyPartner.MaxHp) or (FirstCombat = 1) or (n >5))then
   begin
   if (MyPlayer.Sp > 10)then
   SendAttack(MyPlayer.Row,MyPlayer.Col,MyPlayer.Row,MyPlayer.Col,'วิชาหลบหนี')
   else
   SendAttack(MyPlayer.Row,MyPlayer.Col,MyPlayer.Row,MyPlayer.Col,'หลบหนี');
   end;
   if ((SwapUse = 1) and (n = 1) and (m.hp > 1100)) then
   SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,'มือเปล่า')
   else
   if ((SwapUse = 1) and (n = 1) and (m.hp < 1100) and (AlreadySwap = 0))then
   begin
   SwapLucky('on');
   AlreadySwap := 1;
   end;
   if ((SwapUse = 1) and (n = 1) and (m.hp < 1100) and (AlreadySwap = 1)) then
   begin
   SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,'ป้องกัน');
   end;
   if (SwapUse = 0) or (n >1) then
   begin
   sk := 'มือเปล่า';
   SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
   end;
end;

procedure MyPartnerAttack;
var   m: TCombatMonster;
   n : byte;
   sk : string;
begin
   m := Combat.FindBestMonster;
   n := Combat.Size;
   sk := 'มือเปล่า';
   if ((SwapUse = 1) and (n = 1)) then
   begin
   if(m.hp > 1100) then
   begin
   sk := 'ป้องกัน';
   end
   else
   begin
   sk := 'มือเปล่า';
   end;
   end;
   SendAttack(MyPartner.Row,MyPartner.Col,m.Row,m.Col,sk);
end;

procedure BattleStoped;
begin
   ClickNpc(1);
   ClickNpc(5);
   if (SwapUse = 1) then
   begin
   if (FirstCombat = 1) then
   begin
   SwapLucky('logon');
   FirstCombat := 0;
   end
   else
   begin
   SwapLucky('off');
   end;
   end;
   AlreadySwap := 0;
   AutoHeal;
   AutoEat;
   doDrop;
   CheckDisconnect;
   if (MyPartner.Hp > (0.25 * MyPartner.MaxHp)) then
   begin
   Echo('เดิน',clRed);
   if   (MyPlayer.X = Point1X) and (MyPlayer.Y = Point1Y)
   then   Walk(Point2X,Point2Y)
   else   Walk(Point1X,Point1Y);
   end;
end;


procedure SwapLucky(taketype :string);
var slotno,LuckyStatus : Byte;
    Slot: TMyItem;
begin
  slotno := 25;
  Slot := MyItems[slotno];

  if (taketype = 'on') then
    begin
      Equip(slotno,0);
      LuckyStatus := 1;
      Echo('ใส่ '+Slot.name+' เรียบร้อย',clBlack);
    end;

  if (taketype = 'off') then
    begin
      if (LuckyStatus = 1) then
        begin
          Equip(slotno,0);
          LuckyStatus := 0;
          Echo('ถอด  '+Slot.name+' เรียบร้อย',clBlack);
        end;
    end;

  if (taketype = 'logon') then
    begin
      if (Slot.Id = 23024) then
        begin
     SwapUse := 0;
          Echo('[รายงาน] : ตราพังแล้ว กลับไปใช้ระบบปกติ!',clBlack);
        end
      else if ((Slot.Id <> 23085) and (Slot.Id <> 23023)) then
   begin
         Equip(slotno,0);
          Echo('ใส่ไอเท็มไม่ถูกต้อง มีการเปลี่ยนแปลง',clBlack);
          Echo('ถอด  '+Slot.name+' เรียบร้อย',clBlack);
          Echo('เกมจะ Disconect และจะ Reconect อีกประมาณ 15 วินาที ถ้าคุณเลือก Auto Reconnect',clBlack);
     Delay(1000);
     Reconnect(15);
   end
      else
   begin
     Echo('ใส่ไอเท็มถูกต้อง ไม่มีการเปลี่ยนแปลง',clBlack);
   end;
    end;
end;

Procedure OnTimer;
Begin

end;


procedure doDrop;
var   i:Byte;
   Slot: TMyItem;
begin
   for i := 1 to 25 do
   begin
   Slot := MyItems[i];
   if (Slot.Num >= 40) then
   begin
   if (Slot.Name = 'พรมจัวจวิ้น')
   or (Slot.Name = 'พรมเทพท่อง')
   or (Slot.Name = 'ผงช่วยแผล')
   or (Slot.Name = 'ยาดอกไม้แดง')
   or (Slot.Name = 'คุกกี้เนย')
   then Drop(i,40);
   //แก้ตรง45 เป็น 50 ให้ทิ้งประมาณนี้
   end;
end;
end;

procedure GMAppear(GMName: String; MapId,X,Y: Integer);
begin
   if MapId = MyPlayer.MapId then Reconnect(60*60*30);
end;

procedure PlayerOffline(PlayerName: String);
begin
//if (PlayerName = 'XXXX') then Reconnect(10);
end;

procedure CheckDisconnect;
begin
  if (MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp < 0.25*MyPartner.MaxHp) then
   begin
   Echo('Reconnect : เลือดไม่พอเลี้ยงชีพแล้ว !!',clBlack);
   AutoHeal;
   //Reconnect(3);
   end;
   if (MyPartner.Fai < PartnerFai) then
   begin
   Echo('Disconnected : ขุนพลซื้อสัตย์ต่ำกว่าที่กำหนด !!',clBlack);
   Disconnect;
  end;
end;

begin
Init;
end.


[/quote]