为了帮助您创造有竞争力的战斗体验,我们有几种认可武器可供您在任何游戏中使用。核心系统以使用投射物的越肩视角镜头的武器为特色,将投射物速度设置得足够高可以模拟激光枪等射线投射武器。
要在您的游戏中使用认可武器:
Eachendorsedweaponcontainsacompletecopyoftheentireweaponssystem,includingsoundsanddecalsforallweapons.
Thefirsttimeyoubringinanendorsedweapon,moveitsWeaponsSystemfolderintoReplicatedStorage.Later,besuretodeletetheWeaponsSystemfolderfromanynewendorsedweaponsyouaddtoavoidconfusionwhileconfiguringweaponoptions.
WeaponsSystem(武器系统)文件夹控制所有的认可武器,其结构如下:
ReplicatedStorage
WeaponsSystem(Folder)
Assets(Folder)
Animations(Folder)放置武器系统中使用的动画的地方。
Effects(Folder)
Casings(Folder)储存所有弹壳的地方。
HitMarks(Folder)储存所有命中痕迹效果的地方。
Shots(Folder)储存所有射击效果的地方。
WeaponsSystemGui(ScreenGui)详情请见武器系统GUI。
Configuration(Folder)放置武器系统配置值的地方。
SlowZoomWalkEnabled(BoolValue)和冲刺控制有关。
SprintEnabled(BoolValue)和冲刺控制有关。
Libraries(Folder)储存所有其它在武器系统中使用的ModuleScript|ModuleScript的地方。
WeaponTypes(Folder)定义所有武器系统的地方。
ServerWeaponsScript(Script)确保只有一个武器系统实例在运行。
Version(IntValue)
ClientWeaponsScript(LocalScript)确保只有一个武器系统实例在运行。
NetworkingCallbacks(ModuleScript)
WeaponData(RemoteEvent)
WeaponsSystem(ModuleScript)
在WeaponsSystem文件夹中,不同功能由以下各ModuleScript|ModuleScript分别控制:
功能主要处理位置
武器功能
越肩镜头(参考)
武器GUI(参考)
Bydefault,theweaponssystemadds“sprint”capabilitytothegame,soplayerscansprintbyholdingtheShiftkey,pushingfullyuponthedynamicthumbstick(mobile),orpushingfullyupontheleftjoystick(gamepad).Ifyouwanttodisablesprinting,setSprintEnabledwithinWeaponsSystem/Configurationtofalse.
Thesystemalsoreducesplayerspeedwhilethey’reaiming/zooming,althoughthisbehaviorcanbedisabledbysettingtheSlowZoomWalkEnabledbooleantofalse.
下面是修改武器或创建新武器所需的所有通用子项,以及要覆盖的所有可选子项。武器选项中有更具体的选项。
Throughoutthisdocumentation,notethefollowingobjectandnamingrules:
[Weapon](Tool)和在玩家背包里显示的一样命名。
WeaponType(StringValue)(必须)—WeaponsSystem/WeaponTypes文件夹中对应的ModuleScript的名称(BulletWeapon和BowWeapon是唯二的选项,除非您添加了新的武器类型)。
[WeaponModel](Model)(必须)
一个或多个BasePart|BaseParts(必须)—这些组成了物理武器模型,其中一个应该设置为该模型的Model/PrimaryPart|PrimaryPart。
Descendantsof[WeaponModel]:
Handle(Part)(必须)—将部件放置在您想让玩家拿着武器的地方。
[Configuration](Configuration)—放置武器配置项目的地方。请注意,所有项目都有默认值,因此您可以忽略那些不需要更改的项。
AmmoCapacity(IntValue)(可选)—“弹夹”可装的最大子弹数;默认为30。请注意子弹是无限的,本项并不指定玩家可以携带的子弹数量。
FireMode(StringValue)(可选)—在Semiautomatic(半自动。一次点击射击一次)、Automatic(全自动。按住连续射击)、或Burst(点射。点击以点射出一定数量的子弹,数量取决于NumBurstShots)中选择。默认为Semiautomatic。
NumBurstShots(IntValue)(可选)—每次点击/点射的射击数;默认为3,只在您将FireMode设为Burst时生效。
HitDamage(NumberValue)(可选)—每次直接命中所造成的伤害;默认为10。
FullDamageDistance(NumberValue)(可选)—射击能够造成完全伤害的最大距离。默认为1000,超过此距离,命中所造成的伤害就越来越低,直到子弹达到ZeroDamageDistance,此时伤害为零。
ZeroDamageDistance(NumberValue)(可选)—超过或处于此距离的命中造成的伤害为零。默认为10000。
BulletSpeed(NumberValue)(可选)—子弹/投射物飞行的速度;默认为1000。将此值设为比如20000一样大的值可以模拟激光枪等射线投射武器。
MaxDistance(NumberValue)(可选)—子弹/投射物在消失前可飞行的最大距离;默认为2000。
MinSpread(NumberValue)(可选)—武器扩散的最小值;默认为0。
MaxSpread(NumberValue)(可选)—武器扩散的最大值;默认为MinSpread的值。
HasScope(BoolValue)(可选)—Settotrue若您想使用在武器系统GUI中定义的倍镜,请设为true。默认为false。
ReloadAnimation(StringValue)(可选)—在WeaponsSystem/Assets/Animations中的装弹动画的名称;默认为RifleReload。
AimTrack(StringValue)(可选)—在WeaponsSystem/Assets/Animations中的瞄准动画的名称;默认为RifleAim。
AimZoomTrack(StringValue)(可选)—在WeaponsSystem/Assets/Animations中的放大瞄准动画的名称;默认为RifleAimDownSights。
RecoilMin(NumberValue)(可选)—每次射击的最小反冲;默认为0.05。
RecoilMax(NumberValue)(可选)—每次射击的最大反冲;默认为0.5。
TotalRecoilMax(NumberValue)(可选)—累积反冲的最大值(武器的当前反冲不会比此值高);默认为2。
RecoilDecay(NumberValue)(可选)—反冲的衰减倍数(本质即射击后反冲消失的速度);默认为0.825。
FiredPlaybackSpeedRange(NumberValue)(可选)—武器的Fired(射击)音效可以变调的程度。若您希望音效总是在同一个调播放,请将此设为0,默认为0.1。
武器选项的额外子项。
您可以为任何武器添加/修改以下任意数量的选项。请注意有些项是依赖于其他的,例如枪口粒子需要投射物/命中效果和声音必要的子项。
认可武器的枪栓是指每次射击时来回移动的部件。
武器可以包含物理弹壳,这些弹壳在开火时会弹出,然后落在地上。
您可以为任何武器指定物理投射物,以及用于命中效果和其他特效的Sound|声音、Beam|光束和ParticleEmitter|粒子发射器。
此选项在武器发射时从武器特定TipAttachmentAttachment(附件)上的ParticleEmitter(粒子发射器)发射粒子。
此选项在武器发射时创建一个Beam闪光。
此选项会创建从武器到投射物落点的不同长度的轨迹。
这种视觉效果出现在投射物击中的表面上,可用于箭头、弹孔、焦痕等。
开发者可以为投射物添加Explosion(爆炸)对象,以对落点周围区域内的玩家造成伤害。
核心武器系统接口,可用于更新基于GUI的部分,诸如枪的范围、受到攻击和命中敌人的提示等。
在WeaponsSystem/Assets中,武器系统GUI的结构如下所示:
Animations(Folder)
WeaponsSystemGui(ScreenGui)游戏开始后,作为PlayerGui的子项。
ScalingElements(Folder)自动随屏幕尺寸缩放的元素。
DirectionalIndicators(Folder)储存所有方向指示器的地方。
Crosshair(Frame)当有武器被装备时,其四个子ImageLabel|ImageLabels会出现。注意边框的大小会随武器的范围而变化,但这四个子项的尺寸不会改变。
[UIAspectRatioConstraint](UIAspectRatioConstraint)
Bottom(ImageLabel)
Left(ImageLabel)
Right(ImageLabel)
Top(ImageLabel)
HitMarker(Frame)
HitMarkerImage(ImageLabel)当您命中其它玩家时显现,之后渐隐。
LargeTouchscreen(Frame)在大型触摸屏上显示的按钮。
AimButton(ImageButton)
FireButton(ImageButton)
Scope(Frame)
ScopeImage(ImageLabel)在使用HasScope设为true(参见修改武器)的武器调整视野时显示。
BottomBlack(Frame)
LeftBlack(Frame)
RightBlack(Frame)
TopBlack(Frame)
SmallTouchscreen(Frame)在小型触摸屏上显示的按钮。
要添加新的指示器,只需以如下结构将其加入WeaponsSystemGui/ScalingElements/DirectionalIndicators:
WeaponsSystemGui(ScreenGui)
ScalingElements(Folder)
DirectionalIndicators(Folder)
[Indicator](Frame)
[UIAspectRatioConstraint](UIAspectRatioConstraint)(required)
[ImageLabel](ImageLabel)(必须)—方向指示器的图像。可能需要在Studio中调整图像的旋转,除非您上传的图像是朝下的,并且周围几乎没有空白。
[Configuration](Configuration)
DistanceLevelFromCenter(NumberValue)(可选)—到屏幕中心的距离等级(每一距离等级代表大约0.03的屏幕缩放);默认为6。
Name(StringValue)(可选)—您想要引用的方向指示器的名称;默认为最高级指示器的名称Frame.
TransparencyBeforeFade(NumberValue)(可选)—指示器渐隐之前的透明度;默认为0。
WidthLevel(NumberValue)(可选)—到屏幕中心的宽度等级(每一宽度等级代表大约0.03的屏幕缩放);默认等于DistanceLevelFromCenter的值。
创建后,您可以使用WeaponsSystem/Libraries/WeaponsGui中的以下命令激活指示器。indicatorName表示要激活的指示器的名称,worldPos表示指示器的世界位置。
伤害通知在WeaponsSystem/Libraries/DamageBillboardHandler中处理,可以像下述一样从任意客户端代码激活,其中damage表示伤害数值,adornmentPart为公告的装饰部件,如受害者的头部。