MVP Mob System: Ultimate Raid Scoreboard

฿3,900.00
Source Code Script
เข้าชม 230 ครั้ง

รายละเอียดสินค้า

ถ้าคุณกำลังมองหาระบบที่จะเข้าไปเปลี่ยนระบบการล่า Boss MVP หรือ ระบบที่จะเอาไปทำ World Boss เพื่อเพิ่มความสนุกให้กับเซิร์ฟเวอร์ของคุณที่มีระบบล่ามอนเตอร์แบบเดิมๆ จำเจ ลองดูนี้ก่อนครับ ผมตั้งใจออกแบบระบบมาอย่างดี เรียกได้ว่า Ultra Smooth แบบไอศครีมเจ้านั้นเลยละ ระบบเบา ไม่กินทรัพยากรเครื่องเซิร์ฟเวอร์ รองรับเซิร์ฟขนาดใหญ่ได้สบายๆ ออกแบบให้ตั้งค่าการใช้งานได้แบบยืดหยุ่นสุดๆ ลองมาดูรายละเอียดระบบ mvpmob กันครับ


ข้อมูลทางเทคนิคของระบบคำสั่ง mvpmob

พัฒนาบน: rAthena 2026

รองรับ: rAthena 2023+

ระบบ: Source Code + Script


ไฟล์ที่จะได้รับเมื่อซื้อระบบคำสั่ง mvpmob

  • mvpmob_src.patch
  • mvpmob_database.sql
  • mvpmob_core.txt - ไฟล์ script ระบบทำหน้าที่รับค่าจาก source code บันทึกลง database และ ที่กำหนดสูตรคำนวนคะแนน
  • mvpmob_scoreboard.txt - ไฟล์ script กระดานแสดงรายละเอียดการล่ามอนเตอร์
  • mvpmob_example.txt - ไฟล์ตัวอย่างการใช้คำสั่ง mvpmob ทั้ง 2 แบบ
  • mvpmob_reward.yml


คำสั่ง mvpmob ทำอะไรได้?

คำสั่ง mvpmob ที่ทำงานเหมือนคำสั่ง spawn monster ทั่วๆ ไปอย่าง monster หรือ boss_monster แต่ monster ที่ถูกเรียกออกมาด้วยคำสั่ง mvpmob จะมีระบบตรวจจับ การสร้าง damage, การรับ damage, การ heal เพื่อนร่วมทีม, การโจมตีมอนเตอร์ hit แรก และ การโจมตีมอนเตอร์ hit สุดท้าย แยกเป็นคะแนนแต่ละหมวดหมู่แล้วสรุปรวมกันเพื่อจัดอันดับ และ ปาร์ตี้ หรือ ผู้เล่นนั้นๆ ก็รับรางวัลตามอันดับของตัวเองเมื่อ monster ตายแล้ว


คำสั่ง mvpmob ถูกออกแบบให้สามารถ spawn monster ได้ 2 แบบ


แบบที่ 1: สั่ง spawn แบบถาวร (Static spawn)

// รูปแบบ: <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 เท่านั้น เหมาะสำหรับกรณีที่เราอยากให้มอนเตอร์เกิดเฉพาะใน "ลานประลอง" หรือ "ห้องมอนเตอร์" โดยไม่ให้ออกนอกเส้นครับ


แบบที่ 2: สั่ง spawn ด้วย script

// รูปแบบ: mvpmob "<map name>",<x>,<y>,"<name to show>",<mob id>;

mvpmob "pay_fild10", 0, 0, "Eddga", 1115;

*ทั้ง 2 แบบผมออกแบบให้บังคับ spawn monster 1 ตัว ต่อ 1 การใช้คำสั่ง เพื่อความลื่นไหลของระบบ


การตั้งค่าระบบหลัก (Core Configurations)

เปิดไฟล์ 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 ครับ สำหรับผู้ที่มาล่าแต่ไม่ติดอันดับก็จะได้รับรางวัลเข้าร่วมตามที่ตั้งค่าไว้เช่นกัน ผมออกแบบให้ผู้เข้าร่วมทุกๆ คนได้รับรางวัลรวมไปถึงทีมที่ติดอันดับก็จะได้รับรางวัลเข้าร่วมด้วยเช่นกัน


ตัวอย่างการตั้งค่ารางวัลใน 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 คือสิ่งสำคัญในการพัฒนา