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


รูปภาพ

Swap 1.5/2


  • กรุณาลงชื่อเข้าใช้เพื่อตอบกระทู้
มี 8 โพสต์ตอบกลับกระทู้นี้

#1 Mangtom

Mangtom

    เจี่ยงกั้น

  • Members
  • 62 โพสต์

โพสต์เมื่อ 16 December 2006 - 07:26:17 PM

update 05:01:07

แก้ไขค่าโจมตีจาก MyDamage := xxx;

var   SwarpUse, MyDamage, AlreadySwap, PartnerFai: byte;

procedure Init;
begin
   SetIsNotEat('ยาคืนวิญญาณ');
   SetIsNotEat('ยาเก้าหยาง');
   SetIsCB('หนังแพะเขาใหญ่');
   SwapUse:= 1;
   PartnerFai:= 100;
   MyDamage := 230;
   AlreadySwap := 0;
   echoChat('KoRn Bot โหลดเสร็จแล้วครับ',clRed);
end;

Procedure Logon;
begin
   Sendaction(48);
end;

procedure Getmyitems;
begin
    Swaplucky('logon');
end;

procedure BattleStarted;
begin
   CheckDisconnect;
end;

procedure MyAttack;
var   m : TCombatMonster;
   n : byte;
   sk : string;
begin
   m := Combat.FindBestMonster;
   n := Combat.Size;
   sk := 'มือเปล่า';
   if (MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp < 0.25*MyPartner.MaxHp) 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 > MyDamage)) then
   SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk)
   else if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage)) then
   begin
      SwapLucky('on');
      AlreadySwap := 1;
   end;
   if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage) and (AlreadySwap = 1)) then
   begin
      sk := 'ป้องกัน';
      SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
   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 > MyDamage) then
      begin
         sk := 'ป้องกัน';
      end
      else
      begin
         sk := 'มือเปล่า';
      end;
   end;
   SendAttack(MyPartner.Row,MyPartner.Col,m.Row,m.Col,sk);
end;

procedure BattleStoped;
begin
   AlreadySwap := 0;
   SwapLucky('off');
      if (MyPlayer.Sp < 0.25*MyPlayer.MaxSp) or (MyPartner.Sp < 0.25*MyPartner.MaxSp) then
   begin
     AutoEat;
   end;
   if (MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp < 0.25*MyPartner.MaxHp) then
   begin
     AutoEat;
     AutoHeal;
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 อีกประมาณ 5 วินาที ถ้าคุณเลือก Auto Reconnect',clBlack);
     Delay(1000);
     Reconnect(5);
   end
      else
   begin
     Echo('ใส่ไอเท็มถูกต้อง ไม่มีการเปลี่ยนแปลง',clBlack);
   end;
    end;
end;

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

begin
   Init;
end.


เดินจุด+สลับตรา (ดูวิธีการแก้ไขจากกระทู้ walk for level)
var   SwapUse, MyDamage, AlreadySwap, PartnerFai: byte;
var   Point1X,Point1Y,Point2X,Point2Y: Word;

Procedure Logon;
begin
   Point1X := 1802;
   Point1Y := 1115;
   Point2X := 1782;
   Point2Y := 815;
end;

procedure Getmyitems;
begin
    Swaplucky('logon');
end;

procedure Init;
begin
   SetIsNotEat('ยาคืนวิญญาณ');
   SetIsNotEat('ยาเก้าหยาง');
   SetIsCB('หนังแพะเขาใหญ่');
   SwapUse:= 1;
   PartnerFai:= 100;
   MyDamage := 230;
   AlreadySwap := 0;
   echoChat('KoRn Bot โหลดเสร็จแล้วครับ',clRed);
end;

procedure BattleStarted;
begin
   CheckDisconnect;
end;

procedure MyAttack;
var   m : TCombatMonster;
   n : byte;
   sk : string;
begin
   m := Combat.FindBestMonster;
   n := Combat.Size;
   sk := 'มือเปล่า';
   if (MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp < 0.25*MyPartner.MaxHp) 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 > MyDamage)) then
   SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk)
   else if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage)) then
   begin
      SwapLucky('on');
      AlreadySwap := 1;
   end;
   if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage) and (AlreadySwap = 1)) then
   begin
      sk := 'ป้องกัน';
      SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
   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 > MyDamage) then
      begin
         sk := 'ป้องกัน';
      end
      else
      begin
         sk := 'มือเปล่า';
      end;
   end;
   SendAttack(MyPartner.Row,MyPartner.Col,m.Row,m.Col,sk);
