⚡ ความเร็วโจมตีกายภาพ มีผลต่อสกิลไหม?
Luna Plus ASIA — คู่มือสำหรับผู้เล่น
📅 อัพเดท: 2026-04-17 — Patch v2.0.0
❓ คำถามที่พบบ่อย
Q: สกิล/บัฟที่เพิ่ม "ความเร็วโจมตีกายภาพ" มีผลต่อสกิลด้วยไหม?
A: มีผล — แต่เฉพาะ สกิลกายภาพ เท่านั้น ไม่ใช่ทุกสกิล
Q: สกิลแบบไหนที่ได้รับผลจากความเร็วโจมตีกายภาพ?
A: สกิลที่ใช้ แรงทางกาย เช่น สกิลฟันดาบ สกิลต่อย สกิลยิงธนู — จะเร็วขึ้นทั้งแอนิเมชันและระยะหน่วง
⚠️ ข้อควรระวัง: สกิลเวทย์ (ไฟ, น้ำ, ลม, แสง, มืด ฯลฯ) และสกิลซัพพอร์ต (ฮีล, ชุบชีวิต, ดีบัฟ) ไม่ได้รับผล จากความเร็วโจมตีกายภาพ
Q: แล้วสกิลเวทย์ใช้ความเร็วแบบไหน?
A: สกิลเวทย์ใช้ค่า "ความเร็วร่ายเวทย์" (Casting Speed) แยกต่างหาก — ต้องหาบัฟหรืออุปกรณ์ที่เพิ่ม Cast Speed โดยเฉพาะ
Q: สรุปแล้ว ความเร็วโจมตีกายภาพ เพิ่มอะไรได้บ้าง?
| สิ่งที่ได้รับผล | ได้รับผล? |
|---|---|
| ตีธรรมดา (Normal Attack) | ✅ ได้รับผล |
| สกิลกายภาพ (ฟัน / ยิง / ต่อย) | ✅ ได้รับผล |
| สกิลเวทย์ (ไฟ / น้ำ / ลม / แสง / มืด) | ❌ ไม่ได้รับผล |
| สกิลฮีล / ชุบชีวิต / ดีบัฟ | ❌ ไม่ได้รับผล |
Q: ออฟชั่น "เพิ่มความเร็วโจมตี %" บนอุปกรณ์ มีผลเหมือนบัฟไหม?
A: มีผลเหมือนกัน — ออฟชั่นอุปกรณ์ "เพิ่มความเร็วโจมตี" จะเพิ่มทั้ง ตีธรรมดา และ สกิลกายภาพ ไปพร้อมกัน เช่นเดียวกับบัฟสกิล
Q: ถ้าใช้ทั้งบัฟ + ออฟชั่นอุปกรณ์พร้อมกัน จะทับกันไหม?
A: ไม่ทับ — บวกรวมกัน ทั้งหมด (วัดจากค่าความเร็วรวม %) ยิ่งมีมาก ยิ่งเร็วกว่า
Q: มีค่าสูงสุด (Cap) ไหม?
A: 🌏 (เฉพาะ LPAS) มี — ระบบจำกัดความเร็วสกิลไว้ ป้องกันไม่ให้แอนิเมชันเร็วเกินจนกลายเป็น bug
📊 สรุปเร็ว
| ประเภท | ค่าที่ใช้ |
|---|---|
| ตีธรรมดา | ความเร็วโจมตีกายภาพ (Normal Speed) |
| สกิลกายภาพ | ความเร็วโจมตีกายภาพ (Physic Skill Speed) |
| สกิลเวทย์ | ความเร็วร่ายเวทย์ (Magic Skill Speed / Cast Speed) |
| สกิลซัพพอร์ต | ความเร็วร่ายเวทย์ (Magic Skill Speed / Cast Speed) |
💡 คำแนะนำ: อาชีพสายกายภาพ (Fighter, Rogue) ได้ประโยชน์เต็มๆ จากค่าความเร็วโจมตีกายภาพ ทั้งตีธรรมดาและสกิล — อาชีพสายเวทย์ (Mage) ควรหาค่า Cast Speed แทน
🔧 รายละเอียดเชิงเทคนิค (สำหรับแอดมิน)
ระบบภายใน — GetAttackSpeedRate()
ฟังก์ชันหลัก cSkillManager::GetAttackSpeedRate() ใน [CC]Skill/Client/Manager/SkillManager.cpp
ตรรกะการแบ่งประเภท:
SkillKind == PHYSIC หรือ MAGIC ?
└─ Yes → ตรวจ Index: ( Index / 100000 ) % 10 != 0 ?
├─ Yes → IsUsedPhysicAttackSpeed() ?
│ ├─ TRUE (UNITKIND_PHYSIC_ATTCK, PHYSIC_FAKE_DAMAGE)
│ │ └─ ใช้: PhysicSkillSpeedRate + mAttackSpeed (item%) + WeatherRate + EventRate
│ └─ FALSE (MAGIC_ATTCK, DEBUFF, LIFE_RECOVER, RESURRECTION, MANA_RECOVER ฯลฯ)
│ └─ ใช้: MagicSkillSpeedRate + CastingRate (item%) + cap MIN_MAGIC_CASTING_TIME
└─ No (Normal Attack index)
└─ ใช้: NormalSpeedRate + mAttackSpeed (item%) + WeatherRate + EventRate
Struct ที่เกี่ยวข้อง (CommonStruct.h ~L6175):
float NormalSpeedRate; // ตีธรรมดา
float PhysicSkillSpeedRate; // สกิลกายภาพ
float MagicSkillSpeedRate; // สกิลเวทย์ / Casting
Sources ที่บวกเข้า PhysicSkillSpeedRate / NormalSpeedRate:
HERO->GetRateBuffStatus()->PhysicSkillSpeedRate— บัฟสกิลHERO->GetRatePassiveStatus()->PhysicSkillSpeedRate— Passive สกิลHERO->GetItemOptionStats().mAttackSpeed.mPercent— ออฟชั่นอุปกรณ์HERO->GetSetItemStats().mAttackSpeed.mPercent— โบนัสเซ็ตอุปกรณ์GAMEIN->GetWeatherDlg()->GetEventRate(eWK_AttackSpeedRate)— Weather EventgEventRate[eEvent_PhysicSkillSpeedRate]— Server Event Rate (คูณ)ABILITYMGR->GetCharacterWeight(eAbilityType_AttackSpeed, ...)— Race/Job Weight (คูณ)
Cap ฝั่ง Magic:
fAttackSpeedRate = min(
gEventRate[eEvent_MaxMagicCastingRate] / (Max - SpeedRate*0.01f),
100.f
);
ความเร็วร่ายเวทย์มี hard cap ป้องกัน divide-by-zero และ animation bug
ไฟล์อ้างอิง:
[CC]Skill/Client/Manager/SkillManager.cpp—IsUsedPhysicAttackSpeed()L5099,GetAttackSpeedRate()L5504[CC]Header/CommonStruct.h— L6175