物品属性(Attribute) {{ currentPage ? currentPage.title : "" }}

物品属性为物品固有属性,包含固定属性与可变属性,例如物品拥有耐久,则需要物品添加耐久的固定与可变属性

  • 固定属性(UItemAttribute_Stats):用于储存一些固定的属性数据,例如最大耐久,制作所需材料,网格体等数据

  • 可变属性(UItemMutableAttribute):存放可变的数据,例如当前耐久、当前弹药剩余数量与当前强化信息等

  • 固定属性无需进行网络复制,可变属性会参与网络复制,并且已实现序列化

  • 所有属性均可在蓝图中实现继承修改

  • 可变属性需要实现一个Replication函数,其中用于将属性从一个属性(ItemBuildInfo中)复制到对应物品可变属性中,其中只需要将Other的变量写入到对应变量中即可

  • 例如(C++):

  • virtual void Replication_Implementation(UItemMutableAttribute* Other) override {

UItemMutableAttribute_Durability* OtherAttribute = Cast<UItemMutableAttribute_Durability>(Other);

Durability = OtherAttribute->Durability;

bIsBreak = OtherAttribute->bIsBreak;

}

  • 可变属性:

UItemMutableAttribute

可变属性

Replication

复制函数,在此实现从BuildInfo中复制到对应物品可变属性的函数

UItemMutableAttribute_Durability

耐久可变属性

Durability

当前耐久

bIsBreak

是否已毁坏

UItemMutableAttribute_LauncherWeapon

发射器可变属性,例如弓、枪等

AmmoClass

弹药物品基础(弹药类型)

ClipAmmo

剩余弹药,该武器剩余的弹药(弹夹中的弹药),不计算库存中的物品

UItemMutableAttribute_Enhance

强化可变属性

StarRating

当前星级

StatPoints

强化点数数组,其中储存强化的加成数值

ExtraStatPoints

特殊强化点数数组,储存非玩家属性的强化,例如强化物品耐久

  • 固定属性:

UItemAttribute

固定属性

AttributeType

属性类型,EItemAttributeType

MutableAttribute

创建的可变属性

UItemAttribute_Enhance

强化固定属性

bManualEnhance

允许主动强化,例如物品需要玩家在强化台使用材料进行强化,非系统

MaxStarRating

最大强化星级(次数)

EnhanceTable

强化平台,例如工作台、强化台

EnhanceResource

强化所需材料(基础)

EnhanceResourcePow

强化材料用量指数

算法:Resource = Default + Default * StarRating ^ EnhanceResourcePow),按星级调节强化材料用量,不逐级增加材料则填写1.f

EnhancementSuccessProbability

强化成功的几率,失败时也会消耗材料

EnhancementFailureBreakProbability

强化失败后毁坏几率,0到1, 0为不毁坏

bRemoveAfterBreak

强化失败后毁坏后直接移除,false则为耐久归0,true则为 物品消失

bAllowAppointEnhanceStat

允许玩家指定属性进行强化,例如玩家只强化武器的攻击力,不进行随机强化则填写true,也可以开启此功能指定属性ID -1 来进行随机强化

EnhanceStats

强化基础属性数组(每次强化其中一项)

EnhanceExtraStats

特殊强化基础属性,例如耐久

强化说明

每次强化属性列表中的其中一项,按最大最小强化倍率随机生成一个强化倍率并添加到强化可变属性列表中

强化属性算法:

原属性值* 基础属性倍率 * 强化倍率

平衡性调整可调整原属性值基础属性倍率,

原属性值影响未强化的物品与强化后的物品属性

基础属性倍率则只影响强化后的物品属性

FItemEnhance/FItemExtraEnhance(结构)

StatType

属性类型

BaseMultiply

基础属性倍率

ProbabilityWeight

几率权重,随机强化使用

MinEnhanceMultiply

最小强化倍率

MaxEnhanceMultiply

最大强化倍率

UItemAttribute_Equip

装备固定属性,包含装备栏与快捷栏

EquipSlotType

装备插槽类型

ItemActorClass

物品子实体类型,用于生成武器等实体,衣服等外观不在此设置

UItemAttribute_RequiredLimit

限制固定属性,用于限制玩家等级装备穿戴等

MinLevel

最小等级

UItemAttribute_Stats

装备数值固定属性

Stats

属性数组

bApplyStatsWhenEquip

在装备时应用到状态组件中,例如衣服装备到装备栏则增加属性,脱下减去属性,快捷栏则不会做任何操作

UItemAttribute_Durablity

耐久固定属性

MaxDurability

最大耐久

bCanDecay

可否腐坏,一定时间后物品腐坏无法使用或移除

DecaySecond

腐坏时间,单位秒,一次只会腐坏一个物品数量,腐坏后剩余的物品耐久将会重置

DecayGiveItem

腐坏后给予物品,例如肉腐坏后给予玩家腐肉物品

bDisableRemoveAfterDecay

腐坏后是否移除物品,例如带有腐坏时间的武器,坏掉后能够进行修理,但使用此 功能将无法在腐坏时给予DecayGiveItem

UItemAttribute_StaticMesh

静态网格体固定属性

StaticMeshs

静态网格体数组,用于给物品添加静态网格体,例如武器

UItemAttribute_SkeletalMesh

骨骼网格体固定属性

SkeletalMeshs

骨骼网格体组件,用于给物品添加骨骼网格体,例如盔甲

UItemAttribute_Use

使用固定属性,例如肉能够食用

UseType

使用类型

Delegate 委托中自行实现

GiveBuff 给予BUFF

ModifyStatus 增加属性数值,例如血瓶使用后回血或食物增加饥饿,此模式为快速回复,需要增加使用CD,如需缓慢恢复请使用GiveBuff模式

UseColdDown

使用冷却时间

ColdDownGroup

冷却分组,例如大小血瓶使用同一个冷却CD,则此项设置为相同名称即可

ModifyStats

增加属性数值列表,ModifyStatus模式下使用

GiveBuff

增加BUFF,GiveBuff模式下使用

UseMode

使用模式,用于播放音效与动画使用,

需要委托库存组件->OnItemUseNotify

UItemAttribute_Craft

制作固定属性

Resource

制作一次所需材料

GiveQuantity

制作一次给予多少个物品

ExtraItem

制作一次给予额外物品

CraftTable

制作平台,例如工作台、机床

CraftTime

制作所需时间

CraftGroup

制作分组,用于UI分组

bCanRepair

可否修理,修理使用材料会根据当前耐久进行变化,最低修理一次消耗材料每样1个

RepairConsumptionPercentage

修复所需材料倍率,默认0.5,修复一次毁坏的物品只需要制作材料的一半

bUseCustomRepairResource

使用自定义材料修复物品,使用此选项则不使用RepairConsumptionPercentage,并且不计算当前耐久度,例如修复武器每次消耗一个磨刀石

CustomRepairResource

自定义修复材料

UItemAttribute_Weapon

武器固定属性

bUseAmmunition

带有弹夹,可储存子弹

AvailableAmmunition

允许的武器弹药类型

UItemAttribute_Projectile

发射物固定属性,例如箭矢物品

ProjectileClass

发射物类型,APrimalProjectile

{{{ content }}}