Skip to content

Configuration

التكوين (Configuration)

تكوين BUPA Chat مقسم عبر shared/config/*.lua. جميع هذه الملفات موجودة في escrow_ignore، لذا فهي تظل قابلة للتعديل بعد الشراء. تستعرض هذه الصفحة إعدادات العامة، العرض، الرموز التعبيرية (Emojis)، الحركات التعبيرية (Emotes)، والرسائل. الفئات وDiscord لهما صفحاتهما الخاصة.

العام (General) — general.lua

المفاتيح، الأصوات، القيم الافتراضية ونظام الأقنعة.

shared/config/general.lua
config.chatKey = "T"            -- مفتاح فتح إدخال الدردشة
config.chatVisibilityKey = ""    -- مفتاح تبديل وضع الرؤية ("" = غير مرتبطة)
config.clearCommand = { "clear", "temizle" } -- الأوامر التي تمسح سجل الدردشة
config.closeOnOutsideClick = true            -- النقر في الخارج يغلق نافذة الإدخال
config.typingSound = true                    -- صوت لوحة المفاتيح أثناء الكتابة
config.allowNoSlashCommands = true           -- تشغيل الأوامر بدون شرطة مائلة في البداية
config.uiUpdateRate = 24                      -- معدل تحديث الواجهة بالميلي ثانية لمؤشرات الرأس
config.defaultAddTag = true                   -- الوسيط الأول يصبح وسماً (tag) عند عدم توفير وسوم
config.showPrintsOnChat = false               -- عكس رسائل السيرفر (prints) داخل الدردشة
config.discordTagCacheTime = 60 * 60          -- تخزين رتب Discord المؤقت (بالثواني)
config.defaultChatCategory = "command"        -- علامة التبويب المركزة عند الفتح

رسائل الدخول / الخروج تتبع المتغيرات القياسية (convars):

lua
config.showJoinMessages = GetConvarInt('chat_showJoins', 1) == 0
config.showQuitMessages = GetConvarInt('chat_showQuits', 1) == 0

مصدر اسم مسؤول الدردشة (Admin)

فئة admin يمكنها إظهار مصدر اسم مختلف عن اسم الشخصية:

shared/config/general.lua
config.adminChatName = {
    mode = "discord",   -- "character" | "steam" | "discord"
    discord = {
        botToken = "",  -- مطلوب لوضع "discord"
        guildId  = "",
        cacheTime = 600,      -- ثواني التخزين المؤقت لللقب
        fallback  = "steam",  -- يُستخدم عندما يتعذر جلب اللقب
    },
}

الأسماء الواعية للأقنعة — config.noneMask

config.noneMask تُدرج عناصر الأقنعة القابلة للارتداء (بواسطة نموذج الـ ped، المجموعة، والمؤشر) التي يجب ألا تخفي اسم اللاعب في الدردشة. عندما يكون نشطاً، يتم عرض اسم اللاعب الملثم كـ Unknown (مجهول) ما لم تقم الفئة بتعيين showWearingMask = true، أو كان القناع المرتدى موجوداً في قائمة السماح هذه.

العرض (Display) — display.lua

الرسائل الخاصة (Private messages) — config.pm

shared/config/display.lua
config.pm = {
    active = true,
    command = { "pm", "dm" },     -- إرسال رسالة خاصة
    webhookKey = "chatMessage",   -- مفتاح سجل Discord
    maxLength = 300,
    sender   = { --[[ وسوم/لون/اسم/معرف/وظيفة/وسم_ديسكورد/ساعة لنسخة المرسل ]] },
    receiver = { --[[ نفس الهيكل لنسخة المستلم ]] },
}

لكل من المرسل والمستلم تنسيق مستقل (الوسوم، color, showPlayerName, showPlayerId, showPlayerJob, discordTag, showHour).

نص الرأس وعرض معرف اللاعب (Head text & player ID)

shared/config/display.lua
config.headTextMaxStack = 4      -- الحد الأقصى لنصوص الرأس المتكدسة على لاعب واحد

config.playerIdDisplay = {
    active = false,              -- إظهار المعرفات فوق الرؤوس أثناء فتح الدردشة
    showOwn = true,             -- تضمين معرفك الخاص
    dist = 5.0,                 -- أقصى مسافة عرض (بالمتر)
    template = "[{serverId}] {discordId}", -- {serverId}{name}{steamId}{discordId}{fivemId}
    headText = { bone = 31086, offset = vector3(0.3, 0.0, 0.0), maxRenderDist = 30.0 },
    cssStyle = { color = "#fff", fontSize = "1.8vh", fontWeight = "600" },
}

يدعم الـ template العناصر النائبة {serverId}, {name}, {steamId}, {discordId}, {fivemId}, فواصل الأسطر \n و HTML/CSS المضمنة.

الرموز التعبيرية (Emojis) — emojis.lua

منتقي الرموز التعبيرية قائم بالكامل على البيانات. كل فئة تكون بالشكل { tab = "<icon emoji>", label = "<HEADER>", list = { ... } } وكل رمز تعبيري يكون { emoji, name, code }.

shared/config/emojis.lua
config.emojis = {
    {
        tab = "😀", label = "SMILEYS",
        list = {
            { emoji = "😀", name = "Grinning", code = ":grinning:" },
            { emoji = "😂", name = "Joy",      code = ":joy:" },
            -- ...
        },
    },
    -- GESTURES (👍), SYMBOLS (❤️), OBJECTS (🚗)
}

يأتي مع أربع مجموعات — Smileys (الوجوه الضاحكة)، Gestures (الإيماءات)، Symbols (الرموز) و Objects (الأشياء). قم بالإضافة أو الإزالة أو إعادة الترتيب بحرية؛ code هو الرمز القصير القابل للبحث والذي يظهر أسفل معاينة الصورة.

الحركات التعبيرية (Emotes) — emotes.lua

مؤشر الكتابة — config.chatOpenEmote

نقاط متحركة فوق رأس اللاعب أثناء قيامه بالكتابة:

shared/config/emotes.lua
config.chatOpenEmote = {
    active = true,
    texts = { { text = "•", time = 500 }, { text = "••", time = 500 }, { text = "•••", time = 500 } },
    cssStyle = { color = "#fff", fontSize = "1.6vh" },
    dist = 8.0,   -- مدى رؤية الآخرين لها (بالمتر)
}
config.emoteOneAtATime = true  -- نسخة نشطة واحدة فقط لكل أمر حركة تعبيرية لكل لاعب

أوامر الحركات التعبيرية — config.emoteCommands

يأتي مع /me, /do, /dice (/zar) و /rps (/tkm). يمكن لكل حركة تعبيرية تشغيل أنيميشن، عرض نص فوق الرأس، وعكسه اختياريًا في الدردشة:

shared/config/emotes.lua
{
    command = "me",
    desc = "EMOTE_ME_COMMAND_DESC",
    webhookKey = "emoteCommand",   -- سجل Discord (اختياري)
    dist = 8.0,
    time = 10000,                   -- مدة نص الرأس (بالميلي ثانية)
    template = "{text}",            -- {text} {playerName} {playerCensoredName}
    cssStyle = { color = "#b6a8ff", fontStyle = "italic" },
    sendToChat = { active = true, tags = { { tag = "ME" } }, color = { 182, 168, 255 } },
}

حقول إضافية: anim (dict, clip, flag, durationheadText (العظمة/الإزاحة/الحجم)، `