Core Skin (3 in 1)
صالون حلاقة واستوديو وشم ومتجر ملابس في سكربت FiveM واحد. 1615 وشمًا، وكل مكوّنات الملابس وإكسسواراتها، ومجموعة الرأس والبشرة كاملة، موزّعة على 36 متجرًا. واجهة واحدة، وكاميرا واحدة، ومسار شراء واحد، وشيء واحد تثبّته على ESX أو QBCore أو vRP أو من دون فريمورك.
ما يحتويه هذا الباك
وفّر 15.00 €ما الذي يفعله
مشكلة خانة الزينة، محلولة من أصلها لا مُدارة
الـ ped في GTA له خانة زينة واحدة فقط، يتقاسمها كل ريسورس على السيرفر، وإفراغها يفرغها للجميع. وقواعد الشعر والوشوم تعيش فيها معًا. ومع السكربتات الثلاثة المنفصلة يضطر كل واحد منها إلى إعادة ما يملكه الآخران بعد كل إعادة رسم، وهذا ينجح لكنه ترقيع لا حل. أما هنا فتُرسم وتُحفَظ معًا، فلا يبقى بينها تسليم يمكن أن يفشل.
المواصفات
التقنية
كل ما
تحصل عليه
-
المتاجر الثلاثة بسعر واحد
صالون الحلاقة واستوديو الوشم ومتجر الملابس، بكل ما يحمله كل واحد منها منفردًا. الحزمة أرخص من الثلاثة منفصلة، ويبقى بإمكانك إطفاء وحدة إن كنت تحتاج إلى اثنتين فقط.
-
خمسة عشر ملف لغة، مملوءة عند التسليم
لاعبوك يقرأون السكربت بلغتهم منذ أول تشغيل، والملفات خارج الـ escrow فتستطيع تصحيح أي سطر أثناء التشغيل. ملاحظة صريحة: هي مترجمة ومراجعة من طرفنا، لا مدققة من ناطقين أصليين للغات الخمس عشرة. أخبرنا بما يبدو ركيكًا في لغتك ونصححه.
-
ثمانية bridges، ملف لكل واحد
الفريمورك والإشعارات والتفاعل والملابس والمخزون والزينة ولقطات الشاشة والتوافق. كل ملف يوثّق أهدافه، وما يكتشفه، وما يكلفك كل هدف. والكشف يجسّ الـ export الحقيقي لا حالة الريسورس، فالـ export المُعاد تسميته يتراجع بهدوء بدل أن ينهار عند الإقلاع.
-
كل ما يُضبَط يبقى مفتوحًا
المتاجر الستة والثلاثون، وكل جداول الأسعار، ومُعامِلات المجموعات، وتصحيحات المناطق، والكاميرا، والإضاءة، وقوائم VIP، والتعديلات التي يكتبها المحرر داخل اللعبة. ملفات `config/*.lua` و`locales/*.lua` و`bridges/*.lua` خارج الـ escrow وقابلة للتعديل أثناء التشغيل.
دليل الدمج
التثبيت
-
ضع السكربت
حمّل السكربت من حسابك على Tebex، وانسخ المجلد إلى مجلد
resources، وأضفensure avenida_core_skinإلى إعداد السيرفر بعدensure oxmysql. وأبقِ اسم المجلد كما يصلك، فهو الاسم المعلَن في الـ manifest. -
نفّذ ملف SQL، القسم [A] كاملًا
القسم [A] يحوي كل جداول السكربت، ومنها سجل الملابس المدفوعة. أما الأقسام [B] و[C] و[D] فمشروطة، والملف يقول متى يلزم كل منها. و[D] هو أغراض المخزون، ولا يلزم إلا إذا فعّلت
Config.Clothes.GiveAsItems، وهو الذي يُنسى عادة. -
اختر وحداتك
افتح
config/config.luaواضبطConfig.Modules. والوحدة المضبوطة على false لا تكلف شيئًا إطلاقًا: لا علامة، ولا نقطة تفاعل، ولا خيط، وإعدادها لا يُقرأ أصلًا. وما دمت هناك، فراجعConfig.Locale. -
امنح صلاحيات الإدارة
أضف
add_ace group.admin avenida_skin.admin allowوadd_ace group.admin avenida_skin.vip allow. الأولى تفتح محرر الكتالوج داخل اللعبة، والثانية تفتح ما تضعه خلف قائمة الـ VIP. -
تحقق من التكاملات
اضبط
Config.Debug = true، وأعد التشغيل، واقرأ الكونسول: سطر لكل فئة bridge يسمّي الهدف الذي اختير. أعده إلىfalseحالما تطابق الأسطر سيرفرك، وتذكّر أنه لا يتحكم إلا بالسجلات، وللمحرر مفتاحه الخاص.
البدء السريع
شغّل المتاجر التي تحتاج إليها فقط
الوحدات الثلاث مستقلة. والسيرفر الذي لديه متجر ملابس يرضيه يحتفظ بالحلاقة والوشم، ولا يعمل شيء من الوحدة المطفأة.
-- config/config.lua
Config.Modules = {
Barber = true,
Tattoo = true,
Clothes = false, -- no blip, no point, no thread
}
Config.Locale = 'en'
Config.Framework = 'auto' -- 'qbcore' | 'esx' | 'vrp' | 'standalone' | 'custom'
Config.Notif = 'auto'
Config.Interact = 'auto'
Config.Clothing = 'auto'مرجع الـ API
exports عامة مرتّبة حسب المجال. كل صف يعرض توقيع الاستدعاء وما يفعله، لا كيف يفعله.
Client
GetHairbase
exports['avenida_skin']:GetHairbase() --> { c = collection, t = nameHash } | nilقاعدة الشعر التي يرتديها الـ ped. الحزمة تشغّل المتاجر الثلاثة على خانة زينة واحدة، فهذا هو المكان الوحيد لقراءتها، أيًا كان المتجر الذي زاره اللاعب أخيرًا.
GetTattoos
exports['avenida_skin']:GetTattoos() --> { { c, t }, ... }الوشوم الموجودة حاليًا على الـ ped. وبما أنّ الحلاقة والوشم وخزانة الملابس تتشارك هنا سجلًا واحدًا، تحصل على قائمة واحدة بدل أن تسأل ثلاثة سكربتات عن الإجابة نفسها.
Server
GetBagStorage
exports['avenida_skin']:GetBagStorage(sex, drawable) --> { weight, slots } | nilوزن الحقيبة وعدد خاناتها بحسب قيمة drawable، مقروءة من إعدادات خزانة الملابس. ويعيد nil لأي drawable غير معرَّف بوصفه حقيبة.
وصفات
أمثلة جاهزة للنسخ واللصق للحالات الشائعة. ضعها في موردك، وعدّل القيم، وانشرها.
كل متجر يعلن أقسامه، وكل قسم يعلن نمط تسعيره. سعر موحّد لقسم بأكمله، أو مُعامِل يجعل الـ drawables اللاحقة أغلى، أو جدول حين لا تستحق سعرًا خاصًا إلا بضع قطع.
-- config/clothes_shops.lua
categories = {
tops = {
enabled = true,
price = { mode = 'fixed', base = 300 },
},
pants = {
enabled = true,
-- price = base + index * mult
price = { mode = 'multiplier', base = 100, mult = 2 },
},
mask = {
enabled = true,
price = { mode = 'table', map = { [12] = 900, [45] = 1500 } },
},
}سعر موحّد يغطي 1615 تصميمًا، ومُعامِل لكل مجموعة DLC يتكفّل بالباقي، فلا تسعّر الكتالوج يدويًا أبدًا. والإزالة بالليزر تحتفظ بسعرها ولا تُضرَب بأي مُعامِل.
-- config/tattoo.lua
Config.Tattoo.Prices = {
flat = 1000,
reset = 3000, -- laser removal, per tattoo removed
}
Config.Tattoo.CollectionMultipliers = {
multiplayer_overlays = 0.80, -- base game, cheaper
mpHipster_overlays = 0.85,
-- anything not listed stays at 1.0
}الكاميرا تدور حول الرأس، فقيم الارتفاع نفسها تصلح للاعب واقفًا وجالسًا. والإضاءة وعمق الميدان هما ما يجعل الشخصية موضوع اللقطة لا مجرد ped في غرفة مظلمة.
-- config/config.lua
Config.Camera = {
Sensitivity = 1.0, -- rotation, zoom and height, clamped to 0.1 - 5.0
InvertY = false,
}
Config.UI = {
Tutorial = true,
Timecycle = 'casino_brightroom',
TimecycleFadeMs = 400,
DofStrength = 0.1,
}السكربت يطلق حدث client عند فتح القائمة وإغلاقها، للوحدات الثلاث. استمع إليه بدل أن تفحص الحالة في حلقة، فهو الإشارة نفسها التي تستعملها معالجة الـ HUD المدمجة.
AddEventHandler('avenida_skin:client:uiStateChanged', function(hidden)
if hidden then
exports['myhud']:hide()
else
exports['myhud']:show()
end
end)استكشاف الأخطاء
- الحزمة إن أردت الثلاثة، فهي أرخص، وشيء واحد تثبّته وتحدّثه. والسكربتات المنفصلة إن أردت واحدًا أو اثنين، أو إن كان لديك متجر ملابس يرضيك. والممنوع دائمًا هو تشغيل الحزمة والسكربتات المنفصلة معًا: عندها يضع كل منهما علامته الخاصة ويكتب نسخته الخاصة من الشخصية نفسها. والسكربت يكتشف التداخل ويقوله في الكونسول عند الإقلاع.
- اضبط `Config.Clothes = false` في `Config.Modules`. الوحدة المطفأة لا تسجّل شيئًا: لا علامة، ولا نقطة تفاعل، ولا خيط، وإعدادها لا يُقرأ أصلًا. وتستطيع أيضًا شراء السكربتين المنفصلين، فالفارق في السعر لا في ما يعمل.
- نعم. تقرأ وتكتب شكل الشخصية نفسه الذي تستعمله السكربتات المنفصلة، وتمر عبر جسر المظهر نفسه، فتبقى qb-clothing وillenium-appearance وfivem-appearance وesx_skin تعمل كما هي، وكذلك الجدول الخاص بالسكربت. والشخصيات القائمة يُبنى سجلها مما ترتديه، بما في ذلك سجل ملكية الملابس.
- QBCore وESX وvRP، إضافة إلى وضع standalone لا يحتاج إلى أي فريمورك، وفرع `custom` في `bridges/framework.lua` لأي شيء آخر. الكشف يعمل عند الإقلاع ويجسّ الـ export الحقيقي. أما Qbox وox_core فلا فرع مخصص لهما: يمران عبر مسار standalone أو custom، لا عبر هدف مُختبَر.
- نعم، حيثما يهم الأمر: `ox_lib` للإشعارات، و`ox_target` لنافذة التفاعل، و`ox_inventory` لتحويل الملابس إلى أغراض ولحاويات الحقائب، وoxmysql بوصفه الاعتمادية الوحيدة التي لا غنى عنها. ولا شيء منها إلزامي عدا oxmysql.
- vRP يخزّن مكونات الملابس والإكسسوارات، ولا شيء غير ذلك. ولا حقل فيه لطبقات الرأس، ولا لملامح الوجه، ولا للون الشعر، ولا للون العينين، ولا لزينة الـ ped، لذلك تُحفَظ الشخصية كاملة على vRP في جدول هذا السكربت. ومع ذلك يبقى vRP يحصل على الشق الخاص بالملابس، ويُحدَّث بعد أي تغيير. أما vRP 2 وvRP 0.5 فغير مدعومين، والسكربت يقول ذلك في الكونسول بدل أن يسيء التصرف بصمت.
- راجع `Config.Clothes.RequireOwnership`. السجل يبني بيانات الشخصية مما ترتديه أصلًا أول مرة يراها، فتفعيله لا يسحب خزانة أحد. أما ما يرفضه فهو كتابة لقطعة بلا شراء خلفها، وهذا تحديدًا ما يرسله عميل معدَّل.
- 0.00ms. نقاط التفاعل تتقاسم خيطًا واحدًا يهبط إلى ثانية حين لا يكون أحد قريبًا، والعلامات تُنشأ مرة واحدة، وكل خيط جلسة يُقتَل عند الخروج. والوحدة المطفأة لا تكلف شيئًا، إذ لا يعمل منها سطر واحد.
ماذا يقول المشترون
5.0 تقييم موثّق واحد
Glades Ravage-rp.fr Excellent resource — and genuinely open where it matters Every point where this touches the rest of the server goes through one readable file in bridges/. Each one documents what it detects, what it writes, and what each target actually costs you. That meant I could plug the clothing store into an inventory system it was never designed for — clothing as real items in dedicated equipment slots — without touching a single encrypted file. I wrapped the inventory bridge, translated names and metadata on the way through, and everything else kept working.
مميز Avenida TeamBarber shop
صالون حلاقة مُخرَج كمشهد سينمائي، بكاميرا يتحكم بها اللاعب فعلًا. الشخصية تدخل وتجلس، ويبدأ الحلاق عمله بينما تُؤطّر الرأسَ كاميرا مدارية. الشعر واللحية وطبقات الوجه ومجموعة تفاصيل البشرة كاملة، تراها معاينةً حية قبل أن تدفع دولارًا واحدًا.
مميز Avenida TeamClothing store
متجر ملابس بأطقم محفوظة، وخزائن للشركات، ومحرر يسعّر الكتالوج من داخل اللعبة. كل مكوّنات الملابس وإكسسواراتها، تشتريها قطعة قطعة أو طقمًا كاملًا، مع سجل على السيرفر يمنع أحدًا من ارتداء ما لم يدفع ثمنه.
مميز Avenida TeamTattoo shop
كتالوج وشوم اللعبة كاملًا، مع سلة شراء وكرسي تجلس عليه فعلًا. 1615 تصميمًا موزّعة على 26 مجموعة DLC، تراها مباشرة على شخصيتك وأنت تضيفها، وتدفع ثمنها دفعة واحدة. إزالة بالليزر مشمولة، ورسّام يدخل ويؤدي العمل.