CE3备忘录2--枪械创建

关于备忘录:
这里主要是自己记录一些CE3(Cryengine3)的常用方法,包括代码编写以及API功能,如果有什么问题感谢指出,这是我的邮箱albstein2@gmail.com


这里简单介绍武器系统中的枪械创建及使用。

由我们自己创建的枪械类一般继承自CWeapon,当然CWeapon是基于接口类IWeapon创建的,不过在CE3枪械的大部分接口都在CWeapon中实现,所以这样的体系是很明智的选择(说得好像我很懂的样子Orz)

同上文这里的环境为windows7 x64下的VS2012

下面我们以一个基础的枪械来作为例子进行说明:

为了规范,我们将新建的DemoWeapon.h和DemoWeapon.cpp添加在/CryGameSDK/Item Files/Weapon Files/Weapons下

之后我们开始武器的编写

###1.打开DemoWeapon.h编辑如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef _DEMOWEAPON_H_
#define _DEMOWEAPON_H_
#include "Weapon.h"
class CDemoWeapon : public CWeapon //从Weapon继承,作为简单的模板这里就不实现其他功能了
{
private:
typedef CWeapon BaseClass;
public:
CDemoWeapon();
~CDemoWeapon();
//在需要的情况下可以在这里通过重写CWeapon的函数来实现特定功能
//当然这里不进行介绍,后面有机会的话会有例子Orz
};
#endif

###2.编辑DemoWeapon.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "StdAfx.h"
#include "DemoWeapon.h"
#include "Weapon.h"
CDemoWeapon::CDemoWeapon()
{
}
CDemoWeapon::~CDemoWeapon()
{
}
//这里没什么好说的了就是简单的定义(就好像什么都没有一样)

###3.注册武器

当文件编辑完成后我们进行武器的注册,CE3的武器在GameFactory.cpp中注册(找不到的话可以再VS的资源管理器中搜索)

打开GameFactory.cpp在开头的相应位置(就是武器啥的放到一起比较规范)添加

1
#include <DemoWeapon.h>

之后找到

1
2
3
4
REGISTER_FACTORY(pFramework, "Weapon", CWeapon, false);
//后面还有很多找到这个就行了
//在后面添加
REGISTER_FACTORY(pFramework, "DemoWeapon", CDemoWeapon, false);

这样武器就注册成功了

###最后找到GameSDK\Scripts\Entities\Items\XML\Weapons并新建DemoWeapon.xml简单起见复制rifle.xml之中的内容找到



<item name=”Rifle” class=”Weapon” category=”primary” priority=”12” weaponParams=”1”>


将”Rifle”和”Weapon”都改为”DemoWeapon”
再找到



<param name=”display_name” value=”@mp_eRifle”/>


将”@mp_eRifle”改为”@mp_eDemoWeapon”

如果无误的话编译运行程序就可以在编辑器的Item中找到我们注册的”DemoWeapon”,拖到游戏中就可以使用了。

到这里注册武器的流程就结束了,其他的功能新建或者重写成函数来完成,是武器的功能丰富就靠想象力和API的熟练程度了,这里之后也许会有例子吧。