大阔
发布于 2022-01-09 / 94 阅读 / 0 评论 / 0 点赞

Arma3 - 给你的asylum生活服添加一个虚拟物品

简介

这是一个偏配置项的教程

如果你现在使用asylum的生活服服务端那么这个教程值得看一下



在生活服中通常存在着各式各样的虚拟物品,比如水、苹果、桃子等,本篇文章就是一步一步的带大家亲手创建一个属于自己的虚拟物品并上架到市场售卖。

配置文件

添加物品主要用到的配置文件主要有下面几个

core\configuration.sqf 全局配置文件

core\config\fn_iconConfig.sqf 图标配置文件

core\config\fn_varHandle.sqf 长短命名处理文件

core\config\fn_varToStr.sqf 长命名转换展示名字配置文件

core\functions\fn_invPrice.sqf 库存价值配置文件

stringtable.xml 国际化语言配置

core\config\fn_itemWeight.sqf 物品重量配置文件

core\config\fn_virt_shops.sqf 市场配置文件

core\items\fn_eatOrDrink.sqf 食用配置文件

core\pmenu\fn_useItem.sqf 使用配置文件

开始配置

作为教程我们要配置一个叫“养乐多”的物品,可以饮用,饮用恢复20点缺水量,并且上架到市场售卖,一个养乐多卖20美元


##### core\configuration.sqf 配置

先打开全局配置文件 core\configuration.sqf

找到oev_inv_items 数组 这个数组的主要作用就是将所有的虚拟物品都注册到内存里面

在最后面填入life_inv_yakult

记得要给上一行结尾加逗号,自己本身不需要加逗号


下面找到oev_sell_array 数组 这个数组的作用是给物品配置一个出售的价格,这里的出售价格是玩家去市场出售物品售出的价格

同样也是在最后面填入 ["yakult",10] 这里用到的是短命名,记住要和下面配置的短命名一致,第二项是价格

同样记得要给上一项加上逗号自己本身不需要加逗号


下面找到oev_buy_array 数组 这个数组的作用就是给物品配置一个购买的价格 即玩家去市场买的价格

同样也是在最后面填入 ["yakult",20] 这里也是用到短命名,全完要记得短命名一致


下面找到oev_admin_array 数组 这个数组就是管理员购买的价格和上面是一样的配置


core\config\fn_iconConfig.sqf 配置

这个配置文件本身的作用就是配置虚拟物品的图标,所以我们首先需要准备一个.paa 类型的图标文件


先去ps随便画一个养乐多的图片

画布大小是64*64像素

然后导出为.png格式

并利用arma3tools里面的ImageToPAA工具将图像文件转换为.paa格式

之后将导出的.paa格式文件放到地图目录的 images\icons\items 文件夹下

要注意命名


之后打开 core\config\fn_iconConfig.sqf文件

在文件的结尾填入

case "life_inv_yakult": {"images\icons\items\yakult.paa"};

这里注意填入的内容需要在default {""}; 这行之前,不可以在他下面


core\config\fn_varHandle.sqf 配置

这个配置文件的作用就是上面用到的长短命名处理文件

在文件中我们可以看到一个非常长的switch语句

在这个switch里面 case 0下面就是对应的短命名转换长命名

相应case 1就是长命名转换短命名

我们在对应的地方填入我们需要转换的命名即可



core\config\fn_varToStr.sqf 配置

这个配置文件的作用是将长命名转换为我们需要的展示名称

为了方便分类我们可以观察到case语句 不同类型的翻译都进行了分类,我们就只需要找到life_inv_xx 那一大类的下面加上我们需要的内容就可以了

这里可以看出来有两种配置方法

下面是我配置的,这里使用的是localize国际化函数 主要就是填入一个编号,然后服务器会自己去语言配置文件(stringtable.xml)中找到对应的项

上面是之前的作者配置的,他用的就是最普通的直接在这里给了一个固定的值

两种方法都可以,按照自己口味选择


core\functions\fn_invPrice.sqf 配置

这个配置文件是给玩家的库存一个估计价格的作用

通过观察这里面也是一个大的switch语句,上面是长命名下面是短命名,我们分别填写就可以了


stringtable.xml 国际化语言配置

这个配置文件就是上面有提到过的语言配置文件

我们找到 <Package name="Life_Items">

在这个标签下面填入我们的配置

		<Key ID="STR_Item_Yakult">
			<Original>养乐多</Original>
		</Key>

如果想在其他函数中使用这个文本就是 localize ID


##### core\config\fn_itemWeight.sqf 配置

众所周知在生活服中所有虚拟物品都是有重量这个概念的,这个配置文件的作用就是给这个物品一个重量。

我们直接在switch结尾填入 case "yakult": {2};

同样记得要写在default 上面


##### core\config\fn_virt_shops.sqf 配置

这个配置文件就是游戏里面市场的配置了

同样这里的配置文件也是一整个大的switch语句,在里面我们找到case "market"节点

这个节点就是普通市场的配置 在里面找到

我们就直接在这几个数组里面加入我们物品的短命名就可以了


core\items\fn_eatOrDrink.sqf 配置

通过配置文件名字就能看出来 这是一个食用的配置

食用物品会有两种效果 一种是 加饱食度 一种是加缺水值

我们在这里就配置食用养乐多会增加20点缺水值

case "yakult": {_thirstVal = 20}; 填入switch里面就可以了


##### core\pmenu\fn_useItem.sqf 配置

这个配置文件是玩家在库存中点击使用物品的配置

我们找到下面图片这样一项配置

通过红框看到它调用了 eatOrDrink这个函数他就是食物和水的配置

我们直接将我们配置的养乐多短命名写入到上面的数组里就可以了


配置结束

到这里添加一个虚拟物品的步骤就结束了,接下来就是上游戏进行测试。

看到我们的养乐多正和配置的一样,亲手画的图标,售卖20美金



以上本篇教程就全部结束了,关于更多的Arma3内容可以关注我的个人博客 https://souts.cn

所有内容均为本人原创,绝无抄袭借鉴。




评论