حرب الخزائن
تدخل العائلات الطابور من اللابتوب، ويتم مطابقتها مع عائلة أخرى. على العائلة المهاجمة الوصول إلى خزنة العدو واختراقها قبل انتهاء الوقت.
كيف تعمل المباراة
- عضو لديه صلاحية
manage_matchmaking_queueيدخل الطابور. التكلفة 10 عملات، وتُسترجع إذا لم توجد مباراة. - يبحث النظام عن خصم لمدة تصل إلى 5 دقائق.
- عند إيجاد مباراة، يظهر بلب للمنطقة حول خزنة المدافعين (175 م).
- تُقفل الخزنة لمدة 5 دقائق، ثم تُفتح نافذة الاختراق.
- مهاجم يملك Hacking Device يخترق الخزنة (لعبة الأسهم، جولتان من 6 أسهم).
- بعد الاختراق الناجح، تستمر مرحلة المداهمة 5 دقائق.
- القتال كاملًا يستمر حتى 15 دقيقة. بعدها تحصل العائلتان على فترة انتظار 10 دقائق.
الإعدادات
Config.safe_match = {
joinCoinsCost = 10,
matchmakingWaitMs = 5 * 60 * 1000,
fightDurationMs = 15 * 60 * 1000,
hackDistance = 2.0,
cooldownMs = {
winner = 10 * 60 * 1000,
loser = 10 * 60 * 1000,
},
safeHack = {
lockMs = 5 * 60 * 1000,
postHackPhaseMs = 5 * 60 * 1000,
requiredItem = 'hacking_device',
consumeRequiredItem = false,
minigame = {
arrows = 6,
rounds = 2,
timeLimit = 15,
},
},
blip = { radius = 175.0, color = 1, alpha = 90 },
}المكافآت والنتائج
يحصل الفائز على 2 إلى 3 أيتمات عشوائية من هذه القائمة:
| الأيتم | الكمية | النسبة |
|---|---|---|
pistol_ammo | 30–60 | 35% |
weapon_heavypistol | 1–2 | 10% |
weapon_pistol_mk2 | 1–2 | 10% |
black_money | 400–1000 | 60% |
token_global | 1 | 25% |
armor | 3–5 | 50% |
reward = {
items = {
{ item_name = "pistol_ammo", min = 30, max = 60, luckChance = 35 },
-- ...
},
amount = { min = 2, max = 3 }, -- how many different items
},
result = {
safeHealth = { winner = 5, loser = -15 },
xp = { winner = 30, loser = -10 },
coins = { winner = 25, loser = 0 },
},بعد كل مباراة: الفائز يكسب +5 صحة للخزنة و 30 XP و 25 عملة، والخاسر يخسر 15 من صحة الخزنة و 10 XP.
WARNING
كل أيتم في المكافآت يجب أن يكون موجودًا في الإنفنتوري، وإلا ستفشل المكافأة.
السرقة أثناء المباراة
يمكن للاعبين سرقة عدو ساقط داخل منطقة المباراة. تُنقل فلوس الكاش من الهدف، ويُفتح إنفنتوري الهدف للسارق.
Config.safe_match.robbery = {
enabled = true,
maxDistance = 2.5,
allowFriendly = false,
transferCash = true,
cashAccount = 'cash',
}السيرفر يتحقق من كل عملية سرقة: اللاعبان في المباراة وداخل المنطقة، ومن عائلتين مختلفتين، والهدف ساقط، والسارق حي.
الإقصاء
اللاعب الذي يصل إلى الموت النهائي داخل المنطقة يخرج لبقية المباراة. مرحلة السقوط (last stand) لا تُحسب، فيمكن لزملائه إنعاشه.
اللاعب المُقصى لا يستطيع اختراق الخزنة، ولا سرقة اللاعبين، ولا فتح خزنة عائلته، ولا كسب قتلات أفضل لاعب، وتظهر له واجهة ELIMINATED حتى نهاية المباراة.
Config.safe_match.elimination = {
enabled = true,
onlyInsideZone = true,
removeFightBlip = true,
blockFamilySafe = true,
enforceZoneLockout = false, -- true = push revived eliminated players out of the zone
}القيمة enforceZoneLockout = true تُخرج اللاعبين المُقصين من المنطقة إذا أُنعشوا وحاولوا الرجوع.
واجهة المباراة
Config.MatchHUD = {
enabled = true,
offsetX = 24,
offsetY = 24,
labels = {
searching = 'MATCH SEARCH',
locked = 'SAFE LOCK',
hacking = 'HACK WINDOW',
raiding = 'SAFE RAID',
cooldown = 'COOLDOWN',
},
}يمكنك تعريب النصوص الظاهرة في الواجهة بتغيير قيم labels.
