源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

535 行
18 KiB

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