QBCore 永久死亡系统 适合具有永久死亡机制的硬核 RP 服务器

QBCore 永久死亡系统 适合具有永久死亡机制的硬核 RP 服务器

QBCore 永久死亡系统 适合具有永久死亡机制的硬核 RP 服务器

一个轻量级且有效的 Perma-Kill 系统,适用于基于 QBCore 的服务器,可让您永久杀死角色而不删除其数据。该系统可防止在登录时选择死字符,同时通过恢复命令为服务器管理员提供控制。

🧠 特征

  • 🔒 标记为 dead 的 Perma-Death 强制
    字符无法通过 选择。
    qb-multicharacter

  • 📁 数据保留
    字符不会被删除,只会被标记。非常适合角色扮演上诉工作流程。

  • 🔄 管理员命令

    • /permakill [citizenid]:将角色标记为永久死亡。
    • /unpermakill [citizenid]:恢复字符。
  • 🧩 无缝 UI 反馈
    正常阻止角色选择,并在角色死亡时显示游戏内通知。


⚙️ 安装

1. 更新您的数据库

运行以下查询:

ALTER TABLE players ADD COLUMN permakilled TINYINT(1) DEFAULT 0;

2. 修改多角色逻辑

qb-multicharacter/html/index.html

Replace 函数:play_character()

play_character: function() {
    if (this.selectedCharacter && this.selectedCharacter !== -1) {
        var data = this.characters[this.selectedCharacter];

        if (data !== undefined) {
            axios.post('https://qb-multicharacter/selectCharacter', {
                cData: data
            }).then((response) => {
                if (response.data === "ok") {
                    setTimeout(function() {
                        viewmodel.show.characters = false;
                    }, 500);
                } else if (response.data === "cancel") {
                    console.log("Character selection cancelled due to permakill.");
                }
            });
        } else {
            this.registerData.firstname = undefined;
            this.registerData.lastname = undefined;
            this.registerData.nationality = undefined;
            this.registerData.gender = undefined;
            this.registerData.date = (new Date(Date.now() - (new Date()).getTimezoneOffset() * 60000)).toISOString().substr(0, 10);

            this.show.characters = false;
            this.show.register = true;
        }
    }
}

qb-multicharacter/client/main.lua

Replace 回调:selectCharacter

RegisterNUICallback('selectCharacter', function(data, cb)
    local cData = data.cData

    QBCore.Functions.TriggerCallback('moon-permakill:checkPermakill', function(isDead)
        if isDead then
            TriggerEvent("QBCore:Notify", "This character is dead. Appeal on Discord.", "error")
            cb("cancel")
            return
        end

        DoScreenFadeOut(10)
        TriggerServerEvent('qb-multicharacter:server:loadUserData', cData)
        openCharMenu(false)
        SetEntityAsMissionEntity(charPed, true, true)
        DeleteEntity(charPed)
        cb("ok")
    end, cData.citizenid)
end)

📦 命令

命令 描述
/permakill [citizenid] 永久将角色标记为死亡
/unpermakill [citizenid] 通过取消标记来恢复角色

🧪 使用案例

  • 具有永久死亡机制的硬核 RP 服务器
  • 帮派战争、警察枪战或长期伤害后果
  • 不删除数据库的角色封禁
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容