@@ -1,442 +0,0 @@
module ( " ActivityQQHall " , package.seeall )
--[[
QQ大厅特权
个人数据: qqHallData
{
activeGift = 0/1 是否领取活跃礼包( 0否, 1是)
registerGift = 0/1 是否领取注册礼包( 0否, 1是)
lastLoginTime = 0 上一次通过YY大厅登录的时间戳
loginDay = 1 通过YY大厅登录的累计天数
levelGift = 00000000 32位 是否领取某天的登录礼包
--蓝钻
newPlayerGift //新手礼包
growupgift //成长礼包
dailyGift //每日礼包
blueDimandGift //蓝钻等级
BlueLv //蓝钻等级
Blue //蓝钻
BlueYear //年费
}
]] --
PlatformConfig = PlatformQQConfig
LoginConfig = LoginQQConfig
local PfId = System.getPfId ( )
--对应的活动配置
function getQQHallData ( pActor )
local var = Actor.getStaticVar ( pActor )
if var.qqHallData == nil then
var.qqHallData = { }
end
return var.qqHallData
end
function SendQQHallData ( pActor )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] SendQQHallData ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local npack = DataPack.allocPacket ( pActor , enPlatforMwelfareID , sGetQQhallInfos )
if npack then
-- print("1111")
local data = getQQHallData ( pActor )
DataPack.writeByte ( npack , ( data.activeGift or 0 ) ) --是否领取活跃礼包( 0否, 1是)
DataPack.writeByte ( npack , ( data.registerGift or 0 ) ) --是否领取认证礼包( 0否, 1是)
DataPack.writeUInt ( npack , ( data.levelGift or 0 ) ) --礼包的领取标记 32 位
DataPack.flush ( npack )
end
end
--------------------------------------------------------------------
-- CPP回调
--------------------------------------------------------------------
function OnQQHallLogin ( pActor )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnQQHallLogin ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
-- 当天初始化
local data = getQQHallData ( pActor )
if data.lastLoginTime == nil then
data.lastLoginTime = System.getCurrMiniTime ( )
--print("第一天")
end
-- print("1111")
SendQQHallData ( pActor ) ;
end
--------------------------------------------------------------------
-- 客户端请求协议回调
-------------------------------------------------------------------
--登录
function OnReqQQHallLevelGift ( pActor , packet )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnReqQQHallLevelGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local idx = DataPack.readByte ( packet )
if idx > # LoginConfig then
return
end
local conf = PlatformConfig
local Cfg = LoginQQConfig [ idx ]
idx = idx - 1
local data = getQQHallData ( pActor )
if Cfg then
-- 领取检查data.levelGift
if not data.levelGift then
data.levelGift = 0
end
local flag = System.getIntBit ( data.levelGift , idx )
--print("loginGift="..data.levelGift.." flag="..flag)
if flag == 1 then
return
end
local lv = Actor.getIntProperty ( pActor , PROP_CREATURE_LEVEL )
if Cfg.level and ( lv < Cfg.level ) then
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:等级不足| " , tstUI )
return
end
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
-- 天数检查
data.levelGift = System.setIntBit ( data.levelGift , idx , true )
CommonFunc.Awards . Give ( pActor , Cfg.reward , GameLog.Log_QQhallLevel )
SendQQHallData ( pActor )
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
end
end
--注册
function OnReqQQHallRegisteGift ( pActor , packet )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnReqQQHallRegisteGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local data = getQQHallData ( pActor )
if data.registerGift then
return
end
local conf = PlatformConfig
local awards = conf.reward1
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
CommonFunc.Awards . Give ( pActor , awards , GameLog.Log_QQhallRegiste )
data.registerGift = 1 ;
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
SendQQHallData ( pActor )
end
--认证
function OnReqQQHallIdActiveGift ( pActor , packet )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnReqQQHallIdActiveGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local conf = PlatformConfig
local awards = conf.reward2
local data = getQQHallData ( pActor )
if data.activeGift == 1 then
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:重复领取| " , tstUI )
return
end
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
CommonFunc.Awards . Give ( pActor , awards , GameLog.Log_QQhallActive )
data.activeGift = 1 ;
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
SendQQHallData ( pActor )
end
NetmsgDispatcher.Reg ( enPlatforMwelfareID , cGetQQHallInfos , OnQQHallLogin )
NetmsgDispatcher.Reg ( enPlatforMwelfareID , cGetQQqHallLevelAward , OnReqQQHallLevelGift )
NetmsgDispatcher.Reg ( enPlatforMwelfareID , cGetQQHallRegisteAward , OnReqQQHallRegisteGift )
NetmsgDispatcher.Reg ( enPlatforMwelfareID , cGetQQqHallActiveAward , OnReqQQHallIdActiveGift )
--------------------------------------------------------------------
-- 玩家 回调注册
--------------------------------------------------------------------
-- 跨天
function OnNewDayArrive ( pActor , ndiffday )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnNewDayArrive ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
print ( " [ActivityTypeQQHall:OnNewDayArrive-001-- " )
local currMiniTime = System.getCurrMiniTime ( )
local data = getQQHallData ( pActor )
--print("[ActivityTypeQQHall:OnNewDayArrive-101--".. tostring(data.lastLoginTime))
print ( " [ActivityTypeQQHall:OnNewDayArrive-123-- " .. tostring ( data.dailyGift ) )
print ( " [ActivityTypeQQHall:OnNewDayArrive-111-- " .. tostring ( data.activeGift ) )
--if data.lastLoginTime then
print ( " [ActivityTypeQQHall:OnNewDayArrive-002-- " )
if not System.isSameDay ( data.lastLoginTime , System.getCurrMiniTime ( ) ) then
data.lastLoginTime = System.getCurrMiniTime ( )
-- data.loginDay = data.loginDay + 1
data.activeGift = 0
data.dailyGift = 0 ;
print ( " [ActivityTypeQQHall:OnNewDayArrive-9123-- " .. tostring ( data.dailyGift ) )
print ( " [ActivityTypeQQHall:OnNewDayArrive-9111-- " .. tostring ( data.activeGift ) )
end
SendQQHallData ( pActor )
--end
end
ActorEventDispatcher.Reg ( aeNewDayArrive , OnNewDayArrive , " ActivityQQHall.lua " )
-----------
--蓝钻
-----------
function OnSetQQBlueDiamond ( pActor , packet )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] OnSetQQBlueDiamond ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local data = getQQHallData ( pActor )
local nBlue = DataPack.readByte ( packet ) ;
local nBlueYear = DataPack.readByte ( packet ) ;
local nBluelv = DataPack.readByte ( packet ) ;
local nVip = 0 ;
nVip = System.getValueMAKELONG ( nBluelv , nBlueYear , nBlue ) ;
data.Blue = nBlue ;
data.BlueLv = nBluelv ;
data.BlueYear = nBlueYear ;
Actor.setUIntProperty ( pActor , PROP_ACTOR_SUPPER_PLAY_LVL , nVip )
end
function SendQQBlueDiamondData ( pActor )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] SendQQBlueDiamondData ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local npack = DataPack.allocPacket ( pActor , enMiscSystemID , sGetQQBlueDiamond )
if npack then
local data = getQQHallData ( pActor )
DataPack.writeByte ( npack , ( data.newPlayerGift or 0 ) ) --
DataPack.writeUInt ( npack , ( data.growupgift or 0 ) ) --
DataPack.writeUInt ( npack , ( data.dailyGift or 0 ) ) --
DataPack.writeUInt ( npack , ( data.blueDimandGift or 0 ) ) --
DataPack.flush ( npack )
end
end
function GetQQBlueDiamonGift ( pActor , packet )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] GetQQBlueDiamonGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local type = DataPack.readByte ( packet )
local idx = DataPack.readByte ( packet )
if type == 1 then --新手礼包
GetQQBlueNewPlayerGift ( pActor , idx )
elseif type == 2 then --成长礼包
GetQQBlueGrowUpGift ( pActor , idx )
elseif type == 3 then --每日礼包
GetQQblueDailyGift ( pActor , idx )
elseif type == 4 then --蓝砖战神
GetQQBlueFightGift ( pActor , idx )
end
end
function GetQQBlueNewPlayerGift ( pActor , idx )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] GetQQBlueNewPlayerGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local conf = PlatformConfig
local awards = conf.reward3
local data = getQQHallData ( pActor )
if data.newPlayerGift then
return
end
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
CommonFunc.Awards . Give ( pActor , awards , GameLog.Log_QQBlueNewPlayer )
data.newPlayerGift = 1 ;
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
SendQQBlueDiamondData ( pActor )
end
function GetQQBlueGrowUpGift ( pActor , idx )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] GetQQBlueGrowUpGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
if idx > # LoginConfig then
return
end
local conf = PlatformConfig
local Cfg = LevelBlueDiamondConfig [ idx ]
idx = idx - 1
local data = getQQHallData ( pActor )
if Cfg then
-- 领取检查data.levelGift
if not data.growupgift then
data.growupgift = 0
end
local flag = System.getIntBit ( data.growupgift , idx )
--print("loginGift="..data.levelGift.." flag="..flag)
if flag == 1 then
return
end
local lv = Actor.getIntProperty ( pActor , PROP_CREATURE_LEVEL )
if Cfg.level and ( lv < Cfg.level ) then
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:等级不足| " , tstUI )
return
end
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
-- 天数检查
data.growupgift = System.setIntBit ( data.growupgift , idx , true )
CommonFunc.Awards . Give ( pActor , Cfg.reward , GameLog.Log_QQBlueGrowUp )
SendQQBlueDiamondData ( pActor )
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
end
end
function GetQQblueDailyGift ( pActor , idx )
if PfId ~= nil and PlatformConfig.SPID ~= nil then
--print("[Tip] [PlatformQQ] GetQQblueDailyGift ---------------------PfId:"..PfId.."--- SPID:"..PlatformConfig.SPID)
if tostring ( PfId ) ~= tostring ( PlatformConfig.SPID ) then
print ( " [Tip] [PlatformQQ] [非本平台活动] " )
return --非本平台活动
end
end
local conf = PlatformConfig
idx = idx - 1
local data = getQQHallData ( pActor )
if not data.dailyGift then
data.dailyGift = 0
end
local flag = System.getIntBit ( data.dailyGift , idx )
--print("loginGift="..data.levelGift.." flag="..flag)
if flag == 1 then
return
end
if data.Blue == nil then
data.Blue = 0 ;
end
if data.BlueYear == nil then
data.BlueYear = 0 ;
end
local Cfg = BlueDiamondDailyConfig [ data.BlueLv ]
if Cfg then
local awards = nil ;
if idx == 0 then
awards = Cfg.reward1
elseif idx == 1 then
if data.Blue == 2 then
awards = Cfg.reward2
end
elseif idx == 2 then
if data.BlueYear == 1 then
awards = Cfg.reward3
end
else
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:不满足条件| " , tstUI )
return
end
if awards then
if CommonFunc.Awards . CheckBagIsEnough ( pActor , conf.bagtype , tmLeftBagNumNotEnough , tstUI ) ~= true then
return
end
-- 天数检查
data.dailyGift = System.setIntBit ( data.dailyGift , idx , true )
CommonFunc.Awards . Give ( pActor , awards , GameLog.Log_QQBlueGrowUp )
SendQQBlueDiamondData ( pActor )
Actor.sendTipmsg ( pActor , " |C:0xf56f00&T:领取成功| " , tstUI )
end
end
end
function GetQQBlueFightGift ( pActor , idx )
end
NetmsgDispatcher.Reg ( enMiscSystemID , CSetQQBlueDiamond , OnSetQQBlueDiamond )
NetmsgDispatcher.Reg ( enMiscSystemID , CGetQQBlueDiamond , SendQQBlueDiamondData )
NetmsgDispatcher.Reg ( enMiscSystemID , CGetQQBlueDiamondGift , GetQQBlueDiamonGift )