Jump to content

[HELP] Radio script x2


Reflex#

Recommended Posts

In the previous topic,I maked a radio script and solidesnake helped me to make it.

Now I had 1 more question :

How I can make Radio off when player join?

Player join and if he want,he ON radio with bind button.

In my script,when player joined,radio script starting and player must press R to off it.

   local musicStream = "http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls" 
      
    function onResourceStart ( ) 
        sound = playSound ( musicStream, true ) 
    end 
      
    function makeRadioStayOff ( ) 
        setRadioChannel ( 0 ) 
        cancelEvent ( )       
    end 
      
    function toggleSong ( ) 
        removeEventHandler ( "onClientRender", root, renderText ) 
        if ( isTimer ( hideTimer ) ) then 
            killTimer ( hideTimer ) 
        end 
        if not songOff then 
            setSoundVolume ( sound, 0 ) 
            songOff = true 
            removeEventHandler ( "onClientPlayerRadioSwitch", root, makeRadioStayOff ) 
            addEventHandler ( "onClientRender", root, renderText ) 
            hideTimer = setTimer ( 
                function ( ) 
                    removeEventHandler ( "onClientRender", root, renderText ) 
                end 
                ,2000, 1 
            ) 
        else 
            setSoundVolume ( sound, 1 ) 
            songOff = false 
            setRadioChannel ( 0 ) 
            addEventHandler ( "onClientPlayerRadioSwitch", root, makeRadioStayOff ) 
            addEventHandler ( "onClientRender", root, renderText ) 
            hideTimer = setTimer ( 
                function ( ) 
                    removeEventHandler ( "onClientRender", root, renderText ) 
                end 
                ,2000, 1 
            ) 
        end 
    end 
      
    function renderText ( ) 
        dxDrawText ( "[RADIO] Radio is switched ".. ( songOff and "off" or "on" ), 230, 100, 400, 300, tocolor ( 255, 91, 3, 255 ), 2, "default-bold" ) 
    end 
      
    addEventHandler ( "onClientResourceStart", resourceRoot, onResourceStart ) 
    addEventHandler ( "onClientPlayerRadioSwitch", root, makeRadioStayOff ) 
    addEventHandler ( "onClientPlayerVehicleEnter", root, makeRadioStayOff ) 
    bindKey ( "R", "down", toggleSong ) 

Link to comment

simply look at this

  
    function onResourceStart ( ) 
        sound = playSound ( musicStream, true ) 
    end 
  

it says right here, when the resource starts (for example because a player just joined), then playSound.

so just remove that part and you're good

oh also to prevent errors/warnings you should also remove the following

    addEventHandler ( "onClientResourceStart", resourceRoot, onResourceStart ) 

Link to comment

Hey this is the one i made and gave to >VIP< Ages ago ( its based on that mappers script ) :

local sx, sy = guiGetScreenSize ()  
function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, left, top, clip, wordbreak, postGUI) -- Reason for this is for using more than 1 color instead of using two dxDrawText Functions  
    local pat = "(.-)#(%x%x%x%x%x%x)" 
    local s, e, cap, col = str:find(pat, 1) 
    local last = 1 
    while s do 
        if cap == "" and col then color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), 
        tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) end 
        if s ~= 1 or cap ~= "" then 
            local w = dxGetTextWidth(cap, scale, font) 
            dxDrawText( cap, ax, ay, ax + w, by, color, scale, font ) 
            ax = ax + w 
            color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) 
        end 
        last = e + 1 
        s, e, cap, col = str:find( pat, last ) 
    end 
    if last <= #str then 
        cap = str:sub( last ) 
        local w = dxGetTextWidth( cap, scale, font ) 
        dxDrawText( cap, ax, ay, ax + w, by, color, scale, font, left, top, clip, wordbreak, postGUI ) 
    end 
end 
  
function startMusic() 
    outputChatBox ("#00aa46[RADIO] #ffffffPress #00aa46'R' #ffffffto Listen To The Radio", 255,137,0, true ) 
    setRadioChannel(0) 
    song = playSound ("http://www.181.fm/asx.php", true) 
    setSoundVolume(song,0) 
  
end 
  
function makeRadioStayOff() 
    setRadioChannel(0) 
    cancelEvent() 
end 
  
function toggleSong() 
    if not songOff then 
        setSoundVolume(song,1) 
        songOff = true 
        removeEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
         
        function renderPlayerJoined ( ) 
            dxDrawColorText(listening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
        end 
         
        listening = "#00aa46[RADIO] #ffffffYou are currently #00aa46listening #ffffffto the radio" 
        addEventHandler ( "onClientRender", root, renderPlayerJoined ) 
        setTimer ( 
            function ( ) 
                removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
            end 
            ,3000,1 
        ) 
         
                if ( renderPlayerJoined ) then 
        removeEventHandler ( "onClientRender", root, renderShit ) 
        end 
    else 
        setSoundVolume(song,0) 
        songOff = false 
        setRadioChannel(0) 
        addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
         
                function renderShit ( ) 
            dxDrawColorText(notlistening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
        end 
         
        notlistening = "#00aa46[RADIO] #ffffffYou are currently #00aa46not listening #ffffffto the radio" 
        addEventHandler ( "onClientRender", root, renderShit ) 
        setTimer ( 
            function ( ) 
                removeEventHandler ( "onClientRender", root, renderShit ) 
            end 
            ,3000,1 
        ) 
         
        if ( renderShit ) then 
        removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
        end 
    end 
end 
  
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),startMusic) 
addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
addEventHandler("onClientPlayerVehicleEnter",getRootElement(),makeRadioStayOff) 
bindKey("r","down",toggleSong) 
addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()),startMusic) 

