# الإعداد

توجد إعدادات هذا الدليل في `config.lua`. عدّل الحقول في الجداول الموجودة وأعد تشغيل المورد لتطبيق التغييرات.

## القيم الأولية والإعدادات المحفوظة

تُستخدم المتاجر وقواعد التقدم الموجودة في الملف كإعداد أولي. بعد حفظها من لوحة الإدارة، تظل قيمها الفعلية محفوظة بين مرات إعادة التشغيل. تعديلها في الملف لا يستبدل تلقائيًا القيم المحفوظة؛ استخدم اللوحة لتحديث المتاجر والقواعد وخيارات النظام التي سبق تهيئتها.

تُضبط اللغة وموفّرو الخدمات والجسور والكاميرا وملابس المعاينة في الملف. وتُشرح المصادر والوشوم في [الكتالوج والحزم](https://docs.cxgstudios.com/docs/ar/01-cxg-tattoos/04-catalogo.md).

## اللغة العامة

```lua
Config.Locale = 'es'
Config.LocaleFallback = 'en'
```

يحدد `Locale` لغة الواجهة والرسائل لجميع اللاعبين. أعد تشغيل المورد بعد تغييره؛ ولا يستطيع اللاعب تغييره من NUI. أما `LocaleFallback` فهي لغة الرجوع الاحتياطية.

اللغات المضمنة: `en` و`es` و`pt-BR` و`fr` و`de` و`it` و`pl` و`ru` و`tr` و`th` و`ar`. تستخدم الواجهة العربية اتجاه القراءة من اليمين إلى اليسار.

## نظام الهوية

يضبط `Config.Identity` التكامل مع نظام الهوية في الخادم. ويحدد كيفية الحصول على معرّف الشخصية أو الحساب الذي يستخدمه المورد لحفظ الوشوم ونقاط XP والمخططات واستعادتها.

```lua
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
```

| الوضع | الاستخدام |
| --- | --- |
| `auto` | في Qbox، يستخدم معرّف الشخصية النشطة (`citizenid`). وفي الخوادم الأخرى، يستخدم معرّف FiveM الثابت. |
| `qbx_character` | يستخدم صراحةً معرّف شخصية Qbox (`citizenid`). |
| `license` | يستخدم ترخيص FiveM معرّفًا للحساب. تتشارك شخصيات ذلك الحساب الوشوم وXP والمخططات. |

اختر الوضع قبل إتاحة المورد للاعبين. تغييره لاحقًا يغيّر الهوية التي تُطلب بها البيانات، ولا ينقل البيانات تلقائيًا بين الأوضاع. لا تختر `license` إذا كنت تريد فصل الوشوم بين شخصيات الحساب الواحد.

## إشعار التفاعل

```lua
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
```

| الحقل | القيم أو الأثر |
| --- | --- |
| `enabled` | يعرض إشعار التفاعل للمتاجر ذات العلامة أو يخفيه. |
| `provider` | `auto` أو `ox_lib` أو `native`. يستخدم `auto` واجهة TextUI إن كانت متاحة، وإلا فيعرض الإشعار الأصلي. |
| `position` | `left-center` أو `right-center` أو `top-center` أو `bottom-center`، وذلك لواجهة TextUI. |
| `style` | الألوان والحدود والظل والخط والمسافة الداخلية لواجهة TextUI. |

مثال على التنسيق:

```lua
Config.HelpText.style.backgroundColor = '#172328'
Config.HelpText.style.color = '#eef3f3'
Config.HelpText.style.fontSize = '15px'
```

## المتاجر الأولية

يتضمن `Config.Shops` ستة مواقع. لتغيير مدخل أولي، حافظ على بنيته:

```lua
{
    label = 'Tattoo Studio',
    coords = vector3(322.62, 180.34, 103.59),
    heading = 156.2,
    drawDistance = 10.0,
    interactDistance = 1.5,
    shopRadius = 4.0,
    marker = {
        type = 1,
        scale = vector3(1.0, 1.0, 1.0),
        color = { r = 255, g = 100, b = 0, a = 100 },
    },
},
```

| الحقل | الاستخدام |
| --- | --- |
| `label` | اسم المتجر. |
| `coords`, `heading` | الموقع والاتجاه. |
| `drawDistance` | مسافة عرض العلامة. |
| `interactDistance` | مسافة التفاعل. |
| `shopRadius` | نصف القطر الذي يُسمح داخله بتنفيذ عملية المتجر. |
| `marker.type`, `scale`, `color` | مظهر العلامة. |

اجعل `interactDistance` ضمن `shopRadius`. وبالنسبة إلى المتاجر المنشأة بالفعل، استخدم قسم المتاجر في لوحة الإدارة؛ فلا تتوقع أن يعيد تعديل الملف إنشاء تلك المتاجر أو استبدالها.

## المستويات وXP

| إعداد `Config.Levels` | القيمة الأولية | الاستخدام |
| --- | --- | --- |
| `enabled` | `true` | يفعّل التقدم والمتطلبات والخصومات. |
| `maxLevel` | `10` | الحد الأقصى للمستوى. |
| `defaultXpPerTattoo` | `10` | نقاط XP للوشم الذي لا يحدد قيمة `Xp`. |
| `thresholds` | المستويات من 1 إلى 10 | إجمالي XP المطلوب لكل مستوى. |
| `formula.base`, `formula.exponent` | `100`, `1.5` | معاملا الصيغة البديلة لحساب عتبات المستويات. |
| `zoneRequirements` | `1` لكل منطقة | متطلب المنطقة عند عدم وجود متطلب خاص بالوشم. |
| `discounts` | مفعلة، `3` لكل مستوى، والحد الأقصى `25` | الخصم بالنسبة المئوية. |
| `blueprintSlots` | أساس `5` وزيادة `3` | خانات المخططات بحسب المستوى. |

يجب أن تبدأ العتبات بالمستوى 1 مع 0 XP، ثم تتتابع من دون تخطٍ مع زيادة XP المطلوبة:

```lua
Config.Levels.thresholds = {
    { level = 1, xpRequired = 0 },
    { level = 2, xpRequired = 100 },
    { level = 3, xpRequired = 250 },
}
Config.Levels.maxLevel = 3
```

يُحسب الخصم بضرب المستوى في `perLevel`، مع تقييده بقيمة `maxDiscount`. وفق القيم الأولية، يحصل المستوى 5 على خصم 15%، والحد الأقصى للخصم هو 25%.

تُحسب الخانات بضرب المستوى ناقص 1 في `perLevel`، ثم إضافة `base`. وفق الإعداد الأولي، يتوفر للمستوى 1 عدد 5 خانات، وللمستوى 5 عدد 17 خانة.

تكون الأولوية لقيمة `RequiredLevel` المحددة للوشم في الكتالوج على متطلب المنطقة. راجع [حقول الكتالوج](https://docs.cxgstudios.com/docs/ar/01-cxg-tattoos/04-catalogo.md).

عند تعطيل المستويات، لا تُطبّق قيود المستوى أو XP أو الخصومات؛ ويُستخدم `Config.Blueprints.maxPerPlayer` حدًا للمخططات. لا يؤدي تعطيل النظام إلى حذف XP المحفوظة. وفي التثبيتات التي سبق تهيئتها، حدّث أيضًا الحالة الفعلية من لوحة الإدارة.

## المخططات

تحفظ المخططات مجموعات من الوشوم وتتيح مشاركتها باستخدام رموز. وتوجد حدودها الأولية في `Config.Blueprints`:

| الحقل | القيمة الأولية | الاستخدام |
| --- | --- | --- |
| `enabled` | `true` | يفعّل النظام. |
| `codePrefix` | `INK` | بادئة الرموز، مثل `INK-A3X9`. |
| `codeLength` | `4` | عدد الأحرف بعد البادئة. |
| `maxPerPlayer` | `20` | عدد الخانات المستخدمة عند عدم تفعيل التقدم. |
| `maxTattoosPerBlueprint` | `50` | الحد الأقصى للوشوم في المجموعة. |
| `nameMaxLength` | `60` | الحد الأقصى لعدد أحرف الاسم. |

يجهّز استرداد الرمز الوشوم ضمن خطوات الشراء؛ لكنه لا يمنح عملية شراء مجانية. اضبط الاقتصاد في [التكاملات](https://docs.cxgstudios.com/docs/ar/01-cxg-tattoos/05-integraciones.md).

## الكاميرا

| الجدول | ما يتحكم به |
| --- | --- |
| `CameraOffsets` | العظمة المستهدفة والمسافة والإزاحات ومجال الرؤية لكل منطقة. |
| `CameraFraming` | التكوين العام وإزاحة نقطة التركيز. |
| `CameraFramingBySide` | إعدادات إضافية للمشهدين الأمامي والخلفي. |
| `CameraManualControls` | عناصر التحكم اليدوية وخطوات الحركة والدوران والتقريب وحدودها. |

المناطق المضبوطة هي `ZONE_HEAD` و`ZONE_TORSO` و`ZONE_LEFT_ARM` و`ZONE_RIGHT_ARM` و`ZONE_LEFT_LEG` و`ZONE_RIGHT_LEG`.

أمثلة على تغييرات محددة:

```lua
Config.CameraOffsets['ZONE_TORSO'].fov = 50.0
Config.CameraFraming.screenOffset = 0.35
Config.CameraManualControls.enabled = true
Config.CameraManualControls.step = 0.035
Config.CameraManualControls.zoomStep = 0.08
```

تُزيح قيمة `screenOffset` الموجبة الشخصية إلى اليسار لإفساح المجال للقائمة الموجودة على اليمين. يغيّر `lookAtOffsetX/Y/Z` نقطة التركيز؛ أما `camOffsetX/Y/Z` في إعدادات كل جانب فيغيّر موضع الكاميرا.

في عناصر التحكم اليدوية، تضبط `horizontalDegrees` و`rotationStepDegrees` الدوران. وتحدّ `ranges.y/z` و`radialClamp` و`maxDistance` من الإزاحات. يضبط `zoomCompositionMinBias` توسيط الصورة عند التقريب. غيّر قيمة واحدة في كل مرة واختبر المناطق الست بشخصيات ذكورية وأنثوية.

## ملابس المعاينة

يتيح `Config.PreviewOutfit` كشف مناطق الوشم أثناء فتح الواجهة:

```lua
Config.PreviewOutfit.enabled = true
Config.PreviewOutfit.useDefaultVariation = false
Config.PreviewOutfit.presets['mp_m_freemode_01'].components[11] = {
    drawable = 15,
    texture = 0,
}
```

تراعي الإعدادات المسبقة المضمنة `mp_m_freemode_01` و`mp_f_freemode_01`. ويحدد كل مكوّن قيمتي `drawable` و`texture`؛ أما `clearProps` فيزيل الإكسسوارات أثناء المعاينة. اضبط الفهارس لتناسب الملابس المثبتة في خادمك. أبقِ `useDefaultVariation = false` إذا كنت تريد تطبيق مكونات الإعداد المسبق فقط من دون إعادة ضبط المظهر كليًا.

## الأذونات والاقتصاد وQbox

تجد شرح `Config.Permissions` و`Config.AdminCommand` و`Config.Purchases` و`Config.QbxMulticharacterPreview` في [التكاملات](https://docs.cxgstudios.com/docs/ar/01-cxg-tattoos/05-integraciones.md). اضبط الأسماء الفعلية لمواردك إذا كانت تختلف عن الأسماء الافتراضية.

## التشخيص

يفعّل `Config.Debug` التشخيص العام. ويتيح `Config.Permissions.debug` مراجعة قرارات الوصول. أبقهما معطلين بعد الانتهاء.

يكون `Config.DebugCommands.clientTattooCommand` معطلًا في البداية. لا تفعّل هذا الأمر المرئي إلا للاختبار: فهو لا يحفظ الوشوم ولا يحل محل الشراء.

[تابع إلى الكتالوج](https://docs.cxgstudios.com/docs/ar/01-cxg-tattoos/04-catalogo.md).

