Clothing store
متجر ملابس بأطقم محفوظة، وخزائن للشركات، ومحرر يسعّر الكتالوج من داخل اللعبة. كل مكوّنات الملابس وإكسسواراتها، تشتريها قطعة قطعة أو طقمًا كاملًا، مع سجل على السيرفر يمنع أحدًا من ارتداء ما لم يدفع ثمنه.
ما الذي يفعله
سعّر الكتالوج دون لمس أي ملف
لوحة إدارة داخل المتجر نفسه. اضغط على قطعة وحدّد سعرها، أو أخفِها، أو احجزها لوظيفة، أو امنح حقيبةً سعة تخزين حقيقية، أو أعلن ارتباطًا بين المكوّنات، أو أخفِ لونًا بعينه من ألوان القطعة. وكل ذلك يُكتب في `config/clothes_overrides.lua` ويبقى بعد إعادة التشغيل. لا تحرير ملفات، ولا توقّف للسيرفر، ولا restart لتغيير سعر.
المواصفات
التقنية
كل ما
تحصل عليه
-
خمسة عشر ملف لغة، مملوءة عند التسليم
لاعبوك يقرأون السكربت بلغتهم منذ أول تشغيل، والملفات خارج الـ escrow فتستطيع تصحيح أي سطر أثناء التشغيل. ملاحظة صريحة: هي مترجمة ومراجعة من طرفنا، لا مدققة من ناطقين أصليين للغات الخمس عشرة. أخبرنا بما يبدو ركيكًا في لغتك ونصححه.
-
ثمانية bridges، ملف لكل واحد
الفريمورك والإشعارات والتفاعل والملابس والمخزون والزينة ولقطات الشاشة والتوافق. كل ملف يوثّق أهدافه، وما يكتشفه، وما يكلفك كل هدف. والكشف يجسّ الـ export الحقيقي لا حالة الريسورس، فالـ export المُعاد تسميته يتراجع بهدوء بدل أن ينهار عند الإقلاع.
-
الكتالوج كله يبقى مفتوحًا
المتاجر والأقسام والأسعار والضريبة والخصم، والـ drawables المحجوبة، وقوائم VIP، والتعديلات التي يكتبها المحرر داخل اللعبة. ملفات `config/*.lua` و`locales/*.lua` و`bridges/*.lua` خارج الـ escrow وقابلة للتعديل أثناء التشغيل.
-
تقرير تثبيت تلصقه في الدعم
`/avenida_clotheshops_check` يطبع أي bridge اختير لكل فئة، وهل الجداول والأعمدة موجودة، وأي نسخة لعبة يشغّلها سيرفرك فعلًا. وهو يجيب عن أغلب أسئلة التكامل قبل أن تضطر إلى طرحها.
دليل الدمج
التثبيت
-
ضع السكربت
حمّل السكربت من حسابك على Tebex، وانسخ مجلد
avenida_clotheshops/إلى مجلدresources، وأضفensure avenida_clotheshopsإلى إعداد السيرفر بعدensure oxmysql. -
نفّذ ملف SQL
نفّذ القسم [A] من
INSTALL.sqlعلى قاعدة بياناتك. القسم [B] مشروط، ورأس الملف يقول متى تحتاجه. -
امنح صلاحيات الإدارة
أضف
add_ace group.admin avenida_clotheshops.admin allowوadd_ace group.admin avenida_clotheshops.vip allowإلى إعداد السيرفر. الأولى تفتح محرر الكتالوج، والثانية تفتح ما تضعه خلف قائمة الـ VIP. -
سعّر الكتالوج من داخل اللعبة
اضبط
Config.DevMode.Enabled = true، وادخل متجرًا وافتح المحرر. حدّد الأسعار، وأخفِ ما لا تبيعه، واحجز ما يخص وظيفة بعينها. وكل ذلك يستقر فيconfig/clothes_overrides.lua. وأطفئ DevMode عند الانتهاء، مع أن كل حفظ يُتحقَّق منه مجددًا على السيرفر. -
تحقق من التكاملات
اضبط
Config.Debug = true، وأعد التشغيل، واقرأ الكونسول: سطر لكل فئة bridge يسمّي الهدف الذي اختير. وConfig.Debugلا يتحكم إلا بالسجلات، وللمحرر مفتاحه الخاص.
البدء السريع
تسعير قسم بثلاث طرق
كل متجر يعلن أقسامه، وكل قسم يعلن نمط تسعيره. سعر موحّد لقسم بأكمله، أو مُعامِل يجعل الـ 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 } },
-- only these drawables are offered
whitelist = { 12, 45, 51 },
},
}مرجع الـ API
exports عامة مرتّبة حسب المجال. كل صف يعرض توقيع الاستدعاء وما يفعله، لا كيف يفعله.
Client
GetSkinData
exports['avenida_clotheshops']:GetSkinData()الزيّ الذي يرتديه اللاعب، مكوّنًا بمكوّن، بما في ذلك الـ props. وهذا ما يكتبه المتجر عند الشراء، فيبقى دائمًا متوافقًا مع ما تعرضه خزانة الملابس.
ApplySkin
exports['avenida_clotheshops']:ApplySkin(data, ped)يطبّق مظهرًا كاملًا على ped. وتطبيق طقم يفرّغ خانة الزينة، فيعيد هذا الاستدعاء بعده عمل الحلاق ورسّام الوشم بدل أن يترك الجلد عاريًا.
ApplyClothing
exports['avenida_clotheshops']:ApplyClothing(data, ped, temporary)يغيّر الملابس ولا يمسّ شيئًا غيرها. ومع ضبط
temporaryعلى true يبقى الطقم للجلسة الحالية فقط، وهو السلوك المطلوب من زيّ توزّعه وظيفة.
Server
GetBagStorage
exports['avenida_clotheshops']:GetBagStorage(sex, drawable) --> { weight, slots } | nilالسعة التي يمنحها drawable الحقيبة، وزنًا وخانات، أو nil إذا كان هذا الـ drawable لا يحمل شيئًا. استدعِها من ريسورس المخزون لديك كي تحمل الحقيبة المشتراة شيئًا فعلًا.
وصفات
أمثلة جاهزة للنسخ واللصق للحالات الشائعة. ضعها في موردك، وعدّل القيم، وانشرها.
المتجر مدخل واحد يحمل اسمه المعروض، وطريقة الدفع، ورمز العملة، وضريبة وخصمًا اختياريين على مجموع السلة، والأقسام التي يقدّمها. وثبّت المفتاح: فهو معرّف المتجر المحفوظ داخل الأطقم، وتغييره بعدما تسوّق فيه لاعبون يفسد بياناتهم.
-- config/clothes_shops.lua
Config.Clothes.Shops[22] = {
name = 'Ponsonbys - Rockford Hills',
payment = 'bank',
currency = '$',
tax = 0.20, -- +20% on the cart
discount = 0.00,
outfitMode = true,
blip = { sprite = 73, color = 4, scale = 0.7, coords = vec3(-708.2, -152.2, 37.4) },
categories = {
tops = { enabled = true, price = { mode = 'fixed', base = 900 } },
shoes = { enabled = true, price = { mode = 'fixed', base = 450 } },
},
}القطعة المقيَّدة مخفية عمّن لا يجتاز الشرط، فلا يرى المدني سترة الشرطة في الشبكة أصلًا. وخزائن الشركات تذهب أبعد من ذلك: المدير يحرّر قائمة مشتركة ويرتديها كل عضو دون دفع، وهو ما تحتاج إليه لمجنَّد في أول مناوبة.
-- config/clothes_overrides.lua, or write it from the in-game editor
Overrides['tops'] = {
[56] = { job = 'police', label = 'LSPD jacket' },
[12] = { hidden = true },
[31] = { restricted = true }, -- ACE permission
}السجل مفعّل افتراضيًا، وهو ما يمنع عميلًا معدَّلًا من ارتداء الكتالوج مجانًا. ولا تطفئه إلا إذا كان لديك ريسورس آخر يغيّر ملابس اللاعبين ويمنحهم قطعًا لم يشتروها، وتفضّل ألا تبني لهم سجلًا. والشخصيات القائمة يُبنى سجلها مما ترتديه، فتفعيله لاحقًا لا يسحب شيئًا.
-- config/clothes.lua
Config.Clothes.RequireOwnership = false
-- how far from a store the server still accepts a purchase
Config.Clothes.PurchaseRange = 30.0
-- saved outfits per character, enforced server side
Config.Clothes.MaxOutfits = 30
Config.Clothes.MaxOutfitsRestricted = 50تطبيق طقم كامل يمسح خانة الزينة في الـ ped، وهي مشتركة على مستوى السيرفر كله. فإذا كان سكربتك يغيّر ملابس لاعب، اقرأ أولًا ما يملكه هذا السكربت وأعِده بعد ذلك، وإلا ذهبت الوشوم وقاعدة الشعر مع التغيير.
local hairbase = exports['avenida_clotheshops']:GetHairbase()
local tattoos = exports['avenida_clotheshops']:GetTattoos()
-- your own clothing work here
if hairbase then
AddPedDecorationFromHashes(PlayerPedId(), hairbase.c, hairbase.t)
end
for _, dec in ipairs(tattoos) do
AddPedDecorationFromHashes(PlayerPedId(), dec.c, dec.t)
endاستكشاف الأخطاء
- راجع `Config.Clothes.RequireOwnership`. السجل يبني بيانات الشخصية مما ترتديه أصلًا أول مرة يراها، فتفعيله لا يسحب خزانة أحد. أما ما يرفضه فهو كتابة لقطعة بلا شراء خلفها، وهذا تحديدًا ما يرسله عميل معدَّل. وإذا كان لديك ريسورس يمنح اللاعبين قطعًا لم تُشترَ، فسجّل تلك المشتريات أو اضبط الخيار على false.
- يحتاج إلى أمرين معًا: صلاحية ACE باسم `avenida_clotheshops.admin`، و`Config.DevMode.Enabled = true`. أما `Config.Debug` فمفتاح آخر لا يتحكم إلا بالسجلات. وكل حفظ يُتحقَّق منه مجددًا على السيرفر، فمنح نفسك الصلاحية داخل اللعبة لا يكفي وحده.
- هذه GTA. اللعبة تكرر الـ drawable على عدة أرقام، ومعظم المتاجر تعرضها كلها. وهنا تُصفّى الـ drawables الوهمية، فإن بقي لديك تكرار فهو غالبًا حزمة ملابس تحمل الأصل نفسه مرتين. أخفِ الزائد من المحرر داخل اللعبة، فيستقر في `config/clothes_overrides.lua`.
- سلوك الشعر مُعلَن لكل قطعة، فالخوذة أو القناع الذي أضفته أنت لا قاعدة له بعد. اضبط سلوكه من محرر الكتالوج، وتذكّر أن للاعب رأيًا هنا: من يريد الاحتفاظ بتسريحته يستطيع قول ذلك، واختياره يتقدّم على القصّ التلقائي.
- تحتاج إلى screenshot-basic، ولهذا الغرض فقط. وهو التكامل الاختياري الوحيد الذي يلاحظ اللاعب غيابه في جدول المتطلبات: من دونه تعمل الأطقم المحفوظة كما هي تمامًا، لكن القائمة تعرض أسماء بدل صور.
- QBCore وESX وvRP، إضافة إلى وضع standalone لا يحتاج إلى أي فريمورك، وفرع `custom` في `bridges/framework.lua` لأي شيء آخر. الكشف يعمل عند الإقلاع ويجسّ الـ export الحقيقي. أما Qbox وox_core فلا فرع مخصص لهما: يمران عبر مسار standalone أو custom، لا عبر هدف مُختبَر.
- نعم، لهذا بُنيت. وهذا السكربت أكثرها تدخلًا، لأن تطبيق طقم يمسح خانة الزينة، فهو يعيد ما يملكه الآخران بعد كل تغيير. والممنوع هو تشغيل السكربتات المنفصلة وحزمة `avenida_skin` معًا. والسكربت يكتشف التداخل ويقوله في الكونسول عند الإقلاع.
- 0.00ms. نقاط التفاعل تتقاسم خيطًا واحدًا يهبط إلى ثانية حين لا يكون أحد قريبًا، والعلامات تُنشأ مرة واحدة، وكل خيط جلسة يُقتَل عند الخروج. أما مهلة المعاينة فلا توجد إلا والقائمة مفتوحة، ويمكن ضبطها للأجهزة الأضعف.
ماذا يقول المشترون
4.8 5 تقييمات موثّقة
Haldor brilliant scripts and great support 10 /10
BigOppGrimeyy GangWrld NYC 10/10 was having a problem and these guys ain't stop till it was fix customer service is great definitely buying again
00hugi Super scripts and even better and fast support. Thanks a lot!!
reapersrow Amazing support from the developers and a smooth script!
Necro Huston RP Best service Ive ever received! He even helped me fix problems not associated with his script!
مميز Avenida TeamCore Skin (3 in 1)
صالون حلاقة واستوديو وشم ومتجر ملابس في سكربت FiveM واحد. 1615 وشمًا، وكل مكوّنات الملابس وإكسسواراتها، ومجموعة الرأس والبشرة كاملة، موزّعة على 36 متجرًا. واجهة واحدة، وكاميرا واحدة، ومسار شراء واحد، وشيء واحد تثبّته على ESX أو QBCore أو vRP أو من دون فريمورك.
مميز Avenida TeamBarber shop
صالون حلاقة مُخرَج كمشهد سينمائي، بكاميرا يتحكم بها اللاعب فعلًا. الشخصية تدخل وتجلس، ويبدأ الحلاق عمله بينما تُؤطّر الرأسَ كاميرا مدارية. الشعر واللحية وطبقات الوجه ومجموعة تفاصيل البشرة كاملة، تراها معاينةً حية قبل أن تدفع دولارًا واحدًا.
مميز Avenida TeamTattoo shop
كتالوج وشوم اللعبة كاملًا، مع سلة شراء وكرسي تجلس عليه فعلًا. 1615 تصميمًا موزّعة على 26 مجموعة DLC، تراها مباشرة على شخصيتك وأنت تضيفها، وتدفع ثمنها دفعة واحدة. إزالة بالليزر مشمولة، ورسّام يدخل ويؤدي العمل.