Skip to content

الإعدادات ​

كل إعدادات اللعب موجودة في config.lua. أعد تشغيل السكربت بعد أي تعديل. معرّفات الأدمن ليست في هذا الملف، بل في server/server.lua (راجع لوحة الأدمن).

TIP

الزونات والباتل باس لها صفحات خاصة: الزونات و الباتل باس.

عام ​

الإعدادالافتراضيالوصف
Config.Debugfalseيطبع رسائل التصحيح. اتركه مطفأ في السيرفر الرسمي.
Config.NotificationDuplicateWindowMs1500الإشعارات المتطابقة خلال هذه المدة تظهر مرة واحدة.

الأنظمة ​

Config.Systems يحدد الريسورسات التي يستخدمها MG-Contest. ضع القيمة 'auto' ليختار أول ريسورس شغّال من قائمة الأولوية.

lua
Config.Systems = {
    Framework = 'qbx_core',      -- 'qbx_core' | 'qb-core' | 'auto'
    Inventory = 'ox_inventory',  -- 'ox_inventory' | 'qb-inventory' | 'auto'
    Target = 'auto',             -- 'interact' | 'ox_target' | 'qb-target' | 'auto'
    Notify = 'script',           -- 'script' (built-in NUI) | 'ox_lib' | 'framework'
    Phone = 'lb-phone',          -- 'lb-phone' | 'npwd' | 'qb-phone'
    Medical = 'auto',            -- 'qbx_medical' | 'qbx_ambulancejob' | 'qb-ambulancejob' | 'qb-hospital' | 'auto'
    Database = 'auto',           -- only 'oxmysql' is supported
    InventoryImageBase = 'auto', -- image path for battle pass rewards
    FrameworkPriority = { 'qbx_core', 'qb-core' },
    InventoryPriority = { 'ox_inventory', 'qb-inventory' },
    TargetPriority = { 'interact', 'ox_target', 'qb-target' },
    NotifyPriority = { 'script' },
    PhonePriority = { 'lb-phone' },
    MedicalPriority = { 'qbx_medical', 'qbx_ambulancejob', 'qb-ambulancejob', 'qb-hospital' },
    DatabasePriority = { 'oxmysql' },
}

الاختصارات المقبولة: qbx و qb و ox و lb و nui.

إيفنتات الإنعاش ​

عند نهاية الكونتست، يتم إنعاش اللاعبين الميتين عن طريق سكربت الإسعاف. إذا كنت تستخدم نسخة معدّلة من qb-hospital، حدد إيفنت الإنعاش هنا:

lua
Config.MedicalReviveEvents = {
    ['qb-hospital'] = 'hospital:client:Revive',
}

سكربتات QBX تستخدم qbx_medical:client:playerRevived، و qb-ambulancejob يستخدم hospital:client:Revive.

الكلانات ​

الإعدادالافتراضيالوصف
Config.MaxClanMembers15الحد الأقصى لعدد أعضاء الكلان.
Config.ClanCreationCost25000سعر إنشاء الكلان.
Config.MinClanNameLength3أقل طول لاسم الكلان.
Config.MaxClanNameLength20أكبر طول لاسم الكلان.
Config.DefaultElo0نقاط ELO للكلان الجديد.
Config.LeaderboardWinStreakMinimum2تظهر شارة سلسلة الفوز في لوحة الصدارة ابتداءً من هذا العدد من الانتصارات المتتالية.

INFO

عدد خانات الأعضاء الفعلي يعتمد أيضًا على مستوى الكلان في الباتل باس. راجع خانات الكلان.

رتب الكلان ​

lua
Config.ClanRanks = {
    { name = 'Leader',   level = 4, canInvite = true,  canKick = true,  canPromote = true },
    { name = 'CoLeader', level = 3, canInvite = true,  canKick = true,  canPromote = true },
    { name = 'Manager',  level = 2, canInvite = true,  canKick = true,  canPromote = false },
    { name = 'Member',   level = 1, canInvite = false, canKick = false, canPromote = false },
}

كلما زاد level كانت الرتبة أعلى. القيم canInvite و canKick و canPromote تحدد ما تستطيع كل رتبة فعله من صفحة الكلان.

فلترة الأسماء ​

الإعدادالوصف
Config.ProfanityFilterEnabledيفعّل فلتر الكلمات على أسماء الكلانات.
Config.ProfanityWordsكلمات تُرفض في أي مكان من الاسم.
Config.BlacklistedClanNamesأسماء محجوزة مثل admin و staff و discord و .gg/.

رتب ELO ​

رتبة الكلان هي أعلى رتبة تكون قيمة min فيها أقل من أو تساوي نقاط ELO للكلان.

Unranked0
Bronze500
Silver1,000
Gold2,000
Platinum3,500
Diamond5,000
Master7,500
Legend10,000
lua
Config.EloRanks = {
    { name = 'Unranked', min = 0,     color = '#808080', image = 'img/unranked.png' },
    { name = 'Bronze',   min = 500,   color = '#cd7f32', image = 'img/bronze.png' },
    -- ...
    { name = 'Legend',   min = 10000, color = '#ff2222', image = 'img/legend.png' },
}

