680 lines
26 KiB
Lua
680 lines
26 KiB
Lua
GoodFriendManager = {};
|
|
local this = GoodFriendManager
|
|
local GameSetting = ConfigManager.GetConfig(ConfigName.GameSetting)
|
|
local VipLevelConfig = ConfigManager.GetConfig(ConfigName.VipLevelConfig)
|
|
local specialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
|
|
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
|
|
local gameSetting = ConfigManager.GetConfig(ConfigName.GameSetting)
|
|
local skillConfig = ConfigManager.GetConfig(ConfigName.SkillConfig)
|
|
local passiveSkillConfig = ConfigManager.GetConfig(ConfigName.PassiveSkillConfig)
|
|
local equipConfig = ConfigManager.GetConfig(ConfigName.EquipConfig)
|
|
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
|
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
|
local equipSign = ConfigManager.GetConfig(ConfigName.EquipSign)
|
|
local equipStarsConfig = ConfigManager.GetConfig(ConfigName.EquipStarsConfig)
|
|
--好友列表数据
|
|
this.friendAllData = {}
|
|
--申请好友数据
|
|
this.friendApplicationData = {}
|
|
--好友搜索推荐数据
|
|
this.friendSearchData = {}
|
|
--黑名单数据
|
|
this.blackFriendList = {}
|
|
--预览其他玩家已装备信息
|
|
this.equipDatas = {}
|
|
|
|
function this.CreateFriendData()
|
|
return {
|
|
--好友的id
|
|
id = nil,
|
|
--好友名字
|
|
name = nil,
|
|
--好友的等级
|
|
lv = nil,
|
|
--好友离线时间 0表示在线
|
|
offLineTime = nil,
|
|
--是否有友情点可以领取 0: 没有 1:有
|
|
haveReward = nil,
|
|
--是否赠送过友情点 0: 否 ,1:是
|
|
isGive = nil,
|
|
--新头像
|
|
head = nil,
|
|
--头像框
|
|
frame = nil,
|
|
--战斗力
|
|
soulVal = nil,
|
|
}
|
|
end
|
|
function this.Initialize()
|
|
--能够收取好友友情点的次数
|
|
this.MaxEnergyGet = 0
|
|
--收取好友友情点上限
|
|
this.MaxEnergy = 0
|
|
--好友上限数量
|
|
this.goodFriendLimit = 0
|
|
--黑名单上限
|
|
this.blackFriendLimit = 0
|
|
end
|
|
|
|
function this.OnRefreshEnegryData()
|
|
this.MaxEnergyGet = PrivilegeManager.GetPrivilegeRemainValue(GameSetting[1].MaxEnergyGet)
|
|
this.MaxEngery = PrivilegeManager.GetPrivilegeNumber(GameSetting[1].MaxEnergyGet)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
CheckRedPointStatus(RedPointType.Friend_GetAllReward)
|
|
end
|
|
|
|
--跨天刷新
|
|
function this.OnRefreshDataNextDay()
|
|
this.MaxEnergyGet = PrivilegeManager.GetPrivilegeRemainValue(GameSetting[1].MaxEnergyGet)
|
|
this.MaxEngery = PrivilegeManager.GetPrivilegeNumber(GameSetting[1].MaxEnergyGet)
|
|
for i, v in pairs(this.friendAllData) do
|
|
v.isGive = 0
|
|
v.haveReward = 0
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
CheckRedPointStatus(RedPointType.Friend_GetAllReward)
|
|
end
|
|
|
|
--添加申请好友数据刷新
|
|
function this.OnFriendDataRefresh(type, msg)
|
|
if (type == 1) then
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends.id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends.name,msg.Friends.practiceLevel)
|
|
friendData.lv = msg.Friends.lv
|
|
friendData.offLineTime = msg.Friends.offLineTime
|
|
friendData.haveReward = msg.Friends.haveReward
|
|
friendData.isGive = msg.Friends.isGive
|
|
friendData.head = msg.Friends.head
|
|
friendData.frame = msg.Friends.frame
|
|
friendData.soulVal = msg.Friends.soulVal
|
|
friendData.userTitle=msg.Friends.userTitle
|
|
--friendData.isHaveApplication=1
|
|
this.friendAllData[friendData.id] = friendData
|
|
Log("好友列表" .. friendData.id)
|
|
end
|
|
if (type == 3) then
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends.id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends.name,msg.Friends.practiceLevel)
|
|
friendData.lv = msg.Friends.lv
|
|
friendData.offLineTime = msg.Friends.offLineTime
|
|
friendData.haveReward = msg.Friends.haveReward
|
|
friendData.isGive = msg.Friends.isGive
|
|
friendData.head = msg.Friends.head
|
|
friendData.frame = msg.Friends.frame
|
|
friendData.soulVal = msg.Friends.soulVal
|
|
friendData.userTitle=msg.Friends.userTitle
|
|
--friendData.isHaveApplication=1
|
|
this.friendApplicationData[friendData.id] = friendData
|
|
--RedPointManager.PlayerPrefsSetStr(PlayerManager.uid .. "redPointApplication",1)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
--获取好友信息
|
|
function this.GetFriendInfoRequest(type, msg)
|
|
this.goodFriendLimit = tonumber(specialConfig[11].Value)
|
|
this.blackFriendLimit = tonumber(specialConfig[30].Value)
|
|
this.MaxEnergyGet = PrivilegeManager.GetPrivilegeRemainValue(GameSetting[1].MaxEnergyGet)
|
|
this.MaxEnergy = PrivilegeManager.GetPrivilegeNumber(GameSetting[1].MaxEnergyGet)
|
|
if (type == 1) then
|
|
this.friendAllData = {}
|
|
for i = 1, #msg.Friends do
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends[i].id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends[i].name,msg.Friends[i].practiceLevel)--msg.Friends[i].name
|
|
friendData.lv = msg.Friends[i].lv
|
|
friendData.offLineTime = msg.Friends[i].offLineTime
|
|
friendData.haveReward = msg.Friends[i].haveReward
|
|
friendData.isGive = msg.Friends[i].isGive
|
|
friendData.head = msg.Friends[i].head
|
|
friendData.frame = msg.Friends[i].frame
|
|
friendData.soulVal = msg.Friends[i].soulVal
|
|
friendData.userTitle=msg.Friends[i].userTitle
|
|
--friendData.isHaveApplication=1
|
|
this.friendAllData[friendData.id] = friendData
|
|
Log("好友列表" .. friendData.id)
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
elseif (type == 3) then
|
|
this.friendApplicationData = {}
|
|
for i = 1, #msg.Friends do
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends[i].id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends[i].name,msg.Friends[i].practiceLevel)--msg.Friends[i].name
|
|
friendData.lv = msg.Friends[i].lv
|
|
friendData.offLineTime = msg.Friends[i].offLineTime
|
|
friendData.haveReward = msg.Friends[i].haveReward
|
|
friendData.isGive = msg.Friends[i].isGive
|
|
friendData.head = msg.Friends[i].head
|
|
friendData.frame = msg.Friends[i].frame
|
|
friendData.soulVal = msg.Friends[i].soulVal
|
|
friendData.userTitle=msg.Friends[i].userTitle
|
|
--friendData.isHaveApplication=1
|
|
this.friendApplicationData[friendData.id] = friendData
|
|
--RedPointManager.PlayerPrefsSetStr(PlayerManager.uid .. "redPointApplication",1)
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendApplication, this.friendApplicationData)
|
|
elseif (type == 2) then
|
|
this.friendSearchData = {}
|
|
for i = 1, #msg.Friends do
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends[i].id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends[i].name,msg.Friends[i].practiceLevel)--msg.Friends[i].name
|
|
friendData.lv = msg.Friends[i].lv
|
|
friendData.offLineTime = msg.Friends[i].offLineTime
|
|
friendData.haveReward = msg.Friends[i].haveReward
|
|
friendData.isGive = msg.Friends[i].isGive
|
|
friendData.isApplyed = msg.Friends[i].isApplyed
|
|
friendData.head = msg.Friends[i].head
|
|
friendData.frame = msg.Friends[i].frame
|
|
friendData.soulVal = msg.Friends[i].soulVal
|
|
friendData.userTitle=msg.Friends[i].userTitle
|
|
-- friendData.isHaveApplication=1s
|
|
this.friendSearchData[friendData.id] = friendData
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendSearch, false,false) --this.friendSearchData)
|
|
elseif (type == 4) then
|
|
this.blackFriendList = {}
|
|
for i = 1, #msg.Friends do
|
|
local friendData = this.CreateFriendData()
|
|
friendData.id = msg.Friends[i].id
|
|
friendData.name = PracticeManager.SetNameColor(msg.Friends[i].name,msg.Friends[i].practiceLevel)--msg.Friends[i].name
|
|
friendData.lv = msg.Friends[i].lv
|
|
friendData.offLineTime = msg.Friends[i].offLineTime
|
|
friendData.haveReward = msg.Friends[i].haveReward
|
|
friendData.isGive = msg.Friends[i].isGive
|
|
friendData.head = msg.Friends[i].head
|
|
friendData.frame = msg.Friends[i].frame
|
|
friendData.soulVal = msg.Friends[i].soulVal
|
|
friendData.userTitle=msg.Friends[i].userTitle
|
|
this.blackFriendList[friendData.id] = friendData
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnBlackFriend, this.blackFriendList)
|
|
end
|
|
end
|
|
|
|
-- 更新好友数据
|
|
function this.UpdateFriendData(id, level, name, head, frame)
|
|
if not this.friendAllData[id] then
|
|
return
|
|
end
|
|
this.friendAllData[id].lv = level
|
|
this.friendAllData[id].name = name
|
|
this.friendAllData[id].head = head
|
|
this.friendAllData[id].frame = frame
|
|
end
|
|
|
|
|
|
--刷新好友推荐
|
|
function this.RefreshRecommend(type)
|
|
NetManager.RequestGetFriendInfo(type, function()
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
--申请好友请求
|
|
function this.InviteFriendRequest(inviteUids, func)
|
|
if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then
|
|
PopupTipPanel.ShowTip(ActTimeCtrlManager.GetFuncTip(FUNCTION_OPEN_TYPE.GOODFRIEND))
|
|
return
|
|
end
|
|
NetManager.RequestInviteFriend(inviteUids, function()
|
|
if this.friendSearchData[inviteUids] then
|
|
this.friendSearchData[inviteUids].isApplyed = 1
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendSearch, false,false) --this.friendSearchData)
|
|
if func then
|
|
func()
|
|
end
|
|
end)
|
|
end
|
|
--申请为好友操作
|
|
function this.FriendInviteOperationRequest(type, friendId)
|
|
--type 1:同意 2:拒绝 3:全部同意 4: 全部拒绝
|
|
NetManager.RequestFriendInviteOperation(type, friendId, function()
|
|
if type == 1 then
|
|
this.friendAllData[friendId] = this.friendApplicationData[friendId]
|
|
this.friendApplicationData[friendId] = nil
|
|
--this.friendSearchData[friendId].isHaveApplication=2
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendApplication, this.friendApplicationData)
|
|
end
|
|
if type == 2 then
|
|
this.friendApplicationData[friendId] = nil
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendApplication, this.friendApplicationData)
|
|
end
|
|
if type == 3 then
|
|
-- 刷新好友列表和申请列表
|
|
NetManager.RequestGetFriendInfo(1)
|
|
NetManager.RequestGetFriendInfo(3)
|
|
end
|
|
end)
|
|
end
|
|
--赠送好友精力
|
|
function this.FriendGivePresentRequest(type, friendId)
|
|
--type 1:赠送一个人 2 赠送全部好友
|
|
NetManager.RequestFriendGivePresent(type, friendId, function()
|
|
PopupTipPanel.ShowTip(Language[10826])
|
|
if (type == 1) then
|
|
this.friendAllData[friendId].isGive = 1
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
end
|
|
if (type == 2) then
|
|
for i, v in pairs(this.friendAllData) do
|
|
v.isGive = 1
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
end
|
|
end)
|
|
end
|
|
--删除好友
|
|
function this.DelFriendRequest(friendId)
|
|
NetManager.RequestDelFriend(friendId, function()
|
|
PopupTipPanel.ShowTip(Language[10827])
|
|
this.friendAllData[friendId] = nil
|
|
--this.friendSearchData[friendId].isHaveApplication=1
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendDelete, friendId)
|
|
end)
|
|
end
|
|
--领取一个人和所有人的精力值
|
|
function this.FriendTakeHeartRequest(type, friendId)
|
|
NetManager.RequestFriendTakeHeart(type, friendId, function(msg)
|
|
local getNums = 0
|
|
if (type == 1) then
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(GameSetting[1].MaxEnergyGet, 1)
|
|
this.MaxEnergyGet = PrivilegeManager.GetPrivilegeRemainValue(GameSetting[1].MaxEnergyGet)
|
|
this.MaxEnergy = PrivilegeManager.GetPrivilegeNumber(GameSetting[1].MaxEnergyGet)
|
|
this.friendAllData[friendId].haveReward = 0
|
|
end
|
|
local friendIdList = msg.friendId
|
|
if (type == 2) then
|
|
for i, v in pairs(this.friendAllData) do
|
|
for n, m in pairs(friendIdList) do
|
|
if (m == i) then
|
|
v.haveReward = 0
|
|
getNums = getNums + 1
|
|
end
|
|
end
|
|
end
|
|
PrivilegeManager.RefreshPrivilegeUsedTimes(GameSetting[1].MaxEnergyGet, getNums)
|
|
this.MaxEnergyGet = PrivilegeManager.GetPrivilegeRemainValue(GameSetting[1].MaxEnergyGet)
|
|
this.MaxEnergy = PrivilegeManager.GetPrivilegeNumber(GameSetting[1].MaxEnergyGet)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
end
|
|
local _drop = msg.drop
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, _drop, 1)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Bag.BagGold)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
end)
|
|
end
|
|
--根据名字查找好友
|
|
function this.FriendSearchRequest(name)
|
|
NetManager.RequestFriendSearch(name, function(msg)
|
|
this.friendSearchData = {}
|
|
this.friendSearchData[msg.Friends.id] = msg.Friends
|
|
this.friendSearchData[msg.Friends.id].name = PracticeManager.SetNameColor(msg.Friends.name,msg.Friends.practiceLevel)
|
|
--.name = PracticeManager.SetNameColor(msg.Friends[i].name,msg.Friends[i].practiceLevel)--msg.Friends[i].name
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendSearch, false,false) --this.friendSearchData)
|
|
end)
|
|
end
|
|
--刷新好友在线状态
|
|
function this.RefreshFriendStateRequest()
|
|
NetManager.RequestRefreshFriendState(function(msg)
|
|
for i, v in ipairs(msg.friendIds) do
|
|
for m, n in pairs(this.friendAllData) do
|
|
if (m == v) then
|
|
n.offLineTime = "0"
|
|
end
|
|
end
|
|
end
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendList, this.friendAllData)
|
|
end)
|
|
end
|
|
|
|
-- 获取好友信息
|
|
function this.GetFriendInfo(friendId)
|
|
return this.friendAllData[friendId]
|
|
end
|
|
|
|
-- 判断是否是我的好友
|
|
function this.IsMyFriend(friendId)
|
|
for fid, _ in pairs(this.friendAllData) do
|
|
if fid == friendId then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
--检测好友收取友情点红点
|
|
function this.FriendRewardRedPointShow()
|
|
local isShow = false
|
|
for i, v in pairs(this.friendAllData) do
|
|
if v.haveReward == 1 and this.MaxEnergyGet >= 1 then
|
|
isShow = true
|
|
Log("哈哈哈哈哈哈哈哈哈哈哈22")
|
|
break
|
|
end
|
|
end
|
|
return isShow
|
|
end
|
|
--检测好友申请红点
|
|
function this.FriendApplicationRedPointShow()
|
|
local isShow = false
|
|
if (table.nums(this.friendApplicationData) > 0) then
|
|
isShow = true
|
|
Log("哈哈哈哈哈哈哈哈哈哈哈")
|
|
end
|
|
return isShow
|
|
end
|
|
|
|
---=================黑名单相关====================
|
|
-- 是否在黑名单中
|
|
function this.IsInBlackList(friendId)
|
|
if not this.blackFriendList then
|
|
return false
|
|
end
|
|
if this.blackFriendList[friendId] then
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
-- 申请加入黑名单
|
|
function this.RequestAddToBlackList(uid, func)
|
|
if not ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.GOODFRIEND) then
|
|
PopupTipPanel.ShowTip(Language[10828])
|
|
return
|
|
end
|
|
if uid == PlayerManager.uid then
|
|
PopupTipPanel.ShowTip(Language[10829])
|
|
return
|
|
end
|
|
if this.IsInBlackList(uid) then
|
|
PopupTipPanel.ShowTip(Language[10830])
|
|
return
|
|
end
|
|
NetManager.RequestOptBlackList(1, uid, function()
|
|
if this.IsMyFriend(uid) then
|
|
this.friendAllData[uid] = nil
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Friend.OnFriendDelete, uid)
|
|
end
|
|
|
|
NetManager.RequestGetFriendInfo(1)-- 刷新好友列表
|
|
NetManager.RequestGetFriendInfo(2)-- 刷新推荐列表
|
|
NetManager.RequestGetFriendInfo(3)-- 刷新申请列表
|
|
NetManager.RequestGetFriendInfo(4, function()
|
|
if func then
|
|
func()
|
|
end
|
|
|
|
end)-- 刷新黑名单
|
|
|
|
end)
|
|
end
|
|
-- 申请移除黑名单
|
|
function this.RequestDeleteFromBlackList(uid, func)
|
|
if (table.nums(GoodFriendManager.blackFriendList) <= 0) then
|
|
PopupTipPanel.ShowTip(Language[10831])
|
|
else
|
|
local type = 0
|
|
if (uid == 0) then
|
|
type = 3
|
|
else
|
|
type = 2
|
|
end
|
|
NetManager.RequestOptBlackList(type, uid, function()
|
|
NetManager.RequestGetFriendInfo(4)-- 刷新黑名单
|
|
if func then
|
|
func()
|
|
end
|
|
end)
|
|
end
|
|
end
|
|
|
|
--刷新本地数据
|
|
function this.GetHeroDatas(_msgHeroData, force, specialEffects,guildSkill)
|
|
local heroData = {}
|
|
heroData.soulPrintList = {}
|
|
heroData.heroBackData = _msgHeroData
|
|
heroData.dynamicId = _msgHeroData.id
|
|
local _id = _msgHeroData.heroId
|
|
heroData.id = _id
|
|
heroData.star = _msgHeroData.star
|
|
heroData.lv = _msgHeroData.level
|
|
heroData.breakId = _msgHeroData.breakId
|
|
heroData.upStarId = _msgHeroData.starBreakId
|
|
--heroData.createTime=_msgHeroData.createTimelocal
|
|
heroData.lockState = _msgHeroData.lockState
|
|
local _configData = heroConfig[_id]
|
|
heroData.heroConfig = heroConfig[_id]
|
|
local actionPowerRormula = gameSetting[1].ActionPowerRormula
|
|
heroData.actionPower = force
|
|
heroData.equipIdList = _msgHeroData.equipIdList
|
|
heroData.talismanList = _msgHeroData.especialEquipLevel
|
|
heroData.jewels = _msgHeroData.jewels
|
|
if (#_msgHeroData.soulPos >= 1) then
|
|
local soulPrintList = {}
|
|
for i, v in ipairs(_msgHeroData.soulPos) do
|
|
local soulPrint = { equipId = v.equipId, position = v.position }
|
|
table.insert(soulPrintList, soulPrint)
|
|
end
|
|
heroData.soulPrintList = soulPrintList
|
|
end
|
|
|
|
heroData.skillIdList = {}
|
|
HeroManager.UpdateSkillIdList( heroData)
|
|
heroData.passiveSkillList = {}--被动技
|
|
HeroManager.UpdatePassiveHeroSkill(heroData)
|
|
--if guildSkill then
|
|
-- --LogGreen("guildSkill "..guildSkill)
|
|
--end
|
|
heroData.guildSkill = guildSkill
|
|
heroData.hp = _configData.Hp
|
|
heroData.attack = _configData.Attack
|
|
heroData.pDef = _configData.PhysicalDefence
|
|
heroData.mDef = _configData.MagicDefence
|
|
heroData.speed = _configData.Speed
|
|
heroData.allAddProVal = {}
|
|
for i, v in ConfigPairs(propertyConfig) do
|
|
heroData.allAddProVal[i] = 0
|
|
end
|
|
for i, v in pairs(specialEffects) do
|
|
if v.propertyId and v.propertyValue then
|
|
--LogGreen("v.propertyId "..v.propertyId.." "..v.propertyValue)
|
|
if propertyConfig[v.propertyId] then
|
|
if propertyConfig[v.propertyId].Style == 1 then
|
|
heroData.allAddProVal[v.propertyId] = v.propertyValue
|
|
elseif propertyConfig[v.propertyId].Style == 2 then
|
|
heroData.allAddProVal[v.propertyId] = v.propertyValue/100
|
|
end
|
|
else
|
|
heroData.allAddProVal[v.propertyId] = v.propertyValue
|
|
end
|
|
end
|
|
end
|
|
|
|
heroData.skinId = _msgHeroData.skinId
|
|
if heroData.skinId == 0 then
|
|
heroData.skinConfig = _configData
|
|
heroData.live = GetResourcePath(_configData.Live)
|
|
heroData.painting = GetResourcePath(_configData.Painting)
|
|
heroData.icon = GetResourcePath(_configData.Icon)
|
|
heroData.scale = _configData.Scale
|
|
heroData.position = _configData.Position
|
|
else
|
|
heroData.skinConfig = ConfigManager.GetConfigDataByKey(ConfigName.HeroSkin,"Type",heroData.skinId)
|
|
heroData.live = GetResourcePath(heroData.skinConfig.Live)
|
|
heroData.painting = GetResourcePath(heroData.skinConfig.Painting)
|
|
heroData.icon = GetResourcePath(heroData.skinConfig.Icon)
|
|
heroData.scale = heroData.skinConfig.Scale
|
|
heroData.position = heroData.skinConfig.Position
|
|
end
|
|
heroData.profession = _configData.Profession
|
|
heroData.ProfessionResourceId = _configData.ProfessionResourceId
|
|
if GetJobSpriteStrByJobNum(_configData.Profession) then
|
|
heroData.professionIcon = GetJobSpriteStrByJobNum(_configData.Profession)
|
|
else
|
|
heroData.professionIcon = GetJobSpriteStrByJobNum(1)
|
|
end
|
|
heroData.name = GetLanguageStrById(_configData.ReadingName)
|
|
heroData.property = _configData.PropertyName
|
|
return heroData
|
|
end
|
|
|
|
--初始化装备数据
|
|
function this.InitEquipData(_msgEquipList, heroData)
|
|
for i = 1, #_msgEquipList do
|
|
this.InitUpdateEquipData(_msgEquipList[i], heroData)
|
|
end
|
|
end
|
|
|
|
function this.InitUpdateEquipData(_equipData, heroData)
|
|
local equipdata = {}
|
|
if(heroData.soulPrintList) then
|
|
for i, v in pairs(heroData.soulPrintList) do
|
|
if (v.did == _equipData.id) then
|
|
equipdata.icon = GetResourcePath(itemConfig[_equipData.equipId].ResourceID)
|
|
equipdata.Quality = this.GetSoulPrintQuality(_equipData.equipId, _equipData.exp)
|
|
equipdata.id = _equipData.equipId
|
|
this.equipDatas[_equipData.id] = equipdata
|
|
end
|
|
end
|
|
end
|
|
if(heroData.equipIdList) then
|
|
for i, v in pairs(heroData.equipIdList) do
|
|
if (tonumber(v) == _equipData.equipId) then
|
|
equipdata.equipConfig = equipConfig[_equipData.equipId]
|
|
if equipdata.equipConfig ~= nil then
|
|
equipdata.itemConfig = itemConfig[_equipData.equipId]
|
|
equipdata.did = _equipData.equipId
|
|
equipdata.id = equipdata.equipConfig.Id
|
|
if itemConfig[equipdata.id] then
|
|
equipdata.icon = GetResourcePath(itemConfig[equipdata.id].ResourceID)
|
|
else
|
|
Log("装备表找不到此id " .. equipdata.id)
|
|
return
|
|
end
|
|
equipdata.frame = GetQuantityImageByquality(equipdata.equipConfig.Quality)--ItemQuality[equipdata.equipConfig.Quality].icon
|
|
equipdata.num = 1
|
|
equipdata.position = equipdata.equipConfig.Position
|
|
local propList = {}
|
|
for index, prop in ipairs(equipdata.equipConfig.Property) do
|
|
propList[index] = {}
|
|
propList[index].propertyId = prop[1]
|
|
propList[index].propertyValue = prop[2]
|
|
propList[index].PropertyConfig = propertyConfig[prop[1]]
|
|
end
|
|
equipdata.mainAttribute = propList
|
|
equipdata.star = equipStarsConfig[equipdata.equipConfig.Star].Stars
|
|
equipdata.backData = _equipData
|
|
this.equipDatas[_equipData.equipId] = equipdata
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if(heroData.talismanList) then
|
|
--for i, v in pairs(heroData.talismanList) do
|
|
-- if (v == _equipData.id) then
|
|
-- equipdata.icon = GetResourcePath(itemConfig[_equipData.equipId].ResourceID)
|
|
-- equipdata.id = _equipData.equipId
|
|
-- equipdata.star = _equipData.rebuildLevel
|
|
-- this.equipDatas[_equipData.id] = equipdata
|
|
-- end
|
|
--end
|
|
end
|
|
--宝器
|
|
if(heroData.jewels) then
|
|
for i = 1, #heroData.jewels do
|
|
if heroData.jewels[i] and heroData.jewels[i] == _equipData.id then
|
|
this.InitSingleTreasureData(_equipData)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
--宝器
|
|
local jewelConfig = ConfigManager.GetConfig(ConfigName.JewelConfig)
|
|
local allTreasures = {}
|
|
--初始化单个宝物的数据
|
|
function this.InitSingleTreasureData(_singleData)
|
|
if _singleData==nil then
|
|
return
|
|
end
|
|
local single={}
|
|
local staticId=_singleData.equipId
|
|
local currJewel=jewelConfig[staticId]
|
|
single.id=staticId
|
|
single.idDyn=_singleData.id
|
|
single.lv=_singleData.exp
|
|
single.refineLv=_singleData.rebuildLevel
|
|
single.maxLv=currJewel.Max[1]
|
|
single.maxRefineLv=currJewel.Max[2]
|
|
single.upHeroDid=""
|
|
local quantity=currJewel.Level
|
|
single.quantity=quantity
|
|
single.frame=GetQuantityImageByquality(quantity)
|
|
single.name=GetLanguageStrById(itemConfig[staticId].Name)
|
|
single.itemConfig=itemConfig[staticId]
|
|
single.levelPool=currJewel.LevelupPool
|
|
single.proIcon=GetProStrImageByProNum(currJewel.Race)
|
|
single.refinePool=currJewel.RankupPool
|
|
single.equipType=currJewel.Location
|
|
if currJewel.Location==1 then
|
|
single.type=Language[10552]
|
|
else
|
|
single.type=Language[10553]
|
|
end
|
|
single.icon=GetResourcePath(itemConfig[staticId].ResourceID)
|
|
single.strongConfig=this.GetCurrTreasureLvConfig(1,currJewel.LevelupPool,_singleData.exp)
|
|
single.refineConfig=this.GetCurrTreasureLvConfig(2,currJewel.RankupPool,_singleData.rebuildLevel)
|
|
--LogGreen("天宫推送宝器 _singleData.id ".._singleData.id)
|
|
allTreasures[_singleData.id]=single
|
|
end
|
|
|
|
local jewerLevelUpConfig = ConfigManager.GetConfig(ConfigName.JewelRankupConfig)
|
|
--获取当前宝物升级数据
|
|
function this.GetCurrTreasureLvConfig(_type,_id,_lv)
|
|
for _, configInfo in ConfigPairs(jewerLevelUpConfig) do
|
|
if configInfo.Type==_type and configInfo.PoolID==_id and configInfo.Level==_lv then
|
|
return configInfo
|
|
end
|
|
end
|
|
end
|
|
--根据动态id获取宝物
|
|
function this.GetSingleTreasureByIdDyn(_idDyn)
|
|
if allTreasures==nil then
|
|
return
|
|
end
|
|
return allTreasures[_idDyn]
|
|
|
|
end
|
|
|
|
--获取单个装备数据
|
|
function this.GetSingleEquipData(_equipid)
|
|
_equipid = tonumber(_equipid)
|
|
if this.equipDatas[_equipid] then
|
|
return this.equipDatas[_equipid]
|
|
end
|
|
end
|
|
|
|
--得到魂印品质
|
|
function this.GetSoulPrintQuality(equipId, exp)
|
|
SoulPrintManager.UpSoulPrintLevel(equipId, exp)
|
|
for m, n in ConfigPairs(equipSign) do
|
|
if (n.Id == SoulPrintManager.GetSoulPrintId(equipId, SoulPrintManager.soulPrintLevel[equipId])) then
|
|
return n.Quality
|
|
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
return this |