วันศุกร์ที่ 23 สิงหาคม พ.ศ. 2556

มาโครเบื้องต้น Basic Macros


ถ้าจะว่ากันง่ายๆมาโคร คือชุดคำสั่งต่างๆในเกม ที่ถูกรวมเป็นชุดแล้วสั่งให้ทำงานในครั้งเดียว ประโยชน์ของมาโครนอกจากจะช่วยลดความยุ่งยากในการไล่หาคำสั่งเองแล้ว ยังช่วยเพิ่มลูกเล่นในการออกสกิลอย่างคาดไม่ถึงด้วย

ยกตัวอย่างประโยชน์ของมาโคร สมมติเราเล่นบท GLA เวลาทำคอมโบ โดยปกติเราก็จะดึงปุ่มสกิลออกมาวางที่ Hotbar แล้วก็กดไล่ไปตามลำดับ Fast Blade --> Savage Blade --> Rage of Halone แต่ถ้าเราใช้มาโครมาช่วย คอมโบทั้งชุดนี้เราสามารถใช้ได้โดยการกดเพียงปุ่มเดียวเท่านั้น

มาโครจะทำงานไปทีละบรรทัด เมื่อทำงานบรรทัดแรกจบ ก็จะไปทำงานบรรทัดต่อไปเรื่อยๆ จนกว่าจะหมดชุดคำสั่ง ถ้าใครเคยเขียนโปรแกรมมาก่อนจะเข้าใจหลักการทำงานของมาโครได้ง่ายมาก แต่ถ้าไม่เคยยุ่งเกี่ยวกับการเขียนโปรแกรมเลย ให้ลองนึกถึงชีวิตจริง เวลาเราจะทำงานอะไรสักอย่าง ต้องมีลำดับขั้นตอน ยกตัวอย่างเช่นการทำไข่เจียว เราต้องเริ่มด้วยการตีไข่ --> รอน้ำมันเดือด --> แล้วเอาไข่ลงไปเจียว --> รอไข่สุก --> ตักไข่ออกจากกระทะ อาจจะลองเขียนเลียนแบบมาโครได้ว่า

/ตีไข่
/รอน้ำมันเดือด 2 นาที
/เจียวไข่
/รอไข่สุก 2 นาที
/ตักไข่ออกจากกระทะ

อย่างที่บอกไปแล้ว 1 บรรทัด คือ 1 ขั้นตอน(หรือคำสั่ง) และรวมทั้งหมดทุกบรรทัด ก็เป็น 1 มาโคร
ที่ยกตัวอย่างไปแล้วนั้นเป็นแค่การสมมติ แต่ในเกม FF XIV ARR เราจะต้องใช้คำสั่ง(command)ที่ตัวเกมเข้าใจเท่านั้นมาโครจึงจะทำงานได้อย่างถูกต้อง ซึ่งแต่ละคำสั่ง จะมีรูปแบบวิธีเขียนเฉพาะตัว ตัวอย่างคำสั่งที่ใช้บ่อยๆ และรูปแบบการเขียนได้แก่
คำสั่ง คำอธิบาย
/ac หรือ /action รูปแบบการเขียน :
/ac "ชื่อทักษะ" <ผู้รับผล>

ความหมาย :
ใช้ทักษะตามชื่อที่ระบุแก่<ผู้รับผล> (ถ้าชื่อทักษะมีวรรค ให้ครอบด้วยเครื่องหมาย "" แต่ถ้าไม่มีวรรคไม่ต้องใส่ก็ได้)

ตัวอย่าง :
/ac "Rage of Halone" <t>
/action Cure <t>
/wait รูปแบบการเขียน :
/wait เลขวินาที

ความหมาย :
หยุดรอชั่วคราวเป็นระยะเวลาตามที่ระบุ

ตัวอย่าง :
/wait 2.5
/s หรือ /say รูปแบบการเขียน :
/s "ข้อความที่จะพูดออกช่องพูดปกติ"

ความหมาย :
ส่งข้อความออกหน้าต่างแชท ที่ผู้เล่นจะมองเห็นได้ในระยะรัศมีหนึ่ง

ตัวอย่าง :
/s "Hello world!"
/say "Hello world"
/p หรือ /party รูปแบบการเขียน :
/p "ข้อความที่จะพูดออกช่องปาร์ตี้"

ความหมาย :
ส่งข้อความออกหน้าต่างแชท ที่ผู้เล่นในปาร์ตี้เท่านั้นจะมองเห็น

