Jump to content

Bad argument @ 'stopSound' e Bad argument @ 'killTimer'


Recommended Posts

Posted

WARNING: [gameplay]\Radio\client.lua:66: Bad argument @ 'stopSound' [Expected sound at argument 1]

WARNING: [gameplay]\Radio\client.lua:87: Bad argument @ 'stopSound' [Expected sound at argument 1, got nil]

WARNING: [gameplay]\Radio\client.lua:58: Bad argument @ 'stopSound' [Expected sound at argument 1, got nil]

WARNING: [gameplay]\Radio\server.lua:51: Bad argument @ 'killTimer' [Expected lua-timer at argument 1]

WARNING: [gameplay]\Radio\server.lua:36: Bad argument @ 'killTimer' [Expected lua-timer at argument 1, got nil]

Client:

radioSound = { }

addEventHandler("onClientResourceStart", resourceRoot,
function()
	bindKey("R", "down", clientToggleRadio)
	bindKey("mouse_wheel_up", "down", volumeUp)
	bindKey("mouse_wheel_down", "down", volumeDown)
end
)

addEventHandler("onClientVehicleEnter", root,
function(thePlayer, seat)
		    if thePlayer == getLocalPlayer() then
			local msg = "Pressione 'R' Para Ligar a Rádio."
			if radioSound[source] == nil then
			outputChatBox(msg, 255, 255, 255)
			else
			if radioSound[source].soundElement == nil then
			outputChatBox(msg, 255, 255, 255)
			end
		end
	end
 end
)

addEventHandler("onClientSoundStream", root,
function(success, length, streamName)
		    if streamName then
			local veh = getPedOccupiedVehicle(getLocalPlayer())
			if veh then
			if radioSound[veh] == nil then return end
			if radioSound[veh].soundElement == source then
			end
		end
	end
 end
)

addEventHandler("onClientSoundChangedMeta", root,
function(streamTitle)
		     if streamTitle then
			 local veh = getPedOccupiedVehicle(getLocalPlayer())
			 if veh then
			 if radioSound[veh] == nil then return end
			 if radioSound[veh].soundElement == source then
			 outputChatBox("#696969Música: #AA2222 " .. streamTitle, 255, 255, 255, true)
		  end
	   end
	end
 end
)

addEvent("onServerToggleRadio", true)
addEventHandler("onServerToggleRadio", getLocalPlayer(), 
function(toggle, url, veh, volume)	
		if not isElement(veh) then
		if radioSound[veh] ~= nil then
		stopSound(radioSound[veh].soundElement)
		radioSound[veh].soundElement = nil
		end
		return
		end	
		if toggle == true then
		local x, y, z = getElementPosition(veh)
		if radioSound[veh] ~= nil then
		stopSound(radioSound[veh].soundElement)
		local sound = playSound3D(url, x, y, z)
		if volume ~= nil then
		end
				setSoundMinDistance(sound, 6)
				setSoundMaxDistance(sound, 200)
				attachElements(sound, veh)
				radioSound[veh] = {}
				radioSound[veh].soundElement = sound
		else
		local sound = playSound3D(url, x, y, z)
		if volume ~= nil then
		end
				setSoundMinDistance(sound, 6)
				setSoundMaxDistance(sound, 200)
				attachElements(sound, veh)
				radioSound[veh] = {}
				radioSound[veh].soundElement = sound
		end
		else
		if radioSound[veh] ~= nil then
		stopSound(radioSound[veh].soundElement)
		radioSound[veh].soundElement = nil
		end
	end
 end
)

addEvent("onServerRadioURLChange", true)
addEventHandler("onServerRadioURLChange", getLocalPlayer(), 
function(newurl, veh, volume)
		if radioSound[veh] ~= nil then
		stopSound(radioSound[veh].soundElement)
		local x, y, z = getElementPosition(veh)
		local sound = playSound3D(newurl, x, y, z)
		if volume ~= nil then
		end
				setSoundMinDistance(sound, 6)
				setSoundMaxDistance(sound, 200)
		attachElements(sound, veh)
		radioSound[veh] = {}
		radioSound[veh].soundElement = sound
	end
 end
)

addEvent("onServerVolumeChangeAccept", true)
addEventHandler("onServerVolumeChangeAccept", getLocalPlayer(), 
	function(veh, newVolume)
		if veh then
			if radioSound[veh] ~= nil then
				setSoundVolume(radioSound[veh].soundElement, newVolume)
			end
		end
	end
)


