⚔️ สูตรคำนวณดาเมจ — โจมตีกายภาพ
Luna Plus ASIA — คู่มือสำหรับผู้เล่น 📅 อัพเดท: 2026-05-20 — Patch v2.0.0
📝 สรุปสั้น
โจมตีกายภาพคือดาเมจจาก การตีธรรมดา และสกิลกายภาพทุกชนิด — ระบบคำนวณดาเมจตามลำดับ Accuracy → ดาเมจฐาน → Level Penalty → Block → Critical → ตัวคูณ Event/Ability
📊 ปัจจัยที่มีผล
| ปัจจัย | ผลกระทบ | ความสำคัญ |
|---|---|---|
| ค่า Attack ของผู้โจมตี | ฐานหลักของสูตร (สุ่มระหว่าง Min/Max) | ⭐⭐⭐ |
| ค่า Defense ของผู้รับ | ลบจาก Attack ก่อนคูณ | ⭐⭐⭐ |
| AddDamage จากสกิล | ค่าพลังของสกิลที่ใช้ | ⭐⭐⭐ |
| AddType ของสกิล | 1 = ใช้ STR / 2 = ใช้ค่าอาวุธ | ⭐⭐ |
| Accuracy vs Evade | กำหนดว่าจะตี "ถูก" หรือ "หลบ" | ⭐⭐⭐ |
| Critical Rate / Damage | x1.5 + คูณ CritDmgRate + บวก CritDmgPlus | ⭐⭐⭐ |
| Block + Shield ของผู้รับ | กันดาเมจส่วนใหญ่ + ตัด Crit | ⭐⭐ |
| Level Diff | ผู้ใช้ Lv ต่ำกว่า → ลด 1.5%/Lv | ⭐⭐ |
| Aggro Penalty (≥3) | Evade ของผู้รับลด | ⭐ |
| Aggro Penalty (≥6) | Defense ของผู้รับลด | ⭐ |
| Dual Weapon | AddDamage ของสกิลลดลงตามอัตรา | ⭐ |
| ตัวคูณ PvP / PK / Siege / GT | คูณดาเมจตามสถานการณ์ | ⭐⭐ |
| Ability Weight | ตามอาชีพ × เผ่า/ชนิดเป้าหมาย | ⭐⭐ |
🔢 ลำดับการคำนวณ
ขั้นที่ 1 — เช็ค God / GM
ผู้รับเปิด God → ดาเมจ = 0 (จบ)
ผู้โจมตี GM/User≤GOD → ดาเมจ = MaxLife ของผู้รับ (One-shot, จบ)
ขั้นที่ 2 — สุ่ม Attack
Attack = random( PhysicAttackMin, PhysicAttackMax )
ขั้นที่ 3 — เช็คถูก/หลบ
ACC = 85 + Accuracy − Evade
ถ้า rand(1..100) > ACC → Dodge (0 ดาเมจ, จบ)
ขั้นที่ 4 — Aggro Penalty (ผู้รับ)
Aggro ≥ 3 → Evade × ( 1 − (Aggro−2)² × 0.01 )
Aggro ≥ 6 → Defense × ( 1 − (Aggro−5)^1.5 × 0.01 )
ขั้นที่ 5 — Dual Weapon Penalty (ผู้โจมตี)
ถ้าใช้มีดคู่ → AddDamage × gEventTwoBladeSkillDamageRate[ WeaponEquipType ]
ขั้นที่ 6 — สูตรดาเมจฐาน
AddType = 1 → damage = ( Attack − Defense ) × ( ( 1000 + AddDamage + STR ) ÷ 1000 )
AddType = 2 → damage = ( Attack − Defense ) × ( ( 1000 + AddDamage + Weapon ) ÷ 1000 )
ขั้นที่ 7 — บวก Plus / คูณ Percent ของบัฟ
damage = damage × ( 1 + RateAddValue ÷ 100 ) + PlusAddValue
ขั้นที่ 8 — Level Penalty
ผู้โจมตี Lv < ผู้รับ → damage × ( 1 + ( Lv ผู้ใช้ − Lv ผู้รับ ) × 0.015 )
ขั้นที่ 9 — Block (เฉพาะถ้าผู้รับมี Shield)
ถ้า rand(1..100) < Block →
damage = damage × ( 0.6 − VIT ÷ 4000 ) − Shield (กัน + ตัด Crit)
ไม่ Block → ลองเช็ค Crit
ขั้นที่ 10 — Critical
ถ้า rand(1..100) ≤ CriticalRate →
damage = damage × 1.5 × ( 1 + CritDmgRate ÷ 100 ) + CritDmgPlus
ขั้นที่ 11 — ตัวคูณตามโหมด
Siege Zone → × DecreaseDamageRatio / 100
Showdown PvP → × gEventRate[PvpAttackDamageRate]
GT Map / GT Arena → × GetPhysicAttackRatio (ตามอาชีพ)
ไม่อยู่ในโหมดพิเศษ → × gEventRate[PhysicAttackDamageRate]
ขั้นที่ 12 — Ability Weight
damage × PhysicAttackDamage Ability ( อาชีพผู้ใช้ × เผ่า/ชนิดผู้รับ )
ขั้นที่ 13 — ขั้นต่ำ
ถ้า damage < 1 → damage = 1
💡 ตัวอย่างการคำนวณ — Warrior Lv 100 ตี Mob Lv 100
| ค่า | ตัวเลข |
|---|---|
| Attack (สุ่มได้) | 1,500 |
| Defense ของ Mob | 400 |
| AddDamage ของสกิล | 300 |
| AddType | 1 (ใช้ STR) |
| STR ผู้ใช้ | 800 |
| Crit Rate | 30% |
| Crit Dmg Rate | 50% |
| Crit Dmg Plus | 200 |
| Block ของ Mob | 0% |
| ตัวคูณ Event/Ability | 1.0 |
ขั้นที่ 6 — ดาเมจฐาน
= ( 1500 − 400 ) × ( ( 1000 + 300 + 800 ) ÷ 1000 )
= 1100 × 2.1
= 2,310
ขั้นที่ 8 — Level Diff = 0 → ไม่ปรับ
ขั้นที่ 10 — สมมติ "ติด Crit" (rand ≤ 30%)
= 2310 × 1.5 × ( 1 + 50 ÷ 100 ) + 200
= 2310 × 1.5 × 1.5 + 200
= 5197.5 + 200
= 5,397.5
ขั้นที่ 13 — ปัดเป็น (DWORD)
≈ 5,397 ดาเมจ
📊 ผลลัพธ์: ถ้าติด Crit ดาเมจ ≈ 5,397 / ถ้าไม่ติด ≈ 2,310
🎯 AddType: ความต่างระหว่าง "Stat-based" และ "Weapon-based"
สกิลแต่ละตัวเลือกใช้ AddType ต่างกัน — ส่งผลต่อสูตรขั้นที่ 6:
| AddType | ใช้ตัวคูณจาก | สกิลกลุ่มไหน |
|---|---|---|
| 1 (Stat-based) | STR (ผู้ใช้) | สกิลกายภาพทั่วไป — ดาเมจขึ้นกับ STR |
| 2 (Weapon-based) | ค่า Attack ของอาวุธ | สกิลที่ขึ้นกับ "อาวุธ" — ใช้อาวุธแรง = สกิลแรง |
💡 ผลในเชิงผู้เล่น:
- AddType 1 → อยากตีแรง อัพ STR ให้สูง
- AddType 2 → อยากตีแรง หาอาวุธที่ค่าโจมตีสูง / Enchant สูง
🛡️ Block — สิ่งที่หลายคนไม่รู้
ถ้าผู้รับมี Shield ที่สวมใส่ + Block Rate > 0 จะมีโอกาส "บล็อก":
damage หลัง Block = damage × ( 0.6 − VIT ÷ 4000 ) − Shield
| VIT ของผู้รับ | ตัวคูณดาเมจ (หลัง Block) |
|---|---|
| 0 | 0.60 |
| 400 | 0.50 |
| 800 | 0.40 |
| 1600 | 0.20 |
| 2400 | 0.00 (กันได้ 100% เลย) |
⚠️ ผู้รับที่ VIT ≥ 2400 + Shield + Block สูง → Block ครั้งหนึ่งกันดาเมจได้เกือบ 100%!
📌 Block ตัด Critical — ถ้าบล็อกแล้ว จะไม่ติด Crit รอบนั้น
⚡ Critical กายภาพ
| ค่า | ความหมาย |
|---|---|
| CriticalRate | โอกาสติด Crit (0-100%) |
| CritDmgRate | % เพิ่มดาเมจตอน Crit |
| CritDmgPlus | ค่าคงที่บวกหลังคูณ Crit |
damage หลัง Crit = damage × 1.5 × ( 1 + CritDmgRate ÷ 100 ) + CritDmgPlus
💡 Crit Damage ยิ่งสูง โอกาสติดก็อาจถูกลด — มี Event Rate
PhysicCriticalRatioChkRateที่ปรับลดโอกาส Crit ถ้าดาเมจ Crit เทียบดาเมจปกติสูงเกินไป (กันสมดุล)
🐾 ความต่างระหว่าง ผู้เล่น / Pet / Monster
| ฝั่ง | Stat ที่ใช้ | หมายเหตุ |
|---|---|---|
| ผู้เล่น | GetPhysicAttackMin/Max() + STR + DEX + Weapon |
ปกติเต็มสูตร |
| Pet | Stat ของ Pet (mPlus) × FriendlyPenalty |
ดาเมจคูณ Penalty ตามค่าความผูกพัน |
| Monster | AttackPhysicalMin/Max จาก Monster DB + Buff |
คูณ Ability Weight ของ Monster |
🎯 จะ "เพิ่มดาเมจกายภาพ" อย่างไร?
| วิธี | ผลลัพธ์ |
|---|---|
| เพิ่ม STR (สกิล AddType 1) | คูณดาเมจในสูตรขั้นที่ 6 |
| เพิ่ม Enchant อาวุธ (สกิล AddType 2) | ค่าโจมตีอาวุธสูง = สกิลแรง |
| เพิ่ม Crit Rate / Crit Dmg | x1.5+ ตอนติด |
| เพิ่ม Accuracy | ไม่ Dodge บ่อย ดาเมจเข้าจริง |
| หาสกิลที่ AddDamage สูง | คูณตรง |
🛡️ จะ "ลดดาเมจกายภาพที่รับ" อย่างไร?
| วิธี | ผลลัพธ์ |
|---|---|
| เพิ่ม Defense | หักจาก Attack ก่อนคูณ |
| เพิ่ม VIT + Block + Shield | บล็อกครั้งหนึ่งกันได้เกือบหมด |
| เพิ่ม Evade | Dodge รอด (ดาเมจ = 0) |
| Lv สูงกว่าผู้โจมตี | ผู้โจมตีโดน Level Penalty −1.5%/Lv |
| ไม่ดึง Aggro หลายตัว | กัน Aggro Penalty ลด Evade/Def |
🔗 ดูเพิ่มเติม
- 📊 สูตรคำนวณค่าโจมตีกายภาพ — สูตรคำนวณค่า Attack ก่อนนำเข้าหน้านี้
- 📊 สูตรคำนวณค่าป้องกันกายภาพ — สูตรคำนวณค่า Defense
- ✨ สูตรคำนวณดาเมจ DOT — สถานะดาเมจต่อเนื่อง
- ⚡ สูตรคำนวณดาเมจเวทย์ — โจมตีสายเวทย์
- 🛡️ ตัวคูณ PvP / PK / Siege / GT — ตัวคูณตามสถานการณ์