ตัวอย่าง :
/p "Hello party!"
/party "Hello world"
/sh หรือ /shout รูปแบบการเขียน :
/s "ข้อความที่จะตะโกน"

ความหมาย :
ส่งข้อความออกหน้าต่างแชท ที่ผู้เล่นจะมองเห็นได้ในระยะรัศมีไกลกว่าปกติ

ตัวอย่าง :
/sh "Hello world!"
/shout "Hello world"
/mk หรือ /marking รูปแบบการเขียน :
/mk ชนิดของเครื่องหมาย <ผู้รับผล>

ความหมาย :
ใส่เครื่องหมายตามชนิดที่ระบุแก่<ผู้รับผล> เพื่อเป็นการสื่อสารกับคนอื่น ชนิดของเครื่องหมายได้แก่
- attack1, attack2, ..., attack5 เป้าหมายที่จะโจมตีเลข 1 ถึง 5 (เครื่องหมายเลขปกติ)
- bind1, bind2, bind3 เป้าหมายที่เชื่อมกันอยู่ (หมายเลขที่เป็นรูปโซ่)
- ignore1, ignore2 เป้าหมายที่จะไม่โจมตี (หมายเลขรูปกากบาท)
- circle, cross, square, triangle ใส่เครื่องหมายรูปวงกลม, กากบาท, สี่เหลี่ยม หรือสามเหลี่ยม ตามลำดับ
- off ลบเครื่องหมายเดิมออกจากเป้าหมาย

ตัวอย่าง :
/mk attack1 "Earendil Mariner"
/mk ignore1 <t>
/tenemy หรือ /targetenemy รูปแบบการเขียน :
/tenemy

ความหมาย :
เลือกศัตรูที่อยู่ใกล้ตัวที่สุด (จำกัดระยะภายในรัศมีหนึ่ง)

ตัวอย่าง :
/tenemy
สิ่งหนึ่งที่จำเป็นต้องทราบในการเขียนมาโครก็คือ การระบุผู้รับผล(Placeholder) โดยทั่วไป ถ้าเราไม่ได้ระบุผู้รับผล เป้าหมายปัจจุบันที่เราเลือกอยู่จะกลายเป็นผู้รับผลโดยอัตโนมัติ ถ้าเป็นผู้เล่นด้วยกัน เราจะระบุผลโดยการใส่ชื่อได้ (ถ้าเว้นวรรคต้องอยู่ในเครื่องหมาย "") เช่น "Philip Pendragon" นอกจากนี้ ยังมีการระบุผู้รับผลโดยใช้ตัวแปรแบบพิเศษ ซึ่งจะเพิ่มความยืดหยุ่นในการใช้งานมาโครออกไปให้เหนือกว่าการเล่นธรรมดาๆ ที่ไม่ใช้มาโครเป็นอย่างมาก

ตัวอย่างการระบุผู้รับผลที่น่าสนใจ

ผู้รับผล(Placeholder) คำอธิบาย
<t> คืนค่าเป็นเป้าหมายที่กำลังเลือกอยู่
<tt> คืนค่าเป็นเป้าหมายของเป้าหมายที่กำลังเลือกอยู่
<me> คืนค่าเป็นตนเอง
<0> คืนค่าเป็นตนเอง
<1>, <2>, ... , <8> คืนค่าเป็นสมาชิกปาร์ตี้ลำดับที่ 1, 2, ... , 8
<mo> คืนค่าเป็นผู้เล่น/มอนสเตอร์/npc ที่เม้าส์วางอยู่ (ย่อมาจาก Mouseover ไม่จำเป็นต้องคลิกเพื่อล๊อกเป้า)
<attack1>... <attack5> คืนค่าเป็นตัวละคร/มอนสเตอร์/npc ที่ถูกใส่เครื่องหมายเลข 1 ... 5

ข้อควรทราบ
หากเป็นทักษะจำพวกออกผลกับตัวเอง ให้ระบุผู้รับผลเป็น <me> หรือ <0> ไว้ด้วย เช่น
/ac Rampart <me>

ตัวอย่างการประยุกต์ใช้คำสั่งร่วมกับการระบุผู้รับผล

/ac Cure <mo>
คำอธิบาย - ใช้ทักษะ Cure แก่คนที่เม้าส์ชี้อยู่ วิธีนี้สะดวกสำหรับฮีลเลอร์มาก ฮีลเลอร์สามารถล๊อกเป้าหมายไว้ที่มอนสเตอร์เพื่อสาป DoT และสังเกตค่า enmity โดยไม่ต้องเปลี่ยนเป้าหมายมาฮีลเพื่อน เพียงแค่เอาเคอร์เซอร์เม้าส์ไปวางบนชื่อเพื่อนคนที่ต้องการแล้วกดใช้มาโครก็ฮีลได้ทันที

