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

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


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

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

10/26/2553

การใช้คำสั่งใน Macro ของ Open kore

macro <macroname> [options] [-- parameter(s)]

----------------------------------------------------------------------------------------------------------------------------------------------
Runs macro <macroname>
----------------------------------------------------------------------------------------------------------------------------------------------
ตัวเลือก ตั้งค่า คำอธิบาย
-repeat n ทำมาโครซ้ำ n ครั้ง
-overrideAI (none) เป็นการควบคุม AI ของ Openkore
-macro_delay delay เป็นการควบคุม global macro_delay สำหรับมาโครที่กำกลังทำงานอยู่
-exclusive (none) ไม่อนุญาติให้ automacros ยกเลิกมาโครที่กำลังทำงานอยู่
-orphan method ใช้ method ในการจัดการorphaned macros

ตัว แปรในมาโครสามารถกำหนดได้หลังสัญญาลักษณ์ขีดสองขีด (--) ตัวแปรเหล่านี้จะถูกเก็บไว้ใน ตัวแปร $.param1 to $.paramN

###############################################################################
ยกตัวอย่างเช่น:
###############################################################################
macro foo {
    log Parameter 1 is $.param1
    log Parameter 2 is $.param2
    }

เมื่อเรียกไปยังมาโคร foo
macro foo -- foo bar จะพิมพ์ข้อความว่า
[macro] Parameter 1 is foo
[macro] Parameter 2 is bar

----------------------------------------------------------------------------------------------------------------------------------------------
macro list
----------------------------------------------------------------------------------------------------------------------------------------------
ลิสต์รายชื่อมาโครทั้งหมดที่มีอยู่

----------------------------------------------------------------------------------------------------------------------------------------------
macro stop
----------------------------------------------------------------------------------------------------------------------------------------------
หยุดการทำงานของมาโครที่ทำอยู่

----------------------------------------------------------------------------------------------------------------------------------------------
macro pause
----------------------------------------------------------------------------------------------------------------------------------------------
เป็นคำสั่งสำหรับหยุดการทำงานของมาโครที่กำลังทำงานอยูชั่วคราว

----------------------------------------------------------------------------------------------------------------------------------------------
macro resume
----------------------------------------------------------------------------------------------------------------------------------------------
เป็นคำสั่งให้มาโครที่ถูกหยุดการทำงานชั่วคราวกลับมาทำงานใหม่

----------------------------------------------------------------------------------------------------------------------------------------------
macro set variable value
----------------------------------------------------------------------------------------------------------------------------------------------
เป็น การกำหนดค่า/การเปลี่ยนแปลง ของตัวแปร (variables) ให้เป็น ค่า (value)
หรือเป็นการลบ ตัวแปร (variable) ถ้่าไม่มีการกำหนดค่า (value)

----------------------------------------------------------------------------------------------------------------------------------------------
macro version
----------------------------------------------------------------------------------------------------------------------------------------------
สั่งให้บอทพิมพ์เวอร์ชั่นของมาโคร

----------------------------------------------------------------------------------------------------------------------------------------------
macro reset [<name(s)>]
----------------------------------------------------------------------------------------------------------------------------------------------
เป็นการตั้ง automacros ที่ run-once ทั้งหมดกลับมาใหม่หรือเฉพาะ automacro <name>(ที่กำหนดชื่อใน <name>)

----------------------------------------------------------------------------------------------------------------------------------------------
macro status
----------------------------------------------------------------------------------------------------------------------------------------------
เป็น คำสั่งที่ให้้แสดงว่า้มาโครกำลังทำงานอยู่หรือใหม่ ถ้ามาโครกำลังทำงานอยู่จะแสดงออกมาเป็นค่า delay ของคำสั่งต่อไป
บันทัดที่ทำอยู่ การจัดตั้ง overrideAI ไม่ว่าจะสิ้นสุดหรือยัง มาโครจะรีจิสเตอร์ไปเข้าแถวต่อใน AI

===============================================================================
การจัดการกับไฟล์ Configuration files
===============================================================================
1.control/macros.txt
ใส่ macros and automacros ในไฟล์ macros.txt
2.control/timeouts.txt
เพิ่มบันทัด macro_delay ตั้งค่าเป็นวินาทีที่ต้องการให้ปลั๊กอินหยุดระหว่างคำสั่งมาโคร

