跳至主要内容

積分系統

簡述

Apple Matchmaking 是一個功能強大的 FiveM 配對系統,旨在提供公平且高效的遊戲配對體驗。該系統支援多種隊伍模式(如 1v1、2v2、3v3、4v4),並包含排行榜、團隊管理、玩家統計以及 Discord 日誌功能,確保每場比賽都充滿競爭力且令人興奮

主要功能

  • 隊伍創建與管理

    • 支援多種隊伍模式(1v1、2v2、3v3、4v4)
    • 隊伍邀請系統,允許隊長邀請其他玩家加入隊伍
    • 隊伍成員踢出與隊伍解散功能
  • 配對系統

    • 自動匹配系統根據玩家等級與喜好進行配對
    • 支援多種地圖與武器配置
    • 匯報比賽開始與結束至 Discord
  • 排行榜與等級系統

    • 根據玩家積分自動更新排行榜
    • 多階段等級系統(青銅、白銀、黃金、白金、鑽石、大師、宗師、菁英)
    • 顯示玩家排名、殺敵數、死亡數及 K/D 比率
  • Discord 日誌集成

    • 配對資訊、隊伍進入隊列與比賽結束時自動發送至指定 Discord 頻道
    • 支援自定義 Webhook 配置

使用場景

  • 競技遊戲伺服器,提供公平競爭的配對體驗
  • 支援團隊合作或單人對戰的多種模式
  • 需要詳盡遊戲統計與排行榜的伺服器

依賴插件

ox_inventory(可選,用於武器管理)

使用方法

開啟配對介面

玩家可以通過以下命令或快捷鍵來開啟配對介面:

  • 命令

    /matchmaking
  • 快捷鍵

    • 接受邀請:F9
    • 拒絕邀請:F10

配對流程

  1. 創建隊伍

    • 選擇你想參與的遊戲模式(如 1v1、2v2 等)。
    • 系統將自動創建一個隊伍,並允許隊長邀請其他玩家加入。
  2. 邀請玩家

    • 點擊「+ 邀請」按鈕,選擇要邀請的玩家。
    • 被邀請的玩家將收到通知,並可通過 F9 接受或 F10 拒絕邀請。
  3. 開始配對

    • 一旦隊伍人數達到所選模式的要求,隊長可點擊「開始配對」按鈕。
    • 系統將自動尋找匹配的隊伍並開始比賽。
  4. 比賽進行

    • 比賽開始後,玩家將被傳送到指定地圖的位置,並自動獲得武器(依據配置)。
    • 比賽結束後,系統將根據結果更新排行榜與玩家數據,並通過 Discord 發送比賽結果日誌。

常用命令

  • 隊伍管理
    • /matchmaking:開啟或關閉配對介面。
    • +accept(快捷鍵 F9):接受隊伍邀請。
    • +reject(快捷鍵 F10):拒絕隊伍邀請。

配置選項

系統配置

config.lua 中,你可以自定義以下選項:

  • 數據保存間隔

    Config.SaveDataSecond = 60

    每多少秒保存一次玩家數據至數據庫。

  • 大廳位置

    Config.LobbyLocation = vector4(x, y, z, heading)

    玩家進入比賽結束後將傳送至此位置。

  • 復活觸發事件

    Config.ReviveTrigger = "esx_ambulancejob:revive"

    指定復活事件的觸發名稱。

遊戲設定

  • 比賽回合數

    Config.maxRounds = 5

    每場比賽的最大回合數。

  • 積分設定

    Config.Points = {
    killPoints = 10,
    deathPoints = 5,
    winPoints = 50,
    lossPoints = 20
    }

    每次擊殺、死亡、勝利或失敗所獲得或扣除的積分。

  • 武器配置

    Config.Weapons = {
    `weapon_assaultrifle`,
    `weapon_carbinerifle`,
    `weapon_compactrifle`,
    `weapon_assaultsmg`
    }

    比賽中將自動給予玩家的武器列表。

  • 地圖配置

    Config.Maps = {
    ["1VS1"] = {
    [1] = { [1] = vector3(x1, y1, z1), [2] = vector3(x2, y2, z2) },
    [2] = { [1] = vector3(x3, y3, z3), [2] = vector3(x4, y4, z4) },
    },
    -- 可添加更多匹配類型與地圖
    }

    配對不同隊伍模式時使用的地圖及生成位置。

排行榜與等級系統

  • 無等級名稱

    Config.NoLeaugeName = "未定位"

    玩家積分不足以達到任何等級時顯示的名稱。

  • 等級定義

    Config.Ranks = {
    {name = "青銅 V", pts = 1000},
    {name = "青銅 IV", pts = 1100},
    -- 其他等級
    {name = "菁英", pts = 5600}
    }

    根據玩家積分自動分配的等級名稱。

通知與日誌

  • 通知設定

    Config.Notify = {
    playerinbug = "玩家使用漏洞中",
    sentinvite = "已向%s [ID:%d] 發送隊伍邀請",
    -- 其他通知
    }

    定義各種系統內部使用的通知訊息。

  • 伺服器文字

    Config.ServerText = {
    playerSaved = "^0[^1apple Matchmaking DB System^0] ^2玩家已儲存^0: ^1[^0%s^1]^0",
    -- 其他伺服器回饋
    }
  • Webhook 配置

    Config.Webhook = {
    matchInfo = "你的Match Info Webhook URL",
    queueJoin = "你的Queue Join Webhook URL",
    matchFinished = "你的Match Finished Webhook URL"
    }