end;

procedure BattleStoped;
begin
   AlreadySwap := 0;
   SwapLucky('off');
      if (MyPlayer.Sp < 0.25*MyPlayer.MaxSp) or (MyPartner.Sp < 0.25*MyPartner.MaxSp) then
   begin
     AutoEat;
   end;
   if (MyPlayer.Hp < 0.50*MyPlayer.MaxHp) or (MyPartner.Hp < 0.50*MyPartner.MaxHp) then
   begin
     AutoEat;
     AutoHeal;
   end;
   if (MyPlayer.Hp > 0.25*MyPlayer.MaxHp) or (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 อีกประมาณ 5 วินาที ถ้าคุณเลือก Auto Reconnect',clBlack);
     Delay(1000);
     Reconnect(5);
   end
      else
   begin
     Echo('ใส่ไอเท็มถูกต้อง ไม่มีการเปลี่ยนแปลง',clBlack);
   end;
    end;
end;

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

begin
   Init;
end.


#2 Roekytoya

Roekytoya

    ง่ออ๋อง ซุนกวน

  • Members
  • 261 โพสต์

โพสต์เมื่อ 19 December 2006 - 02:49:57 AM

คุณ Mangtom ครับรบกวนถามหน่อยนะคับ ตรง แก้ไขค่าโจมตีจาก MyDamage := 500; ตรงนี้คือหมายถึงค่าที่เฉพาะตัวผู้เล่นโจมตีใส่ NPC เท่าไรเหรอคับ

#3 Mangtom

Mangtom

    เจี่ยงกั้น

  • Members
  • 62 โพสต์

โพสต์เมื่อ 19 December 2006 - 03:34:23 PM

ถูกแล้วคับ ค่าที่เราโจมตีใส่ npc (เฉพาะตัวเราไม่รวมขุน)

#4 Roekytoya

Roekytoya

    ง่ออ๋อง ซุนกวน

  • Members
  • 261 โพสต์

โพสต์เมื่อ 21 December 2006 - 04:44:59 AM

คุณ Mangtom ผมขอถามเรื่องการฮิวหน่อยนะคับ เพราะผมลองเซ็ตดูหลายรอบแระรู้สึกว่ายังมีการกิน HP ครับ งงมากทั้ง ๆๆที่ เซ็ตให้ฮิวอย่างเดียวนะครับ หรือว่าผมเซ็ตผิดเปล่าหวา มาดูตรงช่อง setting นะคับผมเซ็ต ตรง Recovery setting เป็น ช่อง 2. Heal อย่างเดียว ตรง Heal setting ชื่อสกิว ผมใส่ชื่อ วารีคืนพลัง ค่า Heal ผมใส่เลข 1 (ตรงนี้ต้องใส่ค่าเลขตามจำนวนจริงที่ผู้เล่นฮิวได้หรือเปล่าครับ) แล้วก็ตรง option ผมติ๊กถูกเลือก Auto eat item & Heal (ตรงนี้ต้องติ๊กด้วยใช่ไหมคับ หรือว่าไม่ต้องติ๊ก) แต่จาการที่ผมสังเกตุนะคับ ถ้าผมติ๊กตรง Auto มันจะกินของตลอดหลังสู้จบแทนที่จะฮิว ถ้าไม่ติ๊กมันจะไม่ฮิวหรือไม่กินของเลยครับ เลยไม่เข้าใจเรื่องการฮิวซะเท่าไรนะคับ ผมลองดูตอนแรกใช้สคริพของคุณ Mangtom แล้วก็ลองสังเกตุดูตราคูณสองอยู่ที่ช่องที่ 25 แต่มันไม่เห็นมีการเปลี่ยนสลับตราคูณ กับ ตุ้ม- เลยคับผมสังเกตุตรงช่องเก็บของครับ แต่ในบอทที่แสดงการต่อสู้ให้เห็นถึงการสลับตรา รายงานว่าตราถอดเข้า หรือ ถอดออกครับ งง เหมือนกันคับผม

#5 Mangtom

Mangtom

    เจี่ยงกั้น

  • Members
  • 62 โพสต์

โพสต์เมื่อ 21 December 2006 - 09:32:51 AM

auto eat & heal จะเป็นการกินอัตโนมัติ เมื่อเลือดลด ถ้าจะให้ heal ตามต้องการ
ต้องเขียนเป็นสคริปเพิ่มเข้าไปครับ
ส่วนสลับตรา ตรงช่องเก็บของจะมองเห็นว่าไม่เกิดอะไรขึ้นเนื่องจากบอทไม่ refresh
แต่ที่ตัวบอทจะแจ้งว่าสลับ อันนี้ปกติคับ

procedure BattleStoped;
begin
AlreadySwap := 0;
if (SwapUse = 1) then
begin
if (FirstCombat = 1) then
begin
SwapLucky('logon');
FirstCombat := 0;
end
else
begin
SwapLucky('off');
end;
end;
AutoEat;
AutoHeal;

CheckDisconnect;
end;

เอาสคริป นี้ใส่เข้าไปแทนครับ ตรงนี้เมื่อเลือดน้อยกว่า 25% แก้ไขตามสะดวก

if (MyPlayer.Sp < 0.25*MyPlayer.MaxSp) or (MyPartner.Sp < 0.25*MyPartner.MaxSp) then
begin
AutoEat;
end;
if (MyPlayer.Hp < 0.25*MyPlayer.MaxHp) or (MyPartner.Hp < 0.25*MyPartner.MaxHp) then
begin
AutoEat;
AutoHeal;
end;

#6 Loving You

Loving You

    ทหารศึกดาบแยก

  • Members
  • 18 โพสต์

โพสต์เมื่อ 24 December 2006 - 02:48:25 AM

มีสคริปแบบยิงธนูไฟที่NPCมี4ตัวแล้วสลับตราตอนมันเหลือ1ตัวแล้วให้ขุนยิงแบบโดดขงเบ้งเทิน2อะคับมีป่าวป่าวคับเก็บเวลตามป่าอะคับ

มีสคริปแบบยิงธนูไฟที่NPCมี4ตัวแล้วสลับตราตอนมันเหลือ1ตัวแล้วให้ขุนยิงแบบโดดขงเบ้งเทิน2อะคับมีป่าวป่าวคับเก็บเวลตามป่าอะคับ

มีสคริปแบบยิงธนูไฟที่NPCมี4ตัวแล้วสลับตราตอนมันเหลือ1ตัวแล้วให้ขุนยิงแบบโดดขงเบ้งเทิน2อะคับมีป่าวป่าวคับเก็บเวลตามป่าอะคับ

#7 Roekytoya

Roekytoya

    ง่ออ๋อง ซุนกวน

  • Members
  • 261 โพสต์

โพสต์เมื่อ 25 December 2006 - 02:48:22 PM

คุณ Mangtom ผมโมดิฟายจากสคริพที่ได้มีโพสไว้นะครับเดินปาร์ตี้ 2 จุด รู้สึกว่าถ้าตี้กัน 2 คนจะไม่ยอมฮิวเลยนะครับ แถมตัวลูกตี้อีกคนไม่ยอมสลับตราด้วยครับ พอจะมีวิธีแก้ไขตรงไหนหรือเปล่าครับ

นี้สคริพหัวหน้าตี้ครับ


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

Procedure Logon;
begin
    FirstCombat := 1;
    Point1X := 822;     // จุดเดินที่ 1 แกน X1
    Point1Y := 975;    // จุดเดินที่ 1 แกน Y1
    Point2X := 602;    // จุดเดินที่ 2 แกน X2
    Point2Y := 1415;     // จุดเดินที่ 2 แกน Y2
    Walk(382,1115);     // จุดข้างแผนที่ที่จะให้บอทไปยืนรอปาร์ตี้เมื่อบอทหลุดหรือปาร์ตี้ไม่ครบ
end;

procedure Getmyitems;
begin
    Swaplucky('logon');
end;

procedure Init;
begin
       SetIsNotEat('ยาคืนวิญญาณ');
    SetIsNotEat('ยาวิญญาณม่วง');
    SetIsNotEat('ยาวิญญาณเขียว');
    SetIsNotEat('ยาวิญญาณแดง');
    SetIsNotEat('ช็อกโกรักแท้');
       SetIsNotEat('ยาเก้าหยาง');
       SetIsNotEat('พายเนื้อทอด');
       SetIsNotEat('โสมคนฉางไป๋');
       SetIsNotEat('เค๊กคริสมาสต์');
       SetIsNotEat('มุกตาแกะ');
       SetIsCB('หนังแพะเขาใหญ่');
       SwapUse := 1;
       MyDamage := 600;         // แก้ไขค่าโจมตีที่ตี NPC ตรงนี้
       AlreadySwap := 0;
    PartnerFai := 100;         // แก้ไขค่าซื่อสัตย์ของขุนพลตรงนี้ได้ครับ
    echoChat('KoRn Bot โหลดเสร็จแล้วครับ',clRed);
end;

procedure PartyReady;
begin
    echoChat('พร้อมเดิน',clRed);
    Horse;
    walk(822,975);     // เมื่อปาร์ตี้ครบบอทจะเดินไปยังจุดแรก
end;

procedure BattleStarted;
begin
    CheckDisconnect;
end;

procedure MyAttack;
var   m : TCombatMonster;
    n : byte;
    sk : string;
begin
    m := Combat.FindBestMonster;
    n := Combat.Size;
    sk := 'มือเปล่า';
    if (FirstCombat = 1) then
begin
    if(MyPlayer.Sp > 10) then
begin
    sk := 'วิชาหลบหนี';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
end
    else
begin    
    sk := 'หลบหนี';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
end;
end;
    if ((SwapUse = 1) and (n = 1) and (m.hp > MyDamage)) then
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk)
    else if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage)) then