1.control/config.txt
ตัวแปร Variable การตั้งค่า Value คำอธิบาย
macro_nowarn 0/1 เปิด/ปิด คำเตือนเมื่อไม่ได้ใช้ call ใน automacro(s)
macro_orphans terminate/reregister/reregister_safe see orphaned macros section
macro_debug level(s) see debugging section
macro_file filename file containing the macros ("macros.txt" by default)
macro_allowDebug 0/1 ป็นการตรวจสอบกระบวนการจากข้อความ debug ของ openkore (default: 0)
คำเตือน ทำให้การทำงานของ ปลั๊กอินช้าลง

===============================================================================
ก่อนลงมือเขียนมาโคร
===============================================================================
โปรดอ่านคู่มือโดยละเอียดทั้งหมดก่อนใช้มาโคร
ถ้า ต้องการใช้คำสั่งของ openkore ในมาโครกรุณาอ่านใน console commands.
พึงจำไว้ว่า คำสั่งบางคำสั่งที่เกี่ยวช้องกับการจัดการแถวของ ai (ai queue)จะไม่สามารถใช้ได้
กรุณาอ่าน announcements อาจจะมีข้อมูลและตัวอย่างที่เป็นประโยชน์ในการนำมาใช้

===============================================================================
ภาษามาโคร (Macro syntax)
===============================================================================
macro foo {
    do this..
    and that..
    yattayatta..
    }

ตาม ทฤษฎีแล้ว ผู้ใช้สามารถใช้คำสั่งที่พิมพ์ในคอนโซลมาใช้กับคำสั่งในมาโครได้เลย
มาโครปลั๊กอินสามารถสั่งบอทให้ทำได้หมดทุกอย่าง
ตั้งแต่ซื้อลูกธนูเงิน คุยกับ npc หรือการกระซิบไปยังผู้เล่นคนอื่นๆ แม้แต่คนที่ไม่มีเวลา (จะว่าขี้เกียจก็ไม่ว่ากัน)
ยังสามารถประยุกต์ใช้มาโครปลั๊กอินในการทำเควสลง amatsu ดันเจี้ยนได้ง่ายๆ เลย

===============================================================================
การใช้คำสั่ง do <command>
===============================================================================
เป็นการสั่งให้ openkore run <command>

###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
macro foo {
    do move 123 234 prontera
    do sit
    do c "hello world"
    }

===============================================================================
log <text>
===============================================================================
ส่งข้่อความใน <text> ไปยังคอนโซล

###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
macro foo {
    log This line logs a text to console.
    log All your base are belong to us!
    }

===============================================================================
pause [<n>]
===============================================================================
หยุดเป็นเวลา 1 หรือ <n> วินาที

###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
macro foo {
    log I'm here and...
    pause 10
    log now I'm here.
    }

===============================================================================
call <macroname> [<n>]
===============================================================================
เรียก ไปยังมาโครที่ตั้งชื่อไว้ใน <macroname>เป็นจำนวน [<n> ครั้ง]
เมื่อ <macroname> เสร็จสิ้นแล้วมาโครที่กำลังทำอยู่ก็จะทำงานต่อ

===============================================================================
release (<name> | all)
===============================================================================
เป็น การกลับมาที่ automacro ที่ถูกล๊อกการทำงานจากคำสั่ง ("run-once" หรือคำสั่ง "lock")
หรือเป็นการกลับมาที่ automacros ทั้งหมดเมื่อใช้คำสั่ง release all

===============================================================================
lock <name>
===============================================================================
เป็นการล๊อค automacro ที่ตั้งชื่อใน <name> และไม่ให้มีการเชคเงื่อนไขที่เราตั้งไว้ใน automacro ด้วย

===============================================================================
stop
===============================================================================
หยุดการทำงานของมาโครทันที

===============================================================================
set <option> <value>
===============================================================================
ตั้งรูปแบบมาโคร:
* orphan method
* macro_delay timeout
* overrideAI [0|1]
* repeat times
* exclusive [0|1]
โปรดดูที่ส่วนของ automacro

===============================================================================
การกำหนดตัวแปร (variable) และการนำมาใช้
===============================================================================
ผู้ใช้สามารถที่จะกำหนดและทำงานกับตัวแปร ที่ผู้ใช้กำหนดขึ้นเองได้
การตั้งค่าตัวแปรทำได้โดยใช้ $variable = value, และถ้าต้องการเรียกใช้ value ให้ใช้ $variable
การเพิ่มหรือลดตัวแปรสามารถทำได้โดยการใช้ $variable++ or $variable--
สำหรับการคำนวณให้ใช้ @eval

