Dance minigame
ميني قيم الرقص من نوادي GTA Online، مُعاد بناؤه لـ FiveM وقابل للعب في أي مكان على خريطتك. اضغط على الإيقاع لتصعد أربعة مستويات من الحماس، وامسك لتثبّت ما وصلت إليه، وارفع الحماس أو أنزله متى شئت، وتنقّل بين عشرة أنماط وأطلق 27 حركة خاصة دون مغادرة الحلبة. كل من حولك يرى المشهد كاملًا، وسيرفرك لا ينفّذ منه سطرًا واحدًا.
ما الذي يفعله
لعبة إيقاع على أربعة مستويات، بأرقام Rockstar نفسها
اضغط على الإيقاع فيرتفع الحماس. ثماني ضربات نظيفة تصعد بك مستوى، وست عشرة ضربة فائتة تنزل بك مستوى، وثمانية مدخلات خاطئة تكلّفك مستوى فورًا. ولا يقفز المؤشر بين القيم، بل يقترب من الإشارة الحقيقية بسرعتَي صعود وهبوط خاصتين به، وهذا بالضبط ما يجعل الصعود يبدو مكتسبًا لا ممنوحًا بضغطة زر.
المواصفات
التقنية
كل ما
تحصل عليه
-
خمسة عشر ملف لغة، تُسلَّم مملوءة
يقرأ لاعبوك السكربت بلغتهم من أول تشغيل، والملفات خارج الإسكرو، فيمكنك تعديل أي سطر أثناء التشغيل. ملاحظة صريحة: نحن من ترجمها وراجعها، لا متحدثون أصليون للغات الخمس عشرة كلها. أخبرنا بما يبدو خاطئًا في لغتك ويُصحَّح.
-
كل أرقام اللعب مفتوحة
الضربات اللازمة لصعود مستوى، والضربات التي تُنزلك، وسرعات الصعود والهبوط، ومدى اهتزاز الكاميرا، وسرعة الدوران، ومدة المسك لحركة الجزء العلوي، ونوافذ الحصانة بعد الرفع. ملف `config/config.lua` خارج الإسكرو، فيستطيع صاحب النادي أن يجعل الميني قيم متساهلًا أو قاسيًا دون سؤالنا.
-
اثنا عشر عنصر تحكّم، ويد تحكّم تعمل من دون ضبط
كل مدخل هو input في FiveM وليس زرًا بعينه، لذا تعمل الافتراضيات على يد التحكّم أصلًا: الضغط على الزناد الأيمن، والمسك على الأيسر، تمامًا كما في GTA Online. وعلى الفأرة ولوحة المفاتيح تعمل الجلسة نفسها بأزرار الفأرة ومفتاح المسافة وF. وكل منها معرّف تحكّم في الكونفيغ، فالسيرفر الذي له توزيعه الخاص يبدّل الكتلة كاملة دفعة واحدة.
-
أربعة exports للعميل، منها إيقاع تقوده أنت
تشغيل رقصة وإيقافها من سكربتك، ومعرفة ما إذا كان لاعبك يرقص، وتمرير الـ BPM الخاص بالأغنية التي يشغّلها نظام الموسيقى عندك إلى السكربت. وهذا الأخير هو ما يجعل الميني قيم يعمل مع موسيقاك أنت، لا مع مصادر Rockstar فقط.
دليل الدمج
التثبيت
-
ضع السكربت
حمّل السكربت من حسابك على Tebex، وانسخ مجلد
avenida_dance/إلى مجلدresources، وأضفensure avenida_danceإلى إعداد سيرفرك. ولا شيء يجب أن يبدأ قبله. -
اختر طريقة التشغيل
افتح
config/config.lua. القيمةConfig.Commandهي أمر الشات، ويسجّلConfig.Keybindمفتاحًا قابلًا لإعادة التعيين معConfig.DefaultKeyكقيمة افتراضية. أبقِ الاثنين، أو اجعل الأمرfalseواترك المفتاح للاعبين. -
اضبط اللغة
تقبل
Config.Localeأيًا من الأكواد الخمسة عشر الموجودة فيlocales/. الملفات خارج الإسكرو، فيمكنك إعادة كتابة كل سطر ليناسب أسلوب سيرفرك. -
وجّه الإشعارات إلى نظامك
القيمة
Config.Notifعلىautoوتكتشف ox_lib وokokNotify وQBCore وESX بهذا الترتيب. افرض هدفًا إن كنت تشغّل أكثر من واحد، أو استخدم فرعcustomفيbridges/notif.luaلنظامك الخاص. -
لا توجد خطوة خامسة
لا SQL تشغّله، ولا framework تعلنه، ولا صلاحية تمنحها. أعِد التشغيل واكتب الأمر.
البدء السريع
كيف يبدأ لاعبوك الرقص
أمر، أو مفتاح، أو الاثنان. يُسجَّل المفتاح في إعدادات FiveM ضمن Key Bindings، فيستطيع كل لاعب إعادة تعيينه دون المساس بالكونفيغ عندك.
-- 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 = trueمرجع الـ API
exports عامة مرتّبة حسب المجال. كل صف يعرض توقيع الاستدعاء وما يفعله، لا كيف يفعله.
Session
StartDance
exports.avenida_dance:StartDance(styleIndex?) --> booleanيبدأ جلسة للاعب المحلي، مع إمكانية فرض رقم نمط من 1 إلى 10. ويعيد
falseحين لا يستطيع اللاعب الرقص في تلك اللحظة، داخل مركبة أو في الماء أو في الهواء أو وهو يرقص أصلًا، فيقرر سكربتك ما يفعله عندها.StopDance
exports.avenida_dance:StopDance()ينهي الجلسة الجارية ويشغّل حركة النهاية الحقيقية بدل قطع الأنيميشن. ولا أثر له إن لم يكن أحد يرقص.
IsDancing
exports.avenida_dance:IsDancing() --> booleanيعيد
trueما دام اللاعب المحلي في جلسة. مفيد لتعطيل تفاعلاتك أو الإنفنتوري أو أي إجراء وظيفي ما دام الميني قيم ممسكًا بالتحكم.
Music
SetDanceBeat
exports.avenida_dance:SetDanceBeat(bpm, msToNextBeat?)يغذّي الإيقاع المحاكى بإيقاع الأغنية التي يشغّلها سكربت الموسيقى عندك. والوسيط الثاني يضبط الطور، فتنبض الأيقونة على الضربة القوية الحقيقية لا بقربها. ويُتجاهَل إن لم تكن القيمة رقمًا موجبًا.
وصفات
أمثلة جاهزة للنسخ واللصق للحالات الشائعة. ضعها في موردك، وعدّل القيم، وانشرها.
الإيقاع الأصلي موجود فقط حيث وضعت Rockstar مصدر صوت. فإن كان ناديك يبثّ أغانيه الخاصة، أوقف الإيقاع الأصلي وادفع إيقاعك أنت. استدعِ الـ export مرة عند بدء الأغنية، ثم مع كل تغيير.
-- 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)مسرح، أو منصّة، أو عمود، أو وظيفة راقص: أعطِ لاعبك الرقصة بلا أمر. افرض رقم نمط لتبقى المنصّة بالمظهر نفسه دائمًا، واقرأ القيمة المعادة لتعرف إن كانت بدأت فعلًا.
local started = exports.avenida_dance:StartDance(7) -- shuffle
if not started then
-- the player is in a vehicle, in water, or already dancing
return
endيد التحكّم لا تحتاج إلى شيء هنا، فالافتراضيات inputs في FiveM واللعبة تربطها بها أصلًا. وهذا للسيرفر الذي يريد مفاتيحه الخاصة. أبقِ الضغط والمسك على مدخلين مختلفين، فالميني قيم يقرأهما بشكل منفصل.
-- 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
}الصعوبة أربعة أرقام. أنزِل `BeatsHit` فيصل الجمهور العادي إلى المستوى الرابع، وارفع `BeatsFail` فلا يعود ضرب الأزرار عشوائيًا يُعاقَب. وهذه أول القيم التي سيريد صاحب النادي تعديلها.
-- 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.75استكشاف الأخطاء
- لا، ولا حتى كخيار احتياطي: لا يوجد في هذا السكربت شيء يمكن لـ framework أن يوفّره. فهو لا يقرأ المال ولا الأغراض ولا الوظائف ولا الهوية. لذلك يعمل الملف نفسه على ESX وQBCore وQbox وvRP وox_core أو على سيرفر مجرّد دون ضبط أي bridge. والشيء الوحيد الذي يمكن لـ framework فعله هنا هو عرض إشعار، وذلك ملف واحد مفتوح.
- لا. تُسلَّم `Config.UseOxLib` مطفأة، وفي هذه الحالة يستخدم السكربت واجهات FiveM الأصلية لكل شيء: الـ ped، وفحص المركبة، ومعرّف اللاعب. وإن شغّلتها استخدم السكربت كاشات ox_lib بدلًا منها، وهو أمر مفيد على سيرفر يشغّل منظومة ox أصلًا. والمكان الآخر الوحيد الذي يظهر فيه هو فرع من فروع bridge الإشعارات الستة.
- لا هذا ولا ذاك. لا يوجد ملف سيرفر في السكربت، ولا SQL، ولا جدول، ولا event يعود من عميل. وكل ما يراه اللاعبون القريبون يأتي من أربع statebags يدفعها الراقص. وهذا خيار معماري له نتيجة يُستحسن قولها بوضوح: لا شيء يُحفظ على السيرفر، فتفضيل النمط عند لاعبك يعيش في إعدادات لعبته هو، لا في قاعدة بياناتك.
- شبكة الحركة التي يستخدمها GTA لهذا الميني قيم لا تُنسخ عبر OneSync، لذا تُعاد محاكاة الراقصين البعيدين محليًا من الـ statebags. وفي أغلب الأحيان يعيد ذلك إنتاج الأصل. وحين تعلق النسخة عند حركة المقدمة، يعيد السكربت المحاولة مرتين ثم يكرّر المقطع المسيطر من شبكة المقاطع السبعة والعشرين. يبقى النمط والحماس والاتجاه صحيحة، والمزج بين الوضعيات وحده أقل ثراءً. أما الحركات الخاصة بالجسم كله فتنسخها اللعبة نفسها دائمًا.
- نعم، عبر `SetDanceBeat`. يُقرأ الإيقاع الأصلي من مصادر صوت Rockstar، وهي موجودة فقط حيث وضعتها Rockstar. ولأغنية خاصة، أوقف `Config.UseNativeBeat` وأعطِ السكربت الـ BPM عندك مع المهلة حتى الضربة التالية. عندها تنبض الأيقونة على أغنيتك، لا على تخمين.
- فوق `Config.MaxBpm`، وهي 140 افتراضيًا، تبدأ حركات الرقص بالانفصال عن الموسيقى. ولكي لا يظهر ذلك، تنخفض سرعة الحركة بمقدار الربع فوق هذه العتبة ويبقى التشغيل بين 0.8 و1.2 من السرعة العادية. القيمتان في الكونفيغ المفتوح إن أردت رفعهما.
- في أي مكان، سيرًا على الأقدام وعلى أرض صلبة. لا توجد منطقة تُعلَن ولا قائمة أماكن تتعهّدها بالتحديث. وتتوقف الجلسة وحدها إذا دخل لاعبك الماء، أو بقي في الهواء، أو اشتعل، أو دخل في ragdoll، فلا ينتهي أحد راقصًا في الفراغ عند حافة سطح.
- 0.00ms. لا يملك السكربت أي حلقة خلفية: يسجّل أمرًا، ومفتاحًا، ومعالج statebag، ثم لا يفعل شيئًا حتى يبدأ أحدهم جلسة. وكل خيط تنشئه الجلسة يموت معها.
مميز DerassYoga minigame
ميني قيم اليوغا من طور القصة، مُنتزَع من مهمته ومحوّل إلى نشاط رول بلاي يستطيع أي لاعب أن يبدأه. حاذِ المؤشرين، وثبّت الوضعية بينما يدخل الجسم فيها، ثم اشهق وازفر على الزنادين. ثلاث سلاسل، وأربع عشرة وضعية، وأنيميشن اللعبة الحقيقي وأصوات تنفّسها الحقيقية. ونتيجة تستطيع سكربتاتك أن تتفاعل معها.
مميز Avenida TeamBarber shop
صالون حلاقة مُخرَج كمشهد سينمائي، بكاميرا يتحكم بها اللاعب فعلًا. الشخصية تدخل وتجلس، ويبدأ الحلاق عمله بينما تُؤطّر الرأسَ كاميرا مدارية. الشعر واللحية وطبقات الوجه ومجموعة تفاصيل البشرة كاملة، تراها معاينةً حية قبل أن تدفع دولارًا واحدًا.
مميز Avenida TeamClothing store
متجر ملابس بأطقم محفوظة، وخزائن للشركات، ومحرر يسعّر الكتالوج من داخل اللعبة. كل مكوّنات الملابس وإكسسواراتها، تشتريها قطعة قطعة أو طقمًا كاملًا، مع سجل على السيرفر يمنع أحدًا من ارتداء ما لم يدفع ثمنه.