2025-06-04 05:12:01 +08:00

225 lines
6.2 KiB
Plaintext

PlayerBottomView = class("PlayerBottomView", SubView)
autoImport("GuildPictureManager");
function PlayerBottomView:Init()
self:initData()
self:AddViewEvents()
end
function PlayerBottomView:initData( )
--遮蔽數據
self.selectedRoleId = nil
end
function PlayerBottomView:AddViewEvents( )
-- body
self:AddListenEvt(MyselfEvent.SelectTargetChange, self.HandlerSelectTargetChange)
self:AddListenEvt(ServiceEvent.UserEventDamageNpcUserEvent, self.HandlerHit)
self:AddListenEvt(MyselfEvent.BeHited, self.HandlerBeHit)
self:AddListenEvt(ServiceEvent.GuildCmdGuildInfoNtf, self.HandlerPlayerFactionChange)
self:AddListenEvt(TeamEvent.MemberEnterTeam, self.HandlerMemberDataChange)
self:AddListenEvt(TeamEvent.MemberExitTeam, self.HandlerMemberDataChange)
self:AddListenEvt(SetEvent.ShowOtherName, self.HandleSettingMask)
self:AddListenEvt(SceneUIEvent.SceneUIEnable, self.HandleSceneUIEnable)
self:AddListenEvt(SceneUIEvent.SceneUIDisable, self.HandleSceneUIDisable)
self:AddListenEvt(SceneUIEvent.RemoveMonsterNamePre, self.RemoveMonsterNamePre)
self:AddListenEvt(SceneUIEvent.AddMonsterNamePre, self.AddMonsterNamePre)
self:AddListenEvt(CreatureEvent.Name_Change, self.HandlerName_Change)
self:AddListenEvt(GuildPictureManager.ThumbnailDownloadCompleteCallback, self.HandleGuildIconDownloadComplete)
end
function PlayerBottomView:AddMonsterNamePre(note)
local questData = note.body
local groupID = questData.params.groupId
local npcID = questData.params.monster
local npcUID = questData.params.uniqueid
local targets
-- helplog("AddMonsterNamePre",groupID)
-- helplog("AddMonsterNamePre",npcID)
-- helplog("AddMonsterNamePre",npcUID)
if(npcID)then
targets = NSceneNpcProxy.Instance:FindNpcs(npcID)
end
if(not targets and groupID)then
targets = NSceneNpcProxy.Instance:FindNpcsByGroupID(groupID)
end
if(not targets and npcUID)then
targets = NSceneNpcProxy.Instance:FindNpcByUniqueId(npcUID)
end
if(not targets)then
return
end
for i=1,#targets do
local creature = targets[i]
local sceneUI = creature:GetSceneUI()
if(sceneUI and sceneUI.roleBottomUI)then
sceneUI.roleBottomUI:SetQuestPrefixVisible(creature,true)
end
end
end
function PlayerBottomView:RemoveMonsterNamePre(note)
local questData = note.body
local groupID = questData.params.groupId
local npcID = questData.params.monster
local npcUID = questData.params.uniqueid
local targets
if(npcID)then
targets = NSceneNpcProxy.Instance:FindNpcs(npcID)
end
if(not targets and groupID)then
targets = NSceneNpcProxy.Instance:FindNpcsByGroupID(groupID)
end
if(not targets and npcUID)then
targets = NSceneNpcProxy.Instance:FindNpcByUniqueId(npcUID)
end
if(not targets)then
return
end
for i=1,#targets do
local creature = targets[i]
local sceneUI = creature:GetSceneUI()
if(sceneUI and sceneUI.roleBottomUI)then
sceneUI.roleBottomUI:SetQuestPrefixVisible(creature,false)
end
end
end
function PlayerBottomView:HandlerSelectTargetChange(note)
local creature = note.body
local id = creature and creature.data.id or nil
if self.selectedRoleId ~= nil and self.selectedRoleId ~= id then
local creature = self:getCreature(self.selectedRoleId)
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:SetIsSelected(false,creature)
end
self.selectedRoleId = nil
end
local creature = self:getCreature(id)
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:SetIsSelected(true,creature)
self.selectedRoleId = id
end
end
function PlayerBottomView:HandlerPlayerFactionChange( note )
-- body
local data = note.body
if(data)then
local id = data.charid
local creature = self:getCreature(id)
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:HandlerPlayerFactionChange(creature)
end
end
end
function PlayerBottomView:HandlerName_Change( note )
-- body
-- helplog("HandlerName_Change1")
local creature = note.body
if(creature)then
-- helplog("HandlerName_Change2")
local sceneUI = creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:HandleChangeTitle(creature)
end
end
end
function PlayerBottomView:HandleSettingMask( )
-- body
SceneCreatureProxy.ForEachCreature(self.HandleSettingMaskCreature)
end
function PlayerBottomView.HandleSettingMaskCreature(creature)
if(creature) then
creature:HandleSettingMask()
end
end
function PlayerBottomView:HandlerMemberDataChange(note)
local data = note.body
if(data)then
local id = data and data.id or nil
local creature = self:getCreature(id)
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:HandlerMemberDataChange(creature)
end
end
end
function PlayerBottomView:HandlerBeHit( note )
-- body
if(LowBloodBlinkView.Instance)then
LowBloodBlinkView.ShowLowBloodBlinkWhenHit()
end
end
function PlayerBottomView:HandlerHit(note)
local data = note.body
local id = data.npcguid
local userid = data.userid
local creature = self:getCreature(id)
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:SetIsBeHit(true,creature)
end
end
function PlayerBottomView:getCreature( guid )
-- body
if(not guid)then
return
end
return SceneCreatureProxy.FindCreature(guid)
end
function PlayerBottomView:HandleSceneUIEnable( )
-- body
local uiCm = NGUIUtil:GetCameraByLayername("SceneUI");
uiCm.enabled = true
end
function PlayerBottomView:HandleSceneUIDisable( )
-- body
local uiCm = NGUIUtil:GetCameraByLayername("SceneUI");
uiCm.enabled = false
end
local tempArray = {}
function PlayerBottomView:HandleGuildIconDownloadComplete(note)
local data = note.body
local guild = data.guild
local index = data.index
local time = data.time
NSceneUserProxy.Instance:FindCreateByGuild(guild,tempArray)
GuildPictureManager.Instance():log("PlayerBottomView HandleGuildIconDownloadComplete",guild,index, time)
if(tempArray and #tempArray>0)then
for i=1,#tempArray do
local creature = tempArray[i]
local sceneUI = creature and creature:GetSceneUI() or nil
if(sceneUI)then
sceneUI.roleBottomUI:HandlerPlayerFactionChange(creature)
end
end
end
TableUtility.ArrayClear(tempArray)
end