###############################################################################
ตัวอย่างการแยก item ตัวแรกออกจากลิสต์ที่ใช้ comma แยกลิสต์ออกจากกัน
###############################################################################
macro foo {
    $list = element one,element two,foo,bar,baz
    $var = [$list]
    log var contains $var (element one)
    log list contains $list (element two,foo,bar,baz)
    }

พึงระลึกไว้ว่า ชื่อของตัวแปรจะต้องเริ่มต้นด้วยพยัญชนะและต้องไม่มีอักขระอื่นๆ มาปะปน
ยกเว้นพยัญชนะและตัวเลขจำนวนเต็มเท่านั้น

###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
macro foo {
    $var1 = world
    $var2 = hello
    $var3 = $var2 $var1
    log next line will yell out "hello world . world . hello"
    do c $var3 . $var1 . $var2
    $var4 = 47
    log \$var4 is $var4
    $var4++
    log \$var4 is $var4
    $var4 = @eval ($var4 + 52)
    log \$var4 is $var4
    }

===============================================================================
ตัวแปรพิเศษ (Special variables)
===============================================================================
มีตัวแปรสุ่มพิเศษหลายๆ ตัวแปรที่เริ่มต้นด้วยจุด

* $.map - แผนที่ที่บอทอยู่ ("prontera")
* $.pos - พิกัดที่บอทอยู่ ("123 234")
* $.time - เวลาขณะนี้ ใช้เวลาของยูนิค(unix timestamp) ("1131116304")
* $.datetime - วันและเวลาขณะนี้ ("Fri Nov 4 15:59:36 2005")
* $.hp - hp ขณะนี้
* $.sp - sp ขณะนี้
* $.lvl - เบสเลเวลของตัวละครขณะนี้
* $.joblvl - จ๊อบเลเวลของตัวละครขณะนี้
* $.spirits - จำนวนลูกไฟ (spirit spheres) ขณะนี้
* $.zeny - จำนวนเงินขณะนี้
* $.status - สถานะในขณะนี้ ใช้คอมม่าแยกลิสต์ออกจากกัน
* $.lastLogMsg - ประโยคสุดท้ายใน console ที่ triggered เงื่อนไขของ automacro "consol"
* $.lastpub - ชื่อของผู้เล่นคนสุดท้ายที่เป็นคน triggered เงื่อนไขของautomacro "pubm"
* $.lastpubMsg - ข้อความที่ผุ้เล่นพิมพ์ข้อความสุดท้าย
* $.lastpm - ชื่อชองผู้เล่นที่กระซิบคนสุดท้ายแล้ว trigger เงื่อนไขของ automacro "pm"
* $.lastpmMsg - ข้อความที่ผู้เล่นที่กระซิบคนสุัดท้ายแ้ล้ว triggered เงื่อนไขของ automacro "pm"
* $.lastguild - ชื่อของผู้เล่นคนสุดท้ายที่ triggered เงื่อนไขของ automacro "guild"
* $.lastguildMsg - ประโยคที่ผู้เล่นคนสุดท้ายที่ triggered เงื่อนไขของ automacro "guild" เขียน
* $.lastparty - ชื่อของผู้เล่นคนสุดท้ายที่ triggered เงื่อนไขของ automacro "party"
* $.lastpartyMsg - ประโยคที่ผู้เล่นคนสุดท้ายที่เป็นคน triggered เงื่อนไขของ automacro "party"
* $.lastMonster - monster ตัวสุดท้ายที่ triggered เงื่อนไขของ automacro "monster"
* $.lastMonsterPos - พิกัดสุดท้ายของ monster ตัวสุดท้ายนั้น ("123 234 prontera")
* $.lastMatchN - อ้างอิงย้อนกลับไปที่ regexp ล่าสุดที่ตรงกัน
* $.paramN - คำสั่ง parameters (see commands)
* $.caller - ชื่อชอง automacro สุดท้ายที่ triggered การทำงานของมาโคร
* $.hooksaveN - ค่าหนึ่งของ hash key (เป็น argument ที่ถูกให้กับ hook)

===============================================================================
ตัวแปรชนิดวน ( Nested variables)
===============================================================================
ผู้ใช้สามารถกำหนดตัวแปรแบบวน หรือแบบที่ไม่ตายตัวได้
###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
macro foo {
    $var = foo
    log \$var is "foo"
    ${$var} = bar
    log \$\$var is \$foo is "bar"
    }

