⚡ ความเร็วโจมตีกายภาพ มีผลต่อสกิลไหม?

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 Event
  • gEventRate[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.cppIsUsedPhysicAttackSpeed() L5099, GetAttackSpeedRate() L5504
  • [CC]Header/CommonStruct.h — L6175

🏠 ระบบสกิล

24 คนออนไลน์อยู่