My scripts are kind of messy but I hope u understood :D Good luck :)

Hope I have helped.

Link to comment

Delta# your script don't work..

debugscript show : WARNING : Loading script failed : radio_new\stream.lua :58: unexpected symbol near ':'

stream.lua :

        local sx, sy = guiGetScreenSize () 
    function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, left, top, clip, wordbreak, postGUI) -- Reason for this is for using more than 1 color instead of using two dxDrawText Functions 
        local pat = "(.-)#(%x%x%x%x%x%x)" 
        local s, e, cap, col = str:find(pat, 1) 
        local last = 1 
        while s do 
            if cap == "" and col then color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), 
            tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) end 
            if s ~= 1 or cap ~= "" then 
                local w = dxGetTextWidth(cap, scale, font) 
                dxDrawText( cap, ax, ay, ax + w, by, color, scale, font ) 
                ax = ax + w 
                color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) 
            end 
            last = e + 1 
            s, e, cap, col = str:find( pat, last ) 
        end 
        if last <= #str then 
            cap = str:sub( last ) 
            local w = dxGetTextWidth( cap, scale, font ) 
            dxDrawText( cap, ax, ay, ax + w, by, color, scale, font, left, top, clip, wordbreak, postGUI ) 
        end 
    end 
      
    function startMusic() 
        outputChatBox ("#ff5b03[RADIO] #ffffffPress #ff5b03'R' #ffffffto Listen To The Radio", 255,137,0, true ) 
        setRadioChannel(0) 
        song = playSound ("http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls", true) 
        setSoundVolume(song,0) 
      
    end 
      
    function makeRadioStayOff() 
        setRadioChannel(0) 
        cancelEvent() 
    end 
      
    function toggleSong() 
        if not songOff then 
            setSoundVolume(song,1) 
            songOff = true 
            removeEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
            
            function renderPlayerJoined ( ) 
                dxDrawColorText(listening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
            end 
            
            listening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03listening #ffffffto the radio" 
            addEventHandler ( "onClientRender", root, renderPlayerJoined ) 
            setTimer ( 
                function ( ) 
                    removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                end 
                ,3000,1 
            ) 
            
                    if ( renderPlayerJoined ) then 
            removeEventHandler ( "onClientRender", root, :~ ) 
            end 
        else 
            setSoundVolume(song,0) 
            songOff = false 
            setRadioChannel(0) 
            addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
            
                    function :~ ( ) 
                dxDrawColorText(notlistening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
            end 
            
            notlistening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03not listening #ffffffto the radio" 
            addEventHandler ( "onClientRender", root, :~ ) 
            setTimer ( 
                function ( ) 
                    removeEventHandler ( "onClientRender", root, :~ ) 
                end 
                ,3000,1 
            ) 
            
            if ( :~ ) then 
            removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
            end 
        end 
    end 
      
    addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),startMusic) 
    addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
    addEventHandler("onClientPlayerVehicleEnter",getRootElement(),makeRadioStayOff) 
    bindKey("r","down",toggleSong) 
    addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()),startMusic) 

