KF1 mod 开发教程
武器的发射物
在开始修改武器发射物之前,先来了解一下 武器类的一部分引用结构; 例如武器 AA12 自动散弹枪,在 KFMod 能找到七个 AA12 开头的类文件
这些类相互之间通过属性进行引用,但一般是以“武器类”作为入口点。 在 AA12AutoShotgun.uc 可以找到相关的引用属性
FireModeClass(0)=Class'KFMod.AA12Fire'
PickupClass=Class'KFMod.AA12Pickup'
AttachmentClass=Class'KFMod.AA12Attachment'
这只是第一层引用 并且以“武器类”为开始
第二个关键点是“开火类”主要用于设定武器的开火形式
开火类型
将开火做成单独的类 是有原因的,一方面减轻了武器类的代码量; 另一方面 虚幻引擎有两种攻击方式,会涉及到不同的处理方式
InstantFire 和 BaseProjectileFire 代表了两种攻击方式的基类, 而 KF1 在这两个类的基础上开发了常用的 KFFire 和 KFShotgunFire

在 KF1 中几乎所有的“发射物”都继承自 KFShotgunFire 类,其余枪械的“直接攻击”都继承自 KFFire 类

接下来要让我们的“自定义M4”打出会飞的发射物。
指定发射物类
由于目前是入门阶段 我们暂时不会去新建自己的开火类,而是简单的做引用 以下代码将“自定义M4”引用成AA12的开火类
// 自定义M4
class ABC_M4AssaultRifle extends M4AssaultRifle;

defaultproperties
{
	MagCapacity=90

	// 引用:开火类
	FireModeClass(0)=Class'KFMod.AA12Fire'
}
由于上一次写网络同步时 删掉了一些代码,我们需要再将“给玩家发武器”的代码写到插件类中; 代码片段如下,请放到 Mutator“插件类”中
function ModifyPlayer(Pawn Player)
{
	Super.ModifyPlayer(Player);
	Player.GiveWeapon("ABCMutator.ABC_M4AssaultRifle");
}
编译代码,启动插件进行游戏 玩家出生时自带“自定义M4”可以打出AA12子弹
简单的一个属性修改就将 AA12 子弹应用到自定义武器上,但是目前并没有对发射物本身进行修改;
暂时只用了解一个概念,即:类之间 是用属性来引用的。