الصور تُحمّل من html/img/. اجعل القائمة مرتبة حسب min.

تشغيل وإيقاف المميزات ​

الإعدادالافتراضيالوصف
Config.EnableWarCooldownBlocktrueيمنع بدء كونتست إذا كان هناك كونتست مجدول قريب.
Config.BlockWarBeforeContestMinutes0كم دقيقة قبل الكونتست المجدول يبدأ المنع.
Config.EnableSingleContesttrueكونتست واحد فقط يعمل في السيرفر في نفس الوقت.
Config.EnableZoneNameDisplaytrueيُظهر أسماء أعضاء فريقك فوق رؤوسهم داخل الزون.
Config.EnablePerZoneDurationtrueيستخدم duration الخاص بكل زون بدل Config.ContestDuration.
Config.EnableEdgeRespawntrueالرسبون في نقاط عشوائية على أطراف الزون.
Config.EnableResultUItrueيُظهر منصة النتائج عند نهاية الكونتست.
Config.ResultUIDurationSeconds5مدة بقاء منصة النتائج على الشاشة.
Config.RankUpUIDelaySeconds2التأخير قبل أنيميشن ترقية الرتبة.
Config.KillFeedEnabledfalseيُظهر سجل القتل أثناء الكونتست.

الكونتستات ​

الإعدادالافتراضيالوصف
Config.ContestDuration600مدة الكونتست بالثواني، تُستخدم عند إيقاف مدة كل زون.
Config.ContestCooldown7200فترة الانتظار لكل زون بين الكونتستات، بالثواني.
Config.ContestAutoStarttrueيبدأ الكونتستات تلقائيًا في الأوقات المجدولة.
Config.ContestScoreSyncIntervalSeconds30كل كم ثانية تُحفظ النقاط في قاعدة البيانات.
Config.ContestScoreBroadcastDelayMs500يجمّع تحديثات النقاط المرسلة للاعبين.
Config.ZoneValidationBuffer15.0أمتار إضافية مسموحة عند تحقق السيرفر من وجود اللاعب داخل الزون.

الجدول ​

Config.ScheduledContests يحتوي أوقات البدء بنظام 24 ساعة حسب وقت السيرفر. اترك فراغات حول أوقات ريستارت السيرفر.

lua
Config.ScheduledContests = {
    { hour = 12, minute = 0 },
    { hour = 12, minute = 30 },
    -- Restart 3:00PM
    { hour = 15, minute = 30 },
    -- ...
}

التصويت على الخريطة ​

قبل كل كونتست مجدول، يصوّت اللاعبون على الزون الذي سيُلعب.

lua
Config.MapVoting = {
    Enabled = true,
    StartsBeforeContestSeconds = 300, -- voting opens 5 minutes before
    AllowVoteChanges = true,
    VoteCooldownSeconds = 1,
}

النقاط ​

الإعدادالافتراضيالوصف
Config.PointsPerKill1نقاط الكونتست لكل قتل.
Config.PointsPerFlagCapture4نقاط الكونتست لكل التقاط علم.
Config.EloGainOnWin25نقاط ELO للكلان الفائز.
Config.EloLossOnDefeat15نقاط ELO تُخصم من الكلانات الخاسرة.
Config.EloPerKill2نقاط ELO لكل قتل.
Config.EloPerFlagCapture100ELO إضافي للفائز إذا كان العلم معه عند النهاية.

الموت والرسبون ​

الإعدادالافتراضيالوصف
Config.RespawnCooldown15الثواني قبل الإنعاش التلقائي.
Config.RespawnHealth200الصحة بعد الرسبون.
Config.RespawnArmor25الدرع بعد الرسبون.
Config.UseCustomSpawnstrueيستخدم spawnPoints الخاصة بالزون بدل أماكن عشوائية.
Config.SpawnProtectionTime3ثواني الحماية بعد الرسبون.
Config.SpawnProtectionFlashtrueيومض اللاعب أثناء الحماية.
Config.SpectatorEnabledtrueاللاعب الميت يشاهد الآخرين أثناء انتظار الرسبون. زر E يوقف المشاهدة.
Config.SpectatorKey170رقم الزر للتنقل بين اللاعبين في المشاهدة (F3).

بعد الكونتست ​

lua
-- Where players without a clan are sent when they enter an active zone
Config.NonClanTeleportCoords = vector4(-943.82, -764.73, 18.0, 181.42)

-- Random point players are sent to when a contest ends
Config.ContestEndSpawnPoints = {
    vector4(-934.72, -769.65, 17.97, 175.98),
    -- ...
}

NonClanTeleportCoords هو المكان الذي يُنقل إليه اللاعب بدون كلان إذا دخل زونًا نشطًا، و ContestEndSpawnPoints هي النقاط التي يُنقل إليها اللاعبون عشوائيًا عند نهاية الكونتست.

المركبات والأداء ​