===============================================================================
การจัดทำและการตั้งชื่อ (Flow control and labels)
===============================================================================
ใน โปรแกรมชั้นสูงจะมีโครงสร้างในลักษณะของ "if .. then", "while", "repeat", "for .. next", "do .. while"
และมี function เรียกตัวตั้งปกติว่า "if", "goto" and "while" จึงเป็นเหตุผลที่ทำไมมาโครจึงนำมาใช้กับสามตัวดังกล่าว
เนื่องจากมาโครไม่มีหมายเลขบันทัด (ที่มองเห็น) กำกับ ดังนั้นผู้ใช้ต้องใช้ labels หรือตัวกำกับ คือโคลอนตามด้วยชื่อของเลเบล

###############################################################################
ตัวอย่างของการใช้โครงสร้าง a "while":
###############################################################################
macro foo {
    $i = 0
    log the next lines will loop 11 times (0 .. 10)
    while ($i <= 10) as exampleloop
    log loop $i
    $i++
    end exampleloop
    }

###############################################################################
Example:
###############################################################################
macro foo {
    $i = @random ("1", "2", "3")
    if ($i == 1) goto one
    if ($i == 2) goto two
    log i is three.
    goto end
  
    :one
    log i is one
    goto end

    :two
    log i is two

    :end
    }

===============================================================================
เงื่อนไข (condition):
===============================================================================
เงื่อนไข (Condition) ความหมาย (Meaning)
< น้อยกว่า
<= น้อยกว่าหรือเท่ากับ
== เท่ากับ
>= มากกว่าหรือเท่ากบ
> มากกว่า
!= ไม่เท่ากับ
~ <ส่วนทางซ้าย> เป็นส่วนประกอบของ <ส่วนทางขวา (ใช้คอมมาแยกลิสต์ออกจากกัน)>

===============================================================================
keywords ที่สำคัญ
===============================================================================
@npc (<x> <y>)
ไปยังหมายเลข npc ที่อยู่ที่พิกัด <x>, <y> หรือ -1 ถ้าไม่พบ npc
@inventory (<item>)
ค้นหา <item> ในช่องเก็บชอง ผลที่ได้คือ ID ของ item หรือ -1 ถ้าไม่เจอ item นั้นๆ
@Inventory (<item>)
เช่นเดียวกันกับ @inventory แต่จะให้ค่า IDs ที่ตรงกันโดยใช้ คอมม่าอยากลิสต์ออกจากกัน หรือให้ค่า -1 ถ้าไม่มี item นั้นๆ
@cart (<item>)
ค้นหา <item> ในรถเข็น ผลที่ได้รับคือ ID ของ item ที่ต้องการหรือ -1 ถ้าไม่เจอ item ที่ต้องการ
@Cart (<item>)
เหมือนกันกับคำสั่ง @cart แต่ผลที่ได้รับคือ IDs ของ item ที่ต้องการ
โดยจะแยกลิสต์ออกจากกันด้วยคอมมา (,) ถ้าได้ -1 แสดงว่าไม่มี item ที่ต้องการ
@storage (<item>)
ค้นหา <item> ที่ต้องการในคาฟราเก็บของ ผลที่คือ ID ของ item นั้นหรือถ้าได้ -1 แสดงว่าหา item นั้นไม่เจอ
@Storage (<item>)
เหมือนกันกับคำสั่ง @storage แต่ผลที่ได้คือ IDs ที่ตรงกันทั้งหมด ออกจากกันด้วยคอมมา (,)
ถ้าได้ -1 แสดงว่าไม่มี item ที่ต้องการ
@player (<name>)
หาผู้เล่นที่ชื่อ <name> ผลที่ได้รับ ID ของผู้เล่น หรือถ้าได้ -1 แสดงว่าหาผู้เล่นดังกล่าวไม่เจอ
@vender (<name>)
หาร้านค้าที่ชื่อ <name> ผลที่ได้คือ ID ของร้านค้าถ้าได้ -1 แสดงว่าหาไม่พบ
@store (<name>)
ค้นหา item <name> ในคาฟราเก็บของ ผลที่คือ ID ของ item นั้นหรือถ้าได้ -1 แสดงว่าหา item นั้นไม่เจอ
@random ("<argument1>"[, "<argument2>"[, ...]])
สุ่ม argument 1,2,3 ที่ตั้งไว้ ผลที่ได้รับคือ argument อันใดอันหนึ่ง
@rand (<n>, <m>)
สุ่มตัวเลขหรหว่าง (และ รวมถึง) <n> และ <m>
@invamount (<item>)
แสดงจำนวนของ <item> ที่ต้องการ ในข่องเก็บของ
@cartamount (<item>)
แสดงจำนวนของ <item> ที่ต้องการในรถเข็น
@shopamount (<item>)
แสดงจำนวนของ <item> ที่ต้องการในร้าน
@storamount (<item>)
แสดงจำนวนของ <item> ที่ต้องการในช่องเก็บของ
@eval (<argument>)
คำนวณ <argument>
@arg ("<argument>", <n>)
แสดงลำดับที่ <n>th ของคำที่กำหนดใน <argument> ถ้าดัชนีของคำอยู่นอกเหนือจากนี้จะแสดงผลเป็น string เปล่า
@config (<variable>)
แสดงผลเป็นค่าของตัวแปร <variable> ที่กำหนดในไฟล์ config.txt

