源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

514 lines
16 KiB

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