Jump to content

Bc#

Members
  • Posts

    516
  • Joined

  • Last visited

Everything posted by Bc#

  1. De hecho yo tambien uso el shader, pero ese shader no sirve para hacer super elipses (rectangulos con bordes). Por eso cree este dx
  2. Hola, he querido compartir esta usefull function con motivo de mejorar el diseño de los scripts de la comunidad, para tener un toque mas moderno y darle versatilidad a nuestras interfaces. dxDrawElipse(pX = 100, pY=100, a=0, b=0, n=2, color=white, fill=false, stroke=1 ) px = Posicion en el eje X py = Posicion en el eje Y a = Ancho b = Alto n = Borde color = Color de la figura fill = Relleno solido stroke = tamaño de la linea en caso de que el relleno no sea solido Ejemplos de uso
  3. Que sea mas larga no implica que sea menos efectiva, de hecho acá se abordan mas casos posibles. Si te das cuenta, las resoluciones muchas veces no son equivalentes. Esto soluciona un poco eso. Concedo que este codigo es un poco viejo, pero si lo pienso, se puede hacer mas ordenado con tablas.
  4. Bc#

    fxAddDebris bug

    jajaa si, me había olvidado de reportar que ese era el error. Casi me doy cabezasos contra el teclado cuando vi que olvide colocar en el meta que el script era client jjajaja
  5. Bc#

    fxAddDebris bug

    Hola, me surgio un problema al intentar usar el ejemplo mencionado en la wiki de fxAddDebris, me arroja el error: En el meta tengo definido como mínima versión de mta la 1.5.0. Alguna idea de por que este error?
  6. Tal vez esto te sirva local x, y = guiGetScreenSize () local ini = 0 function ancho() if x <= 800 then return 0.3 elseif x <= 1024 then return 0.45 elseif x <= 1280 then return 0.4 elseif x <= 1366 then return 0.45 else return 0.45 end end function alto() if y <= 600 then return 0.55 elseif y <= 720 then return 0.75 elseif y <= 768 then return 0.8 else return 0.6 end end function possX() if x <= 800 then return 0.95 elseif x <= 1024 then return 1.18 elseif x <= 1280 then return 1.57 elseif x <= 1360 then return 1.65 elseif x <= 1366 then return 1.65 else return 1.6 end end function possY() if y <= 600 then return 0.65 elseif y <= 720 then return 0.75 elseif y <= 768 then return 0.8 else return 0.4 end end scaleX = ancho() scaleY = alto() possX = possX() possY = possY() imgX, imgY = 400*scaleX, 200*scaleY posX, posY = 360*possX, 380*possY
  7. Estoy teniendo un problema enorme de memoria por culpa de la carpeta resource-cache ubicada en el directorio ~server/mods/deathmatch. de 6 GB en resources y mapas que tengo, en la memoria cache se almacena el doble y no tengo idea de por que pasa esto. Hay algún script o algo que permita que los scripts no se almacenen ahi?
  8. Esto seria mas efectivo que usar source = source, es preferible crear variables a usar variables "reservadas". Solo por convención function deathspawn () fadeCamera ( getRootElement(), false, 2 ) Local thePlayer = source --Nueva variable setTimer( function() fadeCamera ( getRootElement(), true, 2 ) setCameraMatrix ( getRootElement(), 0, 0, 33, 100, 100, 3 ) spawnPlayer ( thePlayer, math.random (0,100), math.random (0,100), 10 ) end, 4000, 1) end addEventHandler ("onPlayerWasted", getRootElement(), deathspawn)
  9. Bc#

    Creacion de objetos

    Es exacto lo que hago, lo raro es que no se crean objetos en un resource tipo gamemode.
  10. A mi me paso lo mismo con otra api, creo que hubieron problemas de copyrigh principalmente con los vídeos musicales. Se que hay algunas que sobrevivieron pero nose cuánto tardarán en caer. Suerte buscando.
  11. Punto 1, el error que tienes es por que al último argumento de addeventhandler le estás pasando un número cuando deberías pasarle una función. Punto 2, por que quieres poner los jugadores que pasen por el marqués en tu team? Para que la tabla te funcione como verificador solo tienes que asignarle un argumento a cada elemento. Ejemplo: PlayerHit = {} --en tu función paraHit al if PlayerHit(source) then return else PlayerHit = true end Con eso si el jugador ya entro en el marker se sale de la funcion y no la ejecuta.
  12. Buena idea! Yo le veo mas utilidad como para reutilizacion. Yo soy uno de esos scripters que toman cosas hechas y les aplica en otros scripts. Se vería muy bien en cualquier userpanel como colorpicker. Buen aporte
  13. Bc#

    Textura

    No es necesario buscar una textura invisible, solo usa la función setElementAlpha y puedes hacer invisible cualquier objeto. Aunque sea invisible las colisiones seguirán funcionando.
  14. Se refiere al script lua donde se crea el comando /vip. Yo no creo que sea problema del código, ya que cuando un resource maneja datos de la acl por lo general necesitas darle al resource mismo permisos de administrador. Prueba haciendo eso y nos dices como te fue
  15. Claro, pues si no has ejecutado la el comando "hitmarker" no se crea la variable global theMarker. Para solucionarlo, tienes que cortar la linea 24: addEventHandler("onMarkerHit",theMarker, paraHit) Justo debajo de la linea 6, donde creaste el marcador. Así solo se creará el evento si tienes el marcador creado. Avisa como te fue
  16. Si mal no lo recuerdo onClientPreRender te muestra en pantalla un frame unico pero no lo actualiza. Prueba con onClientRender, este te actualiza los frames.
  17. Bc#

    Creacion de objetos

    Me ocurrió algo super extraño, pasa que el scripts lo tenía como tipo gamemode, al ejecutarlo no podía crear ningún objeto desde el cliente. Pero para mi sorpresa cuando en el meta le cambié el tipo a resource funcionó. Lo ejecute con el gamemode Play y los objetos se crearon. Alguna explicación para esto?
  18. Hola, hace un tiempo leí un tema con el mismo problema que les vengo a plantear pero como no le dieron solución en ese entonces quiero abrir de nuevo la discusión. Pasa que quiero crear "Dimensiones" para cada jugador. Ustedes cuando cargan un resource tipo map se carga para todos los jugadores, lo que para algunos objetivos no es lo ideal, por lo que yo me propuse hacer un loader de mapas propio y ejecutar el resource desde un script. Pasa que leo todos los objetos desde el archivo .map en el servidor y solo lo mando a una selección de jugadores hacia el cliente (Es decir no a todos). Para esto hago un trigger para cada objeto hacia el cliente, y en el cliente hago el createObject correspondiente, pero no se crea ningún objeto. Lo extraño es que el trigger si funciona por que los datos llegan al cliente (Ya lo comprobé con debug y varios métodos mas). ¿Saben si existe algún limite de trigger para hacer esto?
  19. Supongo que creaste el archivo userdata.db
  20. Yo hace un tiempo estuve practicando sql en mta para crear un login panel, y no use dbpoll para nada. Te dejo un codigo que hice: PD: No recuerdo si esto realmente funciona, pero te lo muestro para que te hagas una idea de que hay mas maneras de trabajar con sql
  21. Pasa que estas haciendo mal el debug, fijate bien en los retornos de las funciones que usas. En este caso tu hiciste el debug pensando que dbPoll te retornaría false si no encuentra la data. Pero dbPoll por lo que leí en la wiki sirve solo para los errores. Ver DbPoll Para hacer el debug tendrás que comprobar que la tabla retornada este vacía. PD: Estoy viendo que estas trabajando duro en sql, te recomendaría estudiar un poco modelos de datos. Para que tu base de datos sea optima y no tengas que repetir tanta data, es recomendable tener un modelo de datos.
  22. Lo primero es que esta la imagen desplazada hacia abajo en el eje vertical. Creo que el problema que tienes es que por cada player estas imprimiendo ese loop. Si entra otro jugador al server se añadiría otra bandera por cada player. Creo que no deberías usar ese loop sino seleccionar el jugador de esa fila específicamente.
  23. No es necesario guardar data cuando se desconecta un jugador si previamente ya habías guardado. Es recomendable que cada vez que se haga una variación en el dinero se guarde en la base de datos el cambio, ya que en cualquier momento puede caerse el servidor y los datos se pierden. Tienes el problema precisamente por esa razon, ya que el player al salir, no ejecuta el logout, sino que ejecuta el evento onPlayerQuit. Para solucionar esto, la mejor opción es que crees una función para leer y otra para guardar data. Así no tendrías que estar llamando a la base de datos en cada función.
  24. Por lo que entendi, creaste tu propio sistema de logueo. Las cuentas no se registran y loguean en la base de datos de MTA. Al no hacer esto, no puedes hacer uso de las funciones Account. Al no poder usarlas, eso te imposibilita dar derechos de ACL. Puedes resolverlo de 2 maneras: - Una solucion seria tener usar tu base de datos y loguear igualmente a los players en la base de datos por defecto de MTA, asi igualmente tendrias acceso a tu base de datos, pero no seria muy optimo usar 2. - Podrías crear tu propio sistema de acl y por consiguiente tendrias que hacer tu propio panel admin. Si eres buen scripter te aconsejo la segunda opcion, ya que al hacer esto tendrás que editar tus scripts que usen funciones de tipo Account. Si recién estas comenzando mejor haz la primera.
  25. A que te refieres con que lea los miembros de la acl? Con que objetivo quieres hacerlo?
×
×
  • Create New...