在搭建传奇版本的过程中,很多操作者需要新增物品代码,或是修改游戏内物品的显示效果,包括物品名称、外观图标、掉落外观、描述文字,操作不当会出现物品黑屏、不显示、拾取报错、数据库读取异常等问题。整套操作主要分为数据库物品表修改、客户端补丁素材配置、物品外观代码填写、引擎重载生效这几个环节,每一步参数对应错误都会造成物品无法正常展示。
首先处理数据库物品数据。传奇版本的物品基础信息保存在物品数据库,打开对应数据库工具,找到物品数据表。新增物品时,需要选取一个未被占用的物品代码,代码不能和现有物品重复,重复代码会引发冲突,导致原有物品显示错乱。填写物品基础参数,物品名称要控制字符长度,不要使用特殊符号。外观代码字段决定客户端展示的物品图标,这里填写的编号必须和客户端素材文件内的图片编号一一对应,如果编号不匹配,进游戏后物品会显示为黑色空白图片。同时检查物品类型、重量、持久、价格等附属参数,参数格式错误会造成物品创建失败,无法在游戏内刷出。修改已有物品的显示效果,直接找到对应物品代码,修改外观代码、物品说明文字即可,修改完成保存数据库。
第二步配置客户端物品素材文件。物品图标素材存放于客户端的物品素材包内,新增物品需要准备对应尺寸的图片素材,按照规范格式导出,将素材编号和数据库里填写的外观代码保持一致。素材文件需要放到客户端对应的素材目录,部分版本需要更新素材索引文件,索引文件记录所有物品图片的编号位置,新增图片之后不更新索引,游戏客户端无法读取到新素材,物品依旧不显示。如果只是修改现有物品的显示图标,只需要替换对应编号的图片素材,不用改动数据库内的外观代码。素材文件存放完成之后,清理客户端缓存,旧缓存会继续加载之前的图片资源,造成修改后的效果无法预览。
第三步调整引擎相关物品配置文件。部分版本引擎带有物品外观额外配置文档,用来控制地面掉落物品的外观,地面掉落显示代码和背包图标代码可以分开设置。如果只修改背包里的物品图标,忘记修改地面掉落外观代码,物品掉落在地上的时候会看不到模型,拾取之后在背包才能正常显示。打开物品配置文本,找到对应物品代码行,修改地面外观编号,保证素材文件内存在这个编号的资源。配置文件内所有符号必须使用英文半角符号,中文标点会让引擎读取配置失败,引发物品报错。完成修改后保存配置文件。
第四步重载引擎数据,测试物品效果。全部文件修改完毕,不需要直接重启整套服务端,优先使用引擎的重载物品数据库命令,加载最新的物品数据。重载完成后,在游戏内使用刷物品命令,输入新增或者修改后的物品代码进行测试。先查看背包内物品图标是否正常显示,再把物品丢到地面,确认地面模型正常出现,同时检查物品提示文字是否正确。如果出现物品黑屏,优先核对外观代码编号和素材文件编号是否一致;刷不出物品,排查物品代码是否重复、数据库是否保存成功;地面看不到物品,则检查地面外观配置参数。
第五步常见问题排查。修改后物品不显示,第一种情况是素材没有打包进客户端,本地测试可以看到,其他客户端登录看不到物品图标,需要把更新后的素材文件打包分发。第二种情况是素材图片格式不符合引擎要求,图片色深不对,会出现花屏黑屏,需要重新导出适配格式的素材。第三种情况是数据库字符编码问题,物品名称包含特殊文字,导致引擎读取数据库异常,只保留常规汉字与数字命名。多件物品同时修改时,建议单次只新增或者修改少量物品,修改一项测试一项,一次性批量修改大量物品,出现报错很难定位是哪一条参数出错。
所有调试工作完成,本地客户端确认物品图标、地面外观、物品描述全部正常之后,再把更新好的客户端素材文件更新。整个修改物品显示与新增物品代码的核心就是数据库代码、素材编号、引擎配置三者编号统一,任意一处编号对不上,都会出现物品显示异常。按照步骤逐项核对参数,就能顺利完成物品显示效果修改和新增物品代码的添加工作。

