Yoga minigame
ميني قيم اليوغا من طور القصة، مُنتزَع من مهمته ومحوّل إلى نشاط رول بلاي يستطيع أي لاعب أن يبدأه. حاذِ المؤشرين، وثبّت الوضعية بينما يدخل الجسم فيها، ثم اشهق وازفر على الزنادين. ثلاث سلاسل، وأربع عشرة وضعية، وأنيميشن اللعبة الحقيقي وأصوات تنفّسها الحقيقية. ونتيجة تستطيع سكربتاتك أن تتفاعل معها.
ما الذي يفعله
في كل وضعية تحدث أربعة أشياء، لا حركة واحدة
حاذِ المؤشرين على هدفيهما، وثبّتهما هناك بينما يدخل الجسم في الوضعية، ثم اشهق بمسك الزنادين معًا، وازفر بإفلاتهما. نافذة المحاذاة 15 درجة، ونافذة التثبيت تتسع إلى 55 لأن الجسم يتحرك. وهذا الفارق بالذات هو ما يجعلك تشعر أنك تثبّت الوضعية لا أنك تشاهدها.
المواصفات
التقنية
كل ما
تحصل عليه
-
خمسة عشر ملف لغة، تُسلَّم مملوءة
يقرأ لاعبوك السكربت بلغتهم من أول تشغيل، والملفات خارج الإسكرو، فيمكنك تعديل أي سطر أثناء التشغيل. ملاحظة صريحة: نحن من ترجمها وراجعها، لا متحدثون أصليون للغات الخمس عشرة كلها. أخبرنا بما يبدو خاطئًا في لغتك ويُصحَّح.
-
قواعد الميني قيم أنت من يضبطها
دورات التنفّس الفائتة قبل فشل الوضعية، والوضعيات الفاشلة قبل توقف الجلسة، ومدة حبس النفَس، وحساسية الفأرة، والاهتزاز، والتلميحات على الشاشة، وقوة الـ timecycle لكل وضعية وسقفها. ملف `config/config.lua` خارج الإسكرو، فيستطيع سيرفر منتجع وسيرفر فناء سجن تشغيل الريسورس نفسه بصعوبتين مختلفتين.
-
الأماكن، بالكامل في الكونفيغ
الإحداثيات، والاتجاه، والسلسلة التي يبدأها المكان، والسجادة، وشكل الـ blip ولونه، والمسافة التي يظهر عندها المؤشر وتلك التي تصبح فيها الرسالة قابلة للاستخدام. اترك القائمة فارغة فتنطفئ الميزة كاملة، ومعها الخيط.
-
أربعة exports وevent تكامل واحد
بدء جلسة ومعرفة ما إذا كان لاعب داخلها، من السيرفر ومن العميل. ثم event واحد في النهاية يحمل النتيجة، موثّق داخل الملف مع السطر الجاهز للنسخ. إنه أقصر طريق بين هذا النشاط واقتصاد سيرفرك.
دليل الدمج
التثبيت
-
ضع السكربت
حمّل السكربت من حسابك على Tebex، وانسخ مجلد
avenida_yoga/إلى مجلد resources، وأضفensure avenida_yogaإلى إعدادات سيرفرك. -
اضبط اللغة والسلاسل
تقبل
Config.Localeأيًا من الأكواد الخمسة عشر فيlocales/. وتحدّدConfig.EnabledMovesالسلاسل التي يمكن للاعبين تشغيلها، وConfig.DefaultMoveهي السلسلة التي تُستخدم حين لا تُذكر واحدة. -
ضع أماكنك
الإحداثيتان في
Config.Spotsمثالان، استبدلهما بإحداثياتك. لكل مدخل اتجاه وسلسلة وblip يمكنك إطفاؤه. وتعطّل القائمة الفارغة الميزة كاملة ومعها الخيط. -
وجّه الإشعارات إلى نظامك
القيمة
Config.Notifعلىautoوتكتشف ox_lib وokokNotify وQBCore وESX بهذا الترتيب. افرض هدفًا إن كنت تشغّل أكثر من واحد، أو استخدم فرعcustomفيbridges/notif.luaلنظامك الخاص. -
اربط المكافأة، أو لا تفعل
يعمل النشاط من دون ضبط ومن دون سطر واحد من كودك. وحين تريده أن يدفع شيئًا، استمع إلى
avenida_yoga:server:sessionCompletedواقرأ النتيجة. هذه هي نقطة التكامل الوحيدة.
البدء السريع
حوّل الجلسة إلى مكافأة
event واحد، يُطلق مرة واحدة عند النهاية. والنتيجة محسوبة سلفًا: 1 لسلسلة مكتملة، وسقف 0.4 للمهجورة، ناقص 8 بالمئة عن كل وضعية فاشلة. وما يدفعه أنت من يقرّره.
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)مرجع الـ API
exports عامة مرتّبة حسب المجال. كل صف يعرض توقيع الاستدعاء وما يفعله، لا كيف يفعله.
Server
StartYoga
exports['avenida_yoga']:StartYoga(src, moveKey?) --> booleanيبدأ جلسة للاعب من كود السيرفر عندك، على السلسلة التي تسمّيها أو على الافتراضية. ويعيد
falseحين تكون السلسلة مجهولة أو اللاعب داخل جلسة أصلًا، فيستطيع job أو prop أن يتصرّف بدل أن يطلقها على العمياء.IsDoingYoga
exports['avenida_yoga']:IsDoingYoga(src) --> booleanيعيد
trueما دامت للاعب جلسة حيّة، مع احتساب انتهاء الصلاحية. مفيد لتعطيل إجراء وظيفة أو تنقّل أو متجر ما دام الميني قيم ممسكًا بتحكّمه.
Client
StartYoga
exports['avenida_yoga']:StartYoga(moveKey?) --> booleanيطلب جلسة من السيرفر انطلاقًا من كود العميل. ويمرّ الطلب رغم ذلك عبر سجل السيرفر، فهذه ليست طريقة للالتفاف على حارس الجلسة.
IsDoingYoga
exports['avenida_yoga']:IsDoingYoga() --> booleanيعيد
trueما دام اللاعب المحلي داخل جلسة. وهو توأم export السيرفر على جهة العميل، لكل ما يجب أن يتفاعل في الفريم نفسه.
وصفات
أمثلة جاهزة للنسخ واللصق للحالات الشائعة. ضعها في موردك، وعدّل القيم، وانشرها.
يحتاج المكان إلى إحداثيات واتجاه. وما عدا ذلك اختياري: السلسلة التي يبدأها، والـ blip، وحتى ظهور السجادة من عدمه. ضع `move` على `random` للتنويع، أو على `menu` ليختار اللاعب بنفسه.
-- 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 },
},
}وظيفة في مركز عافية، أو فناء سجن، أو نشاط إعادة تأهيل: أعطِ اللاعب الجلسة دون المرور بالأمر. واقرأ القيمة المعادة، فهي تخبرك إن كان اللاعب متفرّغًا للبدء.
local started = exports['avenida_yoga']:StartYoga(src, 'sunsalutation')
if not started then
-- unknown routine, or the player is already in a session
return
endتحمل أربعة أرقام الصعوبة كلها. ارفع المحاولات والإخفاقات لسيرفر جمهوره عادي، وأنزلها لشيء أقرب إلى اللعبة الأصلية. ومهلة النفَس هي ما يمنع اللاعب من ترك إصبعه على الزناد.
-- config/config.lua
Config.BreathingAttempts = 3 -- missed cycles before a pose fails
Config.MaxFails = 5 -- failed poses before the session stops
Config.HoldBreathFailMs = 15000 -- holding the breath longer fails the pose
Config.MouseGain = 3.0 -- marker sensitivity on mouse and keyboardلا يمكن تشغيل غير السلاسل المذكورة في الكونفيغ، سواء بالأمر أو بالـ export أو بمكان. ويستطيع سيرفر أن يبدأ بالمحارب وحده ثم يفتح الأطول منها في فعالية، دون المساس بأي شيء آخر.
-- config/config.lua
Config.EnabledMoves = { 'warrior' }
Config.DefaultMove = 'warrior'استكشاف الأخطاء
- لا. لا يقرأ النشاط المال ولا الأغراض ولا الوظائف ولا الهوية، فليس هناك ما يمكن لـ framework أن يوفّره. ويعمل الملف نفسه على ESX وQBCore وQbox وvRP وox_core أو على سيرفر مجرّد دون ضبط أي bridge. والجزء الوحيد الذي يعرف الـ framework عندك هو سطر الإشعارات، وهو ملف مفتوح بستة فروع.
- لا، ومن السهل أن نكون دقيقين هنا: يُستخدم ox_lib لشيء واحد بالضبط، قائمة اختيار السلسلة في مكان مضبوط على `menu`. وبدونه يبدأ ذلك المكان السلسلة الافتراضية. كما تبدّل `Config.UseOxLib` تحميل الأصول بين أدوات ox_lib والاستدعاءات الأصلية، وهي تُسلَّم مطفأة، فالسكربت يعمل على الاستدعاءات الأصلية افتراضيًا.
- لا شيء، ولا ملف SQL أيضًا. يحتفظ السيرفر بالجلسات الحيّة في الذاكرة، واحدة لكل لاعب، مع مهلة تنظّف المهجورة. ولا يُكتب شيء في أي مكان. وإن أردت سجلًا لكل لاعب، فلهذا وُجد event النهاية: تخزّن ما يهمّك أنت، في مخططك أنت.
- لا. الجلسة يفتحها السيرفر والنتيجة تُقيَّد قبل أن تصل إلى event عندك: الوضعيات المثبّتة لا تتجاوز السلسلة، والإخفاقات لا تتجاوز ثلاثين، وعلامة الإكمال مقارنة صارمة، والنتيجة يعاد حسابها على السيرفر من هذه القيم المقيَّدة. أسوأ ما يستطيعه عميل معدَّل هو الإبلاغ عن جلسة فتحها فعلًا.
- ينهض الجسم. يقرأ السكربت الحركة التي يشغّلها الـ ped بالضبط، ثم يختار حركة النهوض المطابقة لها من بين اثنتي عشرة تقدّمها اللعبة، وأربع منها لها نسخة خاصة بوضعية تُترك مبكرًا. وتُحسب الوضعية فاشلة، وبعد خمس وضعيات فاشلة تتوقف الجلسة من تلقاء نفسها.
- الاثنان معًا. يعمل الأمر في أي مكان سيرًا على الأقدام، والأماكن طبقة اختيارية فوقه، للمواضع التي تريد الإشارة إليها بسجادة وblip. اترك `Config.Spots` فارغة فلا يبقى غير الأمر والـ exports، دون أن يبدأ خيط الأماكن أصلًا.
- نعم، بل صُمّم لها أولًا كما في اللعبة الأصلية. ستيكان يوجّهان المؤشرين، والزنادان العلويان يحملان التنفّس، مع اهتزاز ما دام المؤشران على هدفيهما. وعلى الفأرة ولوحة المفاتيح تعمل الجلسة نفسها بـ WASD والفأرة، وتتبدّل التلميحات وحدها حسب آخر ما استخدمه اللاعب.
- 0.00ms. لا توجد حلقة الجلسة إلا أثناء جلسة، ويركن خيط الأماكن حين لا يكون أي لاعب قريبًا. وبلا أي مكان مصرَّح به، لا يبدأ ذلك الخيط أصلًا.
ماذا يقول المشترون
5.0 تقييم موثّق واحد
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.
مميز DerassDance minigame
ميني قيم الرقص من نوادي GTA Online، مُعاد بناؤه لـ FiveM وقابل للعب في أي مكان على خريطتك. اضغط على الإيقاع لتصعد أربعة مستويات من الحماس، وامسك لتثبّت ما وصلت إليه، وارفع الحماس أو أنزله متى شئت، وتنقّل بين عشرة أنماط وأطلق 27 حركة خاصة دون مغادرة الحلبة. كل من حولك يرى المشهد كاملًا، وسيرفرك لا ينفّذ منه سطرًا واحدًا.
مميز Avenida TeamBarber shop
صالون حلاقة مُخرَج كمشهد سينمائي، بكاميرا يتحكم بها اللاعب فعلًا. الشخصية تدخل وتجلس، ويبدأ الحلاق عمله بينما تُؤطّر الرأسَ كاميرا مدارية. الشعر واللحية وطبقات الوجه ومجموعة تفاصيل البشرة كاملة، تراها معاينةً حية قبل أن تدفع دولارًا واحدًا.
مميز Avenida TeamClothing store
متجر ملابس بأطقم محفوظة، وخزائن للشركات، ومحرر يسعّر الكتالوج من داخل اللعبة. كل مكوّنات الملابس وإكسسواراتها، تشتريها قطعة قطعة أو طقمًا كاملًا، مع سجل على السيرفر يمنع أحدًا من ارتداء ما لم يدفع ثمنه.