الإعدادالافتراضيالوصف
Config.ForceDVtrueيحذف المركبات التي تدخل زونًا فيه كونتست نشط.
Config.ZoneIdleIntervalMs2500فترة فحص الزونات عندما يكون اللاعب بعيدًا عنها كلها.
Config.VehicleScanIntervalMs5000فترة فحص المركبات أثناء الكونتست.
Config.NameRefreshIntervalMs250سرعة تحديث أماكن أسماء الفريق.

القيم الأقل تستجيب أسرع لكنها تستهلك معالج اللاعب أكثر. القيم الافتراضية مناسبة لأغلب السيرفرات.

سلاسل القتل ​

lua
Config.KillStreaks = {
    { kills = 3,  label = 'Triple Kill', hpBonus = 50,  armorBonus = 25,  cashBonus = 200 },
    { kills = 5,  label = 'Rampage',     hpBonus = 50,  armorBonus = 50,  cashBonus = 500 },
    { kills = 7,  label = 'UnStoppable', hpBonus = 100, armorBonus = 50,  cashBonus = 1000 },
    { kills = 10, label = 'GodLike',     hpBonus = 100, armorBonus = 100, cashBonus = 2500 },
}

المكافأة على الرأس (Bounty) ​

الإعدادالافتراضيالوصف
Config.BountyEnabledtrueيفعّل نظام المكافأة.
Config.BountyCheckInterval60الثواني بين كل فحص.
Config.BountyMinKills5عدد القتل المطلوب ليصبح على اللاعب مكافأة.
Config.BountyCashReward2500الفلوس لمن يقتل الهدف.
Config.BountyEloReward10نقاط ELO لمن يقتل الهدف.

المكافآت ​

قيمة type في الفلوس هي اسم الحساب (cash أو bank)، و chance في الأيتمات نسبة مئوية.

lua
Config.Rewards = {
    ContestWin = {
        money = { min = 2500, max = 5000, type = 'cash' },
        items = {
            { item = 'pistol_ammo', amount = 100, chance = 75 },
        },
    },
    ContestParticipation = {
        money = { min = 200, max = 400, type = 'cash' },
        items = {
            { item = 'pistol_ammo', amount = 50, chance = 75 },
        },
    },
    KillReward = {
        money = 50,
        type = 'cash',
    },
}

التحكم بالدخول ​

الإعدادالافتراضيالوصف
Config.SpecialRoles{ 'maf' }مجموعات صلاحيات الفريموورك المسموح لها بالبقاء داخل الزونات النشطة بدون كلان (الإدارة والمشاهدين).

حدود لوحة الأدمن ​

الحد الأقصى لما يستطيع الأدمن منحه من اللوحة:

lua
Config.MafiaPanel = {
    MaxCashGrant = 1000000,
    MaxBattlePassXPGrant = 100000,
    MaxElo = 1000000,
    MaxContestTimeAdjustment = 1800, -- seconds
    MaxBanMinutes = 10080,           -- 7 days
}

التابلت ​

الإعدادالافتراضيالوصف
Config.LaptopItem'tablet'الأيتم الذي يفتح الواجهة. يجب أن يطابق الأيتم في الإنفنتوري.
Config.TabletUseCooldownMs1000فترة الانتظار بين كل استخدام للتابلت.
Config.TabletOpenDelayMs200تأخير في qb-inventory حتى يُغلق الإنفنتوري أولًا.

العلم والتارقت ​

الإعدادالافتراضيالوصف
Config.FlagModel`prop_gangflag_gangs`موديل العلم الافتراضي (مرفق مع السكربت).
Config.FlagCaptureRadius3.0المسافة من العلم لالتقاطه.
Config.TargetDistance2.5مسافة التفاعل بالتارقت.
Config.FlagTargetIcon'fas fa-flag'أيقونة خيار التارقت.
Config.FlagTargetLabel'Capture Flag'نص خيار التارقت.

ألوان الواجهة ​

التابلت والـ HUD وشريط الالتقاط ومؤقت الرسبون والإشعارات والنتائج كلها تستخدم لونًا رئيسيًا واحدًا:

lua
Config.UIColors = {
    primaryColor = { fallback = 'FF7CE900' },
}

الصيغ المقبولة:

  • #RRGGBB، مثال '#3A9188'
  • AARRGGBB، مثال 'FF7CE900'
  • اسم لون جاهز: gray و red و pink و grape و violet و indigo و blue و cyan و teal و green و lime و yellow و orange

إذا كانت القيمة فارغة أو خاطئة، يُستخدم اللون التركوازي #3A9188. ألوان الخلفية والنصوص ثابتة.

صور الديسكورد ​

صور أعضاء الكلان تأتي من الديسكورد. لتفعيلها، عدّل server/sv_discord.lua:

lua
Discord.BotToken = 'YOUR_BOT_TOKEN'
Discord.GuildID  = 'YOUR_GUILD_ID'

بدون توكن، تظهر صورة افتراضية.

DANGER

لا تشارك توكن البوت مع أحد أبدًا. اتركه فقط في هذا الملف الخاص بالسيرفر.

جميع سكربتات MG Development محمية. يُمنع إعادة توزيعها.