Jump to content

Alexs

Members
  • Posts

    2,869
  • Joined

  • Last visited

Posts posted by Alexs

  1. Creo que es importante considerar el uso que se da al producto. Los servidores que generan ingresos significativos son muy contadas excepciones, por lo que el gasto en recursos no es una inversión ni nada similar y difícilmente alguien dejaría una cantidad importante de dinero en algo que, en cualquier caso, es un hobbie.

    Además no se puede ignorar que la mayoría de usuarios de MTA es joven y no tienen ingresos más allá de lo que puedan entregarle sus padres.

    Con esas dos cosas en consideración, sería muy difícil que la cantidad de dinero que se maneja en MTA cambie.

  2. Sobre la distinción entre cliente y servidor, puede que en un comienzo parezca confusa, pero resulta más clara si lo piensas como un sitio web: Por un lado tienes la página web (el front-end) en que es visible toda la interfaz con la que el usuario puede interactuar, mientras que "detrás" tienes el servidor (back-end) que puedes pensar como un cúmulo de información disponible para todos los usuarios. Entonces, el cliente es una suerte de caja cerrada a la que otros clientes no pueden acceder directamente.

    Si el ejemplo no es claro, la distinción está mejor explicada acá: https://www.cloudflare.com/learning/serverless/glossary/client-side-vs-server-side/

    En tu caso, la recomendación general es que el dinero de los usuarios se asigne en el lado del servidor, para esto puedes utilizar setPlayerMoney.

    Por último, sin ánimos de remarcar lo evidente, notarás que existen diferentes sintaxis en algunas funciones, dependiendo de si se utilizará en el lado del cliente o del servidor, por lo que sugiero prestar atención a la documentación de la wiki para evitar problemas relacionados a ello.

     

    • Like 1
  3. Almacena los vehículos en una tabla que utilice al jugador cómo índice, así puedes tener control sobre varios a la vez.

    Si publicas el trozo de código en que creas y en que destruyes el vehículo, podemos ayudarte con un ejemplo más concreto.

     

  4. Creo que tampoco comprendí la situación por completo, así que daré algunas ideas generales.

    Si la intención es mantener una referencia a la cantidad de tiempo que algo lleva activo, mantener un conteo de esto no es la mejor opción posible, pues fácilmente puede desincronizarse o generar problemas de eficiencia.

    Por el contrario, sugiero almacenar referencias temporales, por ejemplo, si quisieras saber cuanto tiempo lleva el jugador activo, guardas la fecha y hora en que el jugador se conectó y calculas el tiempo transcurrido hasta el momento actual.

    Si quisieras almacenar la cantidad total que un jugador ha estado activo en toda la historia, entonces tomas el momento en que se conectó y el momento en que se desconectó, calculas la distancia entre ambos momentos y la sumas a la cantidad que el jugador previamente ha estado activo.

    Puede sonar lioso al principio, pero se simplifica una vez que decides una manera para obtener referencias temporales, de las cuales hay muchas, nombraré algunas palabras clave que puedan servir para buscar documentación: datetime, timestamp, tick count.

    En cualquier caso, también puedes mostrarnos tu código a ver lo que falla con tu método, si es que prefieres no modificarlo demasiado.

    • Like 1
  5. Prueba con reemplazar las líneas 30 a la 35 con esto:

    addEventHandler("onBotWasted", root,
      function ()
        if (source == nemesi) then
          local x, y, z = getElementPosition(source)
          createExplosion(x, y, z, 9)
          destroyElement(myBlip)
        end
      end
    )

     

  6. Esta no es la sección para esto, la próxima vez publica en Scripting.

    Por lo demás, ¿podrías publicar tu meta.xml? No veo ningún error a simple vista y supongo que no es un error de los archivos, así que pienso que tal vez lo estás cargando del lado del servidor y no del cliente, debes especificar que sea:

    <script {...} type="client" />

     

  7. No se me ocurre alguna manera de saberlo directamente, pero quizá sea una buena estrategia comprobar si los shaders y las texturas fueron aplicadas correctamente, pues me imagino (no lo he comprobado) que utilizando esa configuración, las funciones para modificar texturas o aplicar shaders debiesen fallar (y, por tanto, devolver false).

  8. Que bueno ver un username conocido alguna vez.

    También estoy alejado de MTA, pero tengo la sensación de que las mejoras más relevantes han sido el añadir luces (createLight), la implementación de CEF y las mejoras a funciones que a veces resultaban poco estables (dbQuery/dbExec), además de algunas utilidades interesantes para desarrolladores, como el fakelag.

  9. Hola a todos, perdón si posteé en el subforo equivocado. Seré breve:

    Hace aproximadamente un año y medio hice un recurso que reemplazaba varias casas por su versión hueca (con interior en la dimensión principal), ¿se lo compartí a alguno de ustedes o existe algún recurso público similar?

    Lo busco para evitar hacer varias correcciones de coordenadas de nuevo. Gracias.

  10. Yo que estuve durante bastante tiempo escribiendo recursos por dinero, puedo decir que estoy de acuerdo con @Arsilex, sin embargo, no creo que alguien pueda ganarse la vida siendo scripter en MTA. Actualmente estoy estudiando y eso me gasta mucho tiempo, pero he obtenido muchas más ganancias ayudando en la programación de juegos independientes que con recursos para MTA y ahora pronto apostaré por una alternativa que me parece será aun más rentable. Así que eso, hay que ser moderado, quizá no sea bueno trabajar por amor al código y cobrando barato, pero tampoco hay que exagerar los precios, que el scripting no es algo tan esforzado ni que lleve tantas horas.

  11. No sé si muriendo o no, pues hace tiempo no entro a jugar, pero estas fechas son excelentes para empezar a desarrollar un modo de juego y tener listo el lanzamiento para diciembre, que es la fecha en que efectivamente comienza a haber más movimiento.

  12. On 6/1/2017 at 0:54 AM, Jose76Tron said:

    Es posible recrear esto pero con shaders en una pared por ejemplo? Estaría muy bueno

    Si, es posible utilizando un renderTarget y dxDrawMaterialLine3D. En general los shaders se utilizan para transformación compleja de colores a nivel de GPU y para cosas como esta deben utilizarse las posibilidades directas que entrega la librería gráfica (todas esas funciones que empiezan por dx, jé).

  13. Creo que te refieres a archivos de extensión .ifp. Hasta dónde tengo entendido aún no se pueden reemplazar estos archivos ya que cuando se implementó ocasionaba errores como modificaciones arbitrarias y aunque ha aparecido en el roadtrack de desarrollo varias veces, no se ha concretado.

    Sin embargo, ya que hay una librería de animaciones bastante extensa en GTA San Andreas, quizá la alternativa de @vinexX sea lo más prudente.

×
×
  • Create New...