Well I know how to edit some parameters and such stuff but I can't create .lua scripts. I was same with .cs for single player :\
I'm trying to learn it step by step but here is the code below. Maybe you can highlight the parts (or put comments) on what needs to be done to do my request. Also, can volume be changed from MTA slider to normal GTA SA Radio slider in ESC?
local xml = xmlLoadFile ( "settings.xml" )
local nodeColor = xmlFindChild ( xml, "color", 0 )
local nodeFont = xmlFindChild ( xml, "font", 0 )
local nodeRealism = xmlFindChild ( xml, "realism", 0 )
local nodeStations = xmlFindChild ( xml, "stations", 0 )
local label = guiCreateLabel ( 0, 0, 1, 0.1, "Radio Off", true )
guiLabelSetColor ( label, xmlNodeGetAttribute ( nodeColor, "r" ), xmlNodeGetAttribute ( nodeColor, "g" ), xmlNodeGetAttribute ( nodeColor, "b" ) )
guiLabelSetHorizontalAlign ( label, "center" )
guiSetFont ( label, xmlNodeGetValue ( nodeFont ) )
guiSetVisible ( label, false )
addEventHandler ( "onClientResourceStart", getResourceRootElement (),
function ()
showPlayerHudComponent ( "radio", false )
setElementData ( getLocalPlayer (), "liveradio.radio", 0 )
for k, v in ipairs ( getElementsByType ( "vehicle" ) ) do
setElementData ( v, "liveradio.radio0", false )
setElementData ( v, "liveradio.radio1", false )
setElementData ( v, "liveradio.radio2", false )
setElementData ( v, "liveradio.radio3", false )
end
end
)
addEventHandler ( "onClientResourceStop", getResourceRootElement (),
function ()
showPlayerHudComponent ( "radio", true )
end
)
addEventHandler ( "onClientPlayerVehicleEnter", getLocalPlayer (),
function ( vehicle, seat )
setRadioChannel ( 0 )
setElementData ( getLocalPlayer (), "liveradio.seat", seat )
if sound then
if isElement ( sound ) then destroyElement ( sound ) end
end
if xmlNodeGetAttribute ( nodeRealism, "enabled" ) == "true" then
if getElementData ( vehicle, "liveradio.radio0" ) then
setElementData ( getLocalPlayer (), "liveradio.radio", getElementData ( vehicle, "liveradio.radio0" ) )
else
for k, v in ipairs ( xmlNodeGetChildren ( nodeStations ) ) do setElementData ( getLocalPlayer (), "liveradio.radio", k ) end
setElementData ( getLocalPlayer (), "liveradio.radio", math.random ( getElementData ( getLocalPlayer (), "liveradio.radio" ) ) )
setElementData ( vehicle, "liveradio.radio0", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( vehicle, "liveradio.radio1", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( vehicle, "liveradio.radio2", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( vehicle, "liveradio.radio3", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
end
else
if getElementData ( vehicle, "liveradio.radio" .. seat ) then
setElementData ( getLocalPlayer (), "liveradio.radio", getElementData ( vehicle, "liveradio.radio" .. seat ) )
else
for k, v in ipairs ( xmlNodeGetChildren ( nodeStations ) ) do setElementData ( getLocalPlayer (), "liveradio.radio", k ) end
setElementData ( getLocalPlayer (), "liveradio.radio", math.random ( getElementData ( getLocalPlayer (), "liveradio.radio" ) ) )
setElementData ( vehicle, "liveradio.radio" .. seat, getElementData ( getLocalPlayer (), "liveradio.radio" ) )
end
end
local nodeStation = xmlFindChild ( nodeStations, "station", getElementData ( vehicle, "liveradio.radio" .. seat ) - 1 )
if nodeStation then
local radioName = xmlNodeGetAttribute ( nodeStation, "name" )
local radioURL = xmlNodeGetAttribute ( nodeStation, "URL" )
sound = playSound ( radioURL )
guiSetText ( label, radioName )
guiSetVisible ( label, true )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
else
guiSetText ( label, "Radio Off" )
guiSetVisible ( label, true )
setElementData ( getLocalPlayer (), "liveradio.radio", 0 )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
end
timerVehicle = setTimer (
function ( vehicle )
if isPedInVehicle ( getLocalPlayer () ) == false or getPedOccupiedVehicle ( getLocalPlayer () ) ~= vehicle or getElementHealth ( getLocalPlayer () ) <= 0 then
if sound then
if isElement ( sound ) then destroyElement ( sound ) end
end
killTimer ( timerVehicle )
guiSetVisible ( label, false )
setElementData ( getLocalPlayer (), "liveradio.radio", 0 )
end
end
, 50, 0, vehicle )
end
)
addEventHandler ( "onClientPlayerRadioSwitch", getLocalPlayer (),
function ( station )
if station ~= 0 then cancelEvent () end
if xmlNodeGetAttribute ( nodeRealism, "enabled" ) ~= "true" or getElementData ( getLocalPlayer (), "liveradio.seat" ) == 0 or getPedOccupiedVehicle ( getLocalPlayer () ) == false then
if station == 1 then
setElementData ( getLocalPlayer (), "liveradio.radio", getElementData ( getLocalPlayer (), "liveradio.radio" ) + 1 )
elseif station == 12 then
setElementData ( getLocalPlayer (), "liveradio.radio", getElementData ( getLocalPlayer (), "liveradio.radio" ) - 1 )
if getElementData ( getLocalPlayer (), "liveradio.radio" ) == -1 then
for k, v in ipairs ( xmlNodeGetChildren ( nodeStations ) ) do setElementData ( getLocalPlayer (), "liveradio.radio", k ) end
end
end
if sound then
if isElement ( sound ) then destroyElement ( sound ) end
end
if getPedOccupiedVehicle ( getLocalPlayer () ) then
setElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio" .. getElementData ( getLocalPlayer (), "liveradio.seat" ), getElementData ( getLocalPlayer (), "liveradio.radio" ) )
end
local nodeStation = xmlFindChild ( nodeStations, "station", getElementData ( getLocalPlayer (), "liveradio.radio" ) - 1 )
if nodeStation then
local radioName = xmlNodeGetAttribute ( nodeStation, "name" )
local radioURL = xmlNodeGetAttribute ( nodeStation, "URL" )
sound = playSound ( radioURL )
guiSetText ( label, radioName )
guiSetVisible ( label, true )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
else
guiSetText ( label, "Radio Off" )
guiSetVisible ( label, true )
setElementData ( getLocalPlayer (), "liveradio.radio", 0 )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
end
if xmlNodeGetAttribute ( nodeRealism, "enabled" ) == "true" and getPedOccupiedVehicle ( getLocalPlayer () ) then
setElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio0", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio1", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio2", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
setElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio3", getElementData ( getLocalPlayer (), "liveradio.radio" ) )
triggerServerEvent ( "onPlayerRadioSwitch", getLocalPlayer (), getPedOccupiedVehicle ( getLocalPlayer () ) )
end
end
end
)
addEventHandler ( "onClientVehicleStartExit", getRootElement (),
function ( player )
if player == getLocalPlayer () then
if sound then
if isElement ( sound ) then destroyElement ( sound ) end
end
if isTimer ( timerVehicle ) then killTimer ( timerVehicle ) end
guiSetVisible ( label, false )
setElementData ( player, "liveradio.radio", 0 )
end
end
)
addEvent ( "switchRadioChannel", true )
addEventHandler ( "switchRadioChannel", getLocalPlayer (),
function ()
if sound then
if isElement ( sound ) then destroyElement ( sound ) end
end
local nodeStation = xmlFindChild ( nodeStations, "station", getElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio0" ) - 1 )
if nodeStation then
local radioName = xmlNodeGetAttribute ( nodeStation, "name" )
local radioURL = xmlNodeGetAttribute ( nodeStation, "URL" )
sound = playSound ( radioURL )
guiSetText ( label, radioName )
guiSetVisible ( label, true )
setElementData ( getLocalPlayer (), "liveradio.radio", getElementData ( getPedOccupiedVehicle ( getLocalPlayer () ), "liveradio.radio0" ) )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
else
guiSetText ( label, "Radio Off" )
guiSetVisible ( label, true )
setElementData ( getLocalPlayer (), "liveradio.radio", 0 )
if isTimer ( timerLabel ) then killTimer ( timerLabel ) end
timerLabel = setTimer ( guiSetVisible, 5000, 1, label, false )
end
end
)
Thanks for anyone who helps with this
Btw this is the client.lua ^ as I think the things I need are both client sided.