por Derass ESX · QBCore · Qbox · vRP · Standalone

Yoga minigame

El minijuego de yoga del modo historia, sacado de su misión y convertido en una actividad de rol que puede empezar cualquiera. Alinea los dos marcadores, mantén la postura mientras el cuerpo entra en ella, y luego inspira y espira con los gatillos. Tres rutinas, catorce posturas, las animaciones originales y los sonidos de respiración del propio juego. Y una puntuación a la que tus propios scripts pueden reaccionar.

Entrega Instantánea
Actualizaciones Gratis de por vida
Soporte Discord los 7 días
01 · FUNCIONALIDADES

Lo que hace

02 · SPECS

Especificaciones
técnicas

Framework No hace falta Nunca lee dinero, items ni identidad
Dependencias Ninguna Sin base de datos, sin SQL, sin recurso de target
Contenido 3 rutinas · 14 posturas 37 clips de animación · 12 animaciones de recuperación
Idiomas en juego 15 incluidos ar · cs · de · en · es · fr · id · it · nl · pl · pt-br · ro · ru · th · tr
Rendimiento 0.00ms en reposo No corre ningún thread mientras nadie esté cerca de un spot
03 · INCLUIDO

Todo lo que
recibes

  • Quince archivos de idioma, ya rellenados

    Tus jugadores leen el script en su idioma desde el primer arranque, y los archivos están fuera del escrow, así que puedes corregir cualquier línea en producción. Nota honesta: están traducidos y revisados por nosotros, pero no los ha corregido un hablante nativo de cada uno de los quince. Dinos qué suena mal en el tuyo y lo arreglamos.

  • Las reglas del minijuego las pones tú

    Ciclos de respiración fallados antes de que falle una postura, posturas falladas antes de que pare la sesión, cuánto se puede aguantar el aire, sensibilidad del ratón, vibración, avisos en pantalla, la fuerza del timecycle por postura y su tope. `config/config.lua` está fuera del escrow, así que un servidor de balneario y un patio de prisión pueden usar el mismo recurso con dos dificultades distintas.

  • Los spots del mapa, enteros en la config

    Coordenadas, orientación, qué rutina, la esterilla, el sprite y el color del blip, a qué distancia aparece el marcador y a qué distancia se puede usar el aviso. Deja la lista vacía y toda esa parte se apaga, thread incluido.

  • Cuatro exports y un event de integración

    Empezar una sesión y saber si un jugador ya está en una, desde el servidor o desde el cliente. Y un único event al final con el resultado, documentado en el archivo con la línea lista para copiar. Es el camino más corto entre esta actividad y tu economía.

04 · DOCUMENTACIÓN

Guía de integración

01

Instalación

  1. Coloca el recurso

    Descarga el script desde tu cuenta Tebex, copia la carpeta avenida_yoga/ en tu directorio de recursos y añade ensure avenida_yoga a la config del servidor.

  2. Elige el idioma y las rutinas

    Config.Locale acepta cualquiera de los quince códigos que vienen en locales/. Config.EnabledMoves decide qué rutinas pueden empezar los jugadores, y Config.DefaultMove la que se usa cuando no se indica ninguna.

  3. Pon tus spots en el mapa

    Las dos coordenadas de Config.Spots son ejemplos, cámbialas por las tuyas. Cada una lleva su orientación, su rutina y un blip que puedes apagar. Una lista vacía desactiva toda esa parte y su thread.

  4. Apunta las notificaciones a tu stack

    Config.Notif está en auto y detecta ox_lib, okokNotify, QBCore o ESX en ese orden. Fuerza un target si tienes varios, o usa la rama custom de bridges/notif.lua para tu propio sistema.

  5. Engancha la recompensa, o no

    La actividad funciona tal cual, sin una línea de tu código. Cuando quieras que pague algo, escucha avenida_yoga:server:sessionCompleted y lee la puntuación. Es el único punto de integración.

02

Inicio rápido

Convertir una sesión en una recompensa

Un event, lanzado una sola vez al final. La puntuación ya viene calculada: 1 por una rutina terminada, como mucho 0,4 si se abandona, y un 8 por ciento menos por cada postura fallada. Lo que pague lo decides tú.

lua
AddEventHandler('avenida_yoga:server:sessionCompleted', function(src, data)
    -- data.move       'warrior' | 'triangle' | 'sunsalutation'
    -- data.completed  true when the routine went to the end
    -- data.posesBest  poses held
    -- data.poses      poses in the routine
    -- data.fails      poses dropped
    -- data.score      0.0 to 1.0

    if not data.completed then return end

    -- your own reward: stress, stamina, a skill, a payout
    local reward = math.floor(250 * data.score)
end)
03

Referencia de la API

Exports públicos agrupados por dominio. Cada fila muestra la firma de la llamada y qué hace, no cómo lo hace.

Server

  • StartYoga
    exports['avenida_yoga']:StartYoga(src, moveKey?) --> boolean

    Empieza una sesión para un jugador desde tu código de servidor, con la rutina que le pases o con la de por defecto. Devuelve false cuando la rutina no existe o el jugador ya está en una sesión, así que un trabajo o un prop puede reaccionar en lugar de lanzarla a ciegas.

  • IsDoingYoga
    exports['avenida_yoga']:IsDoingYoga(src) --> boolean

    Verdadero mientras el jugador tiene una sesión viva, caducidad incluida. Útil para bloquear una acción de trabajo, un teletransporte o una tienda mientras el minijuego se queda con el control.

Client

  • StartYoga
    exports['avenida_yoga']:StartYoga(moveKey?) --> boolean

    Pide una sesión al servidor desde tu código de cliente. La petición pasa igualmente por el registro del servidor, así que no es una forma de saltarse el control de sesión.

  • IsDoingYoga
    exports['avenida_yoga']:IsDoingYoga() --> boolean

    Verdadero mientras el jugador local está en una sesión. Es la versión de cliente del export de servidor, para todo lo que tenga que reaccionar en el mismo frame.

04

Recetas

Ejemplos para copiar y pegar en los casos más habituales. Los metes en tu recurso, ajustas los valores y a producción.

Un spot necesita coordenadas y orientación. Lo demás es opcional: la rutina que arranca, el blip, e incluso si aparece la esterilla. Pon `move` en `random` para variar, o en `menu` para que elija el jugador.

lua
-- config/config.lua
Config.Spots = {
    {
        coords  = vector3(-1204.02, -1566.28, 3.63),
        heading = 125.0,
        move    = 'menu',
        blip    = { sprite = 311, colour = 2, scale = 0.7 },
    },
}
05

Preguntas frecuentes

  • No. La actividad nunca lee dinero, items, trabajos ni identidad, así que no hay nada que un framework pudiera aportar. El mismo archivo funciona en ESX, QBCore, Qbox, vRP, ox_core o un servidor standalone sin configurar un solo bridge. La única parte que sabe de tu framework es la línea de notificaciones, un archivo abierto con seis ramas.
OPINIONES

Lo que dicen los compradores

5.0 1 opinión verificada

  • Jpmediaaa. Hotstar Production

    I am very happy that I was given the opportunity to make a script trailer for the yoga minigame, I think the script is very seamless and very easy to use and interactive.

    Ver en Discord ↗
Carrito
Spirit RP
Discord