Link to comment
                local sx, sy = guiGetScreenSize () 
            function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, left, top, clip, wordbreak, postGUI) -- Reason for this is for using more than 1 color instead of using two dxDrawText Functions 
                local pat = "(.-)#(%x%x%x%x%x%x)" 
                local s, e, cap, col = str:find(pat, 1) 
                local last = 1 
                while s do 
                    if cap == "" and col then color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), 
                    tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) end 
                    if s ~= 1 or cap ~= "" then 
                        local w = dxGetTextWidth(cap, scale, font) 
                        dxDrawText( cap, ax, ay, ax + w, by, color, scale, font ) 
                        ax = ax + w 
                        color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) 
                    end 
                    last = e + 1 
                    s, e, cap, col = str:find( pat, last ) 
                end 
                if last <= #str then 
                    cap = str:sub( last ) 
                    local w = dxGetTextWidth( cap, scale, font ) 
                    dxDrawText( cap, ax, ay, ax + w, by, color, scale, font, left, top, clip, wordbreak, postGUI ) 
                end 
            end 
              
            function startMusic() 
                outputChatBox ("#ff5b03[RADIO] #ffffffPress #ff5b03'R' #ffffffto Listen To The Radio", 255,137,0, true ) 
                setRadioChannel(0) 
                song = playSound ("http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls", true) 
                setSoundVolume(song,0) 
              
            end 
              
            function makeRadioStayOff() 
                setRadioChannel(0) 
                cancelEvent() 
            end 
              
            function toggleSong() 
                if not songOff then 
                    setSoundVolume(song,1) 
                    songOff = true 
                    removeEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
                    
                    function renderPlayerJoined ( ) 
                        dxDrawColorText(listening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
                    end 
                    
                    listening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03listening #ffffffto the radio" 
                    addEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                    setTimer ( 
                        function ( ) 
                            removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                        end 
                        ,3000,1 
                    ) 
                    
                            if ( renderPlayerJoined ) then 
                    removeEventHandler ( "onClientRender", root, : ) 
                    end 
                else 
                    setSoundVolume(song,0) 
                    songOff = false 
                    setRadioChannel(0) 
                    addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
                    
                            function : ( ) 
                        dxDrawColorText(notlistening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
                    end 
                    
                    notlistening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03not listening #ffffffto the radio" 
                    addEventHandler ( "onClientRender", root, : ) 
                    setTimer ( 
                        function ( ) 
                            removeEventHandler ( "onClientRender", root, : ) 
                        end 
                        ,3000,1 
                    ) 
                    
                    if ( : ) then 
                    removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                    end 
                end 
            end 
              
            addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),startMusic) 
            addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
            addEventHandler("onClientPlayerVehicleEnter",getRootElement(),makeRadioStayOff) 
            bindKey("r","down",toggleSong) 
            addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()),startMusic) 

Link to comment
                local sx, sy = guiGetScreenSize () 
            function dxDrawColorText(str, ax, ay, bx, by, color, scale, font, left, top, clip, wordbreak, postGUI) -- Reason for this is for using more than 1 color instead of using two dxDrawText Functions 
                local pat = "(.-)#(%x%x%x%x%x%x)" 
                local s, e, cap, col = str:find(pat, 1) 
                local last = 1 
                while s do 
                    if cap == "" and col then color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), 
                    tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) end 
                    if s ~= 1 or cap ~= "" then 
                        local w = dxGetTextWidth(cap, scale, font) 
                        dxDrawText( cap, ax, ay, ax + w, by, color, scale, font ) 
                        ax = ax + w 
                        color = tocolor( tonumber( "0x"..col:sub( 1, 2 ) ), tonumber( "0x"..col:sub( 3, 4 ) ), tonumber( "0x"..col:sub( 5, 6 ) ), 255 ) 
                    end 
                    last = e + 1 
                    s, e, cap, col = str:find( pat, last ) 
                end 
                if last <= #str then 
                    cap = str:sub( last ) 
                    local w = dxGetTextWidth( cap, scale, font ) 
                    dxDrawText( cap, ax, ay, ax + w, by, color, scale, font, left, top, clip, wordbreak, postGUI ) 
                end 
            end 
              
            function startMusic() 
                outputChatBox ("#ff5b03[RADIO] #ffffffPress #ff5b03'R' #ffffffto Listen To The Radio", 255,137,0, true ) 
                setRadioChannel(0) 
                song = playSound ("http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls", true) 
                setSoundVolume(song,0) 
              
            end 
              
            function makeRadioStayOff() 
                setRadioChannel(0) 
                cancelEvent() 
            end 
              
            function toggleSong() 
                if not songOff then 
                    setSoundVolume(song,1) 
                    songOff = true 
                    removeEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
                    
                    function renderPlayerJoined ( ) 
                        dxDrawColorText(listening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
                    end 
                    
                    listening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03listening #ffffffto the radio" 
                    addEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                    setTimer ( 
                        function ( ) 
                            removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                        end 
                        ,3000,1 
                    ) 
                    
                            if ( renderPlayerJoined ) then 
                    removeEventHandler ( "onClientRender", root, : ) 
                    end 
                else 
                    setSoundVolume(song,0) 
                    songOff = false 
                    setRadioChannel(0) 
                    addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
                    
                            function : ( ) 
                        dxDrawColorText(notlistening,sx/4, sy/23,sx,sy,tocolor(255,255,255),1.3,"sans","center","top",true,true,false) 
                    end 
                    
                    notlistening = "#ff5b03[RADIO] #ffffffYou are currently #ff5b03not listening #ffffffto the radio" 
                    addEventHandler ( "onClientRender", root, : ) 
                    setTimer ( 
                        function ( ) 
                            removeEventHandler ( "onClientRender", root, : ) 
                        end 
                        ,3000,1 
                    ) 
                    
                    if ( : ) then 
                    removeEventHandler ( "onClientRender", root, renderPlayerJoined ) 
                    end 
                end 
            end 
              
            addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),startMusic) 
            addEventHandler("onClientPlayerRadioSwitch",getRootElement(),makeRadioStayOff) 
            addEventHandler("onClientPlayerVehicleEnter",getRootElement(),makeRadioStayOff) 
            bindKey("r","down",toggleSong) 
            addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()),startMusic) 

same problem

Link to comment

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