Dance minigame
Das Tanz-Minigame aus den GTA Online Nightclubs, für FiveM nachgebaut und überall auf deiner Map spielbar. Tipp im Takt, um vier Intensitätsstufen hochzugehen, halt sie oben, zieh sie auf Kommando hoch oder lass sie fallen, wechsle zehn Styles und zieh 27 Special Moves durch, ohne die Tanzfläche zu verlassen. Alle um dich herum sehen die ganze Show, und dein Server führt keine einzige Zeile davon aus.
Was es kann
Ein Beat-Match über vier Stufen, mit den Zahlen von Rockstar
Tipp im Takt, und die Intensität steigt. Acht saubere Beats bringen dich eine Stufe hoch, sechzehn verpasste ziehen dich zurück, acht falsche Eingaben kosten dich sofort eine Stufe. Die Anzeige springt nicht zwischen Werten, sie läuft mit eigenen Anstiegs- und Abfallraten auf das echte Signal zu. Genau deshalb fühlt sich eine Stufe verdient an und nicht einfach dazugeschaltet.
Technische
Daten
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.
-
Jeder Gameplay-Wert liegt offen
Beats für eine Stufe hoch, Beats für eine Stufe runter, Anstiegs- und Abfallraten, Amplitude des Kamerawackelns, Drehgeschwindigkeit, Haltedauer für einen Oberkörper-Move, Immunitätsfenster nach einem Boost. `config/config.lua` ist escrow-frei, ein Clubbetreiber kann das Minigame also nachsichtig oder gnadenlos machen, ohne uns zu fragen.
-
Zwölf Controls und ein Controller, der von Haus aus läuft
Jeder Eintrag ist ein FiveM-Input und keine Taste, die Defaults laufen also schon auf dem Controller: Tippen auf dem rechten Trigger, Halten auf dem linken, genau wie in GTA Online. Auf Maus und Tastatur läuft dieselbe Session auf den Maustasten, Leertaste und F. Jeder davon ist eine Control-ID in der Config, ein Server mit eigenem Layout tauscht den ganzen Block auf einmal.
-
Vier Client-Exports, darunter ein Beat, den du steuerst
Einen Tanz aus deinem eigenen Script starten und stoppen, abfragen, ob dein Spieler tanzt, und der Resource die BPM des Tracks geben, den dein Musiksystem gerade spielt. Letzteres ist der Grund, warum das Minigame mit deiner Musik funktioniert und nicht nur mit den Emittern, die Rockstar gesetzt hat.
Guide zur Integration
Installation
-
Resource ablegen
Hol dir das Script aus deinem Tebex-Konto, kopier den Ordner
avenida_dance/in dein resources-Verzeichnis und fügensure avenida_dancein deine Serverconfig ein. Es muss nichts vorher starten. -
Auslöser wählen
Öffne
config/config.lua.Config.Commandist der Chat-Command,Config.Keybindregistriert eine frei belegbare Taste mitConfig.DefaultKeyals Standard. Behalt beides oder setz den Command auffalseund lass deinen Spielern die Taste. -
Sprache setzen
Config.Localenimmt jeden der fünfzehn Codes auslocales/. Die Dateien sind escrow-frei, du kannst also jede Zeile auf den Ton deines Servers umschreiben. -
Notifications auf deinen Stack umbiegen
Config.Notifsteht aufautound erkennt ox_lib, okokNotify, QBCore oder ESX in dieser Reihenfolge. Erzwing ein Ziel, wenn du mehrere fährst, oder nimm dencustom-Zweig inbridges/notif.luafür dein eigenes System. -
Einen fünften Schritt gibt es nicht
Kein SQL auszuführen, kein Framework zu deklarieren, keine Permission zu vergeben. Server neu starten und den Command tippen.
Schnellstart
Wie deine Spieler den Tanz starten
Ein Command, eine Taste oder beides. Die Taste registriert sich in den FiveM-Einstellungen unter Key Bindings, jeder Spieler kann sie also selbst neu belegen, ohne deine Config anzufassen.
-- config/config.lua
Config.Command = 'dance' -- chat command, false to disable
Config.Keybind = true -- rebindable key in FiveM settings
Config.DefaultKey = 'F7'
-- The GTA:O help panel with styles, actions and controls.
-- Off, style and move changes are announced by notification instead.
Config.ShowHints = trueAPI-Referenz
Öffentliche Exports nach Bereich gruppiert. Jede Zeile zeigt die Signatur und was der Export macht, nicht wie er es macht.
Session
StartDance
exports.avenida_dance:StartDance(styleIndex?) --> booleanStartet eine Session für den lokalen Spieler, optional mit erzwungenem Style-Index von 1 bis 10. Gibt
falsezurück, wenn er gerade nicht tanzen kann, im Fahrzeug, im Wasser, in der Luft oder schon am Tanzen. Dein Script kann also entscheiden, was dann passiert.StopDance
exports.avenida_dance:StopDance()Beendet die laufende Session und spielt das echte Outro, statt die Animation abzuschneiden. Ohne Wirkung, wenn niemand tanzt.
IsDancing
exports.avenida_dance:IsDancing() --> booleanTrue, solange der lokale Spieler in einer Session ist. Praktisch, um deine eigenen Interaktionen, dein Inventar oder eine Job-Aktion zu blockieren, während das Minigame die Controls belegt.
Music
SetDanceBeat
exports.avenida_dance:SetDanceBeat(bpm, msToNextBeat?)Füttert den simulierten Beat mit dem Tempo des Tracks, den deine eigene Musik-Resource spielt. Das zweite Argument setzt die Phase, das Icon pulst dann auf dem echten Downbeat statt irgendwo daneben. Wird ignoriert, wenn der Wert keine positive Zahl ist.
Rezepte
Praxisnahe Copy-Paste-Beispiele. In deine eigene Resource kopieren, Werte anpassen, fertig.
Den nativen Beat gibt es nur dort, wo Rockstar einen Audio-Emitter gesetzt hat. Streamt dein Club eigene Tracks, schalt den nativen Beat ab und gib dein Tempo selbst vor. Einmal beim Start eines Tracks aufrufen, dann bei jedem Wechsel erneut.
-- config/config.lua
Config.UseNativeBeat = false
Config.FallbackBpm = 122.0
-- in your music resource, when a track starts
exports.avenida_dance:SetDanceBeat(128.0, 180)Eine Bühne, ein Podest, eine Stange, ein Tänzer-Job: Gib deinem Spieler den Tanz ohne Command. Erzwing einen Style-Index, damit das Podest immer gleich aussieht, und lies den Rückgabewert, damit du weißt, ob es wirklich losging.
local started = exports.avenida_dance:StartDance(7) -- shuffle
if not started then
-- the player is in a vehicle, in water, or already dancing
return
endEin Controller braucht hier gar nichts, die Defaults sind FiveM-Inputs und das Spiel legt sie schon auf das Pad. Das hier ist für einen Server, der eigene Tasten will. Lass Tippen und Halten auf zwei verschiedenen Eingaben, das Minigame liest sie getrennt.
-- config/config.lua
Config.Controls = {
beat = 201, -- INPUT_FRONTEND_ACCEPT
hold = 202, -- INPUT_FRONTEND_CANCEL
boost = 22, -- INPUT_JUMP
drop = 23, -- INPUT_ENTER
flourish = 45, -- INPUT_RELOAD
stop = 73,
-- the rest keeps its default
}Die Schwierigkeit sind vier Zahlen. Senk `BeatsHit`, und auch Gelegenheitsspieler erreichen Stufe vier. Erhöh `BeatsFail`, und Tastenhämmern wird nicht mehr bestraft. Das sind die Werte, die ein Clubbetreiber zuerst anfassen will.
-- config/config.lua
Config.BeatsHit = 8 -- clean beats to cross a level
Config.BeatsMiss = 16 -- missed beats to drop one
Config.BeatsFail = 8 -- bad inputs to drop one
Config.Level3Min = 0.25
Config.Level4Min = 0.75Fehlerbehebung
- Nein, auch nicht als Fallback: Es gibt in dieser Resource nichts, was ein Framework liefern könnte. Sie liest nie Geld, Items, Jobs oder Identität. Deshalb läuft dieselbe Datei auf ESX, QBCore, Qbox, vRP, ox_core oder einem nackten Server, ohne dass du eine einzige Bridge konfigurierst. Das Einzige, was ein Framework hier tun kann, ist eine Notification anzuzeigen, und die liegt in einer offenen Datei.
- Nein. `Config.UseOxLib` ist im Auslieferungszustand aus, und dann nimmt die Resource für alles die nativen FiveM-APIs: den Ped, den Fahrzeug-Check, die Spieler-ID. Schaltest du es ein, nutzt sie stattdessen die ox_lib-Caches, was sich auf einem Server lohnt, der den ox-Stack ohnehin fährt. Sonst taucht es nur noch in einem der sechs Zweige der Notification-Bridge auf.
- Weder noch. In der Resource gibt es keine Serverdatei, kein SQL, keine Tabelle, kein Event, das von einem Client zurückkommt. Alles, was Spieler in der Nähe sehen, kommt aus vier Statebags, die der Tänzer pusht. Das ist eine Architekturentscheidung mit einer Folge, die man aussprechen sollte: Wir speichern nichts serverseitig, die Style-Vorliebe deines Spielers liegt also in seinen eigenen Spieleinstellungen und nicht in deiner Datenbank.
- Das Animationsnetzwerk, das GTA für dieses Minigame nutzt, klont nicht über OneSync, entfernte Tänzer werden deshalb lokal aus den Statebags nachsimuliert. Meistens gibt das genau das Original wieder. Bleibt ein Klon in seinem Intro hängen, versucht es die Resource zweimal erneut und loopt dann den dominanten Clip aus dem 27er-Raster. Style, Intensität und Richtung stimmen weiter, nur die Übergänge zwischen den Posen sind weniger weich. Ganzkörper-Moves replizieren immer nativ.
- Ja, über `SetDanceBeat`. Der native Beat wird aus den Audio-Emittern der Map gelesen, und die gibt es nur dort, wo Rockstar sie gesetzt hat. Für einen eigenen Track schaltest du `Config.UseNativeBeat` ab und gibst der Resource deine BPM plus die Zeit bis zum nächsten Schlag. Das Icon pulst dann auf deinem Track statt auf einer Schätzung.
- Oberhalb von `Config.MaxBpm`, standardmäßig 140, geraten die Tanzanimationen gegenüber der Musik aus dem Takt. Damit das nicht sichtbar wird, sinkt die Animationsrate über dieser Schwelle um ein Viertel, und die Wiedergabegeschwindigkeit bleibt auf das 0,8- bis 1,2-Fache der Normalgeschwindigkeit begrenzt. Beide Werte stehen in der offenen Config, wenn du sie hochziehen willst.
- Überall, zu Fuß und auf festem Boden. Du musst keine Zone deklarieren und keine Ortsliste pflegen. Die Session endet von selbst, wenn dein Spieler ins Wasser gerät, in die Luft kommt, Feuer fängt oder in den Ragdoll geht. So tanzt am Ende niemand neben einem Dach in der Luft.
- 0.00ms. Die Resource hat überhaupt keine Ambient-Schleife: Sie registriert einen Command, eine Tastenbelegung und einen Statebag-Handler und tut dann nichts mehr, bis jemand eine Session startet. Jeder Thread, den eine Session erzeugt, stirbt mit ihr.
EMPFOHLEN DerassYoga 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.
EMPFOHLEN Avenida TeamBarber shop
Ein Barbershop, inszeniert wie eine Szene, mit einer Kamera, die der Spieler wirklich steuert. Der Charakter kommt herein, setzt sich, und der Barber legt los, während eine Orbit-Kamera den Kopf ins Bild rückt. Haare, Bart, Overlays und der komplette Satz an Skin-Details, live am Charakter zu sehen, bevor ein einziger Dollar ausgegeben ist.
EMPFOHLEN Avenida TeamClothing store
Ein Kleidungsladen mit gespeicherten Outfits, Firmen-Garderoben und einem Editor, der den Katalog direkt im Spiel bepreist. Jede Komponente und jedes Prop, Stück für Stück gekauft oder als ganzer Look, mit einem serverseitigen Register, das verhindert, dass jemand etwas trägt, wofür er nie bezahlt hat.