example
example

教程 FiveM小白从零开发 01 认识什么是fxmanifest.lua

相信很多小白在开发中明明学习了lua,明明知道代码逻辑,却不知道代码应该写在哪里,今天出一个小白的教程,用来说明Fivem开发的过程

首先在编程FiveM脚本中,最重要的就是 fxmanifest.lua

你可以理解为,当服务端控制台启动后,服务器端就是通过 fxmanifest.lua 这个文件识别这个东西是不是一个脚本。

FiveM 脚本资源结构与资源清单文件(fxmanifest.lua)教程​


在 FiveM 开发中,资源是一个独立的模块,包含脚本、配置文件、客户端和服务器端代码等内容。资源的核心是资源清单文件(fxmanifest.lua),它定义了资源的元数据以及客户端和服务端的入口点。




资源的基础结构​


一个标准的 FiveM 资源目录结构通常如下:
lua:
my_resource/             -- 资源目录名称

│

├── client/              -- 客户端代码

│   └── main.lua

│

├── server/              -- 服务器端代码

│   └── main.lua

│

├── shared/              -- 客户端和服务器共享代码(可选)

│   └── config.lua

│

├── stream/              -- 流式文件(例如:车辆、地图、纹理等)

│   └── 文件.ytd

│

├── fxmanifest.lua       -- 资源清单文件

│

└── html/                -- 前端文件夹(可选,用于 NUI 交互)

    ├── index.html

    ├── style.css

    └── script.js




fxmanifest.lua 文件详解​


fxmanifest.lua 是资源的清单文件,定义了资源的信息和加载行为。以下是其主要内容的详细解释:


1. 基础信息


  • fx_version: 指定资源的 FiveM 框架版本(必须)。
  • game: 指定游戏类型(gta5 或其他,必须)。

示例:​

fx_version 'cerulean'
game 'gta5'




2. 资源元数据


  • author: 资源作者。
  • description: 资源描述。
  • version: 资源版本号。

示例:​

author 'YourName'
description 'This is a custom resource for FiveM'
version '1.0.0'




3. 脚本入口


  • client_scripts: 指定客户端脚本文件。
  • server_scripts: 指定服务器端脚本文件。
  • shared_scripts: 指定客户端和服务器端共享的脚本。

示例:​

client_scripts {
'client/main.lua',
'client/utils.lua'
}

server_scripts {
'server/main.lua'
}

shared_scripts {
'shared/config.lua'
}




4. NUI 文件


  • ui_page: 指定 HTML 用户界面的入口文件。
  • files: 列出需要加载的所有文件(HTML、CSS、JS、纹理等)。

示例:​

ui_page 'html/index.html'

files {
'html/index.html',
'html/style.css',
'html/script.js',
'html/images/logo.png'
}




5. 依赖和导出


  • dependencies: 指定资源依赖项。
  • export: 声明可供其他资源调用的函数。
  • server_export: 声明服务器端的导出函数。

示例:​

dependencies {
'oxmysql',
'qb-core'
}

exports {
'GetPlayerData'
}

server_exports {
'SavePlayerData'
}




6. 流式文件


  • data_file: 指定流式文件类型和路径(通常用于车辆、地图等自定义内容)。
  • this_is_a_map: 声明当前资源是一个地图(可选)。

示例:​

data_file 'DLC_ITYP_REQUEST' 'stream/custom_map.ytyp'

this_is_a_map 'yes'




7. lua54 支持


FiveM 支持 Lua 5.4,您可以通过以下声明启用它:

lua54 'yes'




示例 fxmanifest.lua 文件​


以下是一个完整的示例文件:

lua:
fx_version 'cerulean'

game 'gta5'



author 'YourName'

description 'Example FiveM Resource'

version '1.0.0'



-- 脚本加载

client_scripts {

    'client/main.lua'

}



server_scripts {

    'server/main.lua'

}



shared_scripts {

    'shared/config.lua'

}



-- NUI 配置

ui_page 'html/index.html'



files {

    'html/index.html',

    'html/style.css',

    'html/script.js',

    'html/images/logo.png'

}



-- 流式文件

data_file 'DLC_ITYP_REQUEST' 'stream/custom_map.ytyp'



-- 声明地图

this_is_a_map 'yes'



-- 启用 Lua 5.4 支持

lua54 'yes'




资源清单文件的作用​


  1. 加载顺序:定义客户端、服务器端、共享脚本的加载顺序。
  2. 依赖管理:确保所需资源被正确加载。
  3. 资源标识:提供资源的作者、版本、描述等元信息。
  4. 文件加载:列出需要加载的文件,例如 HTML 和纹理文件。
  5. 功能扩展:支持导出自定义功能供其他资源调用。



小结​


fxmanifest.lua 是 FiveM 资源开发的核心文件,它将资源的代码、文件和元数据组织在一起。通过学习和使用资源清单文件,可以更好地管理和扩展您的 FiveM 项目。如果在使用过程中遇到问题,可以随时咨询!

简单来说,服务器怎么知道这个文件是不是写的脚本,那么只需要知道文件里有没有fxmanifest.lua
 
顶部