require("game.proto.333.Require333")
|
|
require("game.competingList.CompetingListModel")
|
|
require("game.competingList.CompetingListConst")
|
|
require("game.competingList.view.CompetingListBaseView")--竞榜主界面
|
|
require("game.competingList.view.CompetingListItem")--竞榜item
|
|
require("game.competingList.view.CompetingListCon")--竞榜道具item界面
|
|
require("game.competingList.view.CompetingListAwardItem")--竞榜道具item界面奖励
|
|
require("game.competingList.view.CompetingListRecordTxt")--竞榜日志item
|
|
require("game.competingList.view.CompetingListResultView")--竞榜结算界面
|
|
require("game.competingList.view.CompetingListCardItem")--竞榜结算界面Item
|
|
require("game.competingList.view.CompetingListToolTips")--竞榜道具提示界面--暂时弃用
|
|
require("game.competingList.view.CompetingListToolSmallTips")--竞榜奖励提示小界面20200831需求修改用这个小界面展示奖励
|
|
require("game.competingList.view.FontaniBaseView")--许愿池界面
|
|
require("game.competingList.view.FontaniBaseItem")--许愿池item界面
|
|
require("game.competingList.view.CompetingListAskView")--竞榜打折界面
|
|
require("game.competingList.view.CompetingListAwardShowView")--竞榜奖励展示界面
|
|
|
|
|
|
CompetingListController = CompetingListController or BaseClass(BaseController)
|
|
CompetingListController.Is_Debug = false
|
|
function CompetingListController:__init()
|
|
CompetingListController.Instance = self
|
|
self.model = CompetingListModel:getInstance()
|
|
self.mainVo = RoleManager.Instance.mainRoleInfo
|
|
self:RegisterAllProtocals()
|
|
self:AddAllEvents()
|
|
end
|
|
|
|
function CompetingListController:__delete()
|
|
|
|
end
|
|
|
|
function CompetingListController:AddAllEvents()
|
|
local function game_start_func()
|
|
-- self.model:Fire(CompetingListModel.REQUEST_INFO,33170)
|
|
-- self:handle33300()
|
|
end
|
|
GlobalEventSystem:Bind(EventName.GAME_START,game_start_func)
|
|
|
|
-- local function CheckRedPoint( ... )
|
|
|
|
-- end
|
|
-- GlobalEventSystem:Bind(GoodsModel.CHANGE_BAGLIST,game_start_func)
|
|
|
|
local onOpenluckyCallView = function (base_type)
|
|
do return end
|
|
if base_type == 888 then
|
|
for k,v in pairsByKeys(self.model.view_info) do
|
|
local cfg = self.model.view_cfg[k]
|
|
if cfg then
|
|
if cfg.type == 1 then--竞榜
|
|
base_type = k
|
|
break
|
|
elseif cfg.type == 2 then--许愿池
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
if not self.model.view_info or not self.model.view_info[base_type] then
|
|
Message.show("活动未开启")
|
|
return
|
|
end
|
|
if self.competing_list_view == nil then
|
|
self.competing_list_view = CompetingListBaseView.New()
|
|
end
|
|
if self.competing_list_view:HasOpen() then
|
|
-- self.competing_list_view:UpdateView(base_type)
|
|
else
|
|
self.competing_list_view:Open(base_type)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_VIEW, onOpenluckyCallView)
|
|
|
|
-- local onOpenFontaniView = function (base_type)--许愿池
|
|
-- if not self.model.view_info or not self.model.view_info[base_type] or not self.model.view_info[base_type].rune_times then
|
|
-- Message.show("活动未开启")
|
|
-- return
|
|
-- end
|
|
-- local key = string.format("%s@%s",333,base_type)
|
|
-- if Config.Moduleopenlv[key] and RoleManager.Instance.mainRoleInfo.level < Config.Moduleopenlv[key].lv then
|
|
-- local str = string.format("%s级开放",Config.Moduleopenlv[key].lv)
|
|
-- Message.show(str)
|
|
-- return
|
|
-- end
|
|
-- if self.FontaniBaseView == nil then
|
|
-- self.FontaniBaseView = FontaniBaseView.New()
|
|
-- end
|
|
-- if self.FontaniBaseView:HasOpen() then
|
|
-- self.FontaniBaseView:UpdateView(base_type)
|
|
-- else
|
|
-- self.FontaniBaseView:Open(base_type)
|
|
-- end
|
|
-- end
|
|
-- GlobalEventSystem:Bind(CompetingListModel.OPEN_FONTANI_VIEW, onOpenFontaniView)
|
|
|
|
local function request_info(request_id , ... )
|
|
if not CompetingListController.Is_Debug then
|
|
local fun_name = string.format("send%s",request_id)
|
|
if self[fun_name] then
|
|
print('----in CompetingListController.lua,line 44 request_id',request_id , ...)
|
|
self[fun_name](self,...)
|
|
end
|
|
elseif request_id == 33306 or request_id == 33305 or request_id == 33301 or request_id == 33300 or request_id == 33304 then
|
|
local fun_name = string.format("handle%s",request_id)
|
|
if self[fun_name] then
|
|
print('----in CompetingListController.lua,line 96 request_idIs_Debug',request_id , ...)
|
|
self[fun_name](self,...)
|
|
end
|
|
end
|
|
end
|
|
self.model:Bind(CompetingListModel.REQUEST_INFO,request_info)
|
|
|
|
local function init_open_day( ... )--开服天数初始化
|
|
CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300)
|
|
end
|
|
GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day)
|
|
|
|
local onOpenCompetingListResultView = function (sub_type,tab_type)
|
|
if self.competing_list_result_view == nil then
|
|
self.competing_list_result_view = CompetingListResultView.New()
|
|
end
|
|
if self.competing_list_result_view:HasOpen() then
|
|
self.competing_list_result_view:UpdateView(sub_type,tab_type)
|
|
else
|
|
self.competing_list_result_view:Open(sub_type,tab_type)
|
|
end
|
|
end
|
|
self.model:Bind(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW, onOpenCompetingListResultView)
|
|
|
|
local onOpenCompetingListTipView = function (data)--宝箱道具展示界面
|
|
if self.competing_list_tip_view == nil then
|
|
-- self.competing_list_tip_view = CompetingListToolTips.New()--暂时弃用
|
|
self.competing_list_tip_view = CompetingListToolSmallTips.New()
|
|
end
|
|
if self.competing_list_tip_view:HasOpen() then
|
|
|
|
else
|
|
self.competing_list_tip_view:Open(data)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_TIP_VIEW, onOpenCompetingListTipView)
|
|
|
|
|
|
local onOpenCompetingListAwardShowView = function (data)--奖池道具展示界面
|
|
if self.CompetingListAwardShowView == nil then
|
|
self.CompetingListAwardShowView = CompetingListAwardShowView.New()
|
|
end
|
|
if self.CompetingListAwardShowView:HasOpen() then
|
|
|
|
else
|
|
self.CompetingListAwardShowView:Open(data)
|
|
end
|
|
end
|
|
GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_AWARD_SHOW_VIEW, onOpenCompetingListAwardShowView)
|
|
|
|
|
|
--升级
|
|
local function onLevelUp(level)
|
|
for i,v in pairs(self.model.view_cfg) do
|
|
if level == v.lv then
|
|
CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300)
|
|
break
|
|
end
|
|
end
|
|
end
|
|
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
|
|
end
|
|
|
|
function CompetingListController:RegisterAllProtocals()
|
|
self:RegisterProtocal(33300, "handle33300") -- 竞榜活动信息开放
|
|
self:RegisterProtocal(33301, "handle33301") -- 竞榜活动信息
|
|
self:RegisterProtocal(33302, "handle33302") -- 竞榜抽奖
|
|
self:RegisterProtocal(33303, "handle33303") -- 次数奖励领取
|
|
self:RegisterProtocal(33304, "handle33304") -- 竞榜活动排行榜数据
|
|
self:RegisterProtocal(33305, "handle33305") -- 许愿面板信息
|
|
self:RegisterProtocal(33306, "handle33306") -- 祈愿
|
|
-- self:RegisterProtocal(33307, "handle33307") -- 广播竞榜全服积分
|
|
end
|
|
|
|
|
|
-- ############## 竞榜活动信息开放 ##############
|
|
-- protocol=33300
|
|
-- {
|
|
-- c2s{
|
|
-- }
|
|
-- s2c{
|
|
-- list:array
|
|
-- {
|
|
-- base_type :int16 // 活动主类型
|
|
-- end_time :int32 // 活动结束时间戳
|
|
-- end_show_time :int32 // 活动展示时间戳(一般比活动结束时间要长,用于展示竞榜结果)
|
|
-- world_stage :int16 // 世界等级阶段
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33300()
|
|
self:SendFmtToGame(33300)
|
|
end
|
|
|
|
function CompetingListController:handle33300()
|
|
CompetingListModel:getInstance():InitComptingIconCfg()--协议第一次回来进行加载
|
|
if not CompetingListController.Is_Debug then
|
|
local scmd = SCMD33300.New(true)
|
|
-- print("huangcong:CompetingListController [146]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
local have_open = false
|
|
for k,v in pairs(self.model.view_info) do
|
|
have_open = false
|
|
local cfg = self.model.view_cfg[v.base_type]
|
|
if cfg then
|
|
for kk,vv in pairs(scmd.list) do
|
|
if vv.base_type == v.base_type then
|
|
have_open = true
|
|
break
|
|
end
|
|
end
|
|
if not have_open and v.base_type and cfg.type == 1 then--竞榜
|
|
ActivityIconManager:getInstance():deleteIcon(33300000+v.base_type)
|
|
elseif not have_open and v.base_type and cfg.type == 2 then--许愿池
|
|
ActivityIconManager:getInstance():deleteIcon(1033300000+v.base_type)
|
|
end
|
|
end
|
|
end
|
|
if #scmd.list > 0 then
|
|
for i,v in ipairs(scmd.list) do
|
|
local cfg = self.model.view_cfg[v.base_type]
|
|
if cfg and cfg.type then
|
|
scmd.type = cfg.type
|
|
self.model:SetViewInfoBase(v)
|
|
self.model:Fire(CompetingListModel.REQUEST_INFO, 33304, v.base_type)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
local data = {base_type = 101, end_time = TimeUtil:getServerTime( ) + 3600, end_show_time = TimeUtil:getServerTime( ) + 7200, world_stage = self.model:GetCurWorldLvStage()}
|
|
local cfg = self.model.view_cfg[data.base_type]
|
|
if cfg and cfg.type then
|
|
data.type = cfg.type
|
|
self.model:SetViewInfoBase(data)
|
|
end
|
|
end
|
|
-- print("huangcong:CompetingListController [117]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
-- self.model:SetViewInfo(scmd)
|
|
-- self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
|
|
end
|
|
|
|
-- ############## 竞榜活动信息 ##############
|
|
-- protocol=33301
|
|
-- {
|
|
-- c2s{
|
|
-- base_type :int16 // 类型
|
|
-- }
|
|
-- s2c{
|
|
-- base_type :int16 // 类型
|
|
-- free_times :int8 // 免费次数
|
|
-- buy_times :int16 // 购买10连次数
|
|
-- sum_score :int32 // 积分
|
|
-- times :int32 // 累计抽奖次数
|
|
-- award_list:array{
|
|
-- id :int16 // 奖励Id
|
|
-- state :int8 // 状态 1可领取未领取|2已领取
|
|
-- }
|
|
-- rank_list:array{
|
|
-- role_id :int64 // 角色Id
|
|
-- role_name :string // 玩家名字
|
|
-- server_num :int32 // 服务器Id
|
|
-- rank :int8 // 排名
|
|
-- score :int32 // 积分
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33301(base_type)
|
|
self:SendFmtToGame(33301,"h",base_type)
|
|
end
|
|
|
|
function CompetingListController:handle33301()
|
|
local scmd = {}
|
|
if not CompetingListController.Is_Debug then
|
|
scmd = SCMD33301.New(true)
|
|
self.model:SetViewInfoOne(scmd)
|
|
self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
|
|
else
|
|
scmd = {}
|
|
end
|
|
-- print("huangcong:CompetingListController [180]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
end
|
|
|
|
-- ############## 竞榜抽奖 ##############
|
|
-- protocol=33302
|
|
-- {
|
|
-- c2s{
|
|
-- base_type :int16 // 类型
|
|
-- times :int8 // 次数 目前只能发1和10
|
|
-- is_auto :int8 // 是否自动购买 0不是 1是
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 返回码(为1 前端会主动去请求33301)
|
|
-- base_type :int16 // 类型
|
|
-- times :int8 // 次数 目前只能发1和10
|
|
-- sum_score :int32 // 积分
|
|
-- draw_times :int32 // 累计抽奖次数
|
|
-- stage :int8 // 世界等级阶段
|
|
-- reward_list:array{
|
|
-- award_id :int16 // 奖励Id
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33302(base_type,times,is_auto)
|
|
self:SendFmtToGame(33302,"hcc",base_type,times,is_auto)
|
|
end
|
|
|
|
function CompetingListController:handle33302()
|
|
local scmd = SCMD33302.New(true)
|
|
-- print("huangcong:CompetingListController [218]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
if scmd.errcode == 1 then
|
|
self.model:SetResult(scmd)
|
|
-- self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type)
|
|
self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type)
|
|
local str = string.format("冲榜积分增加 <color=%s>%s</color>",ColorUtil.GREEN,scmd.times*self.model.one_score)
|
|
Message.show(str)
|
|
else
|
|
ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
|
|
-- ############## 次数奖励领取 ##############
|
|
-- protocol=33303
|
|
-- {
|
|
-- c2s{
|
|
-- base_type :int16 // 类型
|
|
-- id :int16 // 奖励Id
|
|
-- }
|
|
-- s2c{
|
|
-- errcode :int32 // 错误码
|
|
-- base_type :int16 // 类型
|
|
-- id :int16 // 奖励Id
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33303(base_type,award_id)
|
|
self:SendFmtToGame(33303,"hh",base_type,award_id)
|
|
end
|
|
|
|
function CompetingListController:handle33303()
|
|
local scmd = SCMD33303.New(true)
|
|
-- print("huangcong:CompetingListController [242]: ",scmd.id)
|
|
-- PrintTable(scmd)
|
|
if scmd.errcode == 1 then
|
|
Message.show("领取成功")
|
|
local act_list = self.model.view_info[scmd.base_type]
|
|
if act_list and act_list.award_list then
|
|
if act_list.award_list[scmd.id] then
|
|
act_list.award_list[scmd.id].state = 2
|
|
end
|
|
end
|
|
self.model:CheckMainIconRedDot(scmd.base_type)
|
|
self.model:Fire(CompetingListModel.UPDATE_BOX_AWARD,scmd.base_type,scmd.id)
|
|
else
|
|
ErrorCodeShow(scmd.errcode)
|
|
end
|
|
end
|
|
|
|
-- ############## 竞榜活动排行榜数据 ##############
|
|
-- protocol=33304
|
|
-- {
|
|
-- c2s{
|
|
-- base_type :int16 // 类型
|
|
-- }
|
|
-- s2c{
|
|
-- base_type :int16 // 类型
|
|
-- rank_list:array{
|
|
-- role_id :int64 // 角色Id
|
|
-- role_name :string // 玩家名字
|
|
-- server_num :int32 // 服务器Id
|
|
-- rank :int8 // 排名
|
|
-- score :int32 // 积分
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33304(base_type)
|
|
self:SendFmtToGame(33304,"h",base_type)
|
|
end
|
|
|
|
function CompetingListController:handle33304()
|
|
local scmd = {}
|
|
if not CompetingListController.Is_Debug then
|
|
scmd = SCMD33304.New(true)
|
|
else
|
|
scmd = {
|
|
base_type = 301,
|
|
rank_list = {
|
|
role_id = 1,
|
|
role_name = "塌秧",
|
|
server_num = 1,
|
|
rank = 1,
|
|
score = 150,
|
|
},
|
|
}
|
|
end
|
|
-- print("huangcong:CompetingListController [369]: ",scmd.base_type)
|
|
-- PrintTable(scmd)
|
|
if not self.model.view_info[scmd.base_type] then
|
|
self.model.view_info[scmd.base_type] = {}
|
|
end
|
|
local record_data = {}
|
|
for k,v in pairs(scmd.rank_list) do
|
|
record_data[v.rank] = v
|
|
end
|
|
self.model.view_info[scmd.base_type].rank_list = record_data
|
|
self.model:Fire(CompetingListModel.UPDATE_RANK_INFO,scmd.base_type)
|
|
end
|
|
|
|
-- ############许愿面板信息################
|
|
-- protocol=33305
|
|
-- {
|
|
-- c2s{
|
|
-- base_type :int16 // 类型
|
|
-- }
|
|
-- s2c{
|
|
-- base_type:int16 // 类型
|
|
-- gold_coin:int16 //金币
|
|
-- total:int32 //累计充值
|
|
-- score:int32 //积分
|
|
-- rune_times:int16 //符文祈愿次数
|
|
-- award_list:array{
|
|
-- id:int16 // 奖励Id
|
|
-- state:int8 // 状态 1可领取未领取|2已领取
|
|
-- }
|
|
-- }
|
|
-- }
|
|
function CompetingListController:send33305(base_type)
|
|
self:SendFmtToGame(33305,"h",base_type)
|
|
end
|
|
|
|
function CompetingListController:handle33305()
|
|
local scmd = {}
|
|
if not CompetingListController.Is_Debug then
|
|
scmd = SCMD33305.New(true)
|
|
else
|
|
scmd = {
|
|
base_type = 301,
|
|
gold_coin = 0,
|
|
total = 3000,
|
|
score = 0,
|
|
rune_times = 3,
|
|
award_list = {
|
|
|
|
},
|
|
}
|
|
end
|
|
-- print("huangcong:CompetingListController [399]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
local cfg = self.model.view_cfg[scmd.base_type]
|
|
if cfg and cfg.type then
|
|
scmd.type = cfg.type
|
|
self.model:SetFontaniViewInfoOne(scmd)
|
|
self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW)
|
|
self.model:Fire(CompetingListModel.UPDATE_FONTANI_VIEW,scmd.base_type)
|
|
end
|
|
end
|
|
|
|
-- ###############许愿池许愿################
|
|
-- protocol=33306
|
|
-- {
|
|
-- c2s{
|
|
-- base_type:int16 // 类型
|
|
-- opty:int8 //1金币2符文
|
|
-- auto:int8 //0否1自动
|
|
-- }
|
|
-- s2c{
|
|
-- res:int32 //1成功
|
|
-- base_type:int16 // 类型
|
|
-- opty:int8 //操作类型 1金币2符文
|
|
-- stage:int8
|
|
-- reward_list:array{
|
|
-- award_id:int16 // 奖励Id
|
|
-- }
|
|
-- }
|
|
-- }
|
|
|
|
function CompetingListController:send33306(base_type,opty,auto)
|
|
self:SendFmtToGame(33306,"hcc",base_type,opty,auto)
|
|
end
|
|
|
|
function CompetingListController:handle33306()
|
|
local scmd = {}
|
|
if not CompetingListController.Is_Debug then
|
|
scmd = SCMD33306.New(true)
|
|
else
|
|
scmd = {
|
|
res = 1,
|
|
base_type = 301,
|
|
opty = 1,
|
|
score = 16,
|
|
stage = 1,
|
|
}
|
|
scmd.reward_list = {
|
|
award_id = 1,
|
|
}
|
|
end
|
|
-- print("huangcong:CompetingListController [454]: ",scmd)
|
|
-- PrintTable(scmd)
|
|
if scmd.res == 1 then
|
|
self.model:SetFontaniResult(scmd)
|
|
self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type,scmd.opty)
|
|
self.model:Fire(CompetingListModel.REQUEST_INFO, 33305, scmd.base_type)
|
|
local str = string.format("许愿积分增加 <color='%s'>%s</color>",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_coin)
|
|
if scmd.opty == 2 then
|
|
str = string.format("许愿积分增加 <color='%s'>%s</color>",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_rune)
|
|
end
|
|
Message.show(str)
|
|
else
|
|
ErrorCodeShow(scmd.res)
|
|
end
|
|
end
|
|
|
|
-- -- ###############广播全服积分###########20200831需求修改屏蔽33307
|
|
-- -- protocol=33307
|
|
-- -- {
|
|
-- -- s2c{
|
|
-- -- base_type:int16 // 类型
|
|
-- -- server_score :int32 // 全服积分
|
|
-- -- }
|
|
-- -- }
|
|
-- function CompetingListController:handle33307()
|
|
-- local scmd = SCMD33307.New(true)
|
|
-- self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type)
|
|
-- -- print("huangcong:CompetingListController [399]: ",scmd)
|
|
-- -- PrintTable(scmd)
|
|
-- end
|