require("game.proto.170.Require170")
|
|
require("game.capsuleEgg.CapsuleEggAwardItem")
|
|
require("game.capsuleEgg.CapsuleEggConst")
|
|
require("game.capsuleEgg.CapsuleEggExtraBaseView")
|
|
require("game.capsuleEgg.CapsuleEggModel")
|
|
require("game.capsuleEgg.CapsuleEggRecordItem")
|
|
require("game.capsuleEgg.CapsuleEggRecordItemTwo")
|
|
require("game.capsuleEgg.CapsuleEggResultView")
|
|
require("game.capsuleEgg.CapsuleEggScoreShopItem")
|
|
require("game.capsuleEgg.CapsuleEggScoreShopView")
|
|
require("game.capsuleEgg.CapsuleEggView")
|
|
require("game.capsuleEgg.CapsuleEggWarehouseItem")
|
|
require("game.capsuleEgg.CapsuleEggWarehouseView")
|
|
require("game.capsuleEgg.CapsuleEggShowAwardItem")
|
|
require("game.capsuleEgg.CapsuleEggShowAwardItemTwo")
|
|
require("game.capsuleEgg.CapsuleEggRewardView")
|
|
require("game.capsuleEgg.CapsuleEggRewardItem")
|
|
require("game.capsuleEgg.CapsuleEggTargetItem")
|
|
require("game.capsuleEgg.CapsuleEggBigRewardView")
|
|
require("game.capsuleEgg.CapsuleEggRewardPreview")
|
|
|
|
CapsuleEggController = CapsuleEggController or BaseClass(BaseController, true)
|
|
local CapsuleEggController = CapsuleEggController
|
|
|
|
function CapsuleEggController:__init()
|
|
CapsuleEggController.Instance = self
|
|
self.model = CapsuleEggModel:getInstance()
|
|
self:AddEvents()
|
|
self:RegisterAllProtocal()
|
|
end
|
|
|
|
function CapsuleEggController:__delete()
|
|
end
|
|
|
|
function CapsuleEggController:RegisterAllProtocal( )
|
|
self:RegisterProtocal(17000, "Handle17000")
|
|
self:RegisterProtocal(17001, "Handle17001")
|
|
self:RegisterProtocal(17002, "Handle17002")
|
|
self:RegisterProtocal(17003, "Handle17003")
|
|
self:RegisterProtocal(17004, "Handle17004")
|
|
self:RegisterProtocal(17005, "Handle17005")
|
|
self:RegisterProtocal(17006, "Handle17006")
|
|
self:RegisterProtocal(17007, "Handle17007")
|
|
self:RegisterProtocal(17008, "Handle17008")
|
|
self:RegisterProtocal(17009, "Handle17009")
|
|
self:RegisterProtocal(17010, "Handle17010")
|
|
self:RegisterProtocal(17011, "Handle17011")
|
|
end
|
|
|
|
function CapsuleEggController:AddEvents()
|
|
local function onRequestBaseInfo()
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,1)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,2)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17000,3)
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,1)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,2)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17001,3)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,1)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,2)
|
|
-- self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17010,3)
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17004)
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17005)
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
|
|
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17011,1,1,0)
|
|
end
|
|
|
|
local function onGameStart()
|
|
local function onDelay()
|
|
onRequestBaseInfo()
|
|
end
|
|
setTimeout(onDelay, 2)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
|
|
|
|
-- 满足等级后请求信息
|
|
-- local function onLevelUp(level)
|
|
-- if level == GetModuleOpenLevel(170) then
|
|
-- onRequestBaseInfo()
|
|
-- end
|
|
-- end
|
|
-- RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
|
|
|
|
--完成任务检查一下
|
|
local function onTaskFinished(id)
|
|
if id == Config.Moduleid[170].task_id then
|
|
onRequestBaseInfo()
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST, onTaskFinished)
|
|
|
|
--请求信息 i|32 h|16 c|8 l|64 s|字符串
|
|
local function onRequestHandler(...)
|
|
local args_list = {...}
|
|
if args_list[1] == 17000 then
|
|
self:SendFmtToGame(args_list[1],"c",args_list[2])
|
|
elseif args_list[1] == 17001 then
|
|
self:SendFmtToGame(args_list[1],"c",args_list[2])
|
|
elseif args_list[1] == 17002 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 17003 then
|
|
self:SendFmtToGame(args_list[1],"ccc",args_list[2],args_list[3],args_list[4])
|
|
elseif args_list[1] == 17004 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 17005 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 17006 then
|
|
self:SendFmtToGame(args_list[1],"h",args_list[2])
|
|
elseif args_list[1] == 17007 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 17008 then
|
|
self:SendFmtToGame(args_list[1],"l",args_list[2])
|
|
elseif args_list[1] == 17009 then
|
|
self:SendFmtToGame(args_list[1])
|
|
elseif args_list[1] == 17011 then
|
|
self:SendFmtToGame(args_list[1], "cci", args_list[2],args_list[3],args_list[4])
|
|
else
|
|
self:SendFmtToGame(args_list[1])
|
|
end
|
|
end
|
|
self.model:Bind(CapsuleEggConst.REQUEST_CCMD_EVENT, onRequestHandler)
|
|
|
|
|
|
--打开奖池类型为pool_type的扭蛋界面
|
|
local function on_open_capsule_egg_view(pool_type)
|
|
if self.capsule_egg_view == nil then
|
|
self.capsule_egg_view = CapsuleEggView.New()
|
|
end
|
|
self.capsule_egg_view:Open(pool_type)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_VIEW,on_open_capsule_egg_view)
|
|
|
|
--打开仓库、积分商城界面
|
|
local function on_open_capsule_egg_extra_view(index)
|
|
if self.capsule_egg_extra_view == nil then
|
|
self.capsule_egg_extra_view = CapsuleEggExtraBaseView.New()
|
|
end
|
|
self.capsule_egg_extra_view:Open(index)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_EXTRA_VIEW,on_open_capsule_egg_extra_view)
|
|
|
|
--打开奖励界面
|
|
local function on_open_capsule_egg_reward_view(pool_type)
|
|
if self.capsule_egg_reward_view == nil then
|
|
self.capsule_egg_reward_view = CapsuleEggRewardView.New()
|
|
end
|
|
self.capsule_egg_reward_view:Open(pool_type)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_VIEW,on_open_capsule_egg_reward_view)
|
|
|
|
--打开奖励预览界面
|
|
local function on_open_capsule_egg_preview(pool_type)
|
|
if self.capsule_egg_reward_preview == nil then
|
|
self.capsule_egg_reward_preview = CapsuleEggRewardPreview.New()
|
|
end
|
|
self.capsule_egg_reward_preview:Open(pool_type)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_REWARD_PRE_VIEW,on_open_capsule_egg_preview)
|
|
|
|
--打开扭蛋结算界面
|
|
local function on_open_capsule_egg_result_view(pool_type)
|
|
if self.capsule_egg_result_view == nil then
|
|
self.capsule_egg_result_view = CapsuleEggResultView.New()
|
|
end
|
|
if self.capsule_egg_result_view:HasOpen() then
|
|
self.capsule_egg_result_view:UpdateView(pool_type)
|
|
else
|
|
self.capsule_egg_result_view:Open(pool_type)
|
|
end
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_DRAW_RESULT_VIEW,on_open_capsule_egg_result_view)
|
|
|
|
--打开大奖展示界面
|
|
local function on_open_capsule_big_reward_view(reward_list,need_delay_show_view)
|
|
local delay_show_time = 0
|
|
if need_delay_show_view then
|
|
delay_show_time = 0
|
|
end
|
|
local function delay_method( )
|
|
if self.capsule_big_reward_view == nil then
|
|
self.capsule_big_reward_view = CapsuleEggBigRewardView.New()
|
|
end
|
|
if not self.capsule_big_reward_view:HasOpen() then
|
|
self.capsule_big_reward_view:Open(reward_list)
|
|
else
|
|
self.capsule_big_reward_view:ReUpdate(reward_list)
|
|
end
|
|
end
|
|
setTimeout(delay_method, delay_show_time)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.OPEN_CAPSULE_EGG_BIG_REWARD_VIEW,on_open_capsule_big_reward_view)
|
|
|
|
local function update_red_dot_by_tab_id_func( tab_id )--主要的更新红点方法
|
|
if not tab_id then
|
|
self.model:IsNeedRedAll()
|
|
else
|
|
self.model:IsNeedRed(tab_id)
|
|
end
|
|
local red_dot = self.model:GetAllRedDot()
|
|
local bool = false
|
|
for i,v in pairs(red_dot) do
|
|
if v then
|
|
bool = true
|
|
break
|
|
end
|
|
end
|
|
bool = bool or self.model:GetTimeRewardRedDot()
|
|
-- bool = bool or (not self.model.have_see_red_dot)--这个一次性红点先干掉,现在是大于6张才给红点
|
|
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS,17000,bool)
|
|
end
|
|
self.model:Bind(CapsuleEggConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
|
|
end
|
|
|
|
-- ################# 查询扭蛋信息 ##################
|
|
-- protocol=17000{
|
|
-- c2s{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- }
|
|
-- s2c{
|
|
-- pool_type:int8 // 扭蛋库类型 1-龙神 2-炫武 3-华裳
|
|
-- free_times:int8 // 剩余免费次数
|
|
-- next_free_draw:int32 // 下次免费抽取时间戳
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17000( )
|
|
local vo = SCMD17000.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17000 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetCapsuleEggFreeDrawData(vo)
|
|
end
|
|
end
|
|
|
|
-- ################# 查询全服记录 ##################
|
|
-- protocol=17001{
|
|
-- c2s{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- }
|
|
-- s2c{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- server_lucky:int16 // 全服幸运值
|
|
-- draw_log:array{
|
|
-- role_id:int64 // 玩家Id
|
|
-- role_name:string // 玩家名字
|
|
-- reward_cfg_id:int32 // 奖励配置Id
|
|
-- record_time:int32 // 抽奖记录时间
|
|
-- is_stick:int8 // 是否置顶
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17001( )
|
|
local vo = SCMD17001.New(true)
|
|
if vo then
|
|
--print("==WQ==:SCMD17001 [start:156] vo:", vo)
|
|
--PrintTable(vo)
|
|
--print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetRecord(vo)
|
|
self.model:Fire(CapsuleEggConst.UPDATE_SERVER_RECORD,vo.pool_type)
|
|
end
|
|
end
|
|
|
|
-- ############## 新增全服记录(推送协议) ###############
|
|
-- protocol=17002{
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- server_lucky:int16 // 全服幸运值
|
|
-- role_id:int64 // 玩家Id
|
|
-- role_name:string // 玩家名字
|
|
-- reward_id_list:array{
|
|
-- reward_cfg_id:int16 // 奖励配置Id
|
|
-- is_stick:int8 // 是否置顶
|
|
-- }
|
|
-- record_time:int32 // 抽奖记录时间
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17002( )
|
|
local vo = SCMD17002.New(true)
|
|
if vo then
|
|
for k,v in pairs(vo.reward_id_list) do
|
|
local temp_vo = {}
|
|
temp_vo.reward_cfg_id = v.reward_cfg_id
|
|
temp_vo.is_stick = v.is_stick
|
|
temp_vo.pool_type = vo.pool_type
|
|
temp_vo.server_lucky = vo.server_lucky
|
|
temp_vo.role_id = vo.role_id
|
|
temp_vo.role_name = vo.role_name
|
|
temp_vo.record_time = vo.record_time
|
|
self.model:AddRecord(temp_vo)
|
|
end
|
|
self.model:Fire(CapsuleEggConst.UPDATE_SERVER_RECORD,vo.pool_type)
|
|
end
|
|
end
|
|
|
|
-- ################# 抽奖 ##################
|
|
-- protocol=17003{
|
|
-- c2s{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- draw_times:int8 // 抽奖次数
|
|
-- is_free:int8 // 是否免费抽取 0-否 1-是
|
|
-- }
|
|
-- s2c{
|
|
-- res:int32 // 返回码
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- free_times:int8 // 剩余免费次数
|
|
-- next_free_draw:int32 // 下次免费抽取时间戳
|
|
-- reward_list:array{ // 获得物品
|
|
-- reward_cfg_id:int32 // 奖励配置Id
|
|
-- gtype_id :int32 // 物品类型id
|
|
-- goods_num :int32 // 物品数量
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17003( )
|
|
local vo = SCMD17003.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17003 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
if vo.res==1 then
|
|
self.model:SetCapsuleEggFreeDrawData(vo)--刷新奖池免费抽奖信息
|
|
self.model:SetNowRewardList(vo.reward_list)
|
|
self.model:Fire(CapsuleEggConst.OPEN_DRAW_RESULT_VIEW,vo.pool_type)--打开抽奖结算界面
|
|
lua_soundM:PlayEffect(self, "award",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ################# 查询积分 ##################
|
|
-- protocol=17004{
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- score:int32 // 积分
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17004( )
|
|
local vo = SCMD17004.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17004 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetCapsuleEggScore(vo.score)
|
|
end
|
|
end
|
|
|
|
-- ############## 获取积分商城商品信息 ###############
|
|
-- protocol=17005
|
|
-- {
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- goods_list:array{
|
|
-- pos :int16 // 商品位置
|
|
-- gtype_id :int32 // 商品类型Id
|
|
-- type :int8 // 兑换类型:1-每日限购 2-每周限购 3-终身限购
|
|
-- num :int8 // 剩余兑换的次数
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17005( )
|
|
local vo = SCMD17005.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17005 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetCapsuleEggScoreShopData(vo)
|
|
self.model:Fire(CapsuleEggConst.UPDATE_CPASULE_EGG_SCORE_SHOP_VIEW)
|
|
end
|
|
end
|
|
|
|
-- ################# 积分兑换 ##################
|
|
-- protocol=17006{
|
|
-- c2s{
|
|
-- pos :int16 // 商品位置
|
|
-- }
|
|
-- s2c{
|
|
-- res :int32 // 返回码
|
|
-- pos :int16 // 商品位置
|
|
-- gtype_id :int32 // 商品类型Id
|
|
-- num :int8 // 已经兑换的次数
|
|
-- score :int32 // 积分
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17006( )
|
|
local vo = SCMD17006.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17006 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
if vo.res==1 then
|
|
self.model:UpdateCapsuleEggScoreShopData(vo)
|
|
self.model:SetCapsuleEggScore(vo.score)
|
|
self.model:Fire(CapsuleEggConst.UPDATE_CAPSULE_EGG_SHOP_ITEM,vo.pos)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ################# 查询仓库物品 ##################
|
|
-- protocol=17007{
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- goods_list:array{ // 获得物品
|
|
-- goods_id :int64 // 物品唯一id
|
|
-- gtyp_id :int32 // 物品类型id
|
|
-- goods_num :int32 // 物品数量
|
|
-- create_time :int32 // 创建时间
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17007( )
|
|
local vo = SCMD17007.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17007 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetWarehouseData(vo)
|
|
if not self.model.take_one_not_to_update_warehouse then
|
|
self.model:Fire(CapsuleEggConst.UPDATE_WAREHOUSE_VIEW)
|
|
end
|
|
self.model.take_one_not_to_update_warehouse = false
|
|
end
|
|
end
|
|
|
|
-- ################ 取出仓库物品 ##############
|
|
-- protocol=17008
|
|
-- {
|
|
-- c2s{
|
|
-- goods_id :int64 // 物品id
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- goods_id :int64 // 物品id
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17008( )
|
|
local vo = SCMD17008.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17008 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
if vo.errcode == 1 then
|
|
self.model:Fire(CapsuleEggConst.TAKE_ONE_REWARD_FROW_WAREHOUSE,vo.goods_id)
|
|
|
|
self.model.take_one_not_to_update_warehouse = true
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ############## 一键取出 ##############
|
|
-- protocol=17009
|
|
-- {
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17009( )
|
|
local vo = SCMD17009.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17009 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
if vo.errcode == 1 then
|
|
-- self.model:ClearWarehouseData()
|
|
-- self.model:Fire(CapsuleEggConst.TAKE_OUT_ALL_REWARD)
|
|
self.model.take_one_not_to_update_warehouse = false
|
|
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17007)
|
|
lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
else
|
|
ErrorCodeShow(vo.errcode)
|
|
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ############## 全服幸运值 ##############
|
|
-- protocol=17010
|
|
-- {
|
|
-- c2s{}
|
|
-- s2c{
|
|
-- pool_type:int8 // 扭蛋库类型
|
|
-- server_lucky:int16 // 全服幸运值
|
|
-- }
|
|
-- }
|
|
function CapsuleEggController:Handle17010( )
|
|
local vo = SCMD17010.New(true)
|
|
if vo then
|
|
-- print("==WQ==:SCMD17010 [start:156] vo:", vo)
|
|
-- PrintTable(vo)
|
|
-- print("==WQ==:CapsuleEggController [end]")
|
|
self.model:SetServerlucky(vo.pool_type,vo.server_lucky)
|
|
end
|
|
end
|
|
|
|
--############## 查询/领取次数奖励 ##############
|
|
function CapsuleEggController:Handle17011( )
|
|
local vo = SCMD17011.New(true)
|
|
|
|
if vo.res == 1 then
|
|
self.model:SetTimesRewardInfo(vo)
|
|
else
|
|
ErrorCodeShow(vo.res)
|
|
end
|
|
end
|