Skip to content

AFU.SoundInteract

ระบบเล่นเสียง (mp3 / ogg / wav) ในเกม ผ่าน Export — เสียงจะดังเฉพาะผู้เล่นที่ถูกเรียกใช้

Requirements

  • Standalone (ไม่ขึ้นกับ Framework)
  • oxmysqlบังคับ (ต้อง start ก่อน)
  • เวอร์ชัน: 1.2 · fx_version cerulean · lua54

Installation

  1. ย้ายโฟลเดอร์ไปไว้ใน resources/
  2. เพิ่มคำสั่งใน server.cfg:
lines
ensure oxmysql
ensure AFU.SoundInteract

Configuration

แก้ไขการตั้งค่าในไฟล์ Config/settings.config.lua

lua
Settings = {}

-- ค่าความดังเริ่มต้น (0-100) ใช้เมื่อเรียก play โดยไม่ส่ง volume
Settings.defaultVolume = 20

รายละเอียด Config ที่สำคัญ

OptionTypeDefaultDescription
Settings.defaultVolumenumber20ค่าความดังเริ่มต้น (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

FunctionParametersDescription
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
end

Exports / Events

Format soundData

FieldTypeRequiredDescription
soundFilestringชื่อไฟล์เสียงใน Config/assets.sound/ เช่น 'test.wav'
volumenumberความดัง 0–100 — ไม่ส่ง = ใช้ Settings.defaultVolume
clearbooleantrue = หยุดเสียงทั้งหมดที่กำลังเล่นอยู่ก่อนเล่นเสียงใหม่

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,
})