ขอบคุณความรู้ดีๆจาก WWW.OPENKORE.COM WWW.THAIKORE.COM WWW.OPKWIN.COM WWW.MOD2PLAY.COM และเวบอื่นๆที่ไม่ได้กล่าวถึงไว้ ณ.ทีนี้ด้วยนะคะ (ขอบคุณเป็นภาษาอังกฤษไว้ด้านบนนานแล้ว แต่เผื่ออาจมองกันไม่เห็นนะคะ เลยขอบคุณอีกรอบ)
เชิญชวนทำบุญแทนการเซทบอทให้โหลดฟรีคะ

ไม่บังคับนะคะ


แต่ใครเอาบอทไปใช้เองไม่ว่ากัน แต่ใครเอาบอทไปใช้ในทางธุรกิจ ไม่บริจาคขอให้จู้ดๆ อิอิ

ขอร้องจากใจ กรุณาอย่านำบอทไปขายเด็ดขาด ไม่ว่ากรณีใดๆทั้งสิ้น

12/21/2553

Plugins reacOnNPC

Plugins reacOnNPC
ใช้ได้กับ: Openkore v.1.6.6 หรือใหม่กว่า
ปลั๊กอินนี้อนุญาตให้ใช้ภายใต้ข้อตกลง GNU GPL
ลิขสิทธิ์ 2549 โดย hakore

===============================================================================
การปรับปรุง:
===============================================================================

08/5/2552 (mod v2 by windows98SE)
- เพิ่มตัวแปร debug (เพื่อให้ใช้งาน debug ง่ายขึ้น)
- เพิ่มตัวแปร respIgnoreColor (เพื่อให้เขียน regex ง่ายขึ้น)
- แยก report ว่า ผิดในส่วนตรงไหน

16/5/2549 (v.1.1.0)
- แก้ใขให้สามารถใช้ได้กับ Openkore v.1.6.x

26/4/2549 (v.1.1.0)
- เพิ่มตัวแปร useColors
- เพิ่มคำสั่ง @resp
- สามารถจัดกลุ่มคำสั่งได้

===============================================================================
บทนำ:
===============================================================================
ปลั๊ก อินนี้จะทำให้คุณสามารถโต้ตอบกับ NPC ได้อัตโนมัติ โดยใช้คำสั่ง console command.
ปลั๊กอินนี้มีประโยชน์อย่างยิ่งกับเซิฟเวอร์ที่ใช้การถามตอบ เพื่อทดสอบว่าใช้บอทหรือไม่

===============================================================================
ขั้นตอนการใช้งาน:
===============================================================================
   1. ติดตั้งปลั๊กอินนี้ลงในโฟลเดอร์ plugins (มีอยู่แล้ว ใน OPKwin).
   2. เพิ่มบล๊อค reactOnNPC ในไฟล์ config.txt และเซ็ทคำสั่งที่จะให้ทำเมื่อสนธนากับ NPC
      เมื่อเงื่อนใขทุกย่างถูกต้อง Openkore ก็จะทำคำสั่งนั้นให้อัตโนมัติ

===============================================================================
การตั้งค่า:
===============================================================================
 • reactOnNPC (คำสั่ง)
      ใช้สำหรับตั้งคำสั่งที่จะให้ทำเมื่อเงื่อนใขภายในบล๊อค ถูกต้อง
      ตัวแปรพิเศษที่สามารถใช้ได้ (ดูด้านล่าง)

===============================================================================
      ความหมายของตัวแปร:
