-
Posts
2,106 -
Joined
-
Last visited
-
Days Won
6
Everything posted by aka Blue
-
Una cosa es un skinselector, otra cosa es la ropa.
-
Por eso dije, lo debes ajustar manualmente. Cuando tú haces lo que te dije, no se va a quedar igual que como lo hiciste antes, ya que realizas distintas calculaciones, que, en casos, puede distorsionar lo que hiciste. Por lo cual, tendrás que ajustarlo manualmente.
-
No tiene que distorsionar nada. Lo unico que te debería dar problemas es el tema del tamaño del texto. Para ello, usa ésto: (sourceY/sy) * tamaño_texto
-
Eso es porque tendrás algunos argumentos mal. Te recomiendo en vez de hacer por ejemplo 503 + 1, directamente poner 504, es lo mismo... Y no se ponen tantos paréntesis, ess simplemente esto: (497/sourceX)*sx, (296/sourceY)*sy, (645/sourceX)*sx, (23/sourceY)*sy Porque vi que tenías cosas como... ((323 + 1)/sourceY)*sy Por eso no te lee el código, ese paréntesis no acaba en ningún lado, no engloba nada y tampoco es que pinte algo ahí. Los paréntesis se usan aquí para sacar un valor (la posición, dividida entre la resolución base (x/sourceX)*sx, multiplicada por el tamaño de la pantalla del jugador).
-
Porque los dx usan onClientRender
-
Ya pregunté varias veces, pero me sigue ocurriendo. No entiendo exactamente por qué sigue pasando esto, va un tiempo bien, luego no sé que le pasa, pierde los datos de los maleteros y me da errores de toJSON. Resulta que lo hice así, no me tira errores pero no me carga los datos de la tabla y la limpia (por el or { }), el problema es que si lo quito, elimina el vehículo... (hablo de quitar el or {} en el cargado) -- Guardado de datos local data_maletero = toJSON( maleteros[ vehicle ] ) "UPDATE vehicles SET maletero = "..data_maletero.." WHERE vehicleID = "..data.vehicleID -- Cargado de datos for k, v in ipairs( result ) do -- blabla tonterías y... maleteros[ vehicle ] = fromJSON( v.maletero ) or { } end
-
Lo importante es que debe funcionar.
-
... function DestruirVehiculo( ) if car[ player ] then if isElement( car[ player ] ) then destroyElement( car[ player ] ) car[ player ] = nil end car[ player ] = nil end end addCommandHandler("dv", DestruirVehiculo) addEventHandler("onPlayerLogout", getRootElement( ), DestruirVehiculo)
-
Para que le vaya bien a todos, lo más recomendable diría yo es tener un monitor con la resolución máxima (1366x768). Usa el método que te dije, no es tan complicado ir arreglando las posiciones manualmente...
-
Esto: addEventHandler("onClientGUIClick", DesertEagle, clickInDesertIGEL) Es lo mismo que: addEventHandler("onClientGUIClick", botonComprarDeagle, addWeaponDeagle) PD: No entiendo tu código, pones los nombres de tus funciones a tu gusto, pero a nosotros nos puede llegar a confundir.
-
Nombre no es, es variable. Y sí.
-
addEventHandler("onClientGUIClick", boton_clickeado, clickInDesertIGEL) boton_clickeado haría referencia al botón al que, cuando le das click, realiza la función. ¿Entiendes?
-
Tuve en cuenta tu sugerencia, @.:CiBeR:. e hice un pequeño convertidor que pasa los .map a .lua usando tablas. Crea los objetos y demás, uso funciones file para ello y lee todos los mapas que estén en la tabla de lectura. Aquí dejo un video-demostración. Pronto publicaré el código, quiero realizar mejoras (como por ejemplo, añadir los mapas a convertir desde un panel, etc.)
-
Eso te pasa porque onClientGUIClick tiene como 'source' el botón que clickeas. Si pones root, defines a todo el panel como 'botón' o espacio donde clickear pues. The source of this event is the GUI element that was clicked. PD: Deberías echarle un vistazo a la wiki...
-
It will be nice, add the cj clothes to the objects list.
-
Usa esto y lo vas ajustando manualmente: local sourceX, sourceY = 1366, 768 local sx, sy = guiGetScreenSize( ) -- Ejemplo dxDrawText( "ola", (520/sourceX)*sx, (230/sourceY)*sy, (123/sourceX)*sx, (302/sourceY)*sy )
-
function nickChangeHandler(oldNick, newNick) if isPlayerMuted ( source ) then outputChatBox ( "No puedes cambiarte el nombre estando muteado.", player, 255, 0, 0 ) cancelEvent( ) end end addEventHandler("onPlayerChangeNick", getRootElement(), nickChangeHandler)
-
Eso es para que otros se puedan hacer llamadas a la base de datos. which can be set to 0 or 1. (Default value for SQLite is "share=1", for MySQL is "share=0"). When set to 1, the connection is shared and will be used by other calls to dbConnect with the same host string. This is usually a good thing for SQLite connections, but not so good for MySQL unless care is taken.
-
Podrías postear la función donde asignas el dato a la tabla? Es un comando y básicamente lo que hace es ésto: armas[ player ][ tonumber( slot ) ].arma = getPedWeapon( player )
-
Si, usé eso también pero no me devuelve. Me da error en el debug, nil value.
-
Bueno, estaba intentándolo en otro script y nada, me da nil value... local armas = { } function getArma( player, slot ) local slot = tonumber( slot ) if armas[ player ][ slot ] then local arma = armas[ player ][ slot ].arma return arma -- Retorna la ID del arma end return false end -- Meta xml function="getArma" type="shared"/> -- Client addEventHandler( "onClientRender", root, function( ) local arma = getArma( player ) dxDrawText( getWeaponNameFromID( arma ), x, y, w, h ) end )
-
No pasa nada, como te dije, no va a malas, simplemente antes de postear o lo que sea, échale un ojo y fíjate bien en el error. Ha pasado que he llegado a borrar posts por temas así, por una coma suelta por ahí y que me como la cabeza... .
-
function Marcador( element ) if getElementType( element ) == "player" then local veh = getPedOccupiedVehicle( element ) if veh then return end else triggerClientEvent(element, "mostrarPanel", element) end end end