60 lines
2.3 KiB
Lua
60 lines
2.3 KiB
Lua
local skynet = require "skynet"
|
|
local oo = require "Class"
|
|
local log = require "Log"
|
|
local pb = require "pb"
|
|
local errorInfo = require "ErrorInfo"
|
|
local dataType = require "DataType"
|
|
local AD = oo.class()
|
|
|
|
function AD:Init()
|
|
|
|
end
|
|
|
|
--礼盒展示
|
|
function AD:Watch( player , c2sData , s2cData )
|
|
c2sData.data = assert(pb.decode("C2SADWatch", c2sData.data ))
|
|
local data = {}
|
|
|
|
local adType = c2sData.data.adType
|
|
if not adType then
|
|
s2cData.code = errorInfo.ErrorCode.ErrRequestParam
|
|
else
|
|
|
|
if adType == "UsedSellAcc" then --闲菜出售商品呼唤买家
|
|
--skynet.server.used:AccSell( player )
|
|
elseif adType == "FreeGainCoin" then --广告免费领金币
|
|
local cfgSValue = skynet.server.gameConfig.SValue
|
|
local level = player.gameData.level
|
|
local cfgLevel = skynet.server.gameConfig:GetLevelCfg( level )
|
|
local count = math.floor(cfgSValue.ADGold * cfgLevel.earningUpper)
|
|
player:MoneyChange( dataType.MoneyType_Coin , count )
|
|
elseif adType == "FreeGainClovers" then --广告免费领四叶草
|
|
local cfgSValue = skynet.server.gameConfig.SValue
|
|
local level = player.gameData.level
|
|
local cfgLevel = skynet.server.gameConfig:GetLevelCfg( level )
|
|
local count = math.floor(cfgSValue.ADDiamond * cfgLevel.earningUpper)
|
|
player:MoneyChange( dataType.MoneyType_Map , count)
|
|
end
|
|
|
|
--广告数量加+1
|
|
player.gameData.adCount = player.gameData.adCount + 1
|
|
player.gameData.todayGain.adCount = player.gameData.todayGain.adCount + 1
|
|
data.adType = adType
|
|
data.adCount = player.gameData.adCount
|
|
skynet.server.achieveTask:Modify( player , 41 , 1)
|
|
|
|
--skynet.server.giftBox:CheckReward( player )
|
|
log.info(string.format("玩家 %d 广告观看 广告类型 %s" , player.userId , adType ))
|
|
end
|
|
s2cData.cmd = pb.enum("MsgType","CMD_S2C_ADWatch")
|
|
s2cData.data = assert(pb.encode("S2CADWatch", data))
|
|
end
|
|
|
|
--广告数量加1
|
|
function AD:AddCount( player , count )
|
|
player.gameData.adCount = player.gameData.adCount + count
|
|
player.gameData.todayGain.adCount = player.gameData.todayGain.adCount + count
|
|
end
|
|
|
|
skynet.server.ad = AD
|
|
return AD |