begin
    SwapLucky('on');
    AlreadySwap := 1;
end;
    if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage) and (AlreadySwap = 1)) then
begin
    sk := 'ป้องกัน';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
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 > MyDamage) then
begin
    sk := 'ป้องกัน';
end
    else
begin
    sk := 'มือเปล่า';
end;
end;
    SendAttack(MyPartner.Row,MyPartner.Col,m.Row,m.Col,sk);
end;

procedure BattleStoped;
begin
    AlreadySwap := 0;
    if (SwapUse = 1) then
begin
    if (FirstCombat = 1) then
begin
    SwapLucky('logon');
    FirstCombat := 0;
end
    else
begin
    SwapLucky('off');
end;
end;
begin
    if (not MyParty.isReady) then
begin
    Walk(382,1115);    //เมื่อบอทหลุดหรือปาร์ตี้ไม่ครบบอทจะไปยังข้างแผนที่
end;
    if (MyPlayer.Sp < 0.80*MyPlayer.MaxSp) or (MyPartner.Sp < 0.80*MyPartner.MaxSp) then
begin
         AutoHeal;
    CheckDisconnect;
end;
    if (MyPlayer.Hp > 0.90*MyPlayer.MaxHp) or (MyPartner.Hp > 0.90*MyPartner.MaxHp) then
begin
    Echo('เดิน',clRed);
    if (MyPlayer.X = Point1X) and (MyPlayer.Y = Point1Y)
    then Walk(Point2X,Point2Y)
    else Walk(Point1X,Point1Y);
end;
end;
end;

procedure NpcMove(NpcId: Byte; X,Y: Integer);
begin
      if (((MyPlayer.X - X) > 50) or ((MyPlayer.X - X) < 50) and ((MyPlayer.Y - Y) > 50) or ((MyPlayer.Y-Y)<50)) then
        ClickNpc(NpcId);
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 อีกประมาณ 20 วินาที ถ้าคุณเลือก Auto Reconnect',clBlack);
    Delay(1000);
    Reconnect(20);
end
    else
begin
    Echo('ใส่ไอเท็มถูกต้อง ไม่มีการเปลี่ยนแปลง',clBlack);
end;
end;
end;

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

begin
Init;
end.


ส่วนอันนี้ลูกตี้ครับ

var SwapUse, MyDamage, AlreadySwap, FirstCombat : byte;
var PartnerFai : Byte;

Procedure Logon;
begin
    FirstCombat := 1;
    Horse;
    Walk(382,1115);     // จุดที่จะให้บอทเดินไปรอ จะอยู่ข้างแผนที่ที่จะให้บอทไปยืนรอปาร์ตี้เมื่อบอทหลุดหรือปาร์ตี้ไม่ครบ
end;

procedure Getmyitems;
begin
    Swaplucky('logon');
end;

procedure Init;
begin
       SetIsNotEat('ยาคืนวิญญาณ');
    SetIsNotEat('ยาวิญญาณม่วง');
    SetIsNotEat('ยาวิญญาณเขียว');
    SetIsNotEat('ยาวิญญาณแดง');
    SetIsNotEat('ช็อกโกรักแท้');
       SetIsNotEat('ยาเก้าหยาง');
       SetIsNotEat('พายเนื้อทอด');
       SetIsNotEat('โสมคนฉางไป๋');
       SetIsNotEat('เค๊กคริสมาสต์');
       SetIsNotEat('มุกตาแกะ');  
       SetIsCB('หนังแพะเขาใหญ่');
       SwapUse := 1;
       MyDamage := 300;         // แก้ไขค่าโจมตีที่ตี NPC ตรงนี้
       AlreadySwap := 0;
    PartnerFai := 100;         // แก้ไขค่าซื่อสัตย์ของขุนพลตรงนี้ได้ครับ
    echoChat('KoRn Bot โหลดเสร็จแล้วครับ',clRed);