/ac Cure <tt>
คำอธิบาย -ใช้ทักษะ Cure กับเป้าหมายของเป้าหมาย ใช้ได้ดีเวลาลุย FATE คนเยอะๆ แล้วหาตัวละครที่กำลังถูกบอสโจมตีไม่พบ เลือกเป้าหมายที่บอส แล้วกดมาโครนี้ ก็จะเป็นการฮีลตัวละครที่บอสกำลังโจมตีอยู่โดยอัตโนมัติ

/ac Repose <ignore1>
คำอธิบาย -ใช้ทักษะ Repose กับมอนสเตอร์ที่ถูกทำเครื่องหมาย ignore

เมื่อเรารู้หลักการแล้ว มาลองสร้างมาโครสักชุดหนึ่งดูกันดีกว่า ลองตั้งโจทย์ว่า จะทำมาโครสำหรับคอมโบของ GLA เราจินตนาการขั้นตอนจริงในหัวไว้ว่าในชุดคอมโบเราจะต้องเริ่มด้วย Fast Blade - รอคูลดาวน์หมุนครบรอบ - Savage Blade - รอคูลดาวน์หมุนครบรอบ - Rage of Halone จากนั้นเราก็จะแปลขั้นตอนนี้ออกมาเป็นชุดคำสั่งไล่ไปทีละบรรทัดดังนี้

/ac "Fast Blade"
/wait 2.5
/ac "Savage Blade"
/wait 2.5
/ac "Rage of Halone"

อีกตัวอย่างหนึ่ง สมมติเราเล่น MRD ต้องการมาร์กหมายเลข 1 ที่เป้าหมายที่เลือกอยู่เพื่อสื่อสารให้เพื่อนตีตัวเดียวกัน แล้วเปิดด้วยสกิล Tomahawk ตามด้วย Heavy Swing และ Maim จะเขียนมาโครได้ดังนี้

/mk attack1 <t>
/ac Tomahawk
/wait 2.5
/ac "Heavy Swing"
/wait 2.5
/ac Maim

เริ่มจะเข้าใจคอนเซ็ปท์กันแล้วใช่ไหมครับ มีข้อสังเกตอีกประการหนึ่งในเรื่องคูลดาวน์ก็คือ บางครั้งการตั้งเวลา wait แค่ 2.5 พอดีอาจจะทำให้มาโครทำงานผิดพลาดเนื่องจากเกิด latency ระหว่างไคลเอนท์กับเซิฟเวอร์ได้ ดังนั้น จึงอาจมีบางท่านเพิ่มเวลา wait เป็น 2.6 ก็ไม่เสียหายแต่ประการใด

ต่อมาเรามาดูวิธีการสร้างมาโครกันในเกมจริงๆ ดีกว่า

วิธีการสร้างมาโคร
1. เปิด System menu เลือก User Macros



2. หน้าต่างมาโครจะถูกเปิดขึ้นมาดังรูป จะสังเกตเห็นว่ามีมาโครที่ตัวเกมเตรียมให้เราไว้ใช้งานแล้วจำนวนหนึ่ง(ไอคอนรูปตัว M) สามารถลากลงมาวางไว้ที่ Hotbar ได้เลย



3. จะเห็นว่าบริเวณตามหมายเลข 1 ในรูป มีเลข 6, 7, 8, ... นี่คือสล๊อตของมาโครที่ยังว่างอยู่ เมื่อเราคลิกเลือกสล๊อตที่ต้องการ จะเป็นการเลือกสร้างมาโครใหม่ในสล๊อตนั้น ถ้าคลิกเลือกไอคอนมาโครเดิมที่มีอยู่แล้วจะเป็นการแก้ไขมาโครนั้น ช่องเลข 2 สำหรับตั้งชื่อมาโคร และเลข 3 สำหรับพิมพ์ชุดคำสั่งตามที่เราต้องการ



4. คลิกตรงรูปไอคอน(ลูกศรชี้)เพื่อเปิดหน้าต่างสำหรับเปลี่ยนไอคอนของมาโครเป็นแบบอื่นตามใจชอบ


เมื่อได้มาโครที่ต้องการแล้ว ก็ลากไปวางใน Hotbar ที่ถนัดได้เลย