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