===============================================================================
          • type (close|continue|number|responses|text)
            ตัวแปรเหล่านี้จะสามารถระบุได้ว่า หน้าต่างที่สนธนากับ NPC เป็นแบบใด
                + close - หน้าต่างสนธนากับ NPC ที่มีปุ่ม "close"
                + continue - หน้าต่างสนธนากับ NPC ที่มีปุ่ม "next"
                + number - หน้าต่างสนธนากับ NPC ที่ให้ใส่ตัวเลข
                + responses - หน้าต่างสนธนากับ NPC ที่ให้เลือกตัวเลือก
                + text - หน้าต่างสนธนากับ NPC ที่ให้ใส่ข้อความ
            หมายเหตุ: ถ้าไม่ตั้งตัวแปรเหล่านี้ บล๊อคนี้ก็จะทำงานไม่ว่าจะเป็นการสนธนาแบบใหนก็ตามกับ NPC
          • msg_(หมายเลขบรรทัด) (ข้อความปกติ|regexp)
            นี่คือรายการของข้อความที่จะต้องตรวจสอบขณะกำลังสนธนากับ NPC หมายเลขบรรทัดเริ่มนับจาก 0 และเพิ่มไปทีละ 1
            คุณสามารถ ระบุข้อความปกติ หรือ regexp ก็ได้
          • useColors (1 หรือ 0) v.1.1.0
            โดยปกติเราจะเปรียบเทียบเฉพาะข้อความที่สนธนากับ NPC โดยไม่คำนึงถึงสี(ตัวอย่างเช่น ^FF0000)
    แต่ถ้าตัวแปรนี้ถูกตั้งให้เป็น 1 คุณจะต้องตั้งรูปแบบสีที่จะตรวจสอบด้วย คุณสามารถหาโค้ดสีได้ตอนรันบอท
          • Shared self conditions
            เราสามารเช็คสถาณะของตัวเองได้ด้วย ตัวอย่างเช่น hp,sp,อื่นๆ อ่านเพิ่มเติมที่
          • debug (1 หรือ 0) v.2.0.0 mod by windows98SE
            เพื่อดูการทำงาน แบบละเอียดของ ตัวแปร ต่างๆใน plugins
          • respIgnoreColor (1 หรือ 0) v.2.0.1 mod by windows98SE
            เพื่อตัดสีต่างๆ จากในตัวเลือกของคำพูด npc

===============================================================================
คำสั่งพิเศษ:
===============================================================================
   1. @eval(expression)
      ใช้สำหรับทำคำสั่งภาษา PERL อย่างง่ายๆ หรือ คิดเลขอย่างง่ายได้
   2. @resp(pattern) v.1.1.0
      ใช้ตรวจหาตัวเลือกที่ NPC ให้รายการมา โดย pattern ก็คือข้อความในข้อที่เราจะต้องเลือก
      pattern สามารถใช้ได้ทั้งข้อความธรรมดา หรือ regexp ก็ได้
   3. #(หมายเลขบรรทัด)~(match index)
      ถ้า คุณใช้ regexp ดักเอาข้อความหรือตัวเลข ที่คุณตั้งใว้ที่ msg_# นี่ก็คือตัวแปรที่เก็บค่าที่คุณดักมาได้
      หมายเลขบรรทัดก็คือตัวเดียวกับที่ใช้ใน msg_# โดยที่ match index ก็คือตัวชี้ลำดับของ regexp

===============================================================================
การจัดกลุ่มคำสั่ง: v.1.1.0
===============================================================================
    ใน v1.1.0 คุณสามารจัดกลุ่มคำสั่งได้เช่น @resp(@eval(...)) แต่อย่างไรก็ตามตัวอักษร "@" และ ")" ใช้ในการแยกคำสั่ง
    ดังนั้นมันไม่สามารถใช้ได้อย่างปกติ ถ้าคุณต้องการใช้ ให้ใช้ แบบนี้ "@@, "@)".

----------------------------------------------------------------------------------------------------------------------------------------------
• ตัวอย่าง:
----------------------------------------------------------------------------------------------------------------------------------------------
นี่เป็นตัวอย่างง่ายๆ ในการ บวกเลขที่เซิฟเวอร์ถามมา ใช้ @eval() ในการทำสมการคณิตศาสตร์

reactOnNPC talk num @eval(#1~1 + #3~1) {
        type number
        msg_0 ANSWER THIS CORRECTLY OR BANNED!
        msg_1 /^(\d+)$/
        msg_2 + (PLUS)
        msg_3 /^(\d+)$/
        msg_4 = ?
        }

