DarkNeSsOak Posted November 15, 2016 Share Posted November 15, 2016 Ayuda porfavor como pongo musica en Login Server side: function addNotification(player, text, type) if (player and text and type) then triggerClientEvent(player, 'addNotification', player, text, type); end end function loginPlayer(source, username, password) local account = getAccount ( username ) if ( account ~= false ) then local account = getAccount ( username, password ) if ( account ~= false ) then addNotification(source, "Te has logeado correctamente!", "success") logIn (source, account, password) triggerClientEvent("belepesfunkctsiker", source) else addNotification(source, "Contraseña Incorrecta!", "error") end else addNotification(source, "Contraseña Incorrecta!", "error") end end addEvent("attemptLogin", true) addEventHandler("attemptLogin", getRootElement(), loginPlayer) function registerPlayer(source, username, password) local account = getAccount (username) if (account == false) then local accountAdded = addAccount(tostring(username),tostring(password)) if (accountAdded) then triggerClientEvent("belepesfunkctsikerregisztracio", source) addNotification(source, "Has creado la cuenta correctamente! Logeate para obtener tu nueva cuenta.", "success") else addNotification(source, "Un error a ocurrido!", "error") end else addNotification(source, "Una cuenta con el Username que ingreso ya existe!", "error") end end addEvent("attemptRegister", true) addEventHandler("attemptRegister", getRootElement(), registerPlayer) addEventHandler("onPlayerCommand", root, function(cmd) if cmd == "logout" then cancelEvent() elseif cmd == "register" then cancelEvent() elseif cmd == "login" then cancelEvent() end end) Client Side: local screenWidth, screenHeight = guiGetScreenSize() local page = "http://mta/local/index.html" local initBrowser = guiCreateBrowser(0, 0, screenWidth, screenHeight, true, true, false) local theBrowser = guiGetBrowser(initBrowser) addEventHandler("onClientBrowserCreated", theBrowser, function() loadBrowserURL(source, page) showCursor(true) guiSetInputEnabled(true) addNotification("Porfavor Crea una cuenta o logeate!", "info") end ) function belepesfunkc(UsernameValue, PasswordValue) username = tostring(UsernameValue) password = tostring(PasswordValue) UsernameValue = nil PasswordValue = nil if (string.len(username)<4) then addNotification("Username should be at least 4 characters long.", "warning") elseif (string.len(username)>35) then addNotification("Username not be longer than 35 characters.", "warning") elseif (string.len(password)<4) then addNotification("Password should be at least 4 characters long.", "warning") elseif (string.len(password)>35) then addNotification("Password not be longer than 35 characters.", "warning") else triggerServerEvent("attemptLogin", getRootElement(), getLocalPlayer(), username, password) end end addEvent("belepesfunkc", true) addEventHandler("belepesfunkc", root, belepesfunkc) function belepesfunkct() destroyElement(initBrowser) destroyElement(zene) guiSetInputEnabled(false) showCursor(false) end addEvent("belepesfunkctsiker", true) addEventHandler("belepesfunkctsiker", getLocalPlayer(), belepesfunkct) function belepesfunkctsikerregisztraciohandler() executeBrowserJavascript ( theBrowser, "gotologinfromregister()" ) end addEvent("belepesfunkctsikerregisztracio", true) addEventHandler("belepesfunkctsikerregisztracio", getLocalPlayer(), belepesfunkctsikerregisztraciohandler) function belepesfunkcregisztral(UsernameValue, PasswordValue, PasswordConfirmValue) username = tostring(UsernameValue) password = tostring(PasswordValue) passwordC = tostring(PasswordConfirmValue) UsernameValue = nil PasswordValue = nil PasswordConfirmValue = nil if (string.len(username)<4) then addNotification("El nombre de usuario debe tener al menos 4 caracteres.", "warning") elseif (string.len(username)>35) then addNotification("El nombre de usuario no debe tener más de 35 caracteres.", "warning") elseif (string.len(password)<4) then addNotification("La contraseña debe tener al menos 4 caracteres.", "warning") elseif (string.len(password)>35) then addNotification("La contraseña no debe tener más de 35 caracteres.", "warning") elseif (password ~= passwordC) then addNotification("Las contraseñas no coinciden.", "error") else triggerServerEvent("attemptRegister", getRootElement(), getLocalPlayer(), username, password) end end addEvent("belepesfunkcregisztral", true) addEventHandler("belepesfunkcregisztral", root, belepesfunkcregisztral) local displayWidth, displayHeight = guiGetScreenSize(); local notificationData = {}; local notificationFont = dxCreateFont('files/fonts/roboto.ttf', 12 * 2, false); local iconsFont = dxCreateFont('files/fonts/icons.ttf', 12 * 2, false); addEventHandler('onClientRender', root, function() for k, v in pairs(notificationData) do if (v.State == 'fadeIn') then local alphaProgress = (getTickCount() - v.AlphaTick) / 650; local alphaAnimation = interpolateBetween(0, 0, 0, 255, 0, 0, alphaProgress, 'Linear'); if (alphaAnimation) then v.Alpha = alphaAnimation; else v.Alpha = 255; end if (alphaProgress > 1) then v.Tick = getTickCount(); v.State = 'openTile'; end elseif (v.State == 'fadeOut') then local alphaProgress = (getTickCount() - v.AlphaTick) / 650; local alphaAnimation = interpolateBetween(255, 0, 0, 0, 0, 0, alphaProgress, 'Linear'); if (alphaAnimation) then v.Alpha = alphaAnimation; else v.Alpha = 0; end if (alphaProgress > 1) then notificationData = {}; end elseif (v.State == 'openTile') then local tileProgress = (getTickCount() - v.Tick) / 350; local tilePosition = interpolateBetween(v.StartX, 0, 0, v.EndX, 0, 0, tileProgress, 'Linear'); local tileWidth = interpolateBetween(0, 0, 0, v.Width, 0, 0, tileProgress, 'Linear'); if (tilePosition and tileWidth) then v.CurrentX = tilePosition; v.CurrentWidth = tileWidth; else v.CurrentX = v.EndX; v.CurrentWidth = v.Width; end if (tileProgress > 1) then v.State = 'fixTile'; setTimer(function() v.Tick = getTickCount(); v.State = 'closeTile'; end, string.len(v.Text) * 45 + 5000, 1); end elseif (v.State == 'closeTile') then local tileProgress = (getTickCount() - v.Tick) / 350; local tilePosition = interpolateBetween(v.EndX, 0, 0, v.StartX, 0, 0, tileProgress, 'Linear'); local tileWidth = interpolateBetween(v.Width, 0, 0, 0, 0, 0, tileProgress, 'Linear'); if (tilePosition and tileWidth) then v.CurrentX = tilePosition; v.CurrentWidth = tileWidth; else v.CurrentX = v.StartX; v.CurrentWidth = 0; end if (tileProgress > 1) then v.AlphaTick = getTickCount(); v.State = 'fadeOut'; end elseif (v.State == 'fixTile') then v.Alpha = 255; v.CurrentX = v.EndX; v.CurrentWidth = v.Width; end roundedRectangle(v.CurrentX, 20, 25 + v.CurrentWidth, 25, tocolor(0, 0, 0, 150 * v.Alpha / 255), _, true); dxDrawRectangle(v.CurrentX, 20, 25, 25, tocolor(0, 0, 0, 255 * v.Alpha / 255), true); if (v.Alpha == 255) then dxDrawText(v.Text, v.CurrentX + 25 + 10, 20, v.CurrentX + 25 + 10 + v.CurrentWidth - 20, 20 + 25, tocolor(255, 255, 255, 255), 0.40, notificationFont, 'center', 'center', true, false, true); end if (v.Type == 'error') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(215, 90, 90, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'warning') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(220, 180, 80, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'info') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(85, 180, 245, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'success') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(80, 205, 105, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); end end end ) addEvent('addNotification', true); function addNotification(text, type) if (text and type) then if (notificationData ~= nil) then table.remove(notificationData, #notificationData); end table.insert(notificationData, { StartX = (displayWidth / 2) - (25 / 2), EndX = (displayWidth / 2) - ((dxGetTextWidth(text, 0.40, notificationFont) + 20 + 25) / 2), Text = text, Width = dxGetTextWidth(text, 0.40, notificationFont) + 20, Alpha = 0, State = 'fadeIn', Tick = 0, AlphaTick = getTickCount(), CurrentX = (displayWidth / 2) - (25 / 2), CurrentWidth = 0, Type = type or 'info' } ); playSoundFrontEnd(11); end end addEventHandler('addNotification', root, addNotification); function roundedRectangle(x, y, w, h, borderColor, bgColor, postGUI) if (x and y and w and h) then if (not borderColor) then borderColor = tocolor(0, 0, 0, 200); end if (not bgColor) then bgColor = borderColor; end --> Background dxDrawRectangle(x, y, w, h, bgColor, postGUI); --> Border dxDrawRectangle(x + 2, y - 1, w - 4, 1, borderColor, postGUI); -- top dxDrawRectangle(x + 2, y + h, w - 4, 1, borderColor, postGUI); -- bottom dxDrawRectangle(x - 1, y + 2, 1, h - 4, borderColor, postGUI); -- left dxDrawRectangle(x + w, y + 2, 1, h - 4, borderColor, postGUI); -- right end end Les agradeceria la ayuda Link to comment
Sticmy Posted November 15, 2016 Share Posted November 15, 2016 (edited) También puedes poner esa función en una parte del login cuando aparece.. acá te dejo un pequeño ejempleo del playSound quizás te sirva en otra ocasiones.. addEventHandler("onClientPlayerJoin", root, function() local sound = playSound("http://youtubeinmp3.com/fetch/?video%3Dhttp://www.youtube.com/watch?v%3D57UZVVvtX-M", true) --Play wasted.mp3 from the sounds folder default: playSound("folder/music.mp3") setSoundVolume(sound, 0.5) -- set the sound volume to 50% outputChatBox("el jugador (".. getPlayerName(source)..") entro al juego.", source, 0, 255, 0, true) end ) Tú código ya lo adapte. local screenWidth, screenHeight = guiGetScreenSize() local page = "http://mta/local/index.html" local initBrowser = guiCreateBrowser(0, 0, screenWidth, screenHeight, true, true, false) local theBrowser = guiGetBrowser(initBrowser) addEventHandler("onClientBrowserCreated", theBrowser, function() loadBrowserURL(source, page) showCursor(true) guiSetInputEnabled(true) local sound = playSound("http://youtubeinmp3.com/fetch/?video%3Dhttp://www.youtube.com/watch?v%3D57UZVVvtX-M", true) --Play wasted.mp3 from the sounds folder default: playSound("folder/music.mp3") setSoundVolume(sound, 0.5) -- set the sound volume to 50% addNotification("Porfavor Crea una cuenta o logeate!", "info") end ) function belepesfunkc(UsernameValue, PasswordValue) username = tostring(UsernameValue) password = tostring(PasswordValue) UsernameValue = nil PasswordValue = nil if (string.len(username)<4) then addNotification("Username should be at least 4 characters long.", "warning") elseif (string.len(username)>35) then addNotification("Username not be longer than 35 characters.", "warning") elseif (string.len(password)<4) then addNotification("Password should be at least 4 characters long.", "warning") elseif (string.len(password)>35) then addNotification("Password not be longer than 35 characters.", "warning") else triggerServerEvent("attemptLogin", getRootElement(), getLocalPlayer(), username, password) end end addEvent("belepesfunkc", true) addEventHandler("belepesfunkc", root, belepesfunkc) function belepesfunkct() destroyElement(initBrowser) destroyElement(zene) guiSetInputEnabled(false) showCursor(false) end addEvent("belepesfunkctsiker", true) addEventHandler("belepesfunkctsiker", getLocalPlayer(), belepesfunkct) function belepesfunkctsikerregisztraciohandler() executeBrowserJavascript ( theBrowser, "gotologinfromregister()" ) end addEvent("belepesfunkctsikerregisztracio", true) addEventHandler("belepesfunkctsikerregisztracio", getLocalPlayer(), belepesfunkctsikerregisztraciohandler) function belepesfunkcregisztral(UsernameValue, PasswordValue, PasswordConfirmValue) username = tostring(UsernameValue) password = tostring(PasswordValue) passwordC = tostring(PasswordConfirmValue) UsernameValue = nil PasswordValue = nil PasswordConfirmValue = nil if (string.len(username)<4) then addNotification("El nombre de usuario debe tener al menos 4 caracteres.", "warning") elseif (string.len(username)>35) then addNotification("El nombre de usuario no debe tener más de 35 caracteres.", "warning") elseif (string.len(password)<4) then addNotification("La contraseña debe tener al menos 4 caracteres.", "warning") elseif (string.len(password)>35) then addNotification("La contraseña no debe tener más de 35 caracteres.", "warning") elseif (password ~= passwordC) then addNotification("Las contraseñas no coinciden.", "error") else triggerServerEvent("attemptRegister", getRootElement(), getLocalPlayer(), username, password) end end addEvent("belepesfunkcregisztral", true) addEventHandler("belepesfunkcregisztral", root, belepesfunkcregisztral) local displayWidth, displayHeight = guiGetScreenSize(); local notificationData = {}; local notificationFont = dxCreateFont('files/fonts/roboto.ttf', 12 * 2, false); local iconsFont = dxCreateFont('files/fonts/icons.ttf', 12 * 2, false); addEventHandler('onClientRender', root, function() for k, v in pairs(notificationData) do if (v.State == 'fadeIn') then local alphaProgress = (getTickCount() - v.AlphaTick) / 650; local alphaAnimation = interpolateBetween(0, 0, 0, 255, 0, 0, alphaProgress, 'Linear'); if (alphaAnimation) then v.Alpha = alphaAnimation; else v.Alpha = 255; end if (alphaProgress > 1) then v.Tick = getTickCount(); v.State = 'openTile'; end elseif (v.State == 'fadeOut') then local alphaProgress = (getTickCount() - v.AlphaTick) / 650; local alphaAnimation = interpolateBetween(255, 0, 0, 0, 0, 0, alphaProgress, 'Linear'); if (alphaAnimation) then v.Alpha = alphaAnimation; else v.Alpha = 0; end if (alphaProgress > 1) then notificationData = {}; end elseif (v.State == 'openTile') then local tileProgress = (getTickCount() - v.Tick) / 350; local tilePosition = interpolateBetween(v.StartX, 0, 0, v.EndX, 0, 0, tileProgress, 'Linear'); local tileWidth = interpolateBetween(0, 0, 0, v.Width, 0, 0, tileProgress, 'Linear'); if (tilePosition and tileWidth) then v.CurrentX = tilePosition; v.CurrentWidth = tileWidth; else v.CurrentX = v.EndX; v.CurrentWidth = v.Width; end if (tileProgress > 1) then v.State = 'fixTile'; setTimer(function() v.Tick = getTickCount(); v.State = 'closeTile'; end, string.len(v.Text) * 45 + 5000, 1); end elseif (v.State == 'closeTile') then local tileProgress = (getTickCount() - v.Tick) / 350; local tilePosition = interpolateBetween(v.EndX, 0, 0, v.StartX, 0, 0, tileProgress, 'Linear'); local tileWidth = interpolateBetween(v.Width, 0, 0, 0, 0, 0, tileProgress, 'Linear'); if (tilePosition and tileWidth) then v.CurrentX = tilePosition; v.CurrentWidth = tileWidth; else v.CurrentX = v.StartX; v.CurrentWidth = 0; end if (tileProgress > 1) then v.AlphaTick = getTickCount(); v.State = 'fadeOut'; end elseif (v.State == 'fixTile') then v.Alpha = 255; v.CurrentX = v.EndX; v.CurrentWidth = v.Width; end roundedRectangle(v.CurrentX, 20, 25 + v.CurrentWidth, 25, tocolor(0, 0, 0, 150 * v.Alpha / 255), _, true); dxDrawRectangle(v.CurrentX, 20, 25, 25, tocolor(0, 0, 0, 255 * v.Alpha / 255), true); if (v.Alpha == 255) then dxDrawText(v.Text, v.CurrentX + 25 + 10, 20, v.CurrentX + 25 + 10 + v.CurrentWidth - 20, 20 + 25, tocolor(255, 255, 255, 255), 0.40, notificationFont, 'center', 'center', true, false, true); end if (v.Type == 'error') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(215, 90, 90, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'warning') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(220, 180, 80, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'info') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(85, 180, 245, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); elseif (v.Type == 'success') then dxDrawText('', v.CurrentX + 5, 20, v.CurrentX + 5 + 25 - 10, 20 + 25, tocolor(80, 205, 105, v.Alpha), 0.50, iconsFont, 'center', 'center', false, false, true); end end end ) addEvent('addNotification', true); function addNotification(text, type) if (text and type) then if (notificationData ~= nil) then table.remove(notificationData, #notificationData); end table.insert(notificationData, { StartX = (displayWidth / 2) - (25 / 2), EndX = (displayWidth / 2) - ((dxGetTextWidth(text, 0.40, notificationFont) + 20 + 25) / 2), Text = text, Width = dxGetTextWidth(text, 0.40, notificationFont) + 20, Alpha = 0, State = 'fadeIn', Tick = 0, AlphaTick = getTickCount(), CurrentX = (displayWidth / 2) - (25 / 2), CurrentWidth = 0, Type = type or 'info' } ); playSoundFrontEnd(11); end end addEventHandler('addNotification', root, addNotification); function roundedRectangle(x, y, w, h, borderColor, bgColor, postGUI) if (x and y and w and h) then if (not borderColor) then borderColor = tocolor(0, 0, 0, 200); end if (not bgColor) then bgColor = borderColor; end --> Background dxDrawRectangle(x, y, w, h, bgColor, postGUI); --> Border dxDrawRectangle(x + 2, y - 1, w - 4, 1, borderColor, postGUI); -- top dxDrawRectangle(x + 2, y + h, w - 4, 1, borderColor, postGUI); -- bottom dxDrawRectangle(x - 1, y + 2, 1, h - 4, borderColor, postGUI); -- left dxDrawRectangle(x + w, y + 2, 1, h - 4, borderColor, postGUI); -- right end end Edited November 15, 2016 by MarkFlash Link to comment
Tomas Posted November 16, 2016 Share Posted November 16, 2016 O puedes aprovechar el browser y ponerla desde ahí. Link to comment
Recommended Posts