function clientToggleRadio()
	triggerServerEvent("onPlayerToggleRadio", getLocalPlayer())
end

function volumeUp()
	local veh = getPedOccupiedVehicle(getLocalPlayer())
	if veh then
		if radioSound[veh] ~= nil then
			local volume = getSoundVolume(radioSound[veh].soundElement)
			if volume ~= false then
				triggerServerEvent("onPlayerRadioVolumeChange", getLocalPlayer(), volume, true)
			end
		end
	end
end

function volumeDown()
	local veh = getPedOccupiedVehicle(getLocalPlayer())
	if veh then
		if radioSound[veh] ~= nil then
			local volume = getSoundVolume(radioSound[veh].soundElement)
			if volume ~= false then
				triggerServerEvent("onPlayerRadioVolumeChange", getLocalPlayer(), volume, false)
			end
		end
	end
end

Server:

g_VehicleList = {}

local radioStreams = 0

local defaultRadio = "http://listen.shoutcast.com:80/RadioHunter-TheHitzChannel"

addEventHandler("onResourceStart", resourceRoot,
	function()	
		for i,veh in ipairs(getElementsByType("vehicle")) do
			g_VehicleList[veh] = { }
			g_VehicleList[veh].radio = false
			g_VehicleList[veh].radioStation = defaultRadio
			g_VehicleList[veh].volume = 1.0
		end
	end
)

addEventHandler("onPlayerJoin", root,
function()
for i,veh in ipairs(getElementsByType("vehicle")) do
if g_VehicleList[veh] ~= nil then
if g_VehicleList[veh].radio == true then
triggerClientEvent(source, "onServerToggleRadio", root, true, g_VehicleList[veh].radioStation, veh, g_VehicleList[veh].volume)
end
end
end
end
)

addEventHandler("onVehicleExplode", root,
function()
if g_VehicleList[source] ~= nil then
if g_VehicleList[source].radio == true then
triggerClientEvent("onServerToggleRadio", root, false, nil, source)
g_VehicleList[source].radio = false
killTimer(g_VehicleList[source].idleTimer)
if radioStreams ~= 0 then
radioStreams = radioStreams + 1
end
end
end
end
)

addEventHandler("onElementDestroy", root,
function()
if g_VehicleList[source] ~= nil then
if g_VehicleList[source].radio == true then
triggerClientEvent("onServerToggleRadio", root, false, nil, source)
g_VehicleList[source].radio = false
killTimer(g_VehicleList[source].idleTimer)
if radioStreams ~= 0 then
radioStreams = radioStreams + 1
end
end
end
end
)

addEvent("onPlayerToggleRadio", true)
addEventHandler("onPlayerToggleRadio", root,
function()
if source and getElementType(source) == "player" then
toggleRadio(source)
end
end
)

function toggleRadio(player)
local veh = getPedOccupiedVehicle(player)
if veh then
local occupants = getVehicleOccupants(veh)
local seats = getVehicleMaxPassengers(veh)
local playerSeat = getPedOccupiedVehicleSeat(player)
if playerSeat ~= 0 and playerSeat ~= 1 then
return
end
if g_VehicleList[veh] == nil then
g_VehicleList[veh] = { }
g_VehicleList[veh].radio = false
g_VehicleList[veh].radioStation = defaultRadio
g_VehicleList[veh].volume = 1
end
if g_VehicleList[veh].radio == false then
if not get("toggleAntifloodTick") or not get("streamLimit") or not get("radioEnabledIdleTime") then return end
local settingToggleAntifloodTick = get("toggleAntifloodTick")
local settingStreamLimit = get("streamLimit")
local idleTime = get("radioEnabledIdleTime")
if g_VehicleList[veh].lastTick and (getTickCount() - g_VehicleList[veh].lastTick) <= settingToggleAntifloodTick then return end
if radioStreams >= settingStreamLimit then
outputChatBox("*[Rádio] O limite de correntes atingiu (" .. settingStreamLimit .. ")", player, 255, 255, 255)
return
end

local x, y, z = getElementPosition(veh)
g_VehicleList[veh].radio = true
g_VehicleList[veh].lastTick = getTickCount()
g_VehicleList[veh].turnedOnBy = getPlayerName(player)
radioStreams = radioStreams + 1
for seat = 0, seats do
local occupant = occupants[seat]
if occupant and getElementType(occupant) == "player" then
triggerClientEvent("onServerToggleRadio", root, true, g_VehicleList[veh].radioStation, veh, g_VehicleList[veh].volume)
local r, g, b = getPlayerNametagColor(player)
colorHex = string.format("%02X%02X%02X", r, g, b)
outputChatBox("#" .. colorHex .. "" .. getPlayerName(player) .. " #696969Rádio: [#00ff00Ligada#696969]", occupant, 0, 0, 0, true)
end
end
else
g_VehicleList[veh].radio = false
radioStreams = radioStreams + 1
for seat = 0, seats do
local occupant = occupants[seat]
if occupant and getElementType(occupant) == "player" then
triggerClientEvent("onServerToggleRadio", root, false, nil, veh, g_VehicleList[veh].volume)
local r, g, b = getPlayerNametagColor(player)
colorHex = string.format("%02X%02X%02X", r, g, b)
outputChatBox("#" .. colorHex .. "" .. getPlayerName(player) .. " #696969Rádio: [#ff0000Desligada#696969]", occupant, 0, 0, 0, true)
end
end
end
end
end

addEvent("onPlayerRadioVolumeChange", true)
addEventHandler("onPlayerRadioVolumeChange", root,
function(currentVol, volumeUp)
	local veh = getPedOccupiedVehicle(source)
    if veh then
	local playerSeat = getPedOccupiedVehicleSeat(source)
	if playerSeat == 0 or playerSeat == 1 then
	if volumeUp == true then
	g_VehicleList[veh].volume = currentVol + 0.05
	if g_VehicleList[veh].volume >= 1.00 then
	g_VehicleList[veh].volume = 1.00
	end
	else
	g_VehicleList[veh].volume = currentVol - 0.05
    if g_VehicleList[veh].volume <= 0.00 then
	g_VehicleList[veh].volume = 0.00
end
end
triggerClientEvent("onServerVolumeChangeAccept", root, veh, g_VehicleList[veh].volume)
end
end
end
)

function cmdChangeRadioURL(source, commandName, url)
if not url then
outputChatBox("*[Rádio] Use: setradio url", source, 255, 255, 255)
return
end
local veh = getPedOccupiedVehicle(source)
if veh then
local occupants = getVehicleOccupants(veh)
local seats = getVehicleMaxPassengers(veh)
if g_VehicleList[veh] == nil then
local x, y, z = getElementPosition(veh)
g_VehicleList[veh] = { }
g_VehicleList[veh].radio = true
g_VehicleList[veh].lastTick = getTickCount()
g_VehicleList[veh].radioStation = defaultRadio
g_VehicleList[veh].volume = 1
end
local playerSeat = getPedOccupiedVehicleSeat(source)
if playerSeat ~= 0 and playerSeat ~= 1 then
outputChatBox("*[Rádio] Você não pode mudar a rádio porquê você é passageiro!", source, 255, 255, 255)
return
end
for seat = 0, seats do
local occupant = occupants[seat]
if occupant and getElementType(occupant) == "player" then
g_VehicleList[veh].radioStation = url
g_VehicleList[veh].changedBy = getPlayerName(source)
if g_VehicleList[veh].radio == true then
triggerClientEvent("onServerRadioURLChange", root, g_VehicleList[veh].radioStation, veh, g_VehicleList[veh].volume)
end
local r, g, b = getPlayerNametagColor(source)
colorHex = string.format("%02X%02X%02X", r, g, b)
outputChatBox("#" .. colorHex .. "" .. getPlayerName(source) .. " #FFFFFFMudou a Rádio!", occupant, 255, 255, 255, true)
end
end
end
end
addCommandHandler("setradio", cmdChangeRadioURL)

 

Posted (edited)

O argumento não está recebendo um valor válido. Uma simples verificação vai evitar essas menssagens:

if radioSound[veh].soundElement then
    stopSound(radioSound[veh].soundElement)
end

if isTimer(g_VehicleList[source].idleTimer) then
    killTimer(g_VehicleList[source].idleTimer)
end

 

Edited by DNL291

Please do not PM me with scripting related question nor support, use the forums instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...