Soren Posted May 10, 2012 Share Posted May 10, 2012 Hola a todos, estaba haciendo un sistema de guis con unas funciones que saque del character system que estaban haciendo edikosh y ElMota. Pero obtuve algunos errorres y como soy malo en esto de los guis les pido su ayuda Client GUIEditor_Button = {} GUIEditor_Edit = {} GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() guiSetVisible(GUIEditor_Button[1],true) guiSetVisible(GUIEditor_Button[2],true) guiSetVisible(GUIEditor_Button[3],true) guiSetVisible(GUIEditor_Edit[1],true) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler("onClientRender", root, rotateTempPed) numero = 0 function on_pushButton_2_clicked(button,state) if (button == "left" and state == "up") then if(numero == 1) then return end numero = numero - 1 setElementModel(ped,numero) end end addEventHandler("onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked) function on_pushButton_3_clicked(button,state) if (button == "left" and state == "up") then if (numero == 200) then return end numero = numero + 1 setElementModel(ped,numero) end end addEventHandler("onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked) Server addEventHandler("onPlayerLogin", getRootElement(), function() triggerClientEvent(source,"onVisible",source) end ) addEvent("onCameraMatrix", true) addEventHandler("onCameraMatrix", getRootElement(), function() setCameraMatrix( source, -1570.66796875, 1358.087890625, 11.218300819397, -1586.671875, 1351.53125, 8.2823114395142 ) end ) Los errores que tengo: Los bottones y el edit salen cuando te unes al server y no cuando te logeas Los skins se cambian muy lento El Ped no rota Quiero poner que solo se pueda escojer entre 5 skins Quiero que en el edit salga el numero del skin Necesito su ayuda Link to comment
Castillo Posted May 10, 2012 Share Posted May 10, 2012 GUIEditor_Button = {} GUIEditor_Edit = {} GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], false ) end guiSetVisible ( GUIEditor_Edit[1], false ) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], true ) end guiSetVisible ( GUIEditor_Edit[1], true ) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler ( "onClientRender", root, rotateTempPed ) numero = 0 function on_pushButton_2_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero == 1 ) then return end numero = numero - 1 setElementModel ( ped, numero ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= 5 ) then return end numero = numero + 1 setElementModel ( ped, numero ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) Link to comment
Soren Posted May 10, 2012 Author Share Posted May 10, 2012 Solid, tu script me souciono eso de que aparece sin estar logeado. Pero tu script agrego un bug mas. Solo puedo seleccionar entre 2 skins Link to comment
Castillo Posted May 10, 2012 Share Posted May 10, 2012 1: La variable "rotation" no esta definida, por eso el ped no rotava. 2: Si te fijas en la wiki, los skins no empiezan de 1, 2, 3, 4, etc: https://wiki.multitheftauto.com/wiki/All_Skins_Page 3: Usa esto: GUIEditor_Button = {} GUIEditor_Edit = {} local rotation = 0 local numero = 1 local skins = { 0, 7, 9, 10, 11 } -- Esos son los primeros skins de la lista. GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], false ) end guiSetVisible ( GUIEditor_Edit[1], false ) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], true ) end guiSetVisible ( GUIEditor_Edit[1], true ) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler ( "onClientRender", root, rotateTempPed ) function on_pushButton_2_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero == 1 ) then return end numero = numero - 1 setElementModel ( ped, skins [ numero ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= #skins ) then return end numero = numero + 1 setElementModel ( ped, skins [ numero ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) Link to comment
Soren Posted May 10, 2012 Author Share Posted May 10, 2012 1: La variable "rotation" no esta definida, por eso el ped no rotava.2: Si te fijas en la wiki, los skins no empiezan de 1, 2, 3, 4, etc: https://wiki.multitheftauto.com/wiki/All_Skins_Page 3: Usa esto: GUIEditor_Button = {} GUIEditor_Edit = {} local rotation = 0 local numero = 1 local skins = { 0, 7, 9, 10, 11 } -- Esos son los primeros skins de la lista. GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], false ) end guiSetVisible ( GUIEditor_Edit[1], false ) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], true ) end guiSetVisible ( GUIEditor_Edit[1], true ) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler ( "onClientRender", root, rotateTempPed ) function on_pushButton_2_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero == 1 ) then return end numero = numero - 1 setElementModel ( ped, skins [ numero ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= 5 ) then return end numero = numero + 1 setElementModel ( ped, skins [ numero ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) Oye una pregunta: Puedo hacer una tabla con los skins que quiero que sean utilisables? si se puede, como se hace? Otra pregunta: Quiero hacer que cuando estas viendo un skin en el edit salga el nombre del skin. Osea, un nombre costum que yo le dare. Es posible? Como? Link to comment
Edikosh998 Posted May 10, 2012 Share Posted May 10, 2012 Esa tabla que te puso Solid...le agegas lo que queres y listo https://wiki.multitheftauto.com/wiki/All_Skins_Page Link to comment
Castillo Posted May 10, 2012 Share Posted May 10, 2012 @Soren: Copia mi codigo, le puse algo asi podes agregar cuantos skins quieras. Link to comment
Soren Posted May 10, 2012 Author Share Posted May 10, 2012 @Soren: Copia mi codigo, le puse algo asi podes agregar cuantos skins quieras. Muchisimas Gracias Solid! el mejor . Ahora necesito respuesta a mi otra pregunta, Si se ve que esta viendo un skin por ejemplo el skin 14. Que en el edit salga un nombre que yo le ponga. Es posible? Link to comment
Edikosh998 Posted May 10, 2012 Share Posted May 10, 2012 Creas una tabla en el mismo orden que los skins...Entonces por ejemplo : skin = { 0 } caracteristica = { "CJ" } --Despues usas guiSetText(labelX,caracteristica[numero]) El label X seria al que vas a usar para que salga el nombre Link to comment
Soren Posted May 10, 2012 Author Share Posted May 10, 2012 Creas una tabla en el mismo orden que los skins...Entonces por ejemplo : skin = { 0 } caracteristica = { "CJ" } --Despues usas guiSetText(labelX,caracteristica[numero]) El label X seria al que vas a usar para que salga el nombre Perdoname pero no entendi nada. Me lo puedes explicar un poco mejor? Link to comment
Castillo Posted May 11, 2012 Share Posted May 11, 2012 No necesitas otra tabla Edikosh, puede usar la misma . GUIEditor_Button = {} GUIEditor_Edit = {} local rotation = 0 local numero = 1 local skins = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], false ) end guiSetVisible ( GUIEditor_Edit[1], false ) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], true ) end guiSetVisible ( GUIEditor_Edit[1], true ) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler ( "onClientRender", root, rotateTempPed ) function on_pushButton_2_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero == 1 ) then return end numero = numero - 1 setElementModel ( ped, skins [ numero ] [ 1 ] ) guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= #skins ) then return end numero = numero + 1 setElementModel ( ped, skins [ numero ] [ 1 ] ) guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) Link to comment
Edikosh998 Posted May 11, 2012 Share Posted May 11, 2012 Se posta, es mucho mas facil Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 Mil gracias ahora si pueden cerrar el topic Link to comment
Castillo Posted May 11, 2012 Share Posted May 11, 2012 No hay porque cerrarlo, talvez otro tenga un problema similar . P.D: De nada. Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 Oh Oye Solid que bueno que no bloqueste este tema, Me vino otra duda Estoy haciendo un ACL group que sean los VIP's Y les quiero dar a escoger 5 skins diferentes a esos, Alguna manera de crear un tabla con unos skins usables para los VIP's? Link to comment
Castillo Posted May 11, 2012 Share Posted May 11, 2012 Podes crear 2 tablas, si el jugador es VIP, entonces que use la segunda tabla. Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 Mira esto es lo que logre hacer del server dide y del cleint side pero me quede atorado Server addEventHandler("onPlayerLogin", getRootElement(), function() triggerClientEvent(source,"onVisible",source) end ) addEvent("onCameraMatrix", true) addEventHandler("onCameraMatrix", getRootElement(), function() setCameraMatrix( source, -1570.66796875, 1358.087890625, 11.218300819397, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEvent("ifvip", true) addEventHandler("ifvip" getRootElement(), function() isObjectInACLGroup ("user."..accName, aclGetGroup ( "VIP" ) ) Client GUIEditor_Button = {} GUIEditor_Edit = {} local rotation = 0 local numero = 1 local skins = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } local skinsvip = { { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } { 0, "CJ" }, { 7, "Nombre" }, { 9, "Nombre 2" }, { 10, "Nombre 3" }, { 11, "Nombre 4" } } GUIEditor_Button[1] = guiCreateButton(624,753,104,33,"<~~",false) GUIEditor_Button[2] = guiCreateButton(883,753,104,33,"~~>",false) GUIEditor_Button[3] = guiCreateButton(751,796,104,33,"Play!",false) GUIEditor_Edit[1] = guiCreateEdit(751,753,103,29,"",false) for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], false ) end guiSetVisible ( GUIEditor_Edit[1], false ) addEvent("onVisible",true) addEventHandler("onVisible", getLocalPlayer(), function() for i=1, 3 do guiSetVisible ( GUIEditor_Button[i], true ) end guiSetVisible ( GUIEditor_Edit[1], true ) showPlayerHudComponent ("radar",false) showCursor(true) guiSetInputMode("no_binds_when_editing") triggerServerEvent("onCameraMatrix", getLocalPlayer()) ped = createPed( 0, -1586.671875, 1351.53125, 8.2823114395142 ) end ) addEventHandler("onClientGUIClick", root, function() if source == GUIEditor_Button[3] then guiSetVisible(GUIEditor_Button[1],false) guiSetVisible(GUIEditor_Button[2],false) guiSetVisible(GUIEditor_Button[3],false) guiSetVisible(GUIEditor_Edit[1],false) setCameraTarget( localPlayer ) showCursor(false) setElementPosition( localPlayer, 2580.7265625, 2328.77734375, 17.822208404541) local skin = getElementModel( ped ) setElementModel( localPlayer, tonumber(skin) ) destroyElement(ped) showPlayerHudComponent ("radar",true) end end ) function rotateTempPed ( ) if isElement ( ped ) then rotation = rotation + 1 if ( rotation > 359 ) then rotation = 0 end setPedRotation ( ped, rotation ) end end addEventHandler ( "onClientRender", root, rotateTempPed ) function on_pushButton_2_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero == 1 ) then return end numero = numero - 1 setElementModel ( ped, skins [ numero ] [ 1 ] ) guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[1], on_pushButton_2_clicked ) function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= #skins ) then return end numero = numero + 1 setElementModel ( ped, skins [ numero ] [ 1 ] ) guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) end end addEventHandler ( "onClientGUIClick", GUIEditor_Button[2], on_pushButton_3_clicked ) Link to comment
JuliDiablo Posted May 11, 2012 Share Posted May 11, 2012 Veamos, no se si está bien. Pero por lo que veo tenes el grupo "VIP", a ver si te puedo ayudar. function on_pushButton_3_clicked ( button, state ) if ( button == "left" and state == "up" ) then if ( numero >= #skins ) then return end numero = numero + 1 username = getPlayerName ( playerSource ) if ( isObjectInACLGroup ("user."..username, aclGetGroup ( "VIP" ) ) ) then -- acá comprobamos si esta en el vip. setElementModel ( ped, skinsvip [ numero ] [ 1 ] ) -- entonces si está, usamos los skinsvip else -- si no setElementModel ( ped, skins [ numero ] [ 1 ] ) -- los skins normal. end guiSetText ( GUIEditor_Edit[1], skins [ numero ] [ 2 ] ) end end Tendrías que hacer la misma modificación para retroceder un skin. No se si está bien(aver si Snake luego confirma ), repito. Pero proba. Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 El problema esta en que isObjectinACLGroup es server side Link to comment
JuliDiablo Posted May 11, 2012 Share Posted May 11, 2012 Tenes razón, no me había dado cuenta. Si en tu server no usas team's podes hacer los VIP como un nuevo team y usar getPlayerTeam (en un if para comprobar si lo es de ese team), otra cosa no se me ocurre (desde mi conocimiento) Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 Es que en mi sv los quiero dividir por Zombies y Sobrevivientes Link to comment
iFoReX Posted May 11, 2012 Share Posted May 11, 2012 Podrias triggear para el isObjectinACLGroup Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 Podrias triggear para el isObjectinACLGroup Es lo que intente pero no se hacerlo, no me sirvio D:!!!!! ya me desespere! estupido gui -.- Link to comment
iFoReX Posted May 11, 2012 Share Posted May 11, 2012 proba esto yo hago una GUI admin y me funciona perfecto esto local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ( "user.".. accName, aclGetGroup ( "Admin" ) ) then triggerClientEvent ( thePlayer, "ElEventoClient", thePlayer ) espero averte ayudado Link to comment
Soren Posted May 11, 2012 Author Share Posted May 11, 2012 El problema es que no se que poner en el client side T_T Link to comment
Recommended Posts