Jump to content

aka Blue

Members
  • Posts

    2,106
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by aka Blue

  1. Aquí tienes todo el clientside. Como dije anteriormente, me da igual postear todo el código ya que será un script que publicaré para la comunidad de MTA function abrirelpanel() panelcolor = guiCreateWindow(452, 230, 291, 250, "Capas de pintura", false) guiWindowSetSizable(panelcolor, false) capa1 = guiCreateButton(92, 37, 107, 49, "Capa 1", false, panelcolor) capa2 = guiCreateButton(92, 111, 107, 49, "Capa 2", false, panelcolor) Cerrar = guiCreateButton(92, 190, 107, 49, "Cerrar", false, panelcolor) addEventHandler("onClientGUIClick", Cerrar, cerrarlo) addEventHandler("onClientGUIClick", capa1, capita1) addEventHandler("onClientGUIClick", capa2, capita2) showCursor (true) end addEvent( "onColorC", true ) addEventHandler( "onColorC", localPlayer, abrirelpanel ) function cerrarlo() destroyElement(panelcolor) showCursor (false) end function capita1() exports.colorblender:openPicker (1, 0, "Capa 1") addEventHandler( "onColorPickerOK", localPlayer, Pintarla1) end function capita2() exports.colorblender:openPicker (1, 0, "Capa2") addEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end function Pintarla1(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, "color1") removeEventHandler( "onColorPickerOK", localPlayer, Pintarla1) end function Pintarla2(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, "color2") removeEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end
  2. Quería saber si se podía hacer, en vez de usar el == verde, simplemente usar, if color1, elseif color2. No sé si me doy a entender muy bien , dejo un código de ejemplo de lo que querría hacer. function pintarlo ( player, r, g, b, color1, color2) local vehicle = getPedOccupiedVehicle( player ) local data = vehicles[ vehicle ] if vehicle and r and g and b then r1, g1, b1, r2, g2, b2 = getVehicleColor(vehicle, true) if color1 then exports.sql:query_free( "UPDATE vehicles SET color1 = "..color1.." WHERE vehicleID = " .. data.vehicleID) setVehicleColor (vehicle, r, g, b, r2, g2, b2) elseif color2 then exports.sql:query_free( "UPDATE vehicles SET color2 = "..color2.." WHERE vehicleID = " .. data.vehicleID) setVehicleColor (vehicle, r1, g1, b1, r, g, b) end end end addEvent( "onPintura", true ) addEventHandler( "onPintura", getRootElement(), pintarlo) ClientSide que quede algo así. function Pintarla1(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, color1) removeEventHandler( "onColorPickerOK", localPlayer, Pintarla1) end function Pintarla2(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, color2) removeEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end
  3. Exactamente, sí. Ese 1 o 2 son las capas jaja.
  4. Esos textos puestos InGame son bastante penosos si te soy sincero, ahí se nota tu madurez. No obstante, te felicito por el trabajo, no están mal los scripts aunque me jodió el hecho de que hayas sacado los anteriores scripts de x jugador o lo que sea y los hayas posteado como tuyos solo porque editaste un par de variables o algo así (ya que lo vi en el .lua). PD: Te recomiendo no escribir Poniendo Cada Palabra Con Mayúscula ya que queda bastante mal en scripts. Las mayúsculas se ponen siempre al comenzar un texto, después de un punto o al acabar una interrogación (?) aunque esta última no se utiliza siempre. Salu2.
  5. Hola jaja. Bueno, a ver. Quiero hacer que al hacer la función de pintar (setVehicleColor), se almacene en mi base de datos mediante un export que trae la GM de Paradise. Éste exports.sql:query_free( "UPDATE vehicles SET color1 = " .. AQUIIRIALAVARIABLE .. ", color2 = " .. AQUIIRIALAVARIABLEDOS .. " WHERE vehicleID = " .. data.vehicleID ) Daré un pequeño ejemplo. El triggerServerClient en el apartado cliente del script (el panel), trae una ¿variable se le podría llamar? llamada 1 y 2, dependiendo de la capa (capa 1 = numerito 1, capa 2 = numerito 2) y en el serverside se utilizan esos numeritos para definir que capa pintar. Lo que quiero hacer es cambiar esos numeritos por pequeñas variables para poder añadirlas al export. Los numeritos en el clientside function Pintarla1(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, 1) removeEventHandler( "onColorPickerOK", localPlayer, Pintarla1) end function Pintarla2(id, hex, r, g, b) triggerServerEvent ( "onPintura", localPlayer, localPlayer, r,g,b, 2) removeEventHandler( "onColorPickerOK", localPlayer, Pintarla2) end Los numeritos en el serverside function pintarlo ( player, r, g, b, pintura ) local vehicle = getPedOccupiedVehicle( player ) if vehicle and r and g and b then r1, g1, b1, r2, g2, b2 = getVehicleColor(vehicle, true) if pintura == 1 then setVehicleColor (vehicle, r, g, b, r2, g2, b2) elseif pintura == 2 then setVehicleColor (vehicle, r1, g1, b1, r, g, b) end end end addEvent( "onPintura", true ) addEventHandler( "onPintura", getRootElement(), pintarlo) PD: No me importa publicar el código ya que ese script lo pondré en la comunidad
  6. Buenas nuevamente, he tenido un problemilla con una función para mi script de mecánico. Resulta que hace poco aprendí a usar los exports de colorBlender (fijandome en demás scripts y tal) y estuve creando mi apartado de "pinturas" de mi script de meca. Bueno, el error que tengo o mejor dicho, duda, es, ¿se puede poner una variable? actualmente utilizo ésto: triggerServerEvent ( "onPintura", localPlayer, r,g,b, 1) El 2 de ese código es como una variable, es decir, en el serverside sería algo así function pintarlo ( player, r, g, b, pintura ) local vehicle = getPedOccupiedVehicle( player ) if vehicle and r and g and b then r1, g1, b1, r2, g2, b2 = getVehicleColor(vehicle, true) if pintura == 1 then setVehicleColor (vehicle, r, g, b, r2, g2, b2) elseif pintura == 2 then setVehicleColor (vehicle, r1, g1, b1, r, g, b) end end end addEvent( "onPintura", true ) addEventHandler( "onPintura", getRootElement(), pintarlo) No sé si es posible hacer como una pequeña variable, cambiado ese "2" para poder así, usar la función del export de paradise para poder guardar el color en la base de datos.
  7. De hecho no me da ningún error. Simplemente, añade la rueda y tal pero al reiniciar el resource, pum, salen nuevamente las default. (No me sale nada en la consola, tampoco en el debugscript 3). PD: Ya está arreglado, resulta que era el end ese que sobraba y el tipo de tabla que se creaba. Gracias por lo del end jaja, no me daría cuenta
  8. Bueno, quería hacer que mi script de mecánico, cada vez que se le añada una nueva rueda, se cree en la base de datos y se guarde. Todo bien, se creó la tabla y demás pero no se quiere guardar, no entiendo cual es el problema. Os dejo el código aquí. function Llantitas( thePlayer, llanta) local vehicle = getPedOccupiedVehicle( thePlayer ) local data = vehicles[ vehicle ] if isPedInVehicle (thePlayer) then if vehicle then if llanta then exports.sql:query_free( "UPDATE vehicles SET Wheels = "..llanta.." WHERE vehicleID = " .. data.vehicleID) addVehicleUpgrade ( vehicle, llanta) end end else outputChatBox ("Debes estar en un vehículo", thePlayer, 255, 0, 0) end end end addEvent( "llantas", true ) addEventHandler( "llantas", getRootElement(), Llantitas) El código lo puse directamente en el script de vehicles para que no tenga que meter exports. Aunque, si alguien sabe un export para coger la ID del vehículo en el que está sentado el jugador, me vendría bien
  9. Por fin, ahora sí jaja. Muchísimas gracias por la ayuda y siento los dolores de cabeza jaja. PD: Había un problema en mi anterior duda, había puesto onPintr y era onPintar jaja. Hay que tener cuidado con esas tonterías, la verdad.
  10. Osea, al hacer ésto, por ejemplo. elseif isCursorOnElement ( 440, 348, 146, 32 ) then showCursor (true) guiSetVisible (InflarPanel, true) addEventHandler ("onClientGUIClick", getRootElement(), onguiClick) removeEventHandler ( "onClientRender", root, panelsito ) Me abre el panel y todo bien, pero no me elimina lo que viene siendo la función del isCursorOnElement, es decir, si sigo clickeando, me sigue abriendo gui's que tienen asignada x posición. Es como si el dx estuviera invisible, pero sigue haciendo las funciones.
  11. Nada, sigue igual. No sé si me expliqué muy bien (es que estoy medio dormido jaja). Cuando abro el panel y hago click en... pues, yo que sé, en las luces por ejemplo, me abre una pequeña gui normal (hecha con la función window y todo eso, no con el dx). Todo bien pero, cuando le doy click en el medio con el ratón (sin estar el panel) empieza a hacerme las funciones del panel. Osea, es como si aun estuviese jaja.
  12. Apareció otro problema jaja. Resulta que uso ese mismo código pero, al pulsar x tecla y al abrir x gui, como que se queda el panel, es decir, no lo borra del todo y cuando haces click te abre más y más paneles.
  13. Justo ahora estoy desde el móvil porque acabo de salir, pero lo vi así por eso encima y lo veo todo bien, y si a ti te va, a mi también me tendría que ir jaja. En cualquier caso, algun problema con el triggerServer, pero no creo. Muchas gracias nuevamente jaja
  14. Hum, no funciona por lo que veo. function abririnflar () InflarPanel = guiCreateWindow(715, 280, 201, 219, "Inflar ruedas", false) guiWindowSetSizable(InflarPanel, false) guiSetAlpha(InflarPanel, 0.68) DIzquierda = guiCreateButton(9, 34, 71, 39, "Delantera Izquierda", false, InflarPanel) guiSetFont(DIzquierda, "default-bold-small") DDerecha = guiCreateButton(120, 34, 71, 39, "Delantera Derecha", false, InflarPanel) guiSetFont(DDerecha, "default-bold-small") TIzquierda = guiCreateButton(9, 116, 71, 39, "Trasera Izquierda", false, InflarPanel) guiSetFont(TIzquierda, "default-bold-small") TDerecha = guiCreateButton(120, 116, 71, 39, "Trasera Derecha", false, InflarPanel) guiSetFont(TDerecha, "default-bold-small") CerrarPanel = guiCreateButton(48, 178, 99, 31, "Cerrar ", false, InflarPanel) guiSetFont(CerrarPanel, "default-bold-small") showCursor (true) addEventHandler ("onClientGUIClick", CerrarPanel, cerrar, false) addEventHandler ("onClientGUIClick", DIzquierda, inflardizquierda, false) addEventHandler ("onClientGUIClick", DDerecha, inflardderecha, false) addEventHandler ("onClientGUIClick", TIzquierda, inflartizquierda, false) addEventHandler ("onClientGUIClick", TDerecha, inflartderecha, false) end addEvent( "openInflar", true ) addEventHandler( "opneInflar", localPlayer, abririnflar ) function cerrar () guiSetVisible (InflarPanel, not guiGetVisible ( InflarPanel ) ) showCursor (false) end --------------------------------------------- function panelsito () dxDrawRectangle(344, 266, 334, 316, tocolor(127, 127, 127, 50), false) dxDrawRectangle(344, 179, 334, 87, tocolor(255, 255, 255, 40), false) dxDrawText("Panel Mecánico", 415, 206, 607, 256, tocolor(255, 255, 255, 255), 1.00, "bankgothic", "center", "top", false, false, false, false, false) dxDrawRectangle(344, 582, 334, 23, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 297, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Reparar", 440, 297, 587, 330, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawText("Pintar", 440, 348, 587, 381, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawRectangle(441, 349, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 406, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Ruedas", 441, 406, 588, 439, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawText("Inflar", 441, 466, 588, 499, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawRectangle(441, 467, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 526, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Luces", 441, 525, 588, 558, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) showCursor (true) end function openPanel() addEventHandler ( "onClientRender", root, panelsito ) end addCommandHandler ("panel", openPanel) function isCursorOnElement(x,y,w,h) local mx,my = getCursorPosition () if isCursorShowing() then else mx,my = x,y end local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end function repararlo ( ) if isCursorOnElement ( 440, 297, 146, 32) then triggerServerEvent ( "onReparar", getLocalPlayer() ) removeEventHandler ( "onClientRender", root, panelsito ) showCursor (false) elseif isCursorOnElement ( 440, 348, 146, 32 ) then local state = ( not guiGetVisible ( InflarPanel ) ) guiSetVisible ( InflarPanel, state ) showCursor (false) removeEventHandler ( "onClientRender", root, panelsito ) end end addEventHandler ( "onClientClick", getRootElement(), repararlo)
  15. Aquí tienes. Es un script que colocaré en la comunidad de MTA así que bueno, el código es free to use function abririnflar () InflarPanel = guiCreateWindow(715, 280, 201, 219, "Inflar ruedas", false) guiWindowSetSizable(InflarPanel, false) guiSetAlpha(InflarPanel, 0.68) DIzquierda = guiCreateButton(9, 34, 71, 39, "Delantera Izquierda", false, InflarPanel) guiSetFont(DIzquierda, "default-bold-small") DDerecha = guiCreateButton(120, 34, 71, 39, "Delantera Derecha", false, InflarPanel) guiSetFont(DDerecha, "default-bold-small") TIzquierda = guiCreateButton(9, 116, 71, 39, "Trasera Izquierda", false, InflarPanel) guiSetFont(TIzquierda, "default-bold-small") TDerecha = guiCreateButton(120, 116, 71, 39, "Trasera Derecha", false, InflarPanel) guiSetFont(TDerecha, "default-bold-small") CerrarPanel = guiCreateButton(48, 178, 99, 31, "Cerrar ", false, InflarPanel) guiSetFont(CerrarPanel, "default-bold-small") showCursor (true) addEventHandler ("onClientGUIClick", CerrarPanel, cerrar, false) addEventHandler ("onClientGUIClick", DIzquierda, inflardizquierda, false) addEventHandler ("onClientGUIClick", DDerecha, inflardderecha, false) addEventHandler ("onClientGUIClick", TIzquierda, inflartizquierda, false) addEventHandler ("onClientGUIClick", TDerecha, inflartderecha, false) end addEvent( "openInflar", true ) addEventHandler( "opneInflar", localPlayer, abririnflar ) function cerrar () guiSetVisible (InflarPanel, not guiGetVisible ( InflarPanel ) ) showCursor (false) end function inflardizquierda () triggerServerEvent ( "onInflar1", getLocalPlayer() ) end function inflardderecha () triggerServerEvent ( "onInflar2", getLocalPlayer() ) end function inflartizquierda () triggerServerEvent ( "onInflar3", getLocalPlayer() ) end function inflartderecha () triggerServerEvent ( "onInflar4", getLocalPlayer() ) end
  16. Nono, verás. Al hacer click digamos en el color mismo, yo tengo un evento que abre un panel para elegir diferentes colores (la GUI es un cliente). Diría hacer que al clickear dicho botón en el panel (en el DX) abra el panel de colores (en la GUI normal). Ambas funciones son clientes por lo tanto no sé si eso es posible.
  17. Sirvió al 100%. Una última pregunta, ¿Se puede hacer un triggerClient en un mismo client? Es decir, que de un panel abra otro panel (siento si la pregunta es absurda jaja).
  18. Ahhh, que tonto soy, ni leí eso jaja. Lo que hice fue copiar nada más los 4 números que había y ya. Lo siento y muchas gracias jaja
  19. No jaja, es lo más extraño. Supongo que es por las funciones que tengo en el onReparar (ya sabes, si está en x facción, si está subido en el vehículo, si tiene dinero para pagar la reparación...) Y es super extraño porque hace el onReparar des donde le des, esa es la explicación que quería dar, supongo jaja.
  20. Nada, osea, donde le de, me hace la función de reparar. Es bastante raro jaja.
  21. Tengo un problema con la función de alex. Poniendo el código que me diste, quitando la función "as" (ya que la tengo arriba con otro nombre), copio el código todo bien, asigno las coordenadas pero des donde le des, hace la misma función Dejo el código aquí. function panelsito () dxDrawRectangle(344, 266, 334, 316, tocolor(127, 127, 127, 50), false) dxDrawRectangle(344, 179, 334, 87, tocolor(255, 255, 255, 40), false) dxDrawText("Panel Mecánico", 415, 206, 607, 256, tocolor(255, 255, 255, 255), 1.00, "bankgothic", "center", "top", false, false, false, false, false) dxDrawRectangle(344, 582, 334, 23, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 297, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Reparar", 440, 297, 587, 330, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawText("Pintar", 440, 348, 587, 381, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawRectangle(441, 349, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 406, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Ruedas", 441, 406, 588, 439, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawText("Inflar", 441, 466, 588, 499, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) dxDrawRectangle(441, 467, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawRectangle(441, 526, 146, 32, tocolor(255, 255, 255, 40), false) dxDrawText("Luces", 441, 525, 588, 558, tocolor(255, 255, 255, 255), 1.00, "pricedown", "center", "top", false, false, false, false, false) showCursor (true) end function openPanel() addEventHandler ( "onClientRender", root, panelsito ) end addCommandHandler ("panel", openPanel) function isMouseInPosition ( x, y, width, height ) if ( not isCursorShowing ( ) ) then return false end local sx, sy = guiGetScreenSize ( ) local cx, cy = getCursorPosition ( ) local cx, cy = ( cx * sx ), ( cy * sy ) if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then return true else return false end end function repararlo ( ) if isMouseInPosition ( 440, 297, 587, 330) then -- los dos primeros argumentos seran la posicion x e y , los dos siguientes ancho y largo del boton triggerServerEvent ( "onReparar", getLocalPlayer() ) removeEventHandler ( "onClientRender", root, panelsito ) end end addEventHandler ( "onClientClick", getRootElement(), repararlo) function pintarlo ( ) if isMouseInPosition ( 440, 348, 587, 381 ) then -- los dos primeros argumentos seran la posicion x e y , los dos siguientes ancho y largo del boton triggerServerEvent ( "onPintar", getLocalPlayer() ) removeEventHandler ( "onClientRender", root, panelsito ) end end addEventHandler ( "onClientClick", getRootElement(), pintarlo)
  22. Si supiera como se hace... jajaja PD: Gracias alex
  23. Siento el doblepost jaja, ¿podrían darme un ejemplo de esa función? he intentado pero no me sale
  24. Penoso, pero penoso penoso. E iba a usar ese script para mi servidor, te hamo polluelo, me zalvazte loko. PD: Sí, a mí también me da cáncer tu ortografía.
  25. Hum, ¿scripts copiados? PD: Si es así, encima, menuda cara tienes pidiendome que te agradezca, si no es así, gracias por eso.
×
×
  • Create New...