admin 发表于 2024-7-30 16:29:33

QB-Core​核心文件目录说明


下面是qbcore/config.lua的代码注释,已经详细说明了每一个参数配置的对应作用。


-- 可以自定义配置
QBConfig = {}

QBConfig.MaxPlayers = GetConvarInt('sv_maxclients', 48) -- 从配置文件中获取最大玩家数量,默认为 48
QBConfig.DefaultSpawn = vector4(-1035.71, -2731.87, 12.86, 0.0) -- 默认生成点
QBConfig.UpdateInterval = 5                           -- 多久更新一次玩家数据(分钟)
QBConfig.StatusInterval = 5000                        -- 每隔几毫秒检查一次饥饿/口渴状态 1000ms = 1s

QBConfig.Money = {}
QBConfig.Money.MoneyTypes = { cash = 1000, bank = 10000, crypto = 0, blackmoney = 0 }
-- type = startamount - Add or remove money types for your server (for ex. blackmoney = 0), remember once added it will not be removed from the database!type = startamount
-- 为您的服务器添加或删除货币类型(例如 blackmoney = 0),请记住一旦添加它就不会从数据库中删除!
-- 可通过该配置添加货币类型,设置玩家初次进入服务器时各类货币的初始值,默认现金cash=500、银行存款bank=5000、crypto=0;在此我设置新增了一项黑钱blackmoney货币;
QBConfig.Money.DontAllowMinus = { 'cash', 'crypto', 'blackmoney' }                -- Money that is not allowed going in minus 限制不允许出现负数的货币字段
QBConfig.Money.PayCheckTimeOut = 30                                 -- The time in minutes that it will give the paycheck 发放工资的时间(分钟) 默认10分钟一次
QBConfig.Money.PayCheckSociety = false                        
-- If true paycheck will come from the society account that the player is employed at, requires qb-management
-- 如果玩家就职在非系统工作内,则需要qb-工作管理通过玩家与玩家之间发薪


QBConfig.Player = {}
QBConfig.Player.HungerRate = 4.3 -- Rate at which hunger goes down.-- 饥饿感下降的速度。 默认4.2
QBConfig.Player.ThirstRate = 5.0 -- Rate at which thirst goes down.-- 口渴感下降的速度。 默认3.8
-- 玩家 血型
QBConfig.Player.Bloodtypes = {
    'A+', 'A-', 'B+', 'B-', 'AB+', 'AB-', 'O+', 'O-',
}

-- 玩家默认
QBConfig.Player.PlayerDefaults = {
    citizenid = function() return QBCore.Player.CreateCitizenId() end,
    cid = 1,
    -- 设置 货币初始
    money = function()
      local moneyDefaults = {}
      for moneytype, startamount in pairs(QBConfig.Money.MoneyTypes) do
            moneyDefaults = startamount
      end
      return moneyDefaults
    end,
    optin = true,
    -- 公民信息
    charinfo = {
      firstname = 'Firstname',
      lastname = 'Lastname',
      birthdate = '00-00-0000',
      gender = 0,
      nationality = 'USA',
      phone = function() return QBCore.Functions.CreatePhoneNumber() end,
      account = function() return QBCore.Functions.CreateAccountNumber() end
    },
    -- 工作
    job = {
      name = 'unemployed',
      label = 'Civilian',
      payment = 10,
      type = 'none',
      onduty = false,
      isboss = false,
      grade = {
            name = 'Freelancer',
            level = 0
      }
    },
    -- 帮派 组织
    gang = {
      name = 'none',
      label = 'No Gang Affiliation',
      isboss = false,
      grade = {
            name = 'none',
            level = 0
      }
    },
    -- 用户ped信息
    metadata = {
      hunger = 100,
      thirst = 100,
      stress = 0,
      isdead = false,
      inlaststand = false,
      armor = 0,
      ishandcuffed = false,
      tracker = false,
      injail = 0,
      jailitems = {},
      status = {},
      phone = {},
      rep = {},
      currentapartment = nil,
      callsign = 'NO CALLSIGN',
      bloodtype = function() return QBConfig.Player.Bloodtypes end,
      fingerprint = function() return QBCore.Player.CreateFingerId() end,
      walletid = function() return QBCore.Player.CreateWalletId() end,
      criminalrecord = {
            hasRecord = false,
            date = nil
      },
      licences = {
            driver = true,
            business = false,
            weapon = false
      },
      inside = {
            house = nil,
            apartment = {
                apartmentType = nil,
                apartmentId = nil,
            }
      },
      phonedata = {
            SerialNumber = function() return QBCore.Player.CreateSerialNumber() end,
            InstalledApps = {}
      }
    },
    -- 位置
    position = QBConfig.DefaultSpawn,
    -- 背包为空
    items = {},
}