----------------------------------------------------------------------------------------------------------------------------------------------
===============================================================================
• ตัวอย่างการใช้ Plugins reactOnNPC ตอบแบบให้เลือกตัวเลือก เช่นใช้กับ NPC แบบรวมอยู่ในตัวเดียว
===============================================================================
reactOnNPC talk resp @resp(/Ans1|AnsN/i) {     # ตัวเลือกครั้งแรกตอบ Ans1, ตัวเลือกครั้งที่ 2 ตอบ AnsN
    type responses                                            # บอกชนิด คือมีตัวเลือกให้เลือก
    respIgnoreColor 1                                        # ไม่สนใจแม้เป็นหัวข้อที่มีสีอยู่
    msg_0 /First Line/i                                       # First Line = คำบรรทัดแรกของหน้าต่างที่มีตัวเลือก
    }

* ปกติ First Line มักเป็นชื่อของ NPC ตัวนั้น
----------------------------------------------------------------------------------------------------------------------------------------------
• หมายเหตุ
    มักใช้ควบคู่ไปกับ Macro เพื่อแยกหัวข้อของ NPC ออกจากกัน

===============================================================================
• ตัวอย่างการบังคับให้เลือกตัวเลือกตามที่กำหนด
===============================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
control\config.txt
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

reactOnNPC talk resp @resp(/ซื้อขาย/) {          <--- ซื้อขาย คือ คำพูด ที่แสดงตัวเลือกการซื้อ-ขาย ในNPC
    type responses
    msg_0 /Support/i                                       <--- Support คือ บรรทัดแรกของ NPC ที่บอกเรามา
    }

• หมายถึง ..
    ให้บอทเลือก ข้อความว่า ซื้อขาย เมื่อเจอประโยคใน Console ที่บรรทัดที่มีคำว่า Support
    เรา set reactOnNPC ขึ้นมาเพื่อ ให้บอท สามารถทำการซื้อขายต่อไปได้ เพระว่าบอทมันจะไม่กด เลือกคำว่า ซื้อขาย เอง!!

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
control\macros.txt
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

automacro ab {
    location geffen
    sp < 50%
    run-once 1
    call ab1
    }

macro ab1 {
    do ai manual                                      <---- เป็นคำสั่ง กำหนด AI ในรูปการบังคับด้วยตน คือ bot จะไม่ทำงาน
    do plugin unload reactonnpc                <----- ยกเลิก plugin reactonnpc
    pause 1
    do talknpc 123 72 c r0 n                      <---- คุยกับ NPC Steps คุย กับNPC ตั้งปกติ
    pause 1
    do plugin load plugins/reactonnpc.pl     <---- เปิดการใช้งาน plugin reactonnpc
    do ai on                                             <---- เปิดการทำงาน
    release all
    }

• หมายความว่า...
    เมื่ออยู่ที่ กิฟ Sp น้อยกว่า 50 % ให้ทำการปิด Al แล้วปิดการทำงาน plugin reactonnpc หลังจากนั้น คุยกับ NPC
    ที่ พิกัด 123 72 ด้วย สเต๊ปคุย c r0 n ต่อจากนั้นทำการเปิดการใช้งาน plugin reactonnpc ต่อจากนั้น ทำการเปิดการทำงาน AI

• ที่เราตั้ง macro แบบนี้ เพราะว่า...
    การที่เราตั้ง reactOnNPC ตามข้างบน เมื่อ NPC ตัวเดียวกัน พอกด คุย NPC ปุ๊ป มันจะเลือก ซื้อขายของ ตาม react ที่ตั้งไว้
    เราจึงต้องทำการปิดการใช้งาน plugins นั้นก่อน แล้วค่อยคุย แล้วเปิดใหม่

===============================================================================
• ตัวอย่างการใช้ Plugins reactOnNPC ตอบแบบให้คำนวนด้วยการบวกเลขครับ หรือติดคุกนั่นเอง
===============================================================================

reactOnNPC talk num @eval(#2~1 #2~2 #2~3) {
        type number
        msg_0 /Superman/i
        msg_1 /วิชาขั้นที่/i
        msg_2 /(\d+)(\D+)(\d+)/i
        }

----------------------------------------------------------------------------------------------------------------------------------------------
• หมายเหตุ
reactOnNPC สามารถใช้ร่วมกับ Plugins delayCommand ได้ด้วยครับ

เช่น

reactOnNPC delayCommand talk resp @resp(/^Fields$|^Mjolnir Fields$|^Mjolnir Field 15$/i) {
    type responses
    msg_0 /.W+./i
    }

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

AddThis

Share |