---@class WB_ShowVSPlayerInfo_C:UUserWidget ---@field ShowPK UWidgetAnimation ---@field Common_Avatar_BP_C_Enemy UCommon_Avatar_BP_C ---@field Common_Avatar_BP_C_Self UCommon_Avatar_BP_C ---@field Image_EnemyDan UImage ---@field Image_EnemyHead UImage ---@field Image_SelfDan UImage ---@field Image_SelfHead UImage ---@field TextBlock_EnemyHideScore UTextBlock ---@field TextBlock_EnemyName UTextBlock ---@field TextBlock_EnemyScore UTextBlock ---@field TextBlock_SelfHideScore UTextBlock ---@field TextBlock_SelfName UTextBlock ---@field TextBlock_SelfScore UTextBlock ---@field WidgetSwitcher_0 UWidgetSwitcher ---@field WidgetSwitcher_1 UWidgetSwitcher --Edit Below-- ---@type WB_ShowVSPlayerInfo_C local WB_ShowVSPlayerInfo = { bInitDoOnce = false } function WB_ShowVSPlayerInfo:Construct() self:LuaInit(); end -- function WB_ShowVSPlayerInfo:Tick(MyGeometry, InDeltaTime) -- end -- function WB_ShowVSPlayerInfo:Destruct() -- end -- [Editor Generated Lua] function define Begin: function WB_ShowVSPlayerInfo:LuaInit() if self.bInitDoOnce then return ; end self.bInitDoOnce = true; UGCGameSystem.SetTimer(self, function() self:InsertPlayerInfo(); end, 10); end function WB_ShowVSPlayerInfo:OnShowPanel() if table.getCount(UE.GetAccountInfo()) > 1 then self:PlayAnimation(self.ShowPK, 0, 1, EUMGSequencePlayMode.Forward, 1.0); -- 延迟移除 UGCLogSystem.Log("[WB_ShowVSPlayerInfo:OnShowPanel] ShowPK Time = %s", tostring(self.ShowPK:GetEndTime())); UGCEventSystem.SetTimer(self, function() self.Common_Avatar_BP_C_Enemy:SetVisibility(ESlateVisibility.Collapsed); self.Common_Avatar_BP_C_Self:SetVisibility(ESlateVisibility.Collapsed); self:SetVisibility(ESlateVisibility.Collapsed); WidgetManager:ClosePanel(WidgetConfig.EUIType.ShowPK); end, self.ShowPK:GetEndTime()); else self.Common_Avatar_BP_C_Enemy:SetVisibility(ESlateVisibility.Collapsed); self.Common_Avatar_BP_C_Self:SetVisibility(ESlateVisibility.Collapsed); self:SetVisibility(ESlateVisibility.Collapsed); WidgetManager:ClosePanel(WidgetConfig.EUIType.ShowPK); end end function WB_ShowVSPlayerInfo:InsertPlayerInfo() UGCLogSystem.Log("[WB_ShowVSPlayerInfo:InsertPlayerInfo] 执行") for PlayerKey, Archive in pairs(ArchiveTable) do self:UpdatePlayerInfo(PlayerKey, { UID = AccountTable[PlayerKey].UID, IconURL = AccountTable[PlayerKey].IconURL, Gender = AccountTable[PlayerKey].Gender, AvatarBoxId = AccountTable[PlayerKey].AvatarBoxId, PlayerLevel = AccountTable[PlayerKey].PlayerLevel, PlayerName = AccountTable[PlayerKey].PlayerName, Score = Archive.Score, HideScore = Archive.HideScore, }); end end ---@param HeadInfo table {UID:string, IconURL:string, Gender:int, AvatarBoxId:int, PlayerLevel:int, PlayerName:string, Score:uint, HideScore:uint} 其中AvatarBoxId可以从PlayerState中获取 function WB_ShowVSPlayerInfo:UpdatePlayerInfo(PlayerKey, PlayerInfo) UGCLogSystem.LogTree(string.format("[WB_ShowVSPlayerInfo:UpdatePlayerInfo] PlayerInfo ="), PlayerInfo) local Dan = 1 for i, v in pairs(RankInformationTable.DanInfo) do if v.MinScore <= PlayerInfo.Score then Dan = i; end end UGCLogSystem.Log("[WB_ShowVSPlayerInfo:UpdatePlayerInfo] PlayerName = %s", PlayerInfo.PlayerName) local ShowSelf = false; if LocalIsFriendSpectator or LocalIsGlobalSpectator then ShowSelf = UE.GetTeamID(PlayerKey) == 1; else ShowSelf = PlayerKey == LocalPlayerKey; end if ShowSelf then self.TextBlock_SelfName:SetText(PlayerInfo.PlayerName) self.TextBlock_SelfScore:SetText(PlayerInfo.Score) if PlayerInfo.HideScore > 0 then self.TextBlock_SelfHideScore:SetText('(' .. PlayerInfo.HideScore .. ')') else self.TextBlock_SelfHideScore:SetText("") end UE.AsyncLoadObject(RankInformationTable.DanInfo[Dan].Icon, function(Tex) self.Image_SelfDan:SetBrushFromTexture(Tex); end); self.Common_Avatar_BP_C_Self:InitView(2, PlayerInfo.UIDString, PlayerInfo.IconURL, PlayerInfo.Gender, PlayerInfo.AvatarBoxId, PlayerInfo.PlayerLevel, false, false) else self.TextBlock_EnemyName:SetText(PlayerInfo.PlayerName) self.TextBlock_EnemyScore:SetText(PlayerInfo.Score) if PlayerInfo.HideScore > 0 then self.TextBlock_EnemyHideScore:SetText('(' .. PlayerInfo.HideScore .. ')') else self.TextBlock_EnemyHideScore:SetText("") end UE.AsyncLoadObject(RankInformationTable.DanInfo[Dan].Icon, function(Tex) self.Image_EnemyDan:SetBrushFromTexture(Tex); end); self.Common_Avatar_BP_C_Enemy:InitView(2, PlayerInfo.UIDString, PlayerInfo.IconURL, PlayerInfo.Gender, PlayerInfo.AvatarBoxId, PlayerInfo.PlayerLevel, false, false) end end -- [Editor Generated Lua] function define End; return WB_ShowVSPlayerInfo