源战役客户端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 

459 rader
16 KiB

require("game.proto.603.Require603")
require("game.csMain.CSMainModel")
require("game.csMain.CSMainConst")
-------------------
require("game.csMain.CSMainBaseView")
require("game.csMain.CSMainRoleModelItem")
-------------------
require("game.csMain.CSMainTaskView")
require("game.csMain.CSMainTaskItem")
-------------------
require("game.csMain.CSMainExploitRankView")
require("game.csMain.CSMainExploitRankTab")
require("game.csMain.CSMainExploitRankItem")
require("game.csMain.CSMainExploitRankTopItem")
require("game.csMain.CSMainExploitRankDailyRewardView")
require("game.csMain.CSMainExploitRankDailyRewardItem")
-------------------
require("game.csMain.CSMainMilitaryRanksAttrItem")
require("game.csMain.CSMainMilitaryRanksBaseView")
require("game.csMain.CSMainMilitaryRanksTab")
require("game.csMain.CSMainMilitaryRanksDetailsView")
require("game.csMain.CSMainMilitaryRanksRankView")
require("game.csMain.CSMainMilitaryRanksRankItem")
-------------------
require("game.csMain.CSMainAppointView")
require("game.csMain.CSMainAppointTab")
require("game.csMain.CSMainAppointRankItem")
require("game.csMain.CSMainAppointRoleListItem")
require("game.csMain.CSMainAppointRoleItem")
require("game.csMain.CSMainAppointOtherRecordView")
require("game.csMain.CSMainAppointAllRoleListItem")
-------------------
require("game.csMain.CSMainAdvanceNoticeView")
CSMainController = CSMainController or BaseClass(BaseController, true)
local CSMainController = CSMainController
function CSMainController:__init()
CSMainController.Instance = self
self.model = CSMainModel:getInstance()
self:AddEvents()
self:RegisterAllProtocal()
end
function CSMainController:__delete()
end
function CSMainController:RegisterAllProtocal( )
self:RegisterProtocal(60300, "Handle60300")
self:RegisterProtocal(60301, "Handle60301")
self:RegisterProtocal(60302, "Handle60302")
self:RegisterProtocal(60303, "Handle60303")
self:RegisterProtocal(60304, "Handle60304")
self:RegisterProtocal(60305, "Handle60305")
self:RegisterProtocal(60306, "Handle60306")
self:RegisterProtocal(60307, "Handle60307")
self:RegisterProtocal(60308, "Handle60308")
self:RegisterProtocal(60309, "Handle60309")
self:RegisterProtocal(60310, "Handle60310")
self:RegisterProtocal(60311, "Handle60311")
self:RegisterProtocal(60312, "Handle60312")
self:RegisterProtocal(60313, "Handle60313")
self:RegisterProtocal(60314, "Handle60314")
self:RegisterProtocal(60315, "Handle60315")
self:RegisterProtocal(60316, "Handle60316")
self:RegisterProtocal(60317, "Handle60317")
end
function CSMainController:AddEvents()
local function onGameStart()
local function onDelay()
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60301)
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60308)
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60315)
-- local my_country = KfWorldModel:GetInstance():GetMyCountryId()
-- if my_country then
-- self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60307, KfWorldModel:GetInstance():GetMyCountryId())--请求一次自己国家的军功榜,用于判断膜拜红点
-- end
end
setTimeout(onDelay, 2.5)
local function delay_method( )
local my_country = KfWorldModel:GetInstance():GetMyCountryId()
if my_country then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60307, KfWorldModel:GetInstance():GetMyCountryId())--请求一次自己国家的军功榜,用于判断膜拜红点
end
end
setTimeout(delay_method, 5)
end
GlobalEventSystem:Bind(EventName.GAME_START, onGameStart)
-- 满足等级后请求信息
local function onLevelUp(level)
if level == GetModuleOpenLevel(603) then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60301)
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60308)
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60315)
local my_country = KfWorldModel:GetInstance():GetMyCountryId()
if my_country then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60307, KfWorldModel:GetInstance():GetMyCountryId())--请求一次自己国家的军功榜,用于判断膜拜红点
end
elseif level == 96 then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60315)
end
end
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
--请求信息 i|32 h|16 c|8 l|64 s|字符串
local function onRequestHandler(...)
local args_list = {...}
if args_list[1] == 60300 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60301 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60304 then
self:SendFmtToGame(args_list[1],"cc",args_list[2],args_list[3])
elseif args_list[1] == 60305 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60306 then
self:SendFmtToGame(args_list[1],"l",args_list[2])
elseif args_list[1] == 60307 or args_list[1] == 60316 then
self:SendFmtToGame(args_list[1],"c",args_list[2])
elseif args_list[1] == 60308 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60309 then
self:SendFmtToGame(args_list[1],"l",args_list[2])
elseif args_list[1] == 60310 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60311 then
self:SendFmtToGame(args_list[1])
elseif args_list[1] == 60312 then
self:SendFmtToGame(args_list[1],"c",args_list[2])
else
self:SendFmtToGame(args_list[1])
end
end
self.model:Bind(CSMainConst.REQUEST_CCMD_EVENT, onRequestHandler)
--主界面
local function on_open_cs_main_base_view(is_close)
if is_close then
if self.cs_main_base_view then
self.cs_main_base_view:Close()
end
return
end
if self.cs_main_base_view == nil then
self.cs_main_base_view = CSMainBaseView.New()
end
self.cs_main_base_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_BASE_VIEW,on_open_cs_main_base_view)
--任务界面
local function on_open_cs_main_task_view(is_close)
if is_close then
if self.cs_main_task_view then
self.cs_main_task_view:Close()
end
return
end
if self.cs_main_task_view == nil then
self.cs_main_task_view = CSMainTaskView.New()
end
--跳到有红点的任务页签去
local jump_index = 1
for i=1,3 do
local red = self.model:GetTaskRedByColor(i)
if red then
jump_index = i
break
end
end
self.cs_main_task_view:Open(jump_index)
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_TASK_VIEW,on_open_cs_main_task_view)
--军功排行界面
local function on_open_cs_main_exploit_rank_view()
if self.cs_main_exploit_rank_view == nil then
self.cs_main_exploit_rank_view = CSMainExploitRankView.New()
end
self.cs_main_exploit_rank_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_EXPLOIT_RANK_VIEW,on_open_cs_main_exploit_rank_view)
--每日奖励领取界面
local function on_open_cs_main_exploit_rank_daily_reward_view()
if self.cs_main_exploit_rank_daily_reward_view == nil then
self.cs_main_exploit_rank_daily_reward_view = CSMainExploitRankDailyRewardView.New()
end
self.cs_main_exploit_rank_daily_reward_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_EXPLOIT_RANK_DAILY_REWARD_VIEW,on_open_cs_main_exploit_rank_daily_reward_view)
--军衔主界面
local function on_open_cs_main_military_ranks_base_view()
if self.cs_main_military_ranks_base_view == nil then
self.cs_main_military_ranks_base_view = CSMainMilitaryRanksBaseView.New()
end
self.cs_main_military_ranks_base_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_MILITARY_RANKS_BSAE_VIEW,on_open_cs_main_military_ranks_base_view)
--职位任命界面
local function on_open_cs_main_appoint_view()
if self.cs_main_appoint_view == nil then
self.cs_main_appoint_view = CSMainAppointView.New()
end
self.cs_main_appoint_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_APPOINT_VIEW,on_open_cs_main_appoint_view)
--其他职位任命界面
local function on_open_cs_main_appoint_view(vo)
if self.cs_main_other_appoint_view == nil then
self.cs_main_other_appoint_view = CSMainAppointOtherRecordView.New()
end
self.cs_main_other_appoint_view:Open(vo)
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_OTHER_APPOINT_VIEW,on_open_cs_main_appoint_view)
--星域世界预告界面
local function on_open_cs_main_advance_notice_view()
if self.cs_main_advance_notice_view == nil then
self.cs_main_advance_notice_view = CSMainAdvanceNoticeView.New()
end
self.cs_main_advance_notice_view:Open()
end
self.model:Bind(CSMainConst.OPEN_CS_MAIN_ADVANCE_NOTICE_VIEW,on_open_cs_main_advance_notice_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 bool = self.model:GetMainRed()
-- GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 603, bool)
self.model:Fire(CSMainConst.UPDATE_MAIN_RIGHT_TOP_RED)
end
self.model:Bind(CSMainConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func)
local function update_cs_main_goods_num()
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.MilitaryRanks)
end
self.model:Bind(CSMainConst.UPDATE_CS_MAIN_GOODS_NUM,update_cs_main_goods_num)
local function on_announce_sand_table_red_update( )
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.SandTable)
end
SandTableModel:getInstance():Bind(SandTableConst.RedDotRefresh, on_announce_sand_table_red_update)
local function update_power_change()
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.MilitaryRanks)
end
self.update_power_change_id = RoleManager.Instance.mainRoleInfo:BindOne("fighting", update_power_change)
end
--############ 指挥室 ############
function CSMainController:Handle60300( )
local vo = SCMD60300.New(true)
-- print("==WQ==:SCMD60300 [start:183] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
self.model:SetCSMainDirectorData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_BASE_VIEW)
end
--############ 任务单 ############
function CSMainController:Handle60301( )
local vo = SCMD60301.New(true)
-- print("==WQ==:SCMD60301 [start:193] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
self.model:SetCSMainTaskData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_TASK_VIEW)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.Active)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.Task)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.MilitaryRanks)
end
--#############任务更新##########
function CSMainController:Handle60302( )
local vo = SCMD60302.New(true)
self.model:UpdateCSMainTaskData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_TASK_ITEM,vo.id)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.Task)
end
--#############指定值更新##########
function CSMainController:Handle60303( )
local vo = SCMD60303.New(true)
-- print("==WQ==:SCMD60303 [start:209] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
self.model:UpdateCSMainKeyValue(vo)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.MilitaryRanks)
end
--############ 领取 ############
function CSMainController:Handle60304( )
local vo = SCMD60304.New(true)
if vo.res == 1 then
self.model:SetCSMainGetRewardData(vo)
if vo.opty == 0 then
elseif vo.opty == 1 then
self.model:Fire(CSMainConst.REFRESH_CS_MAIN_TASK_ITEM_SORT)
end
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.Active)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.Task)
else
ErrorCodeShow(vo.res)
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
end
end
--########军衔进阶#############
function CSMainController:Handle60305( )
local vo = SCMD60305.New(true)
if vo.res == 1 then
Message.show("军衔进阶成功")
self.model:UpdateCSMainMilitaryRanksData(vo)
self.model:Fire(CSMainConst.CS_MAIN_MILITARY_ADVANCE_SUCCESE)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.MilitaryRanks)
else
ErrorCodeShow(vo.res)
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
end
end
--############# 主动查询个人形象(00协议返回空的时候用) #############
function CSMainController:Handle60306( )
local vo = SCMD60306.New(true)
-- print("==WQ==:SCMD60305 [start:233] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
if vo and vo.role_id and vo.role_id ~= 0 then
self.model:UpdateCSMainDirectorData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_BASE_VIEW_ROLE_REQUEST,vo.role_id)
end
end
--#########榜单获取##########
function CSMainController:Handle60307( )
local vo = SCMD60307.New(true)
self.model:SetMyCountryExploitRankNum(vo)--记录我的国家军功排行数,如果数量为0,表示不能膜拜,不给红点
self.model:Fire(CSMainConst.UPDATE_EXPLOIT_RANK_CON,vo)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.WorShip)
end
--##########榜单页面相关##############
function CSMainController:Handle60308( )
local vo = SCMD60308.New(true)
-- print("==WQ==:CSMainController [start:260] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
-- vo.last_rank = 10
-- vo.day_award = 0
self.model:UpdateCSMainExploitData(vo)
self.model:Fire(CSMainConst.UPDATE_EXPLOIT_RANK_DATA_EXTRA)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.DailyReward)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.WorShip)
end
--##########膜拜##############
function CSMainController:Handle60309( )
local vo = SCMD60309.New(true)
if vo.res == 1 then
self.model:UpdateCSMainClickWorshipRole(vo)
self.model:Fire(CSMainConst.UPDATE_WORSHIP_STATE)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.WorShip)
else
ErrorCodeShow(vo.res)
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
end
end
--##########领取##############
function CSMainController:Handle60310( )
local vo = SCMD60310.New(true)
if vo.res == 1 then
self.model:UpdateRankRewardState()
self.model:Fire(CSMainConst.UPDATE_EXPLOIT_DAILY_REWARD_VIEW)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.DailyReward)
else
ErrorCodeShow(vo.res)
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
end
end
--#########上期军功排名##########
function CSMainController:Handle60311( )
local vo = SCMD60311.New(true)
self.model:SetLastMilitaryScoreRankData(vo)
self.model:Fire(CSMainConst.UPDATE_LAST_MILITARY_SCORE_RANK_VIEW,vo)
end
--#########历史名单############
function CSMainController:Handle60312( )
local vo = SCMD60312.New(true)
self.model:SetAppointData(vo)
self.model:Fire(CSMainConst.UPDATE_APPOINT_DATA_VIEW,vo.opty)
end
--#########军衔排行############
function CSMainController:Handle60313( )
local vo = SCMD60313.New(true)
self.model:Fire(CSMainConst.UPDATE_MILITARY_RANKS_RANK_VIEW,vo)
end
--#########上期团战成绩排行############
function CSMainController:Handle60314( )
local vo = SCMD60314.New(true)
self.model:SetLastGuildWarScoreRankData(vo)
self.model:Fire(CSMainConst.UPDATE_LAST_GUILD_WAR_SCORE_RANK_VIEW,vo)
end
--#########预告领取情况############
function CSMainController:Handle60315( )
local vo = SCMD60315.New(true)
-- print("==WQ==:SCMD60315 [start:421] vo:", vo)
-- PrintTable(vo)
-- print("==WQ==:CSMainController [end]")
self.model:SetCSMainAdvanceNoticeRewardData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_ADVANCE_NOTICE_REWARD_STATE)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.NoticeReward)
end
--#########预告领取############
function CSMainController:Handle60316( )
local vo = SCMD60316.New(true)
if vo.res == 1 then
self.model:UpdateCSMainAdvanceNoticeRewardData(vo)
self.model:Fire(CSMainConst.UPDATE_CS_MAIN_ADVANCE_NOTICE_REWARD_STATE)
self.model:Fire(CSMainConst.UPDATE_RED_DOT,CSMainConst.RedType.NoticeReward)
else
ErrorCodeShow(vo.res)
lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI)
end
end
--#########通知自己国家军功榜前五名变动############
function CSMainController:Handle60317( )
local vo = SCMD60317.New(true)
local my_country = KfWorldModel:GetInstance():GetMyCountryId()
if my_country then
self.model:Fire(CSMainConst.REQUEST_CCMD_EVENT,60307, KfWorldModel:GetInstance():GetMyCountryId())--请求一次自己国家的军功榜,用于判断膜拜红点
end
end