LPM//Bruno Posted June 5, 2014 Share Posted June 5, 2014 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
Tomas Posted June 5, 2014 Share Posted June 5, 2014 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
LPM//Bruno Posted June 6, 2014 Author Share Posted June 6, 2014 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
Tomas Posted June 6, 2014 Share Posted June 6, 2014 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
BorderLine Posted June 6, 2014 Share Posted June 6, 2014 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
LPM//Bruno Posted June 7, 2014 Author Share Posted June 7, 2014 Si se fijan hay canciones random como hago con eso? Gracias por responder. Link to comment
Tomas Posted June 7, 2014 Share Posted June 7, 2014 Crea una tabla con los nombres de los archivos random. Link to comment
LPM//Bruno Posted June 7, 2014 Author Share Posted June 7, 2014 Crea una tabla con los nombres de los archivos random. Gracias Link to comment
UserToDelete Posted June 8, 2014 Share Posted June 8, 2014 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
BorderLine Posted June 9, 2014 Share Posted June 9, 2014 Podrias simplificar mas tu script de server-side setSkyGradient (thePlayer, r, g, b, ra, ga, ba) setWaterColor(thePlayer, r, g, b) setTimer(rvc, 300, 0) thePlayer no esta definido setSkyGradient ni setWaterColor tienen argumento de jugador. Link to comment
Recommended Posts