---@class WBP_SelectSkillItem_C:UUserWidget ---@field Button_Main UButton ---@field IconAndBG UWBP_WeaponItemFitting_C ---@field TextBlock_SkillName UTextBlock ---@field SlotNum int32 --Edit Below-- local WBP_SelectSkillItem = { bInitDoOnce = false; SkillItemID = 0; SkillIdToReplace = 0; ParentWidget = nil; }; function WBP_SelectSkillItem:Construct() self.Button_Main.OnClicked:Add(WBP_SelectSkillItem.ClickSkill, self) end -- function WBP_SelectSkillItem:Tick(MyGeometry, InDeltaTime) -- end function WBP_SelectSkillItem:SetParentWidget(InWidget) self.ParentWidget = InWidget end function WBP_SelectSkillItem:SetSlotNum(InNum) self.SlotNum = InNum end function WBP_SelectSkillItem:Destruct() self.Button_Main.OnClicked:Remove(WBP_SelectSkillItem.ClickSkill, self) end function WBP_SelectSkillItem:ClickSkill() if self.SkillIdToReplace ~= 0 then -- 调用 PlayerController 中的方法进行更换 local PC = GameDataManager.GetLocalPlayerController() print(string.format('[WBP_SelectSkillItem:ClickSkill] 选择Skill:%d', self.SkillIdToReplace)) UnrealNetwork.CallUnrealRPC(PC, PC, "ServerRPC_GiveSkill", GameDataManager.GetSkillNameById(self.SkillIdToReplace), self.SlotNum, GameDataManager.GetSkillLevelById(self.SkillIdToReplace)) UIManager:ClosePanel(EUIType.UseSkill) end end function WBP_SelectSkillItem:SetReplaceItemId(InId) -- 检查当前是否有 self.SkillIdToReplace = InId; end function WBP_SelectSkillItem:SetLastItemId(InId) -- 显示出来对应的 -- 找到对应描述和图标 self.SkillItemID = InId print(string.format('[WBP_SelectSkillItem:SetLastItemId] ItemId = %d', InId)) local ItemInfo = GameDataManager.GetItemInfoByItemID(InId) self.IconAndBG:SetItemIcon(ItemInfo.Icon) self.IconAndBG:SetItemBGColor(GetItemQualityLevel(InId)) self.TextBlock_SkillName:SetText(DropItemMap.SkillItemMap[InId].SkillName) end return WBP_SelectSkillItem;