===============================================================================
"คำสั่งประเภทลูกโซ่" (Chaining commands)
===============================================================================
ผู้ ใช้สามารถที่จำทำงานโดยใช้คำสั่งเป็นชุดๆ ติดๆ กันโดยไม่ต้องรอ ai ของ openkore
หรือ macro delay ผู้ใช้เพียงแค่ใส่วงเล็บ[ ]ล้อมกลุ่มชุดคำสั่ง Template:ตัวอย่าง
บันทัดที่ 3 เริ่มการใช้คำสั่งประเทภลูกโซ่ (chaining mode) บันทัดนี้ไม่มี delay บันทัดที่ 4, 5 และ 6
จะทำงานโดยไม่มี delay เมื่อคำสั่งก่อนหน้้านั้นเสร็จสิ้น delay และไม่สามารถหยุดการทำงานได้จนกว่าจะเสร็จ
บันทัดที่ 7 หยุดการใช้คำสั่งแบบลูกโซ่ และบันทัดที่ 8 จะทำงานหลังจากมีการ delay เป็นวินาทีใน $macro_delay seconds

###############################################################################
ตัวอย่างมาโครแบบง่ายๆ เมื่อมีการเรียกผ่านมายังมาโคร "macro foo [times]" มาโครจะทำงานดังต่อไปนี้
###############################################################################
* เก็บค่าพิกัดที่อยู่ใสนขณะนี้ไว้ที่ตัวแปล "foobegin"
* เดินไปที่พิกัด 168 128 prt_in (ร้านขายอาวุธ)
* คุยกับ npc ที่ตำแหน่ง 172 130 (คนขายอาวุธ)
* พิมพ์ "store" สองครั้งเพื่อดูว่ามีอะไรขายบ้าง
* ซื้อลูกธนูเงิน 10,000 ดอก
* เดินไปที่ 280 198 prontera (ประตูทางทิศตะวันออกของเมืองพรอนเทรา)
* คุยกับคาฟรา
* คุยต่อ (talk cont) และ เลือกตอบคำถามข้อ 1(talk resp 1) เพื่อเปิดคาฟราเก็บของ
* เก็บลูกธนูเงินที่ซื้อทั้งหมดในคาฟราเก็บของเหลือไว้ 1000 ดอก และ
* เดินกลับไปยังพิกัดที่เคยอยู่ก่อนที่จะเริ่มต้นมาโครนี้

===============================================================================
ภาษาใน Automacro (Automacro syntax)
===============================================================================

###############################################################################
Example:
ยกตัวอย่างเช่น
###############################################################################
automacro foo {
    <condition> bar
    <condition> baz, yatta
    call macroname
    }
  
automacro mi {
    <condition> moo
    <condition> xyz
    call {
    do this
    do that
    }
    }

===============================================================================
Automacros คือ macros ที่จะเริ่มทำงานอัตโนมิัตเมื่อสถานะต่างๆ ที่ตั้งไว้ถูกต้องตามเงื่อนไข
===============================================================================
----------------------------------------------------------------------------------------------------------------------------------------------
map <mapname>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อแผนที่ในปัจจุบันคือ <mapname>

