|
|
@@ -365,20 +365,25 @@ function skinQuery(human)
|
|
|
|
|
|
end
|
|
|
msgRet.data[0] = cnt
|
|
|
+ msgRet.isEnd = 1
|
|
|
+ local bSend = false
|
|
|
local maxLen = #msgRet.list -- 每次最多只能传30个
|
|
|
cnt = 0
|
|
|
for id in pairs(SkinExcel) do
|
|
|
cnt = cnt + 1
|
|
|
skinNetGen(human,msgRet.list[cnt],id)
|
|
|
- --[[if cnt >= maxLen then
|
|
|
+ if cnt >= maxLen then
|
|
|
msgRet.list[0] = maxLen
|
|
|
cnt = 0
|
|
|
- msgRet.isEnd = 1
|
|
|
Msg.send(msgRet,human.fd)
|
|
|
- end]]
|
|
|
+ msgRet.isEnd = 2
|
|
|
+ bSend = true
|
|
|
+ end
|
|
|
end
|
|
|
msgRet.list[0] = cnt
|
|
|
- msgRet.isEnd = 2
|
|
|
+ if bSend then
|
|
|
+ msgRet.isEnd = 3
|
|
|
+ end
|
|
|
Msg.send(msgRet,human.fd)
|
|
|
end
|
|
|
|
|
|
@@ -509,51 +514,67 @@ function OnLoginCheckEquipSkin(human, bSyncClient)
|
|
|
for i = 1,#skinBag do
|
|
|
local data = skinBag[i]
|
|
|
local nSkinID = data.id
|
|
|
+
|
|
|
local tConfig = SkinExcel[nSkinID]
|
|
|
+ if not tConfig then
|
|
|
+ print("[OnLoginCheckEquipSkin] 严重问题, 找不到对应皮肤的配置 nSkinID = "..nSkinID)
|
|
|
+ break
|
|
|
+ end
|
|
|
+
|
|
|
+ local nHeroID = tConfig.heroId
|
|
|
+ tCheckHero[nHeroID] = tCheckHero[nHeroID] or {}
|
|
|
+
|
|
|
+ -- 找所有皮肤中是否有装备着的
|
|
|
+ local bEquip, nNowSkinID = false, 0
|
|
|
+ for nHaveSkinID, v in pairs(tCheckHero[nHeroID]) do
|
|
|
+ if v == 1 then
|
|
|
+ bEquip = true
|
|
|
+ nNowSkinID = nHaveSkinID
|
|
|
+ break
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
if data.state == 1 then
|
|
|
- if tConfig then
|
|
|
- local nHeroID = tConfig.heroId
|
|
|
- if tCheckHero[nHeroID] then
|
|
|
- data.state = 0
|
|
|
- print("[OnLoginCheckEquipSkin] 同一个英雄穿上了两个皮肤!! 进行修正 nHeroID = "
|
|
|
- .. nHeroID.." nNowSkinID = "..tCheckHero[nHeroID] .. " nSkinID = "..nSkinID)
|
|
|
- else
|
|
|
- tCheckHero[nHeroID] = {nSkinID = nSkinID, bOK = true}
|
|
|
- local heroIdxList = HeroLogic.getHeroListById(human, nHeroID)
|
|
|
- for _,idx in ipairs(heroIdxList) do
|
|
|
- human.db.heroBag[idx].skinOn = nSkinID
|
|
|
- RoleHeadLogic.setHead(human,tConfig.head,RoleHeadLogic.HEAD_TYPE_1)
|
|
|
- if tConfig.body ~= 0 then
|
|
|
- RoleHeadLogic.setHead(human,tConfig.body,RoleHeadLogic.HEAD_TYPE_3)
|
|
|
- end
|
|
|
+ if false == bEquip then
|
|
|
+ tCheckHero[nHeroID][nSkinID] = 1 -- 装备标识
|
|
|
+
|
|
|
+ -- 所有英雄进行装备皮肤
|
|
|
+ local heroIdxList = HeroLogic.getHeroListById(human, nHeroID)
|
|
|
+ for _,idx in ipairs(heroIdxList) do
|
|
|
+ human.db.heroBag[idx].skinOn = nSkinID
|
|
|
+ RoleHeadLogic.setHead(human,tConfig.head,RoleHeadLogic.HEAD_TYPE_1)
|
|
|
+ if tConfig.body ~= 0 then
|
|
|
+ RoleHeadLogic.setHead(human,tConfig.body,RoleHeadLogic.HEAD_TYPE_3)
|
|
|
end
|
|
|
- print("[OnLoginCheckEquipSkin] 对玩家英雄设置了皮肤 nSkinID = "..nSkinID)
|
|
|
end
|
|
|
+ print("[OnLoginCheckEquipSkin] 对玩家英雄设置了皮肤 nSkinID = "..nSkinID.." nHeroID = "..nHeroID)
|
|
|
else
|
|
|
- print("[OnLoginCheckEquipSkin] 不存在对应的皮肤配置 nSkinID = ".. nSkinID)
|
|
|
+ tCheckHero[nHeroID][nSkinID] = 0 -- 未装备标识
|
|
|
+ data.state = 0
|
|
|
+ print("[OnLoginCheckEquipSkin] 同一个英雄穿上了两个皮肤!! 进行修正 nHeroID = "
|
|
|
+ .. nHeroID.." nNowSkinID = "..nNowSkinID .. " nSkinID = "..nSkinID)
|
|
|
end
|
|
|
else
|
|
|
- if tConfig then
|
|
|
- local nHeroID = tConfig.heroId
|
|
|
- if not tCheckHero[nHeroID] then
|
|
|
- tCheckHero[nHeroID] = {nSkinID = 1, bOK = true}
|
|
|
- local heroIdxList = HeroLogic.getHeroListById(human, nHeroID)
|
|
|
- local heroCfg = HeroExcel[nHeroID]
|
|
|
+ tCheckHero[nHeroID][nSkinID] = 0 -- 未装备标识
|
|
|
+ if false == bEquip then
|
|
|
+ local heroIdxList = HeroLogic.getHeroListById(human, nHeroID)
|
|
|
+ local heroCfg = HeroExcel[nHeroID]
|
|
|
|
|
|
- for _,idx in ipairs(heroIdxList) do
|
|
|
- -- 脱下皮肤 并且还原默认身体 icon和head
|
|
|
- human.db.heroBag[idx].skinOn = nil
|
|
|
- --local defaultHead = RoleHeadLogic.getDefaultHead(human)
|
|
|
- RoleHeadLogic.setHead(human,heroCfg.head,RoleHeadLogic.HEAD_TYPE_1)
|
|
|
+ for _,idx in ipairs(heroIdxList) do
|
|
|
+ -- 脱下皮肤 并且还原默认身体 icon和head
|
|
|
+ human.db.heroBag[idx].skinOn = nil
|
|
|
+ --local defaultHead = RoleHeadLogic.getDefaultHead(human)
|
|
|
+ RoleHeadLogic.setHead(human,heroCfg.head,RoleHeadLogic.HEAD_TYPE_1)
|
|
|
|
|
|
- RoleHeadLogic.setHead(human,heroCfg.body,RoleHeadLogic.HEAD_TYPE_3)
|
|
|
- end
|
|
|
+ RoleHeadLogic.setHead(human,heroCfg.body,RoleHeadLogic.HEAD_TYPE_3)
|
|
|
end
|
|
|
+ print("[OnLoginCheckEquipSkin] 对玩家英雄设置取消了皮肤 nHeroID = "..nHeroID.." nSkinID = "..nSkinID)
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
if bSyncClient then
|
|
|
skinQuery(human)
|
|
|
+ print("[OnLoginCheckEquipSkin] 同步数据结束")
|
|
|
end
|
|
|
end
|