von Derass ESX · QBCore · Qbox · vRP · Standalone

Yoga minigame

Das Yoga-Minigame aus dem Story-Modus, aus der Mission gelöst und zu einer Roleplay-Aktivität gemacht, die jeder starten kann. Beide Marker ausrichten, die Pose halten, während der Körper sie einnimmt, dann mit den Triggern ein- und ausatmen. Drei Abläufe, vierzehn Posen, die echten Animationen und die echten Atemgeräusche. Und ein Score, auf den deine eigenen Scripts reagieren können.

Lieferung Sofort
Updates Für immer kostenlos
Support Täglich auf Discord
01 · FUNKTIONEN

Was es kann

02 · SPECS

Technische
Daten

Framework Nicht nötig Liest nie Geld, Items oder Identität
Dependencies Keine Keine Datenbank, kein SQL, keine Target-Resource
Inhalt 3 Abläufe · 14 Posen 37 Animations-Clips · 12 Aufsteh-Animationen
In-Game-Sprachen 15 enthalten ar · cs · de · en · es · fr · id · it · nl · pl · pt-br · ro · ru · th · tr
Performance 0.00ms im Leerlauf Kein Thread, solange niemand an einem Spot steht
03 · INKLUSIVE

Alles, was du
bekommst

  • Fünfzehn Sprachdateien, gefüllt ausgeliefert

    Deine Spieler lesen das Script vom ersten Start an in ihrer Sprache, und die Dateien liegen außerhalb des Escrows, du kannst also jede Zeile im laufenden Betrieb ändern. Ehrlicher Hinweis: Sie sind von uns übersetzt und geprüft, nicht von Muttersprachlern aller fünfzehn gegengelesen. Sag uns, was in deiner falsch klingt, dann korrigieren wir es.

  • Die Regeln des Minigames gehören dir

    Verpasste Atemzyklen, bis eine Pose scheitert, verpatzte Posen, bis die Einheit stoppt, wie lange du den Atem halten darfst, Maus-Empfindlichkeit, Rumble, Hinweise auf dem Bildschirm, die Timecycle-Stärke pro Pose und ihre Obergrenze. `config/config.lua` ist escrow-frei, ein Wellness-Server und ein Gefängnishof können also dieselbe Resource in zwei Schwierigkeitsgraden fahren.

  • Die Spots, komplett in der Config

    Koordinaten, Ausrichtung, welcher Ablauf, die Matte, Blip-Sprite und -Farbe, ab welcher Entfernung der Marker erscheint und ab welcher der Prompt nutzbar wird. Lass die Liste leer, und die ganze Funktion schaltet sich ab, Thread inklusive.

  • Vier Exports und ein Integrations-Event

    Eine Einheit starten und prüfen, ob ein Spieler gerade in einer ist, vom Server wie vom Client. Dazu ein einziges Event am Ende mit dem Ergebnis, in der Datei dokumentiert samt der Zeile zum Kopieren. Es ist der kürzeste Weg zwischen dieser Aktivität und deiner Wirtschaft.

04 · DOKUMENTATION

Guide zur Integration

01

Installation

  1. Resource ablegen

    Hol dir das Script aus deinem Tebex-Konto, kopier den Ordner avenida_yoga/ in dein resources-Verzeichnis und trag ensure avenida_yoga in deine Serverconfig ein.

  2. Sprache und Abläufe setzen

    Config.Locale nimmt jeden der fünfzehn Codes aus locales/. Config.EnabledMoves entscheidet, welche Abläufe Spieler starten dürfen, und Config.DefaultMove legt den fest, der ohne Angabe genommen wird.

  3. Deine Spots setzen

    Die beiden Koordinaten in Config.Spots sind Beispiele, ersetz sie durch deine eigenen. Jeder Eintrag nimmt eine Ausrichtung, einen Ablauf und einen Blip, den du abschalten kannst. Eine leere Liste deaktiviert die Funktion samt Thread.

  4. Notifications auf deinen Stack umbiegen

    Config.Notif steht auf auto und erkennt ox_lib, okokNotify, QBCore oder ESX in dieser Reihenfolge. Erzwing ein Ziel, wenn du mehrere fährst, oder nimm den custom-Zweig in bridges/notif.lua für dein eigenes System.

  5. Belohnung anhängen, oder auch nicht

    Die Aktivität läuft von Haus aus, ohne eine Zeile von dir. Wenn sie etwas auszahlen soll, hör auf avenida_yoga:server:sessionCompleted und lies den Score. Das ist der einzige Integrationspunkt.

02

Schnellstart

Aus einer Einheit eine Belohnung machen

Ein Event, einmal am Ende gefeuert. Der Score ist schon berechnet: 1 für einen beendeten Ablauf, bei einem Abbruch auf 0,4 gedeckelt, minus 8 Prozent pro verpatzter Pose. Was er auszahlt, entscheidest du.

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

API-Referenz

Öffentliche Exports nach Bereich gruppiert. Jede Zeile zeigt die Signatur und was der Export macht, nicht wie er es macht.

Server

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

    Startet eine Einheit für einen Spieler aus deinem Servercode, mit dem genannten Ablauf oder mit dem Standard. Gibt false zurück, wenn der Ablauf unbekannt ist oder der Spieler schon in einer Einheit steckt, ein Job oder ein Prop kann also reagieren, statt blind zu feuern.

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

    True, solange der Spieler eine laufende Einheit hat. Abgelaufene zählen nicht mit. Praktisch, um eine Job-Aktion, einen Teleport oder einen Shop zu blockieren, während das Minigame die Controls belegt.

Client

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

    Fragt aus deinem Clientcode eine Einheit beim Server an. Die Anfrage läuft trotzdem über die Server-Registry, das ist also kein Weg am Schutz des Servers vorbei.

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

    True, solange der lokale Spieler in einer Einheit ist. Das Gegenstück zum Server-Export, für alles, was im selben Frame reagieren muss.

04

Rezepte

Praxisnahe Copy-Paste-Beispiele. In deine eigene Resource kopieren, Werte anpassen, fertig.

Ein Spot braucht Koordinaten und eine Ausrichtung. Alles andere ist optional: welchen Ablauf er startet, ob er einen Blip bekommt und ob die Matte überhaupt gespawnt wird. Für Abwechslung setzt du `move` auf `random`, für eine Auswahl auf `menu`.

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

Fehlerbehebung

  • Nein. Die Aktivität liest nie Geld, Items, Jobs oder Identität, es gibt also nichts, was ein Framework liefern könnte. Dieselbe Datei läuft auf ESX, QBCore, Qbox, vRP, ox_core oder einem nackten Server, ohne dass du eine einzige Bridge konfigurierst. Das Einzige, was hier überhaupt ein Framework berührt, ist die Notification-Zeile, eine offene Datei mit sechs Zweigen.
BEWERTUNGEN

Was Käufer sagen

5.0 1 verifizierte Bewertung

  • 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.

    Auf Discord ansehen ↗
Warenkorb
Spirit RP
Discord