Jump to content

[Ayuda] Musica de logueo y colores


Recommended Posts

Hola amigos como vannn ando queriendo hacer que mi panel de login sea mas divertido S: pero solo no puedo :( pìdo ayuda con esto...

Yo le puse para que cuando la gente entre la pnatalla este toda negra(fadeCamera) y que haya musica en el logueo, una vez que terminaron de loguearse /iniciar sesion\ que la musica siga... y que la camara se libere y se pueda ver y mover, pero lo que quiero es que cuando la musica siga que el cielo halla colores y se cambien el color de los autos y las luces etc etc (modo disco digamosle) yo ya tengo el codigo de u script de disco:

function rvc() 
    for i, veh in ipairs(getElementsByType("vehicle")) do 
        local r = math.random(255) 
        local g= math.random(255) 
        local b = math.random(255) 
        setVehicleColor(veh, r, g, b) 
                                setVehicleOverrideLights (veh, 2 )  
                                setVehicleHeadLightColor (veh, math.random(255), math.random(255), math.random(255)) 
    end 
setSkyGradient (thePlayer, math.random (255), math.random (255), math.random (255), math.random (255), math.random (255), math.random (255)) 
setWaterColor(thePlayer, math.random (255), math.random (255), math.random (255)) 
end 
setTimer(rvc, 300, 0)  

lo que quiero hacer es que cuando la musica se detenga , los colores del cielo etc etc tambien se detengan , y otro problema es que quiero que solo el player pueda ver que cambia del color el cielo etc etc no todos los usuarios , porque cuando inicio el modo disco se le cambia a todos.

aqui les dejo el clientside de mi login:

wdwLogin_Pannel = {} 
tabPannel_Main = {}
tab_Login = {}
tab_Register = {}
 
--Settings
blackLoginScreen = true --True/false Black screen, while player login...
blackScreenTime = 3  --Time to complete disappearance of the black screen in seconds.
 
GuestEnable = false --Can a Player play as Guest, or no. [true/false]
EnableMTAControlsOnLogin = false --Set false to not open the chat when you press "t" on fields, for example. [true/false]
 
 
function open_log_reg_pannel()
if not(isElement(wdwLogin_Pannel)) then
   
    if blackLoginScreen == true then
        fadeCamera (false,blackScreenTime)
    end
   
    local sWidth,sHeight = guiGetScreenSize() -- The variables
    local Width,Height = 350,390 --Main Window sizes
    local X = (sWidth/2) - (Width/2) --Main Window horizontal position
    local Y = (sHeight/2) - (Height/2) --Main Window vertical position
    toggleAllControls(EnableMTAControlsOnLogin)
 
 
    wdwLogin_Pannel = guiCreateWindow(X,Y,Width,Height,"MTA-LPM",false)
   
    guiWindowSetSizable(wdwLogin_Pannel,false)
   
    tabPannel_Main = guiCreateTabPanel(9,130,350,251,false,wdwLogin_Pannel)
   
    tab_Login = guiCreateTab("Iniciar sesion",tabPannel_Main)
   
    lbl_Login = guiCreateLabel(13,39,100,21,"Cuenta:",false,tab_Login)
    guiLabelSetVerticalAlign(lbl_Login,"center")
    guiLabelSetHorizontalAlign(lbl_Login,"right",false)
    guiSetFont(lbl_Login,"default-bold-small")
   
    edit_Login = guiCreateEdit(142,40,130,23,"",false,tab_Login) --Поле ввода логина
    edit_password = guiCreateEdit(142,71,130,23,"",false,tab_Login) --Поле ввода пароля
    guiEditSetMaxLength ( edit_Login,25)
    guiEditSetMaxLength ( edit_password,25)
    guiEditSetMasked ( edit_password, true )
 
   
    lbl_Password = guiCreateLabel(13,71,100,21,"Clave:",false,tab_Login)
    guiLabelSetVerticalAlign(lbl_Password,"center")
    guiLabelSetHorizontalAlign(lbl_Password,"right",false)
    guiSetFont(lbl_Password,"default-bold-small")
   
lbl_top_info = guiCreateStaticImage(36, 28, 261, 88, "logo.png", false, wdwLogin_Pannel)
local sounds = {"sonido1.mp3","sonido2.mp3"}
sonido = playSound (sounds[math.random(1, #sounds)])
 
       
   
    --[[lbl_top_info = guiCreateLabel(74,6,244,35,"Enter with your username and password.",false,tab_Login)
    guiLabelSetColor(lbl_top_info,137,26,26)
    guiLabelSetVerticalAlign(lbl_top_info,"center")
    guiLabelSetHorizontalAlign(lbl_top_info,"center",false)
    guiSetFont(lbl_top_info,"default-bold-small")]]
   
    --[[lbl_about_legth = guiCreateLabel(142,42,184,18,"Max Length: 25 symbols",false,tab_Login)
    guiLabelSetColor(lbl_about_legth,253,255,68)
    guiLabelSetVerticalAlign(lbl_about_legth,"center")
    guiLabelSetHorizontalAlign(lbl_about_legth,"center",false)]]
   
   
    checkbox_save = guiCreateCheckBox(215,97,140,20,"Recordar",false,false,tab_Login)
    guiSetFont(checkbox_save,"default-small")
   
    btn_Login = guiCreateButton(110,150,130,40,"Iniciar sesion",false,tab_Login)
    guiSetFont(btn_Login,"default-bold-small")
   
    login_tab_error_msg = guiCreateLabel(0,112,350,25,"Error_login_tab",false,tab_Login)
    guiLabelSetColor(login_tab_error_msg,255,0,0)
    guiLabelSetVerticalAlign(login_tab_error_msg,"center")
    guiLabelSetHorizontalAlign(login_tab_error_msg,"center",false)
    guiSetFont(login_tab_error_msg,"default-bold-small")
   
    --Guest func
    if GuestEnable == true then
        btnGuest = guiCreateButton(29,168,94,32,"Play as Guest",false,tab_Login)
        guiSetFont(btnGuest,"default-small")
        guiSetVisible(btnGuest,true)
    else
        if isElement(btnGuest) then guiSetVisible(btnGuest,false) end
        btnGuest = nil
    end
   
   
    tab_Register = guiCreateTab("Registro",tabPannel_Main)
   
    lbl_account_name = guiCreateLabel(13,39,119,21,"Cuenta:",false,tab_Register)
    guiLabelSetVerticalAlign(lbl_account_name,"center")
    guiLabelSetHorizontalAlign(lbl_account_name,"right",false)
    guiSetFont(lbl_account_name,"default-bold-small")
   
    lbl_reg_top_info = guiCreateLabel(80,5,364,31,"No usar caracteres raros.",false,tab_Register)
    guiLabelSetColor(lbl_reg_top_info,255,234,55)
    guiLabelSetVerticalAlign(lbl_reg_top_info,"center")
    guiLabelSetHorizontalAlign(lbl_reg_top_info,"left",false)
   
    edit_account_name = guiCreateEdit(142,40,130,23,"",false,tab_Register)
    guiEditSetMaxLength ( edit_account_name,25)
   
    lbl__reg_tab_password = guiCreateLabel(13,71,119,21,"Clave:",false,tab_Register)
    guiLabelSetVerticalAlign(lbl__reg_tab_password,"center")
    guiLabelSetHorizontalAlign(lbl__reg_tab_password,"right",false)
    guiSetFont(lbl__reg_tab_password,"default-bold-small")
   
    edit__reg_tab_password = guiCreateEdit(142,71,130,23,"",false,tab_Register)
    guiEditSetMaxLength ( edit__reg_tab_password,25)
   
    edit__reg_tab_Repassword = guiCreateEdit(142,102,130,23,"",false,tab_Register)
    guiEditSetMaxLength ( edit__reg_tab_Repassword,25)
   
    lvl_reg_tab_Repassword = guiCreateLabel(13,102,119,21,"Repetir clave:",false,tab_Register)
    guiLabelSetVerticalAlign(lvl_reg_tab_Repassword,"center")
    guiLabelSetHorizontalAlign(lvl_reg_tab_Repassword,"right",false)
    guiSetFont(lvl_reg_tab_Repassword,"default-bold-small")
   
    btn_reg_tab_register = guiCreateButton(110,150,130,40,"Crear cuenta",false,tab_Register)
    guiSetFont(btn_reg_tab_register,"default-bold-small")
   
    reg_tab_error_msg = guiCreateLabel(0,170,350,31,"Error_reg_ttab",false,tab_Register)
    guiLabelSetColor(reg_tab_error_msg,255,20,0)
    guiLabelSetVerticalAlign(reg_tab_error_msg,"center")
    guiLabelSetHorizontalAlign(reg_tab_error_msg,"center",false)
    guiSetFont(reg_tab_error_msg,"default-bold-small")
   
    guiEditSetMasked(edit__reg_tab_password, true)
    guiEditSetMasked(edit__reg_tab_Repassword, true)
   
    guiSetVisible(wdwLogin_Pannel,true)
    --guiSetInputEnabled(true)
    showCursor(true)
   
    --Изменение надписей:
    guiSetText(reg_tab_error_msg, "") --Поле ошибки в Reg табе
    guiSetText(login_tab_error_msg, "") --Поле ошибки в Login табе
   
   
   
    local username, password = loadLoginFromXML()
   
    if not( username == "" or password == "") then
        guiCheckBoxSetSelected ( checkbox_save, true )
        guiSetText ( edit_Login, tostring(username))
        guiSetText ( edit_password, tostring(password))
    else
        guiCheckBoxSetSelected ( checkbox_save, false )
        guiSetText ( edit_Login, tostring(username))
        guiSetText ( edit_password, tostring(password))
    end
 
    --Эвенты
    addEventHandler("onClientGUIClick",btn_Login,onClickBtnLogin)
    addEventHandler("onClientGUIClick",btn_reg_tab_register,onClickBtnRegister)
    if GuestEnable == true then addEventHandler("onClientGUIClick",btnGuest,onClickGuest) end
   
   
--else
    --destroyElement(wdwLogin_Pannel)
    --guiSetInputEnabled(false)
    --wdwLogin_Pannel = nil
    --showCursor(false)
end
end
 
 
function updateCamera ()
    if not(isElement(wdwLogin_Pannel)) then
   
    if blackLoginScreen == true then
        fadeCamera (false,blackScreenTime)
end
end
end
addEventHandler ( "onClientRender", wdwLogin_Pannel, updateCamera )
 
function start_cl_resource() --При старте
    open_log_reg_pannel()
end
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),start_cl_resource)
 
 
 
function loadLoginFromXML() --Загрузка логина и пароля из XML
    local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml")
    if not xml_save_log_File then
        xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login")
    end
    local usernameNode = xmlFindChild (xml_save_log_File, "username", 0)
    local passwordNode = xmlFindChild (xml_save_log_File, "password", 0)
    if usernameNode and passwordNode then
        return xmlNodeGetValue(usernameNode), xmlNodeGetValue(passwordNode)
    else
        return "", ""
    end
    xmlUnloadFile ( xml_save_log_File )
end
 
 
function saveLoginToXML(username, password) --Сохрание логина и пароля в XML
    local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml")
    if not xml_save_log_File then
        xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login")
    end
    if (username ~= "") then
        local usernameNode = xmlFindChild (xml_save_log_File, "username", 0)
        if not usernameNode then
            usernameNode = xmlCreateChild(xml_save_log_File, "username")
        end
        xmlNodeSetValue (usernameNode, tostring(username))
    end
    if (password ~= "") then
        local passwordNode = xmlFindChild (xml_save_log_File, "password", 0)
        if not passwordNode then
            passwordNode = xmlCreateChild(xml_save_log_File, "password")
        end    
        xmlNodeSetValue (passwordNode, tostring(password))
    end
    xmlSaveFile(xml_save_log_File)
    xmlUnloadFile (xml_save_log_File)
end
addEvent("saveLoginToXML", true)
addEventHandler("saveLoginToXML", getRootElement(), saveLoginToXML)
 
 
 
function resetSaveXML() --Сохрание логина и пароля в XML
        local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml")
        if not xml_save_log_File then
            xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login")
        end
        if (username ~= "") then
            local usernameNode = xmlFindChild (xml_save_log_File, "username", 0)
            if not usernameNode then
                usernameNode = xmlCreateChild(xml_save_log_File, "username")
            end
        end
        if (password ~= "") then
            local passwordNode = xmlFindChild (xml_save_log_File, "password", 0)
            if not passwordNode then
                passwordNode = xmlCreateChild(xml_save_log_File, "password")
            end    
            xmlNodeSetValue (passwordNode, "")
        end
       
Link to comment

No se la verdad si se puede poner el cielo y el agua solo para uno.

Para lo de la música utiliza getTickCount() que inicie cuando el player da "join" u onClientResourceStart y que cuando llegue al termino de la canción (tu se lo tienes que poner) le das el color a los autos como quieras y al cielo igual.

Link to comment
No se la verdad si se puede poner el cielo y el agua solo para uno.

Para lo de la música utiliza getTickCount() que inicie cuando el player da "join" u onClientResourceStart y que cuando llegue al termino de la canción (tu se lo tienes que poner) le das el color a los autos como quieras y al cielo igual.

No entendí la parte que dice, "(tu se lo tienes que poner)" en el getTickCount lo entendí, pongo en el onClientRender, es la única forma que funciona con este login, y ... después no entendí la parte de tu se lo tienes qe poner el color a los autos y eso.

Te refieres a que ponga setSkyGradient, setVehicleHeadLightColor etc etc?

Saludos y gracias por responder.

Link to comment

Con el "Tu se lo tienes que poner" es que cuando el getTickCount llegue hasta donde tu quieres que llegue (osea cuando se detenga la música) debes ponerle el setSkyGradient y el color que quieras, lo mismo con los autos y el agua.

Link to comment

El cielo para una sola persona si se puede, usandolo desde el client, ya que desde serverside es para todos.

otra cosa, setSkyGradient, no lleva como primer argumento el jugador.

En cuanto a la musica y parar el skygradient, usa el mismo timer y para pararlo usa un killTimer, a todo esto, deberias usar el killtimer con setTimer para parar el cambio de cielo calculando los segundos de la cancion y aplicandolas a este timer.

Eso es lo q creo q podrias hacer

Link to comment

Podrias simplificar mas tu script de server-side

function rvc() 
    for i, veh in ipairs(getElementsByType("vehicle")) do 
        local r = math.random(255) 
        local g= math.random(255) 
        local b = math.random(255) 
        local ra = math.random(255) 
        local ga = math.random(255) 
        local ba = math.random(255) 
        setVehicleColor(veh, r, g, b) 
                                setVehicleOverrideLights (veh, 2 ) 
                                setVehicleHeadLightColor (veh, r, g, b) 
    end 
setSkyGradient (thePlayer, r, g, b, ra, ga, ba) 
setWaterColor(thePlayer,  r, g, b) 
end 
setTimer(rvc, 300, 0) 

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...