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