----------------------------------------------------------------------------------------------------------------------------------------------
location [not] <mapname [<x1> <y1> [<x2> <y2>]] [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers when you are [not] at the specified location.
ถ้าไม่ได้กำหนดพิกัด <x1> <y1> หรือ <x2> <y2> จะ riggers เมื่อไม่ได้อยู่ใน <mapname>
ถ้า ไมไ่ด้กำหนดพิกัด <x2> <y2> จะ triggers เมื่อไม่ได้อยู่ในแผนที่ <mapname> ตำแหน่งพิกัด <x1>, <x2>
ถ้าทั้ง <x1> <y1> และ <x2> <y2> ถูกกำหนดจะทำงานเมื่ออยู่ใน <mapname> ระหว่าง <x1>, <y1> (มุมซ้ายบนสุด)
และ <x2>, <y2> (มุมขวา, เมื่อ <x1> < <x2> และ <y1> > <y2>
แยกโดย arguments โดยใช้ คอมมา (,) จะถือว่าเป็นเงื่อนไขแบบหรือ (OR conditions):
ถ้า มีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions):

----------------------------------------------------------------------------------------------------------------------------------------------
mapchange (<mapname>|any) [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อเปลี่ยนแผนที่ไปยัง <mapname>. แต่ถ้าใช้ any จะ trigger ทุกครั้งที่มีการเปลี่ยนแผนที่
ถ้าใส่คอมมา(,) แยกกันให้ถือว่าเป็นการเชคสภาพแบบ OR (หรือ)

----------------------------------------------------------------------------------------------------------------------------------------------
hp <condition> <amount>[%]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ hp เท่ากับเงือนไขที่กำหนดใน <condition> <amount>เป็นแบบค่า hp โดยตรง (absolute value)
หรือ <condition> <amount> ค่าเป็นเปอร์เซนต์
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)

----------------------------------------------------------------------------------------------------------------------------------------------
sp <condition> <amount>[%]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ sp เท่ากับเงื่อนไขที่กำหนดใน <condition> <amount> เป็นแบบค่า sp โดยตรง(absolute value)
หรือ <condition> <amount> ค่าเป็นเปอร์เซนต์ (relative value).
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)

----------------------------------------------------------------------------------------------------------------------------------------------
spirit <condition> <amount>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อลูกพลัง (spirits) เท่ากับเงื่อนไขที่กำหนดใน <condition> <amount>
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)

----------------------------------------------------------------------------------------------------------------------------------------------
weight <condition> <amount>[%]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อน้ำหนัก อยู่ใน condition ปริมาณที่ต้องการ
โดยปริมาณ จะต้องใส่เลขจำนวนเต็ม และเป็น เปอร์เซนต์ หรือว่าเป็นจำนวนจริงๆ (relative value)
แต่ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
cartweight <condition> <amount>[%]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อน้ำหนักรถเข็นอยู่ใน <condition> ปริมาณที่ต้องการ
โดยปริมาณ จะต้องใส่เลขจำนวนเต็ม และเป็น เปอร์เซนต์ หรือว่าเป็นจำนวนจริงๆ (relative value)
แต่ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
zeny <condition> <amount>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อจำนวนเงิน condition ปริมาณที่ต้องการ
ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
คำสั่งนี้มักใช้เมื่อมีการ deal ขายของ

----------------------------------------------------------------------------------------------------------------------------------------------
soldout <condition> <slots>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ items ในร้านขาย ไป condition เท่าไหร่
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
status [not] <status> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อไม่ได้อยู่ในสถานะ <status>
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
inventory "<item>" <condition> <amount> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ มี item ใน inventory จำนวน เท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
storage "<item>" <condition> <amount> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อใน storage (คาฟรา) มี itemsจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
cart "<item>" <condition> <amount> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ item ใน cart มีจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
shop "<item>" <condition> <amount> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ item ในร้านมีจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
base <condition> <level>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อเลเวลตัวละครมีเลเวล เท่ากับ <condition> ที่ตั้งไว้
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
job <condition> <level>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อจ๊อบเลเวลของจตัวละครเทากับ <condition> ที่ตั้งไว้
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND

----------------------------------------------------------------------------------------------------------------------------------------------
class <job>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ อาชีพเป็นไปตามที่ตั้งไว้

----------------------------------------------------------------------------------------------------------------------------------------------
spell <spell> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อมีการร่ายเวทย์ ที่ตั้งไว้ใน <spell> ไปยังตัวเราหรือไปยังในบริเวณที่เราอยู่
ถ้าใส่ Comma (,)แยกลิสต์จากกันให้ถือว่าเป็นการเชคสภาพแบบ OR

----------------------------------------------------------------------------------------------------------------------------------------------
monster <monstername> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อมี monster ที่เราตั้งไว้ใน <monstername> อยู่ใกล้ๆ
เมื่อ trigger แล้วจะมีการ set ค่าตัวแปล $.lastMonster และ $.lastMonsterPos
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไข AND

