控制器组件:UltimateControllerComponent
用于控制其他玩家或建筑、怪物等交互使用的组件
需添加到玩家控制器下
此组件为本插件中使用最为频繁的组件,可交互非本地玩家控制的实体也可交互本地玩家的实体
交互系统、库存系统等均由玩家藉由该组件进行调用
变量 | 说明 |
---|---|
InteractionColdDownTime | 冷却时间,包含移动物品等由玩家发起的命令冷却 |
CommandColdDownTime | 交互系统冷却时间 |
客户端请求函数(无论是否联网都用此函数) | 说明 |
---|---|
库存系统 | |
ServerRequestSyncInventory(UUltimateInventoryComponent* Inventory) | 尝试同步库存系统,得到许可或接管控制器后调用 |
ServerActorCloseRemoteInventory() | 关闭库存许可,关闭库存UI时调用 |
ServerTransferToRemoteInventory(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 传送物品到另外一个库存系统 |
ServerTransferFromRemoteInventory(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 从另外一个库存系统中传送物品到背包中 |
ServerTransferAllToRemoteInventory(UUltimateInventoryComponent* Inventory) | 传送所有背包物品到另外一个库存系统中,不包含装备栏与快捷栏中的物品 |
ServerTransferAllFromRemoteInventory(UUltimateInventoryComponent* Inventory) | 传送另外一个库存系统的所有物品到本地玩家的库存系统中,包含装备栏与快捷栏中的物品 |
ServerDropItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 从指定库存系统中丢弃物品 |
ServerDropAllItems(UUltimateInventoryComponent* Inventory) | 从指定库存系统中丢弃所有物品 |
ServerDropMultiItems(UUltimateInventoryComponent* Inventory,const TArray<FItemUID>& ItemUIDs) | 从指定库存系统中丢弃多个指定物品 |
ServerSplitItemStack(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, UUltimateInventoryComponent* TargetInventory, FItemUID TargetItemUID, int32 AmountToSplit) | 从指定库存系统中拆分物品堆叠 |
ServerSplitItemAllStack(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 从指定库存系统中拆分物品为一个一个的单个物品 |
ServerRepairItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 从指定库存系统中修理物品 |
ServerCraftItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, int32 AmountToCraft) | 从指定库存系统中制作物品 |
ServerRemoveCraftQueue(UUltimateInventoryComponent* Inventory, int32 QueueIndex) | 从指定库存系统中移除制作队列 |
ServerEquipItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID,int32 SlotIndex) | 从指定库存系统中装备物品 |
ServerUnequipItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID) | 从指定库存系统中取消装备物品 |
ServerEnhanceItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, int32 AppointIndex) | 从指定库存系统中强化物品 |
交互系统 | |
ServerUseCommand(AActor* Actor, int32 CommandID) | 与实体交互,交互系统使用该函数 |
属性系统 | |
ServerApplyPoint(UUltimateStatusComponent* StatusComponent, EAbilityStatType StatType) | 应用属性点,属性系统使用该函数 |
同步函数 | 说明 |
---|---|
ClientStartReceivingActorItems(UUltimateInventoryComponent* Inventory) | 客户端开始同步物品 |
ClientEndReceivingActorItems(UUltimateInventoryComponent* Inventory) | 客户端停止同步物品 |
ClientUpdateInventoryCraftQueue(UUltimateInventoryComponent* Inventory,const TArray<FItemCraftQueueEntry>& NewCraftQueueEntries) | 客户端刷新制作队列 |
ClientUpdateItemQuantity(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, int32 Quantity, bool bShowHUDNotification) | 客户端刷新物品数量 |
ClientRemoveActorItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, bool bShowHUDNotification) | 客户端移除物品 |
ClientSwapActorItem(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, FItemUID TargetItemUID) | 客户端交换物品 |
ClientAddActorItem(UUltimateInventoryComponent* Inventory, FItemBuildInfo BuildInfo, EInventorySite InventorySite, bool bShowHUDNotification) | 客户端添加物品 |
ClientUpdateItemSlotIndex(UUltimateInventoryComponent* Inventory, FItemUID ItemUID, int32 SlotIndex) | 客户端刷新物品插槽位置 |
ClientApplyItemColdDown(UUltimateInventoryComponent* Inventory, FName ColdDownGroup,double DeleteTime) | 客户端应用物品冷却 |
ClientUpdateItemMutableAttribute(FMutableAttributeCache MutableAttributeCache) | 客户端刷新物品可变属性,此函数无内容,但应用了序列化同步,禁止删除 |
ClientShowInventory(UUltimateInventoryComponent* Inventory) | 客户端打开库存系统 |
ClientCloseInventory() | 客户端关闭库存系统 |
ClientApplyPointSuccess() | 客户端加点成功 |
事件委托函数 | 说明 |
---|---|
ClientPlayCraftSound | 播放制作音效 Success 成功 Add 添加 Remove 移除 |
ClientShowInventory | 打开库存UI,取得许可后调用 |
ClientCloseInventory | 关闭库存UI,距离过远时会调用此函数 |
PlayApplyPointSound | 播放应用加点音效 |
服务器专用函数 | 说明 |
---|---|
SendClientViewRemoteInventory(UUltimateInventoryComponent* Inventory) | 通知客户端已成功取得许可,随后调用ClientShowInventory打开库存UI |
SendClientCloseRemoteInventory() | 通知客户端已关闭库存,随后调用ClientCloseInventory关闭库存UI |
UI函数 | 说明 |
---|---|
AssignDragType(EItemDragType DragType, UPrimalItem* Item) | 分派拖拽类型,开始拖拽时调用,记录拖拽位置 |
GetDragType | 获得拖拽类型 |
ApplySlotDrag(UUltimateInventoryComponent* Inventory,UPrimalItem* Item, EItemDragType InDragType, int32 SlotIndex) | 应用拖拽,用于实现拖拽操作,拖拽放下时调用 |