QBConfig.Server = {}                              
-- General server config
-- 常规服务器配置
QBConfig.Server.Closed = false
-- Set server closed (no one can join except people with ace permission 'qbadmin.join')
-- 设置服务器关闭(除具有 ace 权限“qbadmin.join”的人外,任何人都不能加入)
QBConfig.Server.ClosedReason = '服务器维护中'
-- Reason message to display when people can't join the server
-- 当人们无法加入服务器时显示的原因消息
QBConfig.Server.Uptime = 0
-- Time the server has been up.
-- 服务器启动的时间。
QBConfig.Server.Whitelist = false                  
-- Enable or disable whitelist on the server
-- 在服务器上启用或禁用白名单
QBConfig.Server.WhitelistPermission = 'admin'
-- Permission that's able to enter the server when the whitelist is on
-- 白名单开启时可进入服务器的权限
QBConfig.Server.PVP = true                        
-- Enable or disable pvp on the server (Ability to shoot other players)
-- 在服务器上启用或禁用 pvp(能够射击其他玩家)
QBConfig.Server.Discord = ''                            -- Discord invite link Discord 邀请链接
QBConfig.Server.CheckDuplicateLicense = true            -- Check for duplicate rockstar license on join 加入时检查重复的 Rockstar 许可证

QBConfig.Server.Permissions = { 'god', 'admin', 'mod' }
-- Add as many groups as you want here after creating them in your server.cfg
-- 在您的 server.cfg 中创建组后,您可以在此处添加任意数量的组。

-- 命令行配置
QBConfig.Commands = {}                                  -- Command Configuration 命令配置
QBConfig.Commands.OOCColor = { 255, 165, 0 }          -- RGB color code for the OOC command OOC 命令的 RGB 颜色代码 默认 255, 151, 133

QBConfig.Notify = {}

QBConfig.Notify.NotificationStyling = {
    group = false,      -- Allow notifications to stack with a badge instead of repeating 允许通知与徽章堆叠而不是重复
    position = 'top', -- top-left | top-right | bottom-left | bottom-right | top | bottom | left | right | center
    progress = true   -- Display Progress Bar
}

-- These are how you define different notification variants
-- The "color" key is background of the notification
-- The "icon" key is the css-icon code, this project uses `Material Icons` & `Font Awesome`
-- 这些是您定义不同通知变体的方式
-- “color” 键是通知的背景
-- “icon” 键是 css-icon 代码,该项目使用 `Material Icons` 和 `Font Awesome`
QBConfig.Notify.VariantDefinitions = {
    success = {
      classes = 'success',
      icon = 'check_circle'
    },
    primary = {
      classes = 'primary',
      icon = 'notifications'
    },
    warning = {
      classes = 'warning',
      icon = 'warning'
    },
    error = {
      classes = 'error',
      icon = 'error'
    },
    police = {
      classes = 'police',
      icon = 'local_police'
    },
    ambulance = {
      classes = 'ambulance',
      icon = 'fas fa-ambulance'
    }
}