----------------------------------------------------------------------------------------------------------------------------------------------
notMonster <monstername> [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ monster ที่เราไม่ได้ตั้งไว้ในลิสต์ปรากฎขึ้น
ถ้าใส่ Comma (,) แยกลิสต์ออกจากกันให้ถือว่าเป็นการเชคสภาพแบบ AND

----------------------------------------------------------------------------------------------------------------------------------------------
aggressives <condition><number>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อจำนวน <number> monster
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ AND

----------------------------------------------------------------------------------------------------------------------------------------------
player "<playername>" [, <distance> ]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อผู้เล่นชื่อที่ใส่ใน <playername> อยู่ในหน้าจอหรือในระยะห่างไม่เกิน<distance>บล๊อค
บันทัดเรียงกันจะให้ถือเสมือนว่าใช้เงื่อนไข AND

----------------------------------------------------------------------------------------------------------------------------------------------
equipped [<slot>] (<item>|none) [, ...]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อสวมใส่ <item> หรือไม่ได้สวมใส่ item [ในช่อง <slot>]
Slots are ศรีษะส่วนบน, ศรีษะส่วนกลาง, ศรีษะส่วนล่าง, มือซ้าย, มือขวา, เสื้อ, เกราะ, รองเท้า,
เครื่องสวมใส่มือซ้าย, เครื่องสวมใส่มือขว และลูกธนู
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ OR
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND

----------------------------------------------------------------------------------------------------------------------------------------------
var <variable> (unset|<[[Macroplugin#Conditions|condition]]> <value>)
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อตัวแปร <variable> ถูก unset หรือว่าถูกต้องตาม<[[Macro plugin#เงื่อนไข|condition]]> <value>
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND

----------------------------------------------------------------------------------------------------------------------------------------------
varvar <nested variable> (unset|<[[Macroplugin#Conditions|condition]]> <value>)
triggers เมื่อตัวแปรแบบวน <nested variable> ถูก unset หรือถูกต้องตาม <condition> <value>
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND

----------------------------------------------------------------------------------------------------------------------------------------------
console ("<text>"|/<[http://www.regular-expressions.info/ regexp]>/[i])
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อได้รับข้อความ <text>ผ่านทางหน้าต่าง consol หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายถึงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ
ใน [http://www.regular-expressions.info/regexp] ชุดคำสั่ง $.lastLogMsg

----------------------------------------------------------------------------------------------------------------------------------------------
pm ("<text>"|/<[http://www.regular-expressions.info/regexp]>/[i]) [, <player>]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อได้รับกระซิบข้อความ <text>[จากผู้เล่น <player>] หรือข้อความที่ได้รับถูกต้องตามเงื่อนไข<regexp>
ตัวเลือก i หมายถึงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน[http://www.regular-expressions.info/regexp] ชุดคำสั่ง $.lastpm และ$.lastpmMsg

----------------------------------------------------------------------------------------------------------------------------------------------
pubm ("<text>"|/<[http://www.regular-expressions.info/ regexp]>/[i]) [, <distance>]
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อได้รับข้อความ <text>[ภายในระยะ <distance>] หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่าจีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp] ชุดคำสั่ง [[Macroplugin#$.lastpub|$.lastpub]]
และ [[Macroplugin#$.laspubMsg|$.lastpubMsg]]

----------------------------------------------------------------------------------------------------------------------------------------------
party ("<text>"|/<[http://www.regular-expressions.info/ regexp]>/[i])
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อได้รับข้อความ <text> จากปาร์ตี้หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่า จีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp]
ชุดคำสั่ง [[Macroplugin#$.lastparty|$.lastparty]] และ [[Macroplugin#$.lastpartyMsg|$.lastpartyMsg]]

----------------------------------------------------------------------------------------------------------------------------------------------
guild ("<text>"|/<[http://www.regular-expressions.info/ regexp]>/[i])
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อไดัรับข้อความ <text> จากกิลด์หรือข้อความที่ได้รับถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่า จีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp] Sets $.lastguild และ$.lastguildMsg

----------------------------------------------------------------------------------------------------------------------------------------------
hook <hookname>
----------------------------------------------------------------------------------------------------------------------------------------------
triggers เมื่อ openkore เรียกไปยัง<hookname>

----------------------------------------------------------------------------------------------------------------------------------------------
saveN <hash key>
----------------------------------------------------------------------------------------------------------------------------------------------
(ใช้ด้วยกันกับคำสั่ง hook) จัดเก็บค่าของ <hash key> ในตัวแปรหนึ่ง [[Macroplugin#$.hooksaveN|.hooksave1]] ไปยัง .hooksaveN

----------------------------------------------------------------------------------------------------------------------------------------------
run-once (0|1)
----------------------------------------------------------------------------------------------------------------------------------------------
เมื่อตั้งค่าให้เป็น 1 automacro จะไม่ทำงานหลังจากถูก triggered
ใช้คำสั่งมาโคร[[Macroplugin#release_macro|release]] ในการที่จะให้ automacro ทำงานอีกที

----------------------------------------------------------------------------------------------------------------------------------------------
overrideAI (0|1)
----------------------------------------------------------------------------------------------------------------------------------------------
เมื่อตั้งค่าเป็น 1 มาโครจะไม่สนใจ AI ของ openkore ซึ่งหมายความว่ามาโครจะไม่หยุดในระหว่างที่บอทเดิน "move"
หรือตาย "status dead"

----------------------------------------------------------------------------------------------------------------------------------------------
delay <n>
----------------------------------------------------------------------------------------------------------------------------------------------
เว้นระยะเป็นเวลา<n>วินาทีก่อนที่จะเรียกมาโครที่เกี่ยวข้อง

----------------------------------------------------------------------------------------------------------------------------------------------
timeout <n>
----------------------------------------------------------------------------------------------------------------------------------------------
เว้นระยะอย่างน้อย <n>วินาทีก่อนที่ automacro จะทำงานอีกที

----------------------------------------------------------------------------------------------------------------------------------------------
macro_delay <n>
----------------------------------------------------------------------------------------------------------------------------------------------
เป็นการทับต้วแปรรวม the global macro_delay

===============================================================================
ตั้งค่าสำหรับเรียกมาโคร
===============================================================================
----------------------------------------------------------------------------------------------------------------------------------------------
priority <num>
----------------------------------------------------------------------------------------------------------------------------------------------
เลือกว่าจะต้องเชค automacros ตัวไหนก่อน ยิ่งค่า <num> น้อยเท่าไร automacro จะถูกเชคเร็วขึ้นแต่
ถ้าไม่ได้ตั้งค่าตัวเลือกไว้ ถือว่า ค่าอยู่ที่ 0 (ศูนย์:จะถูกเชคก่อน)

----------------------------------------------------------------------------------------------------------------------------------------------
exclusive (0|1)
----------------------------------------------------------------------------------------------------------------------------------------------
Automacros ที่มีชุดพิเศษ exclusive และ automacros ตัวอื่นจะมาหยุดการทำงานไม่ได้
เช่นเดียวกับมาโคร 1.3.0 ปกติแล้ว automacro สามารถหยุดการทำงานของมาโครได้ ดังนั้นเพื่อที่จะไม่ให้ถูกหยุดก็อาจ
จะตั้งตัวเลือกนี้ หรือโดยการใฃ้คำสั่งตัวเลือกใน -exclusive

----------------------------------------------------------------------------------------------------------------------------------------------
set <variable> <value>
----------------------------------------------------------------------------------------------------------------------------------------------
ตั้งค่าตัวแปร<variable> ให้เป็นค่า <value> ผู้ใช้สามารถทำลายๆ ชุด
set หลายๆ บันทัดต่อ 1 automacro

----------------------------------------------------------------------------------------------------------------------------------------------
call <name>
----------------------------------------------------------------------------------------------------------------------------------------------
เรียกมาโคร macro ชื่อ <name> เมื่อ automacro ถูก triggered.

call {
    <instructions>
    }

เรียกไปยัง<instructions> เมื่อ automacros ถูก triggered

----------------------------------------------------------------------------------------------------------------------------------------------
orphan <method>
----------------------------------------------------------------------------------------------------------------------------------------------
จัดตั้งวิธีการจัดการกับ orphaned

###############################################################################
ตัวอย่างการใช้ Automacro
###############################################################################
automacro checkshop {
    location prontera
    soldout >= 3
    delay 60  
    call reopenshop
    }

macro reopenshop {
    do closeshop
    }

มาโคร นี้ถูก triggered เมื่อเปิดร้านในเมืองพรอนเทราและมี items ขายไปแล้วสามชิ้นหรือมากกว่า
เมื่อ triggered แล้วจะรอ 1 นาทีแล้วเรียกไปยังมาโครชื่อ "reopenshop" เพื่อปิดร้าน
ถ้าผู้ใช้เปิดร้านอยู่ shopAuto_open or autoshop
ตั้งค่าเป็น 1, จะเปิดร้านอีกครั้งหนึ่งหลังจากระยะเวลานึง

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

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

AddThis

Share |