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