150 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
RegisterNUICallback("init", function(data, cb)
 | 
						|
    SendNUIMessage({
 | 
						|
        status = "init",
 | 
						|
        time = config.RefreshTime,
 | 
						|
    })
 | 
						|
 | 
						|
    if cb then cb('ok') end
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNUICallback("data_status", function(data, cb)
 | 
						|
    if soundInfo[data.id] ~= nil then
 | 
						|
        if data.type == "finished" then
 | 
						|
            if not soundInfo[data.id].loop then
 | 
						|
                soundInfo[data.id].playing = false
 | 
						|
            end
 | 
						|
            TriggerEvent("xSound:songStopPlaying", data.id)
 | 
						|
        end
 | 
						|
        if data.type == "maxDuration" then
 | 
						|
            if not soundInfo[data.id].SkipTimeStamp then
 | 
						|
                soundInfo[data.id].timeStamp = 0
 | 
						|
            end
 | 
						|
            soundInfo[data.id].maxDuration = data.time
 | 
						|
 | 
						|
            soundInfo[data.id].SkipTimeStamp = nil
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if cb then cb('ok') end
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNUICallback("events", function(data, cb)
 | 
						|
    local id = data.id
 | 
						|
    local type = data.type
 | 
						|
    if type == "resetTimeStamp" then
 | 
						|
        if soundInfo[id] then
 | 
						|
            soundInfo[id].timeStamp = 0
 | 
						|
            soundInfo[id].maxDuration = data.time
 | 
						|
            soundInfo[id].playing = true
 | 
						|
        end
 | 
						|
    end
 | 
						|
    if type == "onPlay" then
 | 
						|
        if globalOptionsCache[id] then
 | 
						|
            if globalOptionsCache[id].onPlayStartSilent then
 | 
						|
                globalOptionsCache[id].onPlayStartSilent(getInfo(id))
 | 
						|
            end
 | 
						|
 | 
						|
            if globalOptionsCache[id].onPlayStart and not soundInfo[id].SkipEvents then
 | 
						|
                globalOptionsCache[id].onPlayStart(getInfo(id))
 | 
						|
            end
 | 
						|
 | 
						|
            soundInfo[id].SkipEvents = nil
 | 
						|
        end
 | 
						|
    end
 | 
						|
    if type == "onEnd" then
 | 
						|
        if globalOptionsCache[id] then
 | 
						|
            if globalOptionsCache[id].onPlayEnd then
 | 
						|
                globalOptionsCache[id].onPlayEnd(getInfo(id))
 | 
						|
            end
 | 
						|
        end
 | 
						|
        if soundInfo[id] then
 | 
						|
            if soundInfo[id].loop then
 | 
						|
                soundInfo[id].timeStamp = 0
 | 
						|
            end
 | 
						|
            if soundInfo[id].destroyOnFinish and not soundInfo[id].loop then
 | 
						|
                Destroy(id)
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
    if type == "onLoading" then
 | 
						|
        if globalOptionsCache[id] then
 | 
						|
            if globalOptionsCache[id].onLoading then
 | 
						|
                globalOptionsCache[id].onLoading(getInfo(id))
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if cb then cb('ok') end
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent("xsound:stateSound", function(state, data)
 | 
						|
    local soundId = data.soundId
 | 
						|
 | 
						|
    if state == "destroyOnFinish" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            destroyOnFinish(soundId, data.value)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "timestamp" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            setTimeStamp(soundId, data.time)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "texttospeech" then
 | 
						|
        TextToSpeech(soundId, data.lang, data.url, data.volume, data.loop or false)
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "texttospeechpos" then
 | 
						|
        TextToSpeechPos(soundId, data.lang, data.url, data.volume, data.position, data.loop or false)
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "play" then
 | 
						|
        PlayUrl(soundId, data.url, data.volume, data.loop or false)
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "playpos" then
 | 
						|
        PlayUrlPos(soundId, data.url, data.volume, data.position, data.loop or false)
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "position" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            Position(soundId, data.position)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "distance" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            Distance(soundId, data.distance)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "destroy" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            Destroy(soundId)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "pause" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            Pause(soundId)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "resume" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            Resume(soundId)
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    if state == "volume" then
 | 
						|
        if soundExists(soundId) then
 | 
						|
            if isDynamic(soundId) then
 | 
						|
                setVolumeMax(soundId, data.volume)
 | 
						|
            else
 | 
						|
                setVolume(soundId, data.volume)
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
end)
 |