client文件夹
drawtext.lua用于处理客户端的文本绘制功能。该脚本主要作用是根据特定条件在屏幕绘制文本,提供信息或指示给玩家。
在drawtext.lua中,主要使用以下几个函数来实现文本绘制:
1.SetDrawOrigin(x, y, z, 0):设置绘制原点为指定的3D坐标,所有后续的绘制操作都基于这个原点。
2.DrawText(x, y):在屏幕上的指定位置绘制文本。
3.DrawRect(x, y, width, height, r, g, b, a):绘制背景矩形,用于突出显示文本。
4.ClearDrawOrigin():重置绘制原点,确保后续的绘制操作不受影响。

events.lua文件用于处理各种游戏事件。这些事件可以是由玩家触发的,例如使用物品、完成任务等,也可以是由系统触发的,例如系统定时器、状态变化等。通过事件机制,events.lua文件实现了模块之间的通信和交互,增强对模块的可维护性和扩展性。
简单理解事件触发器,其中程序的执行流由事件的发生来驱动。事件可以是用户操作(如点击按钮)、消息传递、传感器输出或任何其他形式的输入。
注册事件:使用RegisterNetEvent函数注册事件。
触发事件:使用TriggerEvent函数触发事件。
监听事件:使用AddEventHandler函数监听事件,并定义事件发生时的处理逻辑。

functions.lua文件用于定义各种实用函数,这些函数可以在不同模块中被调用。通过集中管理常用函数,functions.lua提高了代码的复用性和维护性。
函数是Lua编程语言的基本组成部分,用于将一段代码逻辑封装成可复用的模块。在 Qb-Core 框架中,函数被广泛用于处理各种操作,如数据处理、事件响应、任务管理等。

loops.lua文件用于定义各种循环逻辑,这些循环可以用来执行定时任务、持续检查某些条件或更新游戏状态。
main.lua文件是游戏资源的入口文件,用于初始化和管理游戏逻辑。它通常包含必要的资源加载、事件注册和全局变量初始化等操作,是整个框架的重要组成部分。


server文件夹
commands.lua文件用于定义服务器端的命令处理逻辑。这些命令可以在服务器控制台中执行,通常用于管理和调试游戏服务器。
debug.lua文件用于调试服务器端的代码逻辑。它包含一些帮助函数和调试工具,便于开发者跟踪和排查问题。
events.lua文件用于定义和处理服务器端的事件。事件机制允许模块之间进行通信和触发逻辑操作,实现模块之间的解耦和通信。
exports.lua文件用于定义和导出服务器端的函数。这些函数可以被其他资源调用,提供共享功能和逻辑。
functions.lua文件用于定义服务器端的实用函数。这些函数可以在多个模块中复用,简化代码编写。
main.lua文件是服务器端的入口文件,用于初始化和管理游戏逻辑。
player.lua文件用于处理与玩家相关的逻辑,包括玩家的加载、保存、状态管理等。






shared文件夹
gangs.lua 文件用于定义服务器中所有帮派的相关信息。这些信息包括帮派的名称、等级、权限等,用于管理和控制游戏中的帮派系统。
items.lua 文件用于定义服务器中的所有物品信息。这些信息包括物品的名称、标签、重量、类型等,用于管理和控制游戏中的物品系统。
jobs.lua 文件用于定义服务器中的所有工作信息。这些信息包括工作的名称、等级、权限等,用于管理和控制游戏中的工作系统。
locale.lua 文件用于定义多语言支持的信息。这些信息包括不同语言的文本,用于管理和控制游戏中的本地化系统。
locations.lua 文件用于定义服务器中重要的地理位置。这些信息包括地点的坐标、名称等,用于管理和控制游戏中的地理位置系统。
main.lua 文件用于定义服务器中共享的主配置和初始化逻辑。这些信息包括全局变量、配置参数等,用于管理和控制游戏的初始化和配置。
vehicles.lua 文件用于定义服务器中的所有车辆信息。这些信息包括车辆的名称、模型、属性等,用于管理和控制游戏中的车辆系统。
weapons.lua 文件用于定义服务器中的所有武器信息。这些信息包括武器的名称、类型、属性等,用于管理和控制游戏中的武器系统。

lepbb 发表于 2024-8-23 18:01:58

真是难得给力的帖子啊。
页: [1]
查看完整版本: QB-Core​核心文件目录说明