end;

procedure BattleStarted;
begin
    CheckDisconnect;
end;

procedure MyAttack;
var   m : TCombatMonster;
    n : byte;
    sk : string;
begin
    m := Combat.FindBestMonster;
    n := Combat.Size;
    sk := 'มือเปล่า';
    if (FirstCombat = 1) then
begin
    if(MyPlayer.Sp > 10) then
begin
    sk := 'วิชาหลบหนี';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
end
    else
begin    
    sk := 'หลบหนี';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
end;
end;
    if ((SwapUse = 1) and (n = 1) and (m.hp > MyDamage)) then
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk)
    else if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage)) then
begin
    SwapLucky('on');
    AlreadySwap := 1;
end;
    if ((SwapUse = 1) and (n = 1) and (m.hp < MyDamage) and (AlreadySwap = 1)) then
begin
    sk := 'ป้องกัน';
    SendAttack(MyPlayer.Row,MyPlayer.Col,m.Row,m.Col,sk);
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 > MyDamage) then
begin
    sk := 'ป้องกัน';
end
    else
begin
    sk := 'มือเปล่า';
end;
end;
    SendAttack(MyPartner.Row,MyPartner.Col,m.Row,m.Col,sk);
end;

procedure BattleStoped;
begin
    AlreadySwap := 0;
    if (SwapUse = 1) then
begin
    if (FirstCombat = 1) then
begin
    SwapLucky('logon');
    FirstCombat := 0;
end
    else
begin
    SwapLucky('off');
end;
end;
begin
    if (not MyParty.isReady) then
begin
    Walk(382,1115);            // เมื่อบอทหลุดหรือปาร์ตี้ไม่ครบบอทจะไปยังข้างแผนที่
    RequestParty('เด็กน้อย');         // ใส่ชื่อคนนำปาร์ตี้ลงไป
end;
    if (MyPlayer.Sp < 0.80*MyPlayer.MaxSp) or (MyPartner.Sp < 0.80*MyPartner.MaxSp) then
begin
         AutoHeal;
    CheckDisconnect;
end;
    if (MyPlayer.Hp > 0.90*MyPlayer.MaxHp) or (MyPartner.Hp > 0.90*MyPartner.MaxHp) then
begin
    Echo('เดิน',clRed);
end;
end;
end;

procedure NpcMove(NpcId: Byte; X,Y: Integer);
begin
      if (((MyPlayer.X - X) > 50) or ((MyPlayer.X - X) < 50) and ((MyPlayer.Y - Y) > 50) or ((MyPlayer.Y-Y)<50)) then
        ClickNpc(NpcId);
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 อีกประมาณ 20 วินาที ถ้าคุณเลือก Auto Reconnect',clBlack);
    Delay(1000);
    Reconnect(5);
end
    else
begin
    Echo('ใส่ไอเท็มถูกต้อง ไม่มีการเปลี่ยนแปลง',clBlack);
end;
end;
end;

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

begin
Init;
end.


หรือว่าผมโมดิฟายสคริพผิดอะครับ รบกวนช่วยแนะนำหน่อยนะครับผม

#8 Roekytoya

Roekytoya

    ง่ออ๋อง ซุนกวน

  • Members
  • 261 โพสต์

โพสต์เมื่อ 05 January 2007 - 12:20:06 AM

รบกวน คุณ Mangtom ช่วยดูสคริพข้างบนด้วยครับ ว่าผิดตรงไหนนะครับ รู้สึกว่าถ้าตี้กัน 2 คนจะไม่ยอมฮิวเลยนะครับ แถมตัวลูกตี้อีกคนไม่ยอมสลับตราด้วยครับ พอจะมีวิธีแก้ไขตรงไหนหรือเปล่าครับ


#9 Mangtom

Mangtom

    เจี่ยงกั้น

  • Members
  • 62 โพสต์

โพสต์เมื่อ 05 January 2007 - 12:22:43 AM

ขอแปะโป้งไว้ละกันนะะคับ บอทตี้สลับแบบเดิน




0 สมาชิกกำลังอ่านกระทู้นี้

0 สมาชิก, 0 ผู้เยี่ยมชม, 0 ผู้ใช้งานที่ซ่อนตัว