probleem met mijn server

Status
Niet open voor verdere reacties.

wesley1995

Gebruiker
Lid geworden
23 mrt 2012
Berichten
42
Hallo allemaal,

Ik ben een tijdje geleden begonnen met mijn eigen server.
Deze server is voor een online versie van het spel "Grand Theft Auto: San andreas".
Mijn server was eigenlijk af tot dat ik het volgende probleem tegen kwam.

Ik heb een script die er voor zorgt dat er muziek van een auto komt.
Deze valt te horen wanneer je in de buurt komt van de auto.
De muziek die zich afspeelt word uitgezonden van mijn podcast.
Dit gebeurd inmiddels door een .pls file.
Nu kan ik zelf wel de muziek horen wanneer ik de server aan heb voor de podcast en het programma voor het uit te zenden.
Maar als andere in de buurt komen horen hun dit niet.
Hun horen wel de muziek die zich afspeelt van een ander object via een .mp3 file.

Ik weet wel dat als ik de .pls file wil openen op mijn laptop dat ik VLC media speler nodig heb.
Dit lukt niet via het programma windows media player.

Nu heeft een vriend ook al VLC media player geïnstalleerd maar dit geeft als nog geen effect.

Ik vind dit zelf heel jammer en ik hoop dat iemand een oplossing voor mij heeft.
Ik zal hier onder even de script vermelden waarom het gaat.
Het gaat zich wel om een .lua script.

Groetjes,
Wesley
Code:
[HR][/HR]
g_VehicleList = {}

local radioStreams = 0
local defaultRadio = "http://78.129.163.129:27971/listen.pls"

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 = 50.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
				destroyElement(g_VehicleList[source].radioMarker)
				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
				destroyElement(g_VehicleList[source].radioMarker)
				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
			if ( isObjectInACLGroup ( "user." .. getAccountName ( getPlayerAccount ( source ) ), aclGetGroup ( "Admin" ) ) ) then
				toggleRadio(source)
			else
				outputChatBox ( "You can't use this command, Only admin can", p, 255, 0, 0 )
			end
		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
			outputChatBox("You can't switch the radio.", player, 255, 255, 255)
			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 = 50.0
		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("The limit of streams has reached (" .. 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)
			g_VehicleList[veh].radioMarker = createMarker(x, y, z, "corona", 0.05, 255, 0, 0)
			attachElements(g_VehicleList[veh].radioMarker, veh)
			g_VehicleList[veh].idleTimer = setTimer(radioIdleTimer, idleTime, 0, veh)
			
			radioStreams = radioStreams + 1
			outputServerLog(getPlayerName(player) .. " has turned the radio on in his vehicle (streams: " .. radioStreams .. ")")

			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) .. " #FFFFFFhas just turned the radio on.", occupant, 0, 0, 0, true)
				end
			end
		else		
			g_VehicleList[veh].radio = false
			destroyElement(g_VehicleList[veh].radioMarker)
			killTimer(g_VehicleList[veh].idleTimer)
			
			radioStreams = radioStreams - 1
			outputServerLog(getPlayerName(player) .. " has turned the radio off in his vehicle (streams: " .. radioStreams .. ")")
			
			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) .. " #FFFFFFhas just turned the radio off.", occupant, 0, 0, 0, true)
				end
			end
		end
	end
end

