商城系统的使用和实战演练

用2013年的客户端大家可能会发现小地图旁边多了一个蓝色的“CASH SHOP”按钮,这个按钮就是官服的商城系统,可以让玩家在任何地方购买道具商城中的物品。

我们今天来学习一下这个商城系统的使用,涵盖的内容可能会比较多一些,大家做好心理准备,绝对满满的干货,希望大家看完之后能够很轻松的改造自己的商城系统。

如何打开商城界面

正如刚刚所说的,想要打开商城界面很简单,

只需要点击小地图左侧蓝色的“CASH SHOP”按钮即可,如下图所示:

如果没有这个按钮,那么有两种可能性,请各自设法排查:

1、你的客户端太老不支持这种商城系统

2、你的用的完整客户端太老了,里面可能没这个蓝色按钮的图档

什么是商城点券

游戏中的货币,除了最开始的Zeny之外,重力社还引入了两种点券式的货币单位,一种叫“卡普拉点券”在rAthena的脚本常量为#KAFRAPOINTS,一种叫商城点券(或者叫现金点券)在rAthena的脚本常量为#CASHPOINTS

我个人的理解为#KAFRAPOINTS应该是参加一些活动然后系统自动发放的“不用花钱买”的免费点券,而#CASHPOINTS则是需要用户花钱购买才能获得的一种现金点券。

这两种类型的点券都会显示在商城界面左下角的这个位置,如下图所示:

如何添加商城点数

添加商城点数也很简单,我们分两种场景来看~

第一种情况,你是GM且可以使用GM指令

增加商城点券,输入@cash 1000既可获得1000点商城点券

减少商城点券,输入@cash -100即可扣减100点商城点券

————–

增加免费点券,输入@points 1000即可获得1000点免费点券

减少免费点券,输入@points -100即可扣减100点免费点券

————–

如果你想对某个玩家执行指令的话,请使用#号来执行角色命令,例如:#cash “某在线玩家” 1000

第二种情况,在脚本中给玩家增加对应的点券

在需要给玩家商城点券的地方,可以使用:

set #CASHPOINTS, #CASHPOINTS + 1000;

或者直接使用简化写法:

#CASHPOINTS += 1000;

————–

在需要给玩家免费点券的地方,可以使用:

set #KAFRAPOINTS, #KAFRAPOINTS + 1000;

或者直接使用简化写法:

#KAFRAPOINTS += 1000;

就可以了,操作方法其实和给玩家加钱类似,只不过把变量名字从Zeny换成类似#CASHPOINTS

如何添加要出售的物品

商城中的物品也拥有一个数据库在负责管理它,这个数据库文件在db\[pre-]re\item_cash_db.txt,我们只需要对其内容进行编辑,即可将商品上架到商城中。

我们打开此文件,看一下他的格式说明,并且我们来解释一下各字段作用:

可以看到这个格式为3个字段,分别是:类型(Type)、物品编号(ItemID)和价格(Price)

这里所谓的类型,就是指在道具商城中显示在那一页里面,大家不用太在意他下面显示的什么0表示New(新品),1表示Hot(热卖)之类,因为这个名称可以随便我们改。最重要的大家记住顺序即可:

比如我们要在第4个位置,加入一个苹果汁,售价为2点商城点券,那么我们只需要在文件中加入:

这样就可以了!4表示上图中“饲料”(具体是不是饲料取决于你的客户端补丁)对应的位置,531是苹果汁的物品编号,2表示售价为2点商城点券。

接下来保存就可以了,在游戏中如果你希望不用重启服务端就可以让服务端读取到我们刚刚配置的数据的话,请使用GM账号执行一下@reloaditemdb来重载物品数据库。随后角色小退(不小退的话看不到效果哟)回来就可以看到新上架的物品了,如下图所示:

如何修改商城界面中的物品分类

接下来我想可能有一些玩家对左侧的分类有些不满意,比如我不是一个以宠物为核心的服务器,那么我卖饲料是完全没必要的。或者是我技能券只会上架1-2个,完全没必要单独开一个“技能”类别。

别着急,我们可以对这一块的内容进行修改啊,这些地方都是图档在控制,我会提供一个PSD文件给大家,大家可以进去修改你想要的任何文本,然后放到data目录下对应的位置即可。

首先提供PSD文件,猛击右侧链接立刻下载:商城按钮PSD文件

当你修改好并输出24位色的BMP图片后,可以放到data\texture\蜡历牢磐其捞胶\basic_interface目录中,下面是文件名对照表(文件名为简体中文系统下的样子):

类型编号 普通状态图片 选中状态图片
0 脚痹b.bmp 脚痹a.bmp
1 牢扁b.bmp 牢扁a.bmp
2 茄沥b.bmp 茄沥a.bmp
3 烙措厘厚b.bmp 烙措厘厚a.bmp
4 康备厘厚b.bmp 康备厘厚a.bmp
5 滚橇b.bmp 滚橇a.bmp
6 雀汗b.bmp 雀汗a.bmp
7 扁鸥b.bmp 扁鸥a.bmp

修改商城分类的鼠标悬停提示

如果大家细心的话,会发现如果鼠标悬停在分类按钮上面时,会看到一句描述:

这句话如果不满意的话,要如何进行修改呢?很简单哇,这几个信息凑巧都放在了msgstringtable.txt中了,请打开data\msgstringtable.txt文件并搜索你看到的文字,比如我搜索:“用来抓宠”这个关键字,结果找到:

怎么修改的话就不需要我来教了吧,改到你开心为止,然后保存,重启游戏客户端即可看到效果。

修改商城界面中显示的货币单位

商城界面的底部可以看到商城点券的单位,在韩服默认情况下点券的单位是C,而我们国人大多数时候可能习惯用P来表示,这个看大家的具体情况。

这里我会交给大家如何修改单位,修改单位分为两部分,一部分比较简单,一部分比较复杂。

修改余额单位(简单)

修改余额的单位是比较简单的事情,下面这个地方的2个字母P就是余额的单位:

想要修改这个位置的字母很简单,一样在data\msgstringtable.txt中改就行,请搜索“拥有免费点券”可以看到如下图所示的结果,大家随意修改,不过注意只能是1个字母,大小写随意:

修改物品价格单位和总价单位(复杂)

物品价格单位和总价单位是指下图所指的几个字母,想要修改这两个字母需要用16进制编辑器修改我们之前diff出来的客户端exe文件:

下面的操作比较复杂,我不会太过细致的讲解16进制编辑器的用法,如果你之前还没接触过C32Asm这款编辑器的话,请先去看一下这篇文章,然后再回过头来继续看:《让游戏窗口标题变成中文》

当你已经准备好工具之后,请关闭游戏(不关闭游戏C32Asm打不开文件哟),然后用C32Asm打开你的游戏主程序,比如我的文件名是“2013-08-07aRagexe_patched.exe”,然后按Ctrl+F搜索“ANSI字符串”,内容为Total,如下图所示:

然后点击“下一个”按钮,然后再按2次F3,此时可以看到下面所示的一段代码,大家留意一下特征,只要发现附近有图中蓝线标注的Ctrl+QNC_BackGround3.bmp就正确了(其实你也可以直接搜索ANSI字符串:NC_BackGround3.bmp),大家可以发现下图我们标红的2个大写字母C:

把它们改成我们要的单位,比如P,如下图所示:

然后保存,再进入游戏看一下效果:

打完收工,今天的商城系统干货分享就到这里,希望大家继续关注RO研究手记。如果您觉得本文写的不错,请分享给你的朋友,知识需要分享才能升华!