ถ้าคุณกำลังมองหาระบบที่จะเข้าไปเปลี่ยนระบบการล่า Boss MVP หรือ ระบบที่จะเอาไปทำ World Boss เพื่อเพิ่มความสนุกให้กับเซิร์ฟเวอร์ของคุณที่มีระบบล่ามอนเตอร์แบบเดิมๆ จำเจ ลองดูนี้ก่อนครับ ผมตั้งใจออกแบบระบบมาอย่างดี เรียกได้ว่า Ultra Smooth แบบไอศครีมเจ้านั้นเลยละ ระบบเบา ไม่กินทรัพยากรเครื่องเซิร์ฟเวอร์ รองรับเซิร์ฟขนาดใหญ่ได้สบายๆ ออกแบบให้ตั้งค่าการใช้งานได้แบบยืดหยุ่นสุดๆ ลองมาดูรายละเอียดระบบ mvpmob กันครับ
พัฒนาบน: rAthena 2026
รองรับ: rAthena 2023+
ระบบ: Source Code + Script
คำสั่ง mvpmob ที่ทำงานเหมือนคำสั่ง spawn monster ทั่วๆ ไปอย่าง monster หรือ boss_monster แต่ monster ที่ถูกเรียกออกมาด้วยคำสั่ง mvpmob จะมีระบบตรวจจับ การสร้าง damage, การรับ damage, การ heal เพื่อนร่วมทีม, การโจมตีมอนเตอร์ hit แรก และ การโจมตีมอนเตอร์ hit สุดท้าย แยกเป็นคะแนนแต่ละหมวดหมู่แล้วสรุปรวมกันเพื่อจัดอันดับ และ ปาร์ตี้ หรือ ผู้เล่นนั้นๆ ก็รับรางวัลตามอันดับของตัวเองเมื่อ monster ตายแล้ว
// รูปแบบ: <map name>,<x>,<y>,<width>,<height> mvpmob <name to show> <mob id>,<delay1>,<delay2>
pay_fild10,0,0,0,0 mvpmob Eddga 1115,7200000,600000
[width] และ [height] คืออะไร?
ในระบบ Script ของ rAthena ค่า [width] (ความกว้าง) และ [height] (ความสูง) คือ "ระยะขอบเขตการสุ่มเกิด (Random Radius / Bounding Box)" ของมอนสเตอร์ครับ
เพื่อความเข้าใจง่าย ลองดูเงื่อนไข 2 แบบนี้ครับ:
1. ใส่ค่าเป็น 0,0,0,0
pay_fild10,0,0,0,0
• ความหมาย: ถ้า X, Y, Width, Height เป็น 0 ทั้งหมด มอนสเตอร์ตัวนี้จะ "สุ่มเกิดตรงไหนก็ได้ในแผนที่ (Random Anywhere)" ครับ เหมือนมอนเตอร์ทั่วไปตามธรรมชาติที่จะเดาไม่ได้เลยว่าเกิดตรงไหน
2. กำหนดจุด X, Y และใส่ค่า Width, Height
pay_fild10,150,200,5,10
• ความหมาย: ระบบจะปักหมุดตรงกลางไว้ที่พิกัด X=150, Y=200
• Width (5): มอนสเตอร์จะสุ่มเกิดเยื้องไปทางแกน X (ซ้าย-ขวา) ไม่เกิน 5 ช่อง
• Height (10): มอนสเตอร์จะสุ่มเกิดเยื้องไปทางแกน Y (บน-ล่าง) ไม่เกิน 10 ช่อง
• ผลลัพธ์: มอนเตอร์จะเกิดอยู่ในกรอบสี่เหลี่ยมเล็กๆ แถวๆ พิกัด 150, 200 เท่านั้น เหมาะสำหรับกรณีที่เราอยากให้มอนเตอร์เกิดเฉพาะใน "ลานประลอง" หรือ "ห้องมอนเตอร์" โดยไม่ให้ออกนอกเส้นครับ
// รูปแบบ: mvpmob "<map name>",<x>,<y>,"<name to show>",<mob id>;
mvpmob "pay_fild10", 0, 0, "Eddga", 1115;
*ทั้ง 2 แบบผมออกแบบให้บังคับ spawn monster 1 ตัว ต่อ 1 การใช้คำสั่ง เพื่อความลื่นไหลของระบบ
เปิดไฟล์ conf/battle/misc.conf คุณจะพบการตั้งค่าใหม่ๆ ดังนี้
// โหมดแจกรางวัล: 1 = แจกผู้ที่ทำคะแนนสูงสุด (Rank 1) เท่านั้น, 2 = แจกตามอันดับ (Rank 1, 2, 3...)
mvpmob_reward_mode: 1
// จำนวนอันดับสูงสุดที่จะได้รับรางวัล Rank Reward (ใช้เฉพาะถ้าเลือก mvpmob_reward_mode: 2)
mvpmob_rank_winners: 3
// คะแนนขั้นต่ำ (Damage + Tank + Heal) เพื่อป้องกันการยืนดู (Anti-Leech)
// 0: ปิดระบบนี้ (แจกทุกคนที่ตีบอสแม้แต่ครั้งเดียว)
mvpmob_anti_leech_min_score: 10000
// โหมด Dynamic HP Scaling (เพิ่มเลือดบอสอัตโนมัติตามจำนวนคนตี)
// 0: ปิด (บอสเลือดเท่าเดิมเสมอ)
// 1: เปิด (บอสจะเลือดเยอะขึ้น X% ตามจำนวนคนที่มารุมตีในแมพ)
mvpmob_dynamic_hp_scaling: 0
// เปิด-ปิด การนับดาเมจจากลูกน้องของผู้เล่น
// 1: Homunculus
// 2: Mercenary
// 4: Pet
// 8: Elemental (ลูกน้องของ Sorcerer)
// (0 = ปิด, 1=Hom, 2=Mer, 4=Pet, 8=Elem, 15=เปิดหมด)
mvpmob_count_companion_damage: 15
ก่อนอื่นผมอยากให้เข้าใจในมุมมองที่ผมพัฒนาก่อนว่าทำไมถึงมีตั้งค่า mvpmob_reward_mode และ mvpmob_rank_winners ก็คือถ้า mvpmob_reward_mode: 1 ก็คือจะมีทีมที่เป็น MVP Party แค่ 1 เดียวคือทีมที่ทำคะแนนได้ดีที่สุด แต่ถ้า mvpmob_reward_mode: 2 ก็คือสามารถมี MVP Party ได้มากกว่า 1 ทีม โดยจะได้รับรางวัลตามที่ตั้งค่าไว้ใน mvpmob_reward.yml ครับ สำหรับผู้ที่มาล่าแต่ไม่ติดอันดับก็จะได้รับรางวัลเข้าร่วมตามที่ตั้งค่าไว้เช่นกัน ผมออกแบบให้ผู้เข้าร่วมทุกๆ คนได้รับรางวัลรวมไปถึงทีมที่ติดอันดับก็จะได้รับรางวัลเข้าร่วมด้วยเช่นกัน
เปิดไฟล์ db/mvpmob_reward.yml คุณจะพบการตั้งค่าสำหรับรางวัลผู้มาล่ามอนเตอร์ สามารถ reload การตั้งค่ารางวัลได้ด้วยคำสั่ง @reloadmvpmob
Header:
Type: mvpmob_reward
Version: 1
Body:
- MobId: 1115 # Eddga
Rewards:
Rank 1:
- ItemId: 501 # Red Potion
Amount: 50
Rate: 10000 # 100%
- ItemId: 603 # Old Blue Box
Amount: 5
Rate: 5000 # 50%
- ItemId: 5022 # Baphomet Horns (Using this as an example rare drop)
Amount: 1
Rate: 1000 # 10%
Rank 2:
- ItemId: 501 # Red Potion
Amount: 25
Rate: 10000 # 100%
Rank 3:
- ItemId: 501 # Red Potion
Amount: 10
Rate: 10000 # 100%
Participation:
- ItemId: 501 # Red Potion
Amount: 1
Rate: 10000 # 100%
เวอร์ชั่นนี้ผมเรียกได้ว่าเป็น base เปิดทางสำหรับใครที่ชอบแบบนี้แล้วก็จัดไปได้เลย สำหรับใครที่อยากปรับแต่งเพิ่มเติมก็ได้เช่นกันครับ(มีค่าใช้จ่ายเพิ่มเติม)
ใช้งานแล้วพบปัญหา พบ bug หรือ มีประสบการณ์ใช้งานที่ไม่ดี สามารถติดต่อหาผมได้เลยนะครับ ทุกๆ feedback คือสิ่งสำคัญในการพัฒนา