function radioIdleTimer(veh)
	if not get("radioIdlePlayerDistanceCheck") then return end
	local settingDist = get("radioIdlePlayerDistanceCheck")
	
	if veh then		
		if g_VehicleList[veh] ~= nil then
			if g_VehicleList[veh].radio == true then
				local playerInRange = false

				local vx, vy, vz = getElementPosition(veh)
				for i,player in ipairs(getElementsByType("player")) do
					local px, py, pz = getElementPosition(player)
					local distance = getDistanceBetweenPoints3D(vx, vy, vz, px, py, pz)
					if distance ~= false and distance < settingDist then
						playerInRange = true
					end
				end
				
				if playerInRange == false then
					triggerClientEvent("onServerToggleRadio", root, false, nil, veh)
					g_VehicleList[veh].radio = false
					destroyElement(g_VehicleList[veh].radioMarker)
					killTimer(g_VehicleList[veh].idleTimer)
					if radioStreams ~= 0 then
						radioStreams = radioStreams - 1
					end
				
					outputServerLog("An " .. getVehicleName(veh) .. "'s radio has been idled (streams: " .. radioStreams .. ")")
				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.20
					if g_VehicleList[veh].volume >= 50.00 then
						g_VehicleList[veh].volume = 50.00
					end
				else
					g_VehicleList[veh].volume = currentVol - 0.20
					if g_VehicleList[veh].volume <= 50.00 then
						g_VehicleList[veh].volume = 50.00
					end
				end
				triggerClientEvent("onServerVolumeChangeAccept", root, veh, g_VehicleList[veh].volume)
			end
		end
	end
)

function cmdChangeRadioURL(source, commandName, url)
	if not url then
		outputChatBox("Usage: /setradio newurl", 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 = 50.0
			g_VehicleList[veh].radioMarker = createMarker(x, y, z, "corona", 0.1, 255, 0, 0)
			attachElements(g_VehicleList[veh].radioMarker, veh)
			g_VehicleList[veh].idleTimer = setTimer(radioIdleTimer, idleTime, 0, veh)
		end

		local playerSeat = getPedOccupiedVehicleSeat(source)
		if playerSeat ~= 0 and playerSeat ~= 1 then
			outputChatBox("You can't switch the radio station URL.", 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) .. " #FFFFFFhas changed the radio station.", occupant, 0, 0, 0, true)
				outputConsole(getPlayerName(source) .. " has changed the radio station on his vehicle to: " .. url, occupant)
			end
		end
		outputServerLog(getPlayerName(source) .. " has changed the radio station on his vehicle to: " .. url)
	end
end

function cmdDumpVehRadioInfo(source, commandName)
	for i,veh in ipairs(getElementsByType("vehicle")) do
		if g_VehicleList[veh] ~= nil then
			if g_VehicleList[veh].radio == true then
				local strOut
				if g_VehicleList[veh].changedBy ~= nil then
					strOut = "Vehicle: " .. getVehicleName(veh) .. ", URL = " .. g_VehicleList[veh].radioStation .. ", Turned on by: " .. g_VehicleList[veh].turnedOnBy .. ", URL changed by: " .. g_VehicleList[veh].changedBy
				else
					strOut = "Vehicle: " .. getVehicleName(veh) .. ", URL = " .. g_VehicleList[veh].radioStation .. ", Turned on by: " .. g_VehicleList[veh].turnedOnBy
				end
				
				if getElementType(source) == "console" then
					outputServerLog(strOut)
				elseif getElementType(source) == "player" then
					outputChatBox(strOut, source, 255, 255, 255)
				end
			end
		end
	end
end

addCommandHandler("setradio", cmdChangeRadioURL)
addCommandHandler("dumpradio", cmdDumpVehRadioInfo)
[/QUOTE]
[QUOTE]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 = ""
			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
					outputChatBox("#FFFFFFRadio stream: #22AA22 " .. streamName, 0, 0, 0, true)
				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("#FFFFFFRadio meta: #AA2222 " .. streamTitle, 0, 0, 0, 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
					setSoundVolume(sound, volume)
				end
				setSoundMinDistance(sound, 0.1)
				setSoundMaxDistance(sound, 100.0)
				attachElements(sound, veh)
				
				radioSound[veh] = { }
				radioSound[veh].soundElement = sound
			else
				local sound = playSound3D(url, x, y, z)
				if volume ~= nil then
					setSoundVolume(sound, volume)
				end
				setSoundMinDistance(sound, 0.1)
				setSoundMaxDistance(sound, 100.0)
				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
				setSoundVolume(sound, volume)
			end
			setSoundMinDistance(radioSound, 0.1)
			setSoundMaxDistance(radioSound, 100.0)
			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
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan