macro <macroname> [options] [-- parameter(s)]</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
ลิสต์รายชื่อมาโครทั้งหมดที่มีอยู่
หยุดการทำงานของมาโครที่ทำอยู่
เป็นคำสั่งสำหรับหยุดการทำงานของมาโครที่กำลังทำงานอยูชั่วคราว
เป็นคำสั่งให้มาโครที่ถูกหยุดการทำงานชั่วคราวกลับมาทำงานใหม่
เป็น การกำหนดค่า/การเปลี่ยนแปลง ของตัวแปร (variables) ให้เป็น ค่า (value)
หรือเป็นการลบ ตัวแปร (variable) ถ้่าไม่มีการกำหนดค่า (value)
สั่งให้บอทพิมพ์เวอร์ชั่นของมาโคร
เป็นการตั้ง automacros ที่ run-once ทั้งหมดกลับมาใหม่หรือเฉพาะ automacro <name>(ที่กำหนดชื่อใน <name>)</name></name>
เป็น คำสั่งที่ให้้แสดงว่า้มาโครกำลังทำงานอยู่หรือใหม่ ถ้ามาโครกำลังทำงานอยู่จะแสดงออกมาเป็นค่า 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
===============================================================================
เป็นการสั่งให้ openkore run
Example:
ยกตัวอย่างเช่น
macro foo {
do move 123 234 prontera
do sit
do c "hello world"
}
===============================================================================
log <text>
===============================================================================
ส่งข้่อความใน <text> ไปยังคอนโซล</text></text>
Example:
ยกตัวอย่างเช่น
macro foo {
log This line logs a text to console.
log All your base are belong to us!
}
===============================================================================
pause [<n>]</n>
===============================================================================
หยุดเป็นเวลา 1 หรือ <n> วินาที</n>
Example:
ยกตัวอย่างเช่น
macro foo {
log I'm here and...
pause 10
log now I'm here.
}
===============================================================================
call <macroname> [<n>]</n>
===============================================================================
เรียก ไปยังมาโครที่ตั้งชื่อไว้ใน <macroname>เป็นจำนวน [<n> ครั้ง]</n>
เมื่อ <macroname> เสร็จสิ้นแล้วมาโครที่กำลังทำอยู่ก็จะทำงานต่อ</macroname></macroname></macroname>
===============================================================================
release (<name> | all)
===============================================================================
เป็น การกลับมาที่ automacro ที่ถูกล๊อกการทำงานจากคำสั่ง ("run-once" หรือคำสั่ง "lock")
หรือเป็นการกลับมาที่ automacros ทั้งหมดเมื่อใช้คำสั่ง release all</name>
===============================================================================
lock <name>
===============================================================================
เป็นการล๊อค automacro ที่ตั้งชื่อใน <name> และไม่ให้มีการเชคเงื่อนไขที่เราตั้งไว้ใน automacro ด้วย</name></name>
===============================================================================
stop
===============================================================================
หยุดการทำงานของมาโครทันที
===============================================================================
set <option> <value>
===============================================================================
ตั้งรูปแบบมาโคร:</value></option>
===============================================================================
การกำหนดตัวแปร (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)
===============================================================================
มีตัวแปรสุ่มพิเศษหลายๆ ตัวแปรที่เริ่มต้นด้วยจุด
===============================================================================
ตัวแปรชนิดวน ( 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>"[, ...]]</argument2>)
สุ่ม argument 1,2,3 ที่ตั้งไว้ ผลที่ได้รับคือ argument อันใดอันหนึ่ง
@rand (<n>, )
สุ่มตัวเลขหรหว่าง (และ รวมถึง) <n> และ
@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</variable></variable></argument></n></n></argument></argument></argument></item></item></item></item></item></item></item></item></n></n></argument1></name></name></name></name></name></name></item></item></item></item></item></item></item></item></item></y></x></y></x>
===============================================================================
"คำสั่งประเภทลูกโซ่" (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]" มาโครจะทำงานดังต่อไปนี้
===============================================================================
ภาษาใน Automacro (Automacro syntax)
===============================================================================
Example:
ยกตัวอย่างเช่น
automacro foo {
<condition> bar
<condition> baz, yatta
call macroname
}</condition></condition>
automacro mi {
<condition> moo
<condition> xyz
call {
do this
do that
}
}</condition></condition>
===============================================================================
Automacros คือ macros ที่จะเริ่มทำงานอัตโนมิัตเมื่อสถานะต่างๆ ที่ตั้งไว้ถูกต้องตามเงื่อนไข
===============================================================================
triggers เมื่อแผนที่ในปัจจุบันคือ <mapname></mapname>
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): </y2></y1></x2></x1></y2></x2></y1></x1></mapname></y2></x2></y1></x1></x2></x1></mapname></y2></x2></mapname></y2></x2></y1></x1>
triggers เมื่อเปลี่ยนแผนที่ไปยัง <mapname>. แต่ถ้าใช้ any จะ trigger ทุกครั้งที่มีการเปลี่ยนแผนที่
ถ้าใส่คอมมา(,) แยกกันให้ถือว่าเป็นการเชคสภาพแบบ OR (หรือ)</mapname>
triggers เมื่อ hp เท่ากับเงือนไขที่กำหนดใน <condition> <amount>เป็นแบบค่า hp โดยตรง (absolute value)
หรือ <condition> <amount> ค่าเป็นเปอร์เซนต์
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)</amount></condition></amount></condition>
triggers เมื่อ sp เท่ากับเงื่อนไขที่กำหนดใน <condition> <amount> เป็นแบบค่า sp โดยตรง(absolute value)
หรือ <condition> <amount> ค่าเป็นเปอร์เซนต์ (relative value).
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)</amount></condition></amount></condition>
triggers เมื่อลูกพลัง (spirits) เท่ากับเงื่อนไขที่กำหนดใน <condition> <amount>
ถ้ามีหลายๆ บันทัดจะถือว่าเป็นการใช้เงื่อนไขแบบและ (AND conditions)</amount></condition>
triggers เมื่อน้ำหนัก อยู่ใน condition ปริมาณที่ต้องการ
โดยปริมาณ จะต้องใส่เลขจำนวนเต็ม และเป็น เปอร์เซนต์ หรือว่าเป็นจำนวนจริงๆ (relative value)
แต่ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อน้ำหนักรถเข็นอยู่ใน <condition> ปริมาณที่ต้องการ
โดยปริมาณ จะต้องใส่เลขจำนวนเต็ม และเป็น เปอร์เซนต์ หรือว่าเป็นจำนวนจริงๆ (relative value)
แต่ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND</condition>
triggers เมื่อจำนวนเงิน condition ปริมาณที่ต้องการ
ถ้าเขียนหลายๆ บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
คำสั่งนี้มักใช้เมื่อมีการ deal ขายของ
triggers เมื่อ items ในร้านขาย ไป condition เท่าไหร่
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อไม่ได้อยู่ในสถานะ <status>
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND</status>
triggers เมื่อ มี item ใน inventory จำนวน เท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อใน storage (คาฟรา) มี itemsจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อ item ใน cart มีจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อ item ในร้านมีจำนวนเท่าไร
ถ้าใส่ Comma (,) แยกให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND
triggers เมื่อเลเวลตัวละครมีเลเวล เท่ากับ <condition> ที่ตั้งไว้
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND</condition>
triggers เมื่อจ๊อบเลเวลของจตัวละครเทากับ <condition> ที่ตั้งไว้
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้คำสั่ง AND</condition>
triggers เมื่อ อาชีพเป็นไปตามที่ตั้งไว้
triggers เมื่อมีการร่ายเวทย์ ที่ตั้งไว้ใน <spell> ไปยังตัวเราหรือไปยังในบริเวณที่เราอยู่
ถ้าใส่ Comma (,)แยกลิสต์จากกันให้ถือว่าเป็นการเชคสภาพแบบ OR</spell>
triggers เมื่อมี monster ที่เราตั้งไว้ใน <monstername> อยู่ใกล้ๆ
เมื่อ trigger แล้วจะมีการ set ค่าตัวแปล $.lastMonster และ $.lastMonsterPos
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ OR (หรืออย่างใดอย่างหนึ่ง )
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไข AND</monstername>
triggers เมื่อ monster ที่เราไม่ได้ตั้งไว้ในลิสต์ปรากฎขึ้น
ถ้าใส่ Comma (,) แยกลิสต์ออกจากกันให้ถือว่าเป็นการเชคสภาพแบบ AND
triggers เมื่อจำนวน <number> monster
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ AND</number>
triggers เมื่อผู้เล่นชื่อที่ใส่ใน <playername> อยู่ในหน้าจอหรือในระยะห่างไม่เกิน<distance>บล๊อค
บันทัดเรียงกันจะให้ถือเสมือนว่าใช้เงื่อนไข AND</distance></playername>
triggers เมื่อสวมใส่ <item> หรือไม่ได้สวมใส่ item [ในช่อง <slot>]</slot>
Slots are ศรีษะส่วนบน, ศรีษะส่วนกลาง, ศรีษะส่วนล่าง, มือซ้าย, มือขวา, เสื้อ, เกราะ, รองเท้า,
เครื่องสวมใส่มือซ้าย, เครื่องสวมใส่มือขว และลูกธนู
ถ้าใส่ Comma (,) แยกลิสต์ออกจากันให้ถือว่าเป็นการเชคสภาพแบบ OR
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND</item>
triggers เมื่อตัวแปร <variable> ถูก unset หรือว่าถูกต้องตาม<[[Macro plugin#เงื่อนไข|condition]]> <value>
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND</value></variable>
varvar <nested variable=""> (unset|<[[Macroplugin#Conditions|condition]]> <value>)
triggers เมื่อตัวแปรแบบวน <nested variable=""> ถูก unset หรือถูกต้องตาม <condition> <value>
บันทัดเรียงกันจะให้ถือเสมือนว่า ใช้เงื่อนไขแบบ AND</value></condition></nested></value></nested>
triggers เมื่อได้รับข้อความ <text>ผ่านทางหน้าต่าง consol หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายถึงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ
ใน [http://www.regular-expressions.info/regexp] ชุดคำสั่ง $.lastLogMsg</regexp></text>
triggers เมื่อได้รับกระซิบข้อความ <text>[จากผู้เล่น <player>]</player> หรือข้อความที่ได้รับถูกต้องตามเงื่อนไข<regexp>
ตัวเลือก i หมายถึงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน[http://www.regular-expressions.info/regexp] ชุดคำสั่ง $.lastpm และ$.lastpmMsg</regexp></text>
triggers เมื่อได้รับข้อความ <text>[ภายในระยะ <distance>]</distance> หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่าจีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp] ชุดคำสั่ง [[Macroplugin#$.lastpub|$.lastpub]]
และ [[Macroplugin#$.laspubMsg|$.lastpubMsg]]</regexp></text>
triggers เมื่อได้รับข้อความ <text> จากปาร์ตี้หรือข้อความถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่า จีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp]
ชุดคำสั่ง [[Macroplugin#$.lastparty|$.lastparty]] และ [[Macroplugin#$.lastpartyMsg|$.lastpartyMsg]]</regexp></text>
triggers เมื่อไดัรับข้อความ <text> จากกิลด์หรือข้อความที่ได้รับถูกต้องตามเงื่อนไข <regexp>
ตัวเลือก i หมายความว่า จีงอักษรภาษาอังกฤษสามารถใช้ได้ทั้งตัวเล็กและตัวใหญ่
ใน [http://www.regular-expressions.info/regexp] Sets $.lastguild และ$.lastguildMsg</regexp></text>
triggers เมื่อ openkore เรียกไปยัง<hookname></hookname>
(ใช้ด้วยกันกับคำสั่ง hook) จัดเก็บค่าของ <hash key=""> ในตัวแปรหนึ่ง [[Macroplugin#$.hooksaveN|.hooksave1]] ไปยัง .hooksaveN</hash>
เมื่อตั้งค่าให้เป็น 1 automacro จะไม่ทำงานหลังจากถูก triggered
ใช้คำสั่งมาโคร[[Macroplugin#release_macro|release]] ในการที่จะให้ automacro ทำงานอีกที
เมื่อตั้งค่าเป็น 1 มาโครจะไม่สนใจ AI ของ openkore ซึ่งหมายความว่ามาโครจะไม่หยุดในระหว่างที่บอทเดิน "move"
หรือตาย "status dead"
เว้นระยะเป็นเวลา<n>วินาทีก่อนที่จะเรียกมาโครที่เกี่ยวข้อง</n>
เว้นระยะอย่างน้อย <n>วินาทีก่อนที่ automacro จะทำงานอีกที</n>
เป็นการทับต้วแปรรวม the global macro_delay
===============================================================================
ตั้งค่าสำหรับเรียกมาโคร
===============================================================================
เลือกว่าจะต้องเชค automacros ตัวไหนก่อน ยิ่งค่า <num> น้อยเท่าไร automacro จะถูกเชคเร็วขึ้นแต่
ถ้าไม่ได้ตั้งค่าตัวเลือกไว้ ถือว่า ค่าอยู่ที่ 0 (ศูนย์:จะถูกเชคก่อน)</num>
Automacros ที่มีชุดพิเศษ exclusive และ automacros ตัวอื่นจะมาหยุดการทำงานไม่ได้
เช่นเดียวกับมาโคร 1.3.0 ปกติแล้ว automacro สามารถหยุดการทำงานของมาโครได้ ดังนั้นเพื่อที่จะไม่ให้ถูกหยุดก็อาจ
จะตั้งตัวเลือกนี้ หรือโดยการใฃ้คำสั่งตัวเลือกใน -exclusive
ตั้งค่าตัวแปร<variable> ให้เป็นค่า <value> ผู้ใช้สามารถทำลายๆ ชุด
set หลายๆ บันทัดต่อ 1 automacro</value></variable>
เรียกมาโคร macro ชื่อ <name> เมื่อ automacro ถูก triggered.</name>
call {
<instructions>
}</instructions>
เรียกไปยัง<instructions> เมื่อ automacros ถูก triggered</instructions>
จัดตั้งวิธีการจัดการกับ 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, จะเปิดร้านอีกครั้งหนึ่งหลังจากระยะเวลานึง
เครดิตข้อมูล http://modopenkore.exteen.com/20090527/command-macros