Appearance
AFU.SoundInteract
ระบบเล่นเสียง (mp3 / ogg / wav) ในเกม ผ่าน Export — เสียงจะดังเฉพาะผู้เล่นที่ถูกเรียกใช้
Requirements
Standalone(ไม่ขึ้นกับ Framework)oxmysql— บังคับ (ต้อง start ก่อน)- เวอร์ชัน: 1.2 ·
fx_version cerulean·lua54
Installation
- ย้ายโฟลเดอร์ไปไว้ใน
resources/ - เพิ่มคำสั่งใน
server.cfg:
lines
ensure oxmysql
ensure AFU.SoundInteractConfiguration
แก้ไขการตั้งค่าในไฟล์ Config/settings.config.lua
lua
Settings = {}
-- ค่าความดังเริ่มต้น (0-100) ใช้เมื่อเรียก play โดยไม่ส่ง volume
Settings.defaultVolume = 20รายละเอียด Config ที่สำคัญ
| Option | Type | Default | Description |
|---|---|---|---|
Settings.defaultVolume | number | 20 | ค่าความดังเริ่มต้น (0–100) ใช้เมื่อเรียก play โดยไม่ส่ง volume |
ไฟล์เสียง
ไฟล์เสียงทั้งหมดต้องอยู่ในโฟลเดอร์ Config/assets.sound/ รองรับ .mp3 .ogg .wav
text
Config/assets.sound/
├── test.wav
├── pipelight.mp3
└── hung.mp3เพิ่มไฟล์เสียงใหม่โดยวางไฟล์ในโฟลเดอร์นี้ แล้ว restart เซิร์ฟเวอร์
WARNING
ชื่อไฟล์ต้องตรงตัวอักษรทุกตัว (case-sensitive) และต้องระบุ extension ด้วย เช่น 'pipelight.mp3' ไม่ใช่ 'pipelight'
Hooks ฝั่ง Client
Config/client.functions.config.lua
| Function | Parameters | Description |
|---|---|---|
Functions.willPlaySound(soundFile) | string | เรียกก่อนเล่นเสียง — return false เพื่อบล็อกการเล่น |
Functions.afterPlaySound(soundFile) | string | เรียกเมื่อเล่นเสียง |
ตัวอย่าง: บล็อกเสียงบางไฟล์
lua
-- Config/client.functions.config.lua
Functions.willPlaySound = function(soundFile)
if soundFile == 'test.wav' then
return false -- ไม่เล่นเสียง test
end
return true
endExports / Events
Format soundData
| Field | Type | Required | Description |
|---|---|---|---|
soundFile | string | ✅ | ชื่อไฟล์เสียงใน Config/assets.sound/ เช่น 'test.wav' |
volume | number | ❌ | ความดัง 0–100 — ไม่ส่ง = ใช้ Settings.defaultVolume |
clear | boolean | ❌ | true = หยุดเสียงทั้งหมดที่กำลังเล่นอยู่ก่อนเล่นเสียงใหม่ |
Server
เล่นเสียงให้ผู้เล่นคนเดียว (เสียงดังเฉพาะผู้เล่นเป้าหมาย):
lua
exports['AFU.SoundInteract']:play(playerId, {
soundFile = 'pipelight.mp3', -- บังคับ
volume = 50, -- 0-100 (ไม่บังคับ)
clear = false, -- true = หยุดเสียงเดิมทั้งหมดก่อน (ไม่บังคับ)
})Client
เล่นเสียงให้ผู้เล่นตัวเอง:
lua
exports['AFU.SoundInteract']:play({
soundFile = 'hung.mp3',
volume = 80,
clear = true,
})