Difference between revisions of "OnClientWorldSound"

From Multi Theft Auto: Wiki
(Example: pretty sure that needs to be root)
(Added example to see sound calls)
 
Line 29: Line 29:
 
     end
 
     end
 
end)
 
end)
 +
</syntaxhighlight>
 +
 +
This example lets you see how many times each sound that gets played has been played using '/seesoundlist'.
 +
<syntaxhighlight lang="lua">
 +
local sounds = {}
 +
 +
addEventHandler("onClientWorldSound", root, function(group, index)
 +
sounds[group.." | "..index] = (sounds[group.." | "..index] or 0) + 1
 +
end)
 +
 +
function cmdSeeSoundList()
 +
-- Put the non iterated table into an interated table so we can sort them
 +
local tbl = {}
 +
for sound, count in pairs(sounds) do
 +
tbl[#tbl + 1] = {sound, count}
 +
end
 +
table.sort(tbl, function(a, b) return a[2] > b[2] end)
 +
-- Output the table to clipboard
 +
local str = "Group | Index: Times played\n"
 +
for i, dat in ipairs(tbl) do
 +
str = str..dat[1]..": "..dat[2].."\n"
 +
end
 +
setClipboard(str)
 +
outputChatBox("Use CTRL + V in notepad to view the table.")
 +
end
 +
addCommandHandler("seesoundlist", cmdSeeSoundList)
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Latest revision as of 09:52, 23 August 2019

This event triggers whenever a GTA sound starts playing.

[[{{{image}}}|link=]] Note: Use setWorldSoundEnabled if you want to disable certain sounds conditionless.

For example, you should only cancel player emitted sounds in this event, because when you cancel certain vehicle sounds, the game will try to play the same sound on the next frame.

Parameters

int group, int index, float x, float y, float z
  • group: An integer representing the world sound group
  • index: An integer representing an individual sound within the group
  • x: a floating point number representing the X coordinate on the map.
  • y: a floating point number representing the Y coordinate on the map.
  • z: a floating point number representing the Z coordinate on the map.

Source

The source of this event is the element, which emitted the sound.

Cancel effect

If this event is canceled, the sound won't play at all.

Example

This example will cancel every vehicle sound.

addEventHandler("onClientWorldSound", root, function()
    if getElementType(source) == "vehicle" then
        cancelEvent()
    end
end)

This example lets you see how many times each sound that gets played has been played using '/seesoundlist'.

local sounds = {}

addEventHandler("onClientWorldSound", root, function(group, index)
	sounds[group.." | "..index] = (sounds[group.." | "..index] or 0) + 1
end)

function cmdSeeSoundList()
	-- Put the non iterated table into an interated table so we can sort them
	local tbl = {}
	for sound, count in pairs(sounds) do
		tbl[#tbl + 1] = {sound, count}
	end
	table.sort(tbl, function(a, b) return a[2] > b[2] end)
	-- Output the table to clipboard
	local str = "Group | Index: Times played\n"
	for i, dat in ipairs(tbl) do
		str = str..dat[1]..": "..dat[2].."\n"
	end
	setClipboard(str)
	outputChatBox("Use CTRL + V in notepad to view the table.")
end
addCommandHandler("seesoundlist", cmdSeeSoundList)

See Also

World sound functions

Client other events

Client event functions