HomeServer/Server/AllServer/GameServer/Illustration.lua
2024-11-20 15:41:37 +08:00

795 lines
31 KiB
Lua

local skynet = require "skynet"
local oo = require "Class"
local log = require "Log"
local pb = require "pb"
local dataType = require "DataType"
local errorInfo = require "ErrorInfo"
local Illustration = oo.class()
Illustration.IllustrationType_Furniture = 1 --家具图鉴
Illustration.IllustrationType_Clothes = 2 --服装图鉴
Illustration.IllustrationType_Plant = 3 --植物图鉴
Illustration.IllustrationType_Special = 4 --特殊图鉴
Illustration.IllustrationType_Garden = 5 --花园图鉴
Illustration.IllustrationType_PetClothes = 6 --宠物服装图鉴
Illustration.IllustrationSubType_Furniture = 1 --家具套间
Illustration.IllustrationSubType_Clothes = 2 --服装套装
Illustration.IllustrationSubType_Flower = 3 --花卉
Illustration.IllustrationSubType_Gashapon = 4 --扭蛋
Illustration.IllustrationStatus_Achieve = 1 --已经完成
Illustration.IllustrationStatus_GainAward = 2 --领取奖励
function Illustration:Init()
end
--图鉴主页面展示
function Illustration:MainShow( player , c2sData , s2cData )
local data = {}
data.itemList = {}
data.illustration = {}
local illustration = player.gameData.illustration
--将全部图鉴分类型存进各表中
local furniture = { type = Illustration.IllustrationType_Furniture ,count = 0, item ={}}
local clothes = { type = Illustration.IllustrationType_Clothes ,count = 0, item ={}}
local plant = { type = Illustration.IllustrationType_Plant ,count = 0, item ={}}
local special = { type = Illustration.IllustrationType_Special ,count = 0, item ={}}
local garden = { type = Illustration.IllustrationType_Garden ,count = 0, item ={}}
local petClothes = { type = Illustration.IllustrationType_PetClothes ,count = 0, item ={}}
for k, v in pairs( illustration.goodsInfo ) do
if dataType.GoodsType_Furniture == v.type or dataType.GoodsType_Decorate == v.type then
table.insert( furniture.item , { type = v.type , id = v.id } )
furniture.count = furniture.count + 1
elseif dataType.GoodsType_Clothes == v.type then
table.insert( clothes.item , { type = v.type , id = v.id } )
clothes.count = clothes.count + 1
elseif dataType.GoodsType_Plant == v.type then
table.insert( plant.item , { type = v.type , id = v.id } )
plant.count = plant.count + 1
table.insert( special.item , { type = v.type , id = v.id } )
special.count = special.count + 1
elseif dataType.GoodsType_Garden == v.type then
table.insert( garden.item , { type = v.type , id = v.id } )
garden.count = garden.count + 1
elseif dataType.GoodsType_PetClothes == v.type then
table.insert( petClothes.item , { type = v.type , id = v.id } )
petClothes.count = petClothes.count + 1
end
end
table.insert( data.itemList , furniture )
table.insert( data.itemList , clothes )
table.insert( data.itemList , plant )
table.insert( data.itemList , special )
table.insert( data.itemList , garden )
table.insert( data.itemList , petClothes )
--图鉴进度信息
data.illustration.level = illustration.level
data.illustration.progress = illustration.progress
data.illustration.totalPoint = illustration.totalPoint
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationMainShow")
s2cData.data = assert(pb.encode("S2CIllustrationMainShow", data))
end
--图鉴进度查询
function Illustration:ProgressShow( player , c2sData , s2cData )
local data = {}
data.illustration = {}
local illustration = player.gameData.illustration
data.illustration.level = illustration.level
data.illustration.progress = illustration.progress
data.illustration.totalPoint = illustration.totalPoint
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationProgress")
s2cData.data = assert(pb.encode("S2CIllustrationProgress", data))
end
--图鉴展示
function Illustration:Show( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SIllustrationShow", c2sData.data ))
local data = {}
local type = c2sData.data.type
if not type then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
data.type = type
data.illustrationId = self:GetAwardInfo( player )
data.illustrationPointId = self:GetPointInfo( player )
--不需要的
--data.item = {}
--
--if self.IllustrationType_Furniture == type then
-- --self:Get( player , dataType.GoodsType_Furniture , data.item ) --将家具的图鉴发给客户端
-- --self:Get( player , dataType.GoodsType_Decorate , data.item ) --将装修的图鉴发给客户端
-- skynet.server.msgTips:Reduce( player , 17)
--elseif self.IllustrationType_Clothes == type then --服装图鉴
-- --self:Get( player , dataType.GoodsType_Clothes , data.item )
-- skynet.server.msgTips:Reduce( player , 2)
--elseif self.IllustrationType_Plant == type then
-- --self:Get( player , dataType.GoodsType_Plant , data.item ) --将植物的图鉴发给客户端
-- skynet.server.msgTips:Reduce( player , 18)
--elseif self.IllustrationType_Special == type then
-- --self:Get( player , dataType.GoodsType_Plant , data.item )
-- skynet.server.msgTips:Reduce( player , 1)
--elseif self.IllustrationType_Garden == type then
-- --self:Get( player , dataType.GoodsType_Garden , data.item )
-- --花园红点
--elseif self.IllustrationType_PetClothes == type then --宠物服装图鉴
-- --self:Get( player , dataType.GoodsType_PetClothes, data.item )
-- skynet.server.msgTips:Reduce( player , 118)
--end
end
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationShow")
s2cData.data = assert(pb.encode("S2CIllustrationShow", data))
end
--图鉴奖励
function Illustration:Award( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SIllustrationAward", c2sData.data ))
local data = {}
data.rewardId = 0
local IllustrationId = c2sData.data.id
if not IllustrationId then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if IllustrationId == v.id and self.IllustrationStatus_Achieve == v.status then
--获取当前图鉴ID的配置
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
local cfgCurIllustration = {}
for k1, v1 in pairs( cfgAllIllustration ) do
if IllustrationId == v1.id then
cfgCurIllustration = v1
break
end
end
--发放奖励
local eventId = pb.enum("EnumMoneyChangeEventID","EventID_64")
player:GiveReward( cfgCurIllustration.rewardId , eventId)
data.rewardId = cfgCurIllustration.rewardId
v.status = self.IllustrationStatus_GainAward
--消除红点
for k1, v1 in pairs( player.gameData.illustration.pointInfo ) do
if v1.id == v.id and self.IllustrationStatus_GainAward == v1.status then
if self.IllustrationType_Furniture == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 17 )
elseif self.IllustrationType_Clothes == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 2 )
elseif self.IllustrationType_Plant == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 18 )
elseif self.IllustrationType_Special == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 1 )
elseif self.IllustrationType_PetClothes == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 118 )
end
break
end
end
skynet.server.achieveTask:Modify( player , 40 , 1)
skynet.server.taskListEvent:Modify( player , 40 , 1)
log.debug(string.format("玩家 %d 图鉴 发放奖励 图鉴ID %d" , player.userId , IllustrationId ))
break
end
end
end
data.illustrationId = self:GetAwardInfo( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationAward")
s2cData.data = assert(pb.encode("S2CIllustrationAward", data))
end
--领取图鉴积分
function Illustration:GetPoint( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SIllustrationGetPoint", c2sData.data ))
local data = {}
data.illustration = {}
data.pointsChange = 0
local IllustrationId = c2sData.data.id
if not IllustrationId then
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
else
local illustration = player.gameData.illustration
for k, v in pairs( illustration.pointInfo ) do
if IllustrationId == v.id and self.IllustrationStatus_Achieve == v.status then
--获取当前图鉴ID的配置
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
local cfgCurIllustration = {}
for k1, v1 in pairs( cfgAllIllustration ) do
if IllustrationId == v1.id then
cfgCurIllustration = v1
break
end
end
--积分变化
illustration.progress = illustration.progress + tonumber(cfgCurIllustration.pointReward)
illustration.totalPoint = illustration.totalPoint + tonumber(cfgCurIllustration.pointReward)
v.status = self.IllustrationStatus_GainAward
--图鉴进度信息
data.pointsChange = tonumber(cfgCurIllustration.pointReward)
data.illustration.level = illustration.level
data.illustration.progress = illustration.progress
data.illustration.totalPoint = illustration.totalPoint
--红点逻辑
self:LevelRedDot( player , illustration.progress , illustration.level )
--消除红点
for k1, v1 in pairs( player.gameData.illustration.awardInfo ) do
if v1.id == v.id and self.IllustrationStatus_GainAward == v1.status then
if self.IllustrationType_Furniture == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 17 )
elseif self.IllustrationType_Clothes == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 2 )
elseif self.IllustrationType_Plant == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 18 )
elseif self.IllustrationType_Special == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 1 )
elseif self.IllustrationType_PetClothes == cfgCurIllustration.type then
skynet.server.msgTips:Reduce( player , 118 )
end
break
end
end
end
end
end
data.illustrationId = self:GetPointInfo( player )
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationGetPoint")
s2cData.data = assert(pb.encode("S2CIllustrationGetPoint", data))
end
--图鉴进度红点
function Illustration:LevelRedDot( player, progress , level )
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "IllustrationLevel")
for i, v in pairs(cfgAllIllustration) do
if level == tonumber(v.level ) - 1 then
if progress >= tonumber(v.requirePoint) then
skynet.server.msgTips:Add( player , 117 )
break
end
end
end
end
--领取图鉴进度奖励
function Illustration:GetLevelReward( player , c2sData , s2cData )
c2sData.data = assert(pb.decode("C2SIllustrationLevelReward", c2sData.data ))
local data = {}
data.illustration = {}
--获取当前图鉴等级的配置
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "IllustrationLevel")
local illustration = player.gameData.illustration
for i, v in pairs(cfgAllIllustration) do
if illustration.level == v.level - 1 then
if illustration.progress >= v.requirePoint then
illustration.level = illustration.level + 1
illustration.progress = illustration.progress - v.requirePoint
local eventId = pb.enum("EnumMoneyChangeEventID","EventID_134")
player:GiveReward( v.reward , eventId , 1 )
data.rewardId = v.reward
data.illustration.level = illustration.level
data.illustration.progress = illustration.progress
data.illustration.totalPoint = illustration.totalPoint
if i ~= #cfgAllIllustration then
if illustration.progress < cfgAllIllustration[i+1].requirePoint then
skynet.server.msgTips:ReduceAll( player , 117 )
end
end
break
end
end
end
s2cData.cmd = pb.enum("MsgType","CMD_S2C_IllustrationLevelReward")
s2cData.data = assert(pb.encode("S2CIllustrationLevelReward", data))
end
--新增图鉴
function Illustration:Add( player , goodsType , goodsId )
local IllustrationType = nil
local msgId = 0
if dataType.GoodsType_Furniture == goodsType then
if skynet.server.gashapon:IsGashapon( player , goodsId ) then
IllustrationType = self.IllustrationType_Special
msgId = 1
else
IllustrationType = self.IllustrationType_Furniture
msgId = 17
end
elseif dataType.GoodsType_Decorate == goodsType then
IllustrationType = self.IllustrationType_Furniture
msgId = 17
elseif dataType.GoodsType_Clothes == goodsType then
IllustrationType = self.IllustrationType_Clothes
msgId = 2
elseif dataType.GoodsType_Plant == goodsType then
IllustrationType = self.IllustrationType_Plant
msgId = 18
elseif dataType.GoodsType_Garden == goodsType then
IllustrationType = self.IllustrationType_Garden
--花园红点 待添加
elseif dataType.GoodsType_PetClothes == goodsType then
IllustrationType = self.IllustrationType_PetClothes
msgId = 118
end
--非图鉴类型不处理
if nil == IllustrationType then
return
end
--不存在就插入图鉴
if not self:IsExistGoods( player , goodsType , goodsId ) then
table.insert( player.gameData.illustration.goodsInfo , { type = goodsType , id = goodsId } )
local data = {}
data.item = { type = goodsType , id = goodsId }
data.illustrationId = 0
--检查是否完成图鉴,完成了就通知客户端
local isAchieve,illustrationId = self:IsNewAchieve( player , IllustrationType )
if isAchieve then
data.illustrationId = illustrationId
--if 1 ~= msgId then
skynet.server.msgTips:Add( player , msgId )
--end
end
skynet.server.gameServer:SendMsgToUser( player.userId , "CMD_S2C_IllustrationUpdate" , data )
log.debug(string.format("玩家 %d 图鉴 新增图鉴 图鉴类型 %d 商品类型 %d 商品ID %d" , player.userId , IllustrationType , goodsType , goodsId ))
end
end
--是否存在图鉴商品
function Illustration:IsExistGoods( player , type , id )
for k, v in pairs( player.gameData.illustration.goodsInfo ) do
if type == v.type and id == v.id then
return true
end
end
return false
end
--是否领取图鉴礼包
function Illustration:IsGainAward( player , id )
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if id == v.id and self.IllustrationStatus_Achieve == v.status then
return true
end
end
return false
end
--是否有新完成的图鉴
function Illustration:IsNewAchieve( player , IllustrationType )
local IsAchieve = false
local IllustrationId = nil
--获取当前图鉴类型的配置
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
local cfgIllustration = {}
for k, v in pairs( cfgAllIllustration ) do
if IllustrationType == v.type and 1 == v.display then --只有显示的才参与
table.insert( cfgIllustration , v )
end
end
if self.IllustrationType_Furniture == IllustrationType then --家具和装修
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckFurnitureAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
elseif self.IllustrationType_Clothes == IllustrationType then --套装衣服
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckClothesAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
elseif self.IllustrationType_PetClothes == IllustrationType then --宠物衣服
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckClothesAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
elseif self.IllustrationType_Plant == IllustrationType then --植物
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckPlantAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
elseif self.IllustrationType_Special== IllustrationType then --特殊扭蛋
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckSpecialAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
elseif self.IllustrationType_Garden== IllustrationType then --花园
for k, v in pairs( cfgIllustration ) do
if not self:IsExistAchieve( player , v.id ) then
IsAchieve = self:CheckGardenAchieve( player , v.suitId )
if IsAchieve then
IllustrationId = v.id
break
end
end
end
end
--完成了就添加
if IsAchieve then
self:AddAchieve( player , IllustrationId )
log.debug(string.format("玩家 %d 图鉴 图鉴类型 %d 图鉴ID %d 完成" , player.userId , IllustrationType , IllustrationId ))
end
return IsAchieve,IllustrationId
end
--检查完成图鉴便没有领取的发消息提示
function Illustration:IsSendTips( player )
local cfgBook = skynet.server.gameConfig:GetPlayerAllCfg( player , "FurnitureBook")
for k, v in pairs( cfgBook ) do
--找到完成的图鉴ID,但又没有领取的
local IsAchieve = self:CheckAchieve( player , v.furnitrueId , v.decorateId )
if IsAchieve then
if not self:IsGainAward( player , self.IllustrationType_Furniture , v.id ) then
skynet.server.msgTips:Reset( player , 17 )
skynet.server.msgTips:Add( player , 17 )
return
end
end
end
end
--检查套间完成图鉴
function Illustration:CheckFurnitureAchieve( player , suitId )
local IsAchieve1 = true
local IsAchieve2 = true
--找出套装家具
local cfgAllFurniture = skynet.server.gameConfig:GetPlayerAllCfg( player , "Furniture")
local cfgFurniture = {}
for k, v in pairs( cfgAllFurniture ) do
if suitId== v.suitType then
table.insert( cfgFurniture , v )
end
end
--家具
for k, v in pairs( cfgFurniture ) do
IsAchieve1 = self:IsExistGoods( player , dataType.GoodsType_Furniture , v.id )
if not IsAchieve1 then
break
end
end
--找出套装装修
local cfgAllDecoration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Decoration")
local cfgDecoration = {}
for k, v in pairs( cfgAllDecoration ) do
if suitId== v.suitType then
table.insert( cfgDecoration , v )
end
end
--装修
for k, v in pairs( cfgDecoration ) do
IsAchieve2 = self:IsExistGoods( player , dataType.GoodsType_Decorate , v.id )
if not IsAchieve2 then
break
end
end
if IsAchieve1 and IsAchieve2 then
return true
else
return false
end
end
--检查衣服完成图鉴
function Illustration:CheckClothesAchieve( player , suitId )
local IsAchieve = true
--找出衣服类型
local cfgAllClothes = {}
local goodsType = nil
local cfgClothesSuit = skynet.server.gameConfig:GetPlayerAllCfg( player , "ClothesSuit")
for k, v in pairs(cfgClothesSuit) do
if suitId == v.id then
if 1 == v.type then --人物
goodsType = dataType.GoodsType_Clothes
cfgAllClothes = skynet.server.gameConfig:GetPlayerAllCfg( player , "Clothes")
elseif 2 == v.type then --宠物
goodsType = dataType.GoodsType_PetClothes
cfgAllClothes = skynet.server.gameConfig:GetPlayerAllCfg( player , "PetClothes")
end
break
end
end
--找出套装家具
local cfgClothes = {}
for k, v in pairs( cfgAllClothes ) do
if suitId== v.suitId then
table.insert( cfgClothes , v )
end
end
--是否存在商品
for k, v in pairs( cfgClothes ) do
IsAchieve = self:IsExistGoods( player , goodsType , v.id )
if not IsAchieve then
break
end
end
if IsAchieve then
return true
else
return false
end
end
--检查植物完成图鉴
function Illustration:CheckPlantAchieve( player , suitId )
local isAchieve = true
--找出套装家具
local cfgPlant = skynet.server.gameConfig:GetPlayerAllCfg( player , "Plant")
local cfgAllPlant = {}
for k, v in pairs( cfgPlant ) do
if suitId== v.subType then
table.insert( cfgAllPlant , v )
end
end
--是否存在商品
for k, v in pairs( cfgAllPlant ) do
isAchieve = self:IsExistGoods( player , dataType.GoodsType_Plant , v.id )
if not isAchieve then
break
end
end
return isAchieve
end
--检查特殊完成图鉴
function Illustration:CheckSpecialAchieve( player , suitId )
local IsAchieve = true
--找出套装家具
local cfgAllGashapon = skynet.server.gameConfig:GetPlayerAllCfg( player , "Gashapon")
local cfgGashapon = {}
for k, v in pairs( cfgAllGashapon ) do
if suitId== v.id then
cfgGashapon = v
break
end
end
--扭蛋
for k, v in pairs( cfgGashapon.allItemId ) do
IsAchieve = self:IsExistGoods( player , dataType.GoodsType_Furniture , v )
if not IsAchieve then
break
end
end
return IsAchieve
end
--检查花园完成图鉴
function Illustration:CheckGardenAchieve( player , suitId )
local IsAchieve = true
--找出套装家具
local cfgGarden = skynet.server.gameConfig:GetPlayerAllCfg( player , "Garden")
local cfgAllGarden = {}
for k, v in pairs( cfgGarden ) do
if suitId== v.id then
table.insert( cfgAllGarden , v )
end
end
--是否存在商品
for k, v in pairs( cfgAllGarden ) do
IsAchieve = self:IsExistGoods( player , dataType.GoodsType_Garden , v.id )
if not IsAchieve then
break
end
end
return IsAchieve
end
--获取图鉴
function Illustration:Get( player , goodsType , Illustration )
for k, v in pairs( player.gameData.illustration.goodsInfo ) do
if goodsType == v.type then
table.insert( Illustration , { type = v.type , id = v.id } )
end
end
end
--获取所有的奖励信息
function Illustration:GetAwardInfo( player )
local awardId = {}
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if self.IllustrationStatus_GainAward == v.status then
table.insert( awardId , v.id)
end
end
return awardId
end
function Illustration:GetPointInfo( player )
local pointId = {}
for k, v in pairs( player.gameData.illustration.pointInfo ) do
if self.IllustrationStatus_GainAward == v.status then
table.insert( pointId , v.id)
end
end
return pointId
end
--添加完成的图鉴
function Illustration:AddAchieve( player , IllustrationId )
local isExist = false
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if IllustrationId == v.id then
isExist = true
break
end
end
if not isExist then
table.insert( player.gameData.illustration.awardInfo , { id = IllustrationId , status = self.IllustrationStatus_Achieve })
table.insert( player.gameData.illustration.pointInfo , { id = IllustrationId , status = self.IllustrationStatus_Achieve })
end
end
--是否存在完成的图鉴
function Illustration:IsExistAchieve( player , IllustrationId )
local isExist = false
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if IllustrationId == v.id then
isExist = true
break
end
end
return isExist
end
--该商品是不是套件
function Illustration:IsSuit( player , type , suitId )
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
local cfgIllustration = {}
for k, v in pairs( cfgAllIllustration ) do
if type == v.type and suitId == v.suitId then
return true
end
end
return false
end
--同步积分奖励和收集奖励 (处理旧版数据)
function Illustration:AsycPointReward( player )
if player.gameData.illustration.pointInfo == nil then
player.gameData.illustration.pointInfo = {}
end
if next(player.gameData.illustration.pointInfo) == nil then
--获取当前图鉴ID的配置
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
for k, v in pairs( player.gameData.illustration.awardInfo ) do
table.insert(player.gameData.illustration.pointInfo,{ id = v.id , status = self.IllustrationStatus_Achieve })
--红点
for k1, v1 in pairs( cfgAllIllustration ) do
if v1.id == v.id then
if v1.type == self.IllustrationType_Furniture then
skynet.server.msgTips:Reset( player , 17 )
skynet.server.msgTips:Add( player , 17 )
elseif v1.type == self.IllustrationType_Clothes then
skynet.server.msgTips:Reset( player , 2 )
skynet.server.msgTips:Add( player , 2 )
elseif v1.type == self.IllustrationType_Plant then
skynet.server.msgTips:Reset( player , 18 )
skynet.server.msgTips:Add( player , 18 )
elseif v1.type == self.IllustrationType_Special then
skynet.server.msgTips:Reset( player , 1 )
skynet.server.msgTips:Add( player , 1 )
elseif v1.type == self.IllustrationType_PetClothes then
skynet.server.msgTips:Reset( player , 118 )
skynet.server.msgTips:Add( player , 118 )
end
break
end
end
end
end
end
--将花园相关物品添加至图鉴(处理旧版数据)
function Illustration:AsycGardenIllstration( player )
if next(player.gameData.bag) ~= nil then
for i, v in pairs(player.gameData.bag) do
if v.type == dataType.GoodsType_Garden then
self:Add( player , dataType.GoodsType_Garden , v.id )
end
end
end
end
--修复旧版扭蛋bug
function Illustration:FixGashaponData( player )
local cfgAllGashapon = skynet.server.gameConfig:GetPlayerAllCfg( player , "Gashapon")
local cfgAllIllustration = skynet.server.gameConfig:GetPlayerAllCfg( player , "Illustration")
local cfgGashapon = {}
local IsAchieve = true
skynet.server.msgTips:Reset( player , 1 )
for k, v in pairs( cfgAllGashapon ) do
cfgGashapon = v
for k1, v1 in pairs( cfgGashapon.allItemId ) do
IsAchieve = self:IsExistGoods( player , dataType.GoodsType_Furniture , v1 )
if not IsAchieve then
break
end
end
if IsAchieve then
for k2, v2 in pairs( cfgAllIllustration ) do
if v2.type == self.IllustrationType_Special and v2.suitId == cfgGashapon.id then
self:AddAchieve( player , v2.id )
skynet.server.msgTips:Add( player , 1 )
end
end
end
end
player.gameData.illustration.fixGashapon = true
end
--修复扭蛋红点
function Illustration:FixGashaponRedDot( player )
if player.gameData.illustration.pointInfo == nil or next(player.gameData.illustration.pointInfo) == nil then
return
end
skynet.server.msgTips:Reset( player , 1 )
--获取当前图鉴ID的配置
for k, v in pairs( player.gameData.illustration.awardInfo ) do
if self.IllustrationStatus_Achieve == v.status then
local cfgCurOne= skynet.server.gameConfig:GetPlayerCurCfg( player , "Illustration" , v.id )
if cfgCurOne and self.IllustrationType_Special == cfgCurOne.type then
skynet.server.msgTips:Add( player , 1 )
end
end
end
for k, v in pairs( player.gameData.illustration.pointInfo ) do
if self.IllustrationStatus_Achieve == v.status then
local cfgCurOne = skynet.server.gameConfig:GetPlayerCurCfg( player , "Illustration" , v.id )
if cfgCurOne and self.IllustrationType_Special == cfgCurOne.type then
skynet.server.msgTips:Add( player , 1 )
end
end
end
end
skynet.server.illustration = Illustration
return Illustration