Reflex# Posted December 4, 2012 Share Posted December 4, 2012 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
uhm Posted December 4, 2012 Share Posted December 4, 2012 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
deltamta Posted December 4, 2012 Share Posted December 4, 2012 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 Good luck Hope I have helped. Link to comment
Reflex# Posted December 5, 2012 Author Share Posted December 5, 2012 Hehe..I saw this script. Thanks you. You helped me so much :3 Link to comment
TwiX! Posted December 5, 2012 Share Posted December 5, 2012 dxDrawColorText not needed anymore Link to comment
deltamta Posted December 5, 2012 Share Posted December 5, 2012 yes i know but whatever ;p Link to comment
Reflex# Posted December 5, 2012 Author Share Posted December 5, 2012 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
AhmadQTR Posted December 5, 2012 Share Posted December 5, 2012 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
Reflex# Posted December 5, 2012 Author Share Posted December 5, 2012 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
Scripting Moderators Sarrum Posted December 5, 2012 Scripting Moderators Share Posted December 5, 2012 Replace ':~' with something other. Link to comment
deltamta Posted December 5, 2012 Share Posted December 5, 2012 Im sure I didn't write that ':~' lol. but anyway just replace the values im sure you can figure that out urself since it's self explanatory. Link to comment
Anderl Posted December 5, 2012 Share Posted December 5, 2012 Im sure I didn't write that ':~' lol. but anyway just replace the values im sure you can figure that out urself since it's self explanatory. It's because you CAN'T write words like fuc*, sh*t and others here. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now