227 lines
5.2 KiB
Plaintext
227 lines
5.2 KiB
Plaintext
SocialData = reusableClass("SocialData")
|
|
SocialData.PoolSize = 50
|
|
|
|
function SocialData:SetData(data)
|
|
if data then
|
|
self.guid = data.guid
|
|
self.accid = data.accid
|
|
self.level = data.level
|
|
self.portrait = data.portrait
|
|
self.hairID = data.hair
|
|
self.haircolor = data.haircolor
|
|
self.bodyID = data.body
|
|
self.headID = data.head
|
|
self.faceID = data.face
|
|
self.mouthID = data.mouth
|
|
self.eyeID = data.eye
|
|
self.frame = data.frame
|
|
self.offlinetime = data.offlinetime or 0
|
|
self.relation = data.relation
|
|
self.profession = data.profession
|
|
self.gender = data.gender
|
|
self.name = data.name
|
|
self.guildname = data.guildname
|
|
self.guildportrait = data.guildportrait
|
|
self.adventureLv = data.adventurelv
|
|
self.adventureExp = data.adventureexp
|
|
self.appellation = data.appellation
|
|
self.mapid = data.mapid
|
|
self.blink = data.blink or false
|
|
self.zoneid = data.zoneid
|
|
self:SetCreatetime(data.createtime)
|
|
self.profic = data.profic
|
|
self.recall = data.recall --是否被召回
|
|
self.canRecall = data.canrecall --是否可召回(是否是雙向好友)
|
|
|
|
self:SetChatData(data)
|
|
end
|
|
end
|
|
|
|
function SocialData:SetCreatetime(createtime)
|
|
if createtime then
|
|
self.createtime = createtime
|
|
self.createtimeList = string.split(createtime , ":")
|
|
|
|
for i=1,#self.createtimeList do
|
|
self.createtimeList[i] = tonumber(self.createtimeList[i])
|
|
end
|
|
end
|
|
end
|
|
|
|
function SocialData:GetCreatetime(relation)
|
|
if relation and self.createtimeList then
|
|
return self.createtimeList[relation] or 0
|
|
end
|
|
|
|
return 0
|
|
end
|
|
|
|
function SocialData:AddRelation(relation)
|
|
if self.relation and relation then
|
|
self.relation = self.relation + relation
|
|
end
|
|
end
|
|
|
|
function SocialData:GetUIId()
|
|
local limitNum = math.floor( math.pow(10, 12) )
|
|
return math.floor(self.guid % limitNum)
|
|
end
|
|
|
|
function SocialData:IsOnline()
|
|
return self.offlinetime == 0
|
|
end
|
|
|
|
function SocialData:IsChat()
|
|
return BitUtil.band(self.relation, SocialManager.SocialRelation.Chat) ~= 0
|
|
end
|
|
|
|
function SocialData:IsForeverBlack()
|
|
return BitUtil.band(self.relation, SocialManager.SocialRelation.BlackForever) ~= 0
|
|
end
|
|
|
|
function SocialData:IsTutorApply()
|
|
return BitUtil.band(self.relation, SocialManager.SocialRelation.TutorApply) ~= 0
|
|
end
|
|
|
|
function SocialData:CheckCanRecall()
|
|
if not FriendProxy.Instance:CheckRecallActivity() then
|
|
return false
|
|
end
|
|
|
|
if self.level < GameConfig.Recall.BaseLv then
|
|
return false
|
|
end
|
|
|
|
local offlinetime = self.offlinetime
|
|
if offlinetime == 0 then
|
|
return false
|
|
end
|
|
|
|
if not self.canRecall then
|
|
return false
|
|
end
|
|
|
|
local sec = ServerTime.CurServerTime()/1000 - offlinetime
|
|
if sec < GameConfig.Recall.OfflineTime then
|
|
return false
|
|
end
|
|
|
|
return true
|
|
end
|
|
|
|
--chat
|
|
function SocialData:SetChatData(data)
|
|
if data.guid then
|
|
self.id = data.guid
|
|
end
|
|
if data.id then
|
|
self.id = data.id --聊天框id
|
|
end
|
|
if data.unreadCount then
|
|
self.unreadCount = data.unreadCount --未讀數量
|
|
end
|
|
end
|
|
|
|
function SocialData:SetDataByChatMessageData(chatId,data)
|
|
self.guid = chatId
|
|
self.id = chatId
|
|
self.name = data:GetName()
|
|
self.hairID = data:GetHair()
|
|
self.haircolor = data:GetHaircolor()
|
|
self.bodyID = data:GetBody()
|
|
self.headID = data:GetHead()
|
|
self.faceID = data:GetFace()
|
|
self.mouthID = data:GetMouth()
|
|
self.eyeID = data:GetEye()
|
|
self.profession = data:GetProfession()
|
|
self.gender = data:GetGender()
|
|
self.guildname = data:GetGuildname()
|
|
self.rolejob = data:GetProfession() --用於聊天室
|
|
self.level = data:GetLevel()
|
|
self.appellation = data:GetAppellation()
|
|
self.blink = data:GetBlink()
|
|
self.portrait = data:GetPortrait()
|
|
self.relation = 0
|
|
self.offlinetime = 0
|
|
end
|
|
|
|
function SocialData:SetDataByPlayerTipData(data)
|
|
self.guid = data.id
|
|
self.id = data.id
|
|
self.name = data.name or ""
|
|
local iconData = data.headData.iconData
|
|
self.portrait = iconData.icon or 0
|
|
self.hairID = iconData.hairID or 0
|
|
self.haircolor = iconData.haircolor or 0
|
|
self.bodyID = iconData.bodyID or 0
|
|
self.gender = iconData.gender or 0
|
|
self.guildname = data.guildname or ""
|
|
self.level = data.level or 0
|
|
self.appellation = data.appellation or 0
|
|
self.blink = iconData.blink or false
|
|
self.relation = 0
|
|
self.offlinetime = 0
|
|
end
|
|
|
|
function SocialData:ResetUnreadCount()
|
|
self.unreadCount = 0
|
|
end
|
|
|
|
function SocialData:AddUnreadCount()
|
|
if self.unreadCount == nil then
|
|
self.unreadCount = 0
|
|
end
|
|
self.unreadCount = self.unreadCount + 1
|
|
end
|
|
|
|
function SocialData:SetUnreadCount(count)
|
|
self.unreadCount = count
|
|
end
|
|
|
|
function SocialData:Clear()
|
|
self.accid = nil
|
|
self.level = nil
|
|
self.portrait = nil
|
|
self.hairID = nil
|
|
self.haircolor = nil
|
|
self.bodyID = nil
|
|
self.headID = nil
|
|
self.faceID = nil
|
|
self.mouthID = nil
|
|
self.eyeID = nil
|
|
self.frame = nil
|
|
self.offlinetime = nil
|
|
self.profession = nil
|
|
self.gender = nil
|
|
self.name = nil
|
|
self.guildname = nil
|
|
self.guildportrait = nil
|
|
self.adventureLv = nil
|
|
self.adventureExp = nil
|
|
self.appellation = nil
|
|
self.mapid = nil
|
|
self.blink = nil
|
|
self.zoneid = nil
|
|
self.createtime = nil
|
|
self.createtimeList = nil
|
|
self.profic = nil
|
|
--chat
|
|
self.id = nil
|
|
self.rolejob = nil
|
|
end
|
|
|
|
-- override begin
|
|
function SocialData:DoConstruct(asArray, serverData)
|
|
SocialData.super.DoConstruct(self,asArray,serverData)
|
|
self:SetData(serverData)
|
|
end
|
|
|
|
function SocialData:DoDeconstruct(asArray)
|
|
SocialData.super.DoDeconstruct(self,asArray)
|
|
|
|
self.guid = nil
|
|
self.relation = nil
|
|
self.unreadCount = nil
|
|
self:Clear()
|
|
end
|
|
-- override end |