查看: 1671|回复: 0
收起左侧

[文字教程] FiveM 添加式车辆改装部件丢失问题修复

[复制链接]
admin 发表于 2021-3-2 14:30:16 | 显示全部楼层 |阅读模式
该文章转自

零梦博客
                                                                                                                        
之前很长一段时间我的 FiveM 服务器都有一个问题,就是有部分添加式(Addons)车辆的改装件会丢失,什么都不能改,除非进入游戏后手动执行 restart 对应的载具文件名才能看到改件,其实很早我就想去研究这个问题,但是一直没有头绪。
正好昨天晚上没事干翻 FiveM 论坛,好奇又搜了一下这个问题,结果一搜才发现早就有人问过了。这个问题的原因,要从 GTA5 的配置说起,GTA5 的每辆载具都有独立的配置,概括出来大概有以下几个文件:
  • handling.meta,里面指定了载具的物理行为,例如重量,抓地力,悬挂,加速度等
  • vehicles.meta,载具的属性,记录了载具的类型,基本信息,模型文件名等等
  • carcols.meta,载具的改装件信息,包括可视化外观修改、动力修改等
  • carvariations.meta,这个应该算是记录了载具的颜色和改装套件 ID 值等
  • carcontentunlocks.meta,这个东西没研究出来是什么
  • vehiclelayouts.meta 这个文件记录了载具的座位信息,一般是右舵车才有这个文件
其中,vehicles.meta 引用了 handling.meta 的内容;carvariations.meta 又引用了 carcols.meta 的内容。
然后每辆载具加入到服务器都需要一个  __resource.lua 文件来进行定义,而载具改件丢失的问题就出在这里,这个文件里面的几个 data_file 参数的顺序非常重要,一旦错误就会导致载具没有改件甚至游戏崩溃的情况。下面这就是一个错误的配置文件例子:

resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'

files {
    'dlctext.meta',
    'handling.meta',
    'vehicles.meta',
    'carcols.meta',
    'carvariations.meta',
    'vehiclelayouts.meta',
    'carcontentunlocks.meta'
}

data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
data_file 'DLCTEXT_FILE' 'dlctext.meta'
data_file 'HANDLING_FILE' 'handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
data_file 'CARCOLS_FILE' 'carcols.meta'
data_file 'CONTENT_UNLOCKING_META_FILE' 'carcontentunlocks.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta'


我们可以看到,carvariations.meta 在最顶上第一个被加载,而此时 carcols.meta 还未加载到内存(脚本是从上到下执行的),因此游戏就无法读取到 carcols.meta 的数据,继而引发错误,这也就可以说明白为什么 restart 以后改件就出来了:你在第一次进入游戏时,carcols.meta 比 carvariations.meta 后载入内存,在载入 carvariations.meta 的时候内存中还没有 carcols.meta 的数据,所以车子没有改件;当你 restart 之后,此时内存中已经有了 carcols.meta 的数据,改件自然就出来了。
知道这个原因后,我们只需要按照以下顺序排列 data_file 即可:
  • dlctext.meta
  • vehiclelayouts.meta
  • 处理。元
  • Vehicles.meta
  • carcols.meta
  • 变异
  • carcontentunlocks.meta
正确的配置文件示例:
resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5'

files {
    'dlctext.meta',
    'handling.meta',
    'vehicles.meta',
    'carcols.meta',
    'carvariations.meta',
    'vehiclelayouts.meta',
    'carcontentunlocks.meta'
}

data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta'
data_file 'DLCTEXT_FILE' 'dlctext.meta'
data_file 'HANDLING_FILE' 'handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta'
data_file 'CARCOLS_FILE' 'carcols.meta'
data_file 'CONTENT_UNLOCKING_META_FILE' 'carcontentunlocks.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta'


注意,vehiclelayouts.meta 一定要放在最前面(可以在 dlctext 后面),否则会出现车辆刷出后无法乘坐或者一上车就崩溃的情况。
另外,原来的 CARCONTENTUNLOCKS_FILE 在 FiveM 更新后已经改成了 CONTENT_UNLOCKING_META_FILE,记得修改不然会报错。

楼主热帖
回复 论坛版权

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|首页 ( 冀ICP备2021005225号-1 ) |网站地图

GMT+8, 2025-2-9 01:02 , Processed in 0.051167 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表