71 lines
2.1 KiB
Plaintext
71 lines
2.1 KiB
Plaintext
FunctionPlayerDistance = class("FunctionPlayerDistance")
|
|
|
|
-- FunctionPlayerDistance.AreaRange = GameConfig.Optimized.Shieldingrange
|
|
|
|
FunctionPlayerDistance.CreatureType = {
|
|
SceneUser = 1,
|
|
SceneNpc = 2,
|
|
}
|
|
|
|
function FunctionPlayerDistance.Me()
|
|
if nil == FunctionPlayerDistance.me then
|
|
FunctionPlayerDistance.me = FunctionPlayerDistance.new()
|
|
end
|
|
return FunctionPlayerDistance.me
|
|
end
|
|
|
|
function FunctionPlayerDistance:ctor()
|
|
self.reason = PUIVisibleReason.OutOfMyRange
|
|
self.flag = FunctionPlayerDistance.CreatureType.SceneUser
|
|
end
|
|
|
|
function FunctionPlayerDistance:Launch()
|
|
if self.timeTick == nil then
|
|
self.timeTick = TimeTickManager.Me():CreateTick(0,500,self.SelfUpdate,self)
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerDistance:SelfUpdate(deltaTime)
|
|
if Game.Myself ~= nil and Game.Myself.assetRole ~= nil and Game.Myself.data ~= nil then
|
|
self:Update(deltaTime)
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerDistance:Update(deltaTime)
|
|
local maskRange = Game.MapManager:GetCreatureMaskRange()
|
|
if maskRange == 0 then
|
|
return
|
|
end
|
|
local pos = Game.Myself:GetPosition()
|
|
local roles
|
|
if self.flag == FunctionPlayerDistance.CreatureType.SceneUser then
|
|
roles = NSceneUserProxy.Instance:GetAll()
|
|
self.flag = FunctionPlayerDistance.CreatureType.SceneNpc
|
|
|
|
elseif self.flag == FunctionPlayerDistance.CreatureType.SceneNpc then
|
|
roles = NSceneNpcProxy.Instance:GetAll()
|
|
self.flag = FunctionPlayerDistance.CreatureType.SceneUser
|
|
end
|
|
|
|
for k,v in pairs(roles) do
|
|
if Game.Myself.data.id ~= k and v ~= nil then
|
|
if VectorUtility.DistanceXZ( pos, v:GetPosition() ) <= maskRange then
|
|
self:UnMaskUI(v)
|
|
else
|
|
self:MaskUI(v)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function FunctionPlayerDistance:MaskUI(creature)
|
|
FunctionPlayerUI.Me():MaskHurtNum(creature,self.reason,false)
|
|
FunctionPlayerUI.Me():MaskChatSkill(creature,self.reason,false)
|
|
FunctionPlayerUI.Me():MaskEmoji(creature,self.reason,false)
|
|
end
|
|
|
|
function FunctionPlayerDistance:UnMaskUI(creature)
|
|
FunctionPlayerUI.Me():UnMaskHurtNum(creature,self.reason,false)
|
|
FunctionPlayerUI.Me():UnMaskChatSkill(creature,self.reason,false)
|
|
FunctionPlayerUI.Me():UnMaskEmoji(creature,self.reason,false)
|
|
end |