物品:PrimalItem
每个物品都拥有一个单独的UID
物品拥有一些基础属性和一个可变属性数组(用于存放当前耐久等属性)
物品拥有一个蓝图属性,蓝图堆叠数量最大为1,用于制作物品,你可以为任意物品添加可制作属性
变量 | 说明 |
---|---|
OwnerInventory | 父库存系统组件 |
ItemClass | 物品基础UPrimalItemBasic,存放物品固定信息 |
MutableAttributes | 可变属性数组 |
ItemUID | 物品UID,每个物品都拥有一个单独的UID |
Quantity | 物品数量 |
bIsBlueprint | 是否为蓝图 |
InSite | 当前物品所在位置(背包、装备栏、快捷栏、蓝图、所有[丢弃在地上的物品]) |
CustomItemID | 预留 |
SlotIndex | 物品插槽序列,例如两个武器插槽,则第一个为0第二个为1 |
函数 | 说明 |
---|---|
GetItemBuildInfo | 获取物品创建信息,用于物品网络复制,内含属性序列化代码,包含当前物品的属性(可变的)与对应的物品基础 |
DoesImplementAttribute(TSubclassOf<UItemAttribute> AttributeClass) | 是否实现固定属性 |
GetAttribute(TSubclassOf<UItemAttribute> AttributeClass) | 获取物品固定属性 |
GetAttributeByType(EItemAttributeType AttributeType) | 使用类型获取物品固定属性 |
GetMutableAttribute(TSubclassOf<UItemMutableAttribute> MutableAttributeClass) | 获取物品可变属性 |
GetBasic | 获取物品基础(ItemClass) |
EqualItemClass(UPrimalItem* Item) | 与另外一个物品是否相同 |
GetCanStackable | 是否可堆叠 |
GetSpaceCount | 获取剩余堆叠数量 |
IsFull | 是否堆叠已满 |
IsBreak | 物品是否毁坏 |
IsEquipped | 物品是否被装备,非快捷栏 |
GetRarity | 获取物品品质 |
GetItemName | 获取物品名称 |
GetDescription | 获取物品说明 |
GetImage | 获取物品图标 |
GetMaxQuantity | 获取最大物品数量 |
GetQuantity | 获取当前物品数量 |
GetWeight | 获取单个物品负重 |
GetItemType | 获取物品类型 |
GetDurability | 获取物品耐久 |
GetMaxDurability | 获取物品最大耐久 |
GetBreakPercentage | 获取物品毁坏程度(0.f 到 1.f),满耐久返回0.f |
GetRepairResource(制作属性) | 获取修理物品所需材料 |
GetEnhanceResource(强化属性) | 获取强化所需材料 |
GetCraftResource(制作属性) | 获取制作所需材料,无需判断是否为蓝图 |
GetStarRating | 获取物品星级 |
GetDecayTimeText | 获取腐坏时间文本格式: “时:分:秒” |
GetStat(EAbilityStatType StatType, bool IncludeEnhance) | 获取物品属性 IncludeEnhance 包含强化后的属性,false则返回物品基础属性 |
GetEnhanceStat(EAbilityStatType StatType) | 获取强化属性,单独获取强化增加的数值 |
GetEnhanceStats | 获取所有强化属性数值 |
GetStats(bool IncludeEnhance) | 获取所有物品数值 |
查询函数 | |
CanRemove | 是否可被移除,丢弃时使用 |
CanDecay | 是否可腐坏 |
CanCraft | 是否可制作,判断制作平台 |
AllowRepair | 允许修理,判断制作平台与CanRepair |
CanRepair | 可否修理,带有修理属性的物品返回true |
AllowEnhance | 允许强化,判断制作平台与当前星级是否最大与允许主动强化 |
CanEnhance | 可否强化,判断是否具有强化属性与星级是否已满 |
CanUse | 允许使用,判断具有使用属性和使用CD |
GetUseColdDown | 获取使用冷却时间,当前可使用物品返回0 |
CanEquipToQuick | 可否装备到快捷栏 |
CanEquip | 可否装备到装备栏 |
CanTransferToRemoteInventory(UUltimateInventoryComponent* Inventory) | 可否转移到另外一个库存系统中,右键菜单使用 |
RemoveItemFromInventory | 从库存系统中移除,该函数不会进行客户端通知 如需移除请使用库存组件与控制组件进行移除物品 |
GetAmmoQuantity(LauncherWeapon可变属性) | 获取弹药数量 |
GetAmmoClass(LauncherWeapon可变属性) | 获取弹药类型 |
修改器 | |
ModifyDurability(float Value) | 修改耐久,扣1点耐久则Value填写1.f |
ApplyEnhance(int32 AppointIndex) | 强化物品,该函数不会消耗材料与限制用户,服务器专用函数,AppointIndex为-1则为随机强化 |
FMutableAttributeCache 结构为同步可变属性的缓存结构,其中实现了可变属性序列化
FItemBuildInfo 结构为物品创建信息,用于添加物品或网络复制