justn Posted May 8, 2014 Share Posted May 8, 2014 (edited) I have this radio script. the problem is, the dx text doesn't shows or anything, can someone help please? n = 1 Font = dxCreateFont("font.ttf", 21) local radios = { {"None","None",7}, {"http://www.raggakings.net/listen.m3u","Reggae and Dancehall",6}, {"http://mp3uplink.duplexfx.com:8054/listen.pls","West Coast Rap",5}, {"http://somafm.com/dubstep.pls","Dubstep",4}, {"http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls","Power 181",3}, {"http://193.34.51.25/listen.pls","rauteMusik.",2}, {"http://212.45.104.34:8042/listen.pls","Defjay",1} } title = "Radio Off" addEventHandler("onClientSoundChangedMeta", root, function(streamTitle) title = streamTitle end) addEventHandler("onClientSoundStream",root,function(suc,length,streamN) title = streamN end) function onPlayerEnterVehicle(player,seat) if ( player == localPlayer ) then if seat == 0 or seat == 1 or seat == 2 or seat == 3 or seat == 4 then setRadioChannel(0) addEventHandler("onClientRender", getRootElement(), RenderClient) bindKey("mouse_wheel_up", "down", PlaySound, "up") bindKey("mouse_wheel_down", "down", PlaySound, "down") end end end addEventHandler("onClientPlayerVehicleEnter", getRootElement(), onPlayerEnterVehicle) function stopMySound(player,seat) if ( player == localPlayer ) then if seat == 0 or seat == 1 or seat == 2 or seat == 3 or seat == 4 then if sound then stopSound( sound ) sound = nil end removeEventHandler("onClientRender", getRootElement(), RenderClient) unbindKey("mouse_wheel_up", "down", PlaySound) unbindKey("mouse_wheel_down", "down", PlaySound) n = 1 end end end addEventHandler("onClientPlayerVehicleExit",getRootElement(),stopMySound) function RenderClient() if isPedInVehicle(localPlayer) then local x,y = guiGetScreenSize() dxDrawText("Song Name: "..title, x*387/1024, y*631/768, x*800/1024, y*646/768, tocolor(255, 255, 255, 255), 0.50, Font, "left", "top", false, false, true, false, false) dxDrawText("Radio: "..tostring(radiotitle), x*387/1024, y*616/768, x*760/1024, y*631/768, tocolor(255, 255, 255, 255), 0.50, Font, "left", "top", false, false, true, false, false) end end function PlaySound(state) local x,y,z = getElementPosition(getLocalPlayer()) n = tonumber(n) if sound then stopSound(sound) sound = nil end if state == "mouse_wheel_up" then if n < #radios then n = n + 1 end elseif state == "mouse_wheel_down" then if n > 1 then n = n - 1 end end sound = playSound3D(radios[n][1], x,y,z) radiotitle = radios[n][2] end function UpdateSound() if sound then local x,y,z = getElementPosition(getLocalPlayer()) setElementPosition(sound, x,y,z) end end addEventHandler("onClientRender", getRootElement(), UpdateSound) Edited May 9, 2014 by Guest Link to comment
Castillo Posted May 8, 2014 Share Posted May 8, 2014 Errors in debugscript? Why do you use setElementPosition? you can attach the sound to the player. Link to comment
justn Posted May 8, 2014 Author Share Posted May 8, 2014 No errors in debugscript. the problem started when i added if ( player == localPlayer ) then Link to comment
Castillo Posted May 8, 2014 Share Posted May 8, 2014 For that event, what you defined as "player" in the function arguments is the vehicle, not the player. Use "source" instead. Link to comment
justn Posted May 9, 2014 Author Share Posted May 9, 2014 Works, But i have 1 more small problem, let's say that I was in the car, and i was listening to a song on the radio, when i exit the vehicle and i enter again. The song on the radio doesn't continue, I must switch the radio station and then switch it back to the previous radio station to hear what was playing. Link to comment
Castillo Posted May 9, 2014 Share Posted May 9, 2014 You can store the current station index when the player leaves the vehicle, and when he re-enters, see if the variable contains a value, then load it. Link to comment
justn Posted May 9, 2014 Author Share Posted May 9, 2014 Can you help me with that please ? Link to comment
XeniusORIGINAL Posted May 9, 2014 Share Posted May 9, 2014 what? setElementPosition? use attachElementToElement() https://wiki.multitheftauto.com/wiki/At ... tToElement Link to comment
justn Posted May 9, 2014 Author Share Posted May 9, 2014 I already changed that to attachElements ._. 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