justn Posted May 8, 2014 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
Castillo Posted May 8, 2014 Posted May 8, 2014 Errors in debugscript? Why do you use setElementPosition? you can attach the sound to the player.
justn Posted May 8, 2014 Author Posted May 8, 2014 No errors in debugscript. the problem started when i added if ( player == localPlayer ) then
Castillo Posted May 8, 2014 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.
justn Posted May 9, 2014 Author 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.
Castillo Posted May 9, 2014 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.
XeniusORIGINAL Posted May 9, 2014 Posted May 9, 2014 what? setElementPosition? use attachElementToElement() https://wiki.multitheftauto.com/wiki/At ... tToElement
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