--礼包功能 require("game.Gift.GiftModel") require("game.Gift.GiftNormalView") require("game.Gift.GiftNormalItem") require("game.Gift.GiftDiamondView") require("game.Gift.GiftOptionalView") require("game.Gift.GiftOptionalItem") require("game.Gift.GiftShowAllView") require("game.Gift.VipActiveGiftView") require("game.Gift.GiftActNormalView")--活动通用奖励界面 require("game.Gift.GiftActNormalItem")--活动通用奖励界面Item GiftController = GiftController or BaseClass(BaseController) function GiftController:__init() GiftController.Instance = self self.model = GiftModel:getInstance() self:addAllEvents() self:registerAllProtocals() end function GiftController:addAllEvents() --打开展示物品界面 local function openShowGoodsView(goods_vo) self.model.is_show_reward_view = true if self.show_goods_view == nil then self.show_goods_view = GiftNormalView.New() end if not self.show_goods_view:HasOpen() then self.show_goods_view:Open(goods_vo) end end self.model:Bind(GiftModel.OPEN_SHOW_GOODS_VIEW, openShowGoodsView) --打开活动展示物品界面 local function openGiftActNormalView(goods_list,only_read_goods_type_id) self.model.is_show_reward_view = true if self.GiftActNormalView == nil then self.GiftActNormalView = GiftActNormalView.New() end if not self.GiftActNormalView:HasOpen() then self.GiftActNormalView:Open(goods_list,only_read_goods_type_id) end end self.model:Bind(GiftModel.OPEN_SHOW_ACT_GOODS_VIEW, openGiftActNormalView) --打开普通礼包界面 local function openNormalView(goods_vo) local kind, list = self.model:getGiftConfig(goods_vo.type_id) if kind == 0 then Message.show("所选物品不是礼包") return end if list.max_count > 0 then local now_times = self.model.gift_use_times[list.gift_id] or 0 if now_times >= list.max_count then Message.show("次数已达上限") return end end GlobalEventSystem:Fire(EventName.CLOSE_COM_AWARD_RESULT_VIEW) self.model.is_show_reward_view = true if self.gift_normal_view == nil then self.gift_normal_view = GiftNormalView.New() end if not self.gift_normal_view:HasOpen() then self.gift_normal_view:Open(goods_vo) end -- local data = {} -- data.award = {} -- data.type_id = goods_vo.type_id -- for i,v in ipairs(goods_vo.show_goods) do -- data.award[#data.award+1] = {v.type, v.goodid, v.gnum, is_rare = 0, goodid = v.goodid } -- end -- GlobalEventSystem:Fire(EventName.OPEN_COM_AWARD_RESULT_VIEW, data) end self.model:Bind(GiftModel.OPEN_NORMAL_VIEW, openNormalView) --关闭普通礼包界面 local function closeNormalView() if self.gift_normal_view and self.gift_normal_view:HasOpen() then self.gift_normal_view:Close() end self.gift_normal_view = nil end self.model:Bind(GiftModel.CLOSE_NORMAL_VIEW, closeNormalView) --打开自选礼包界面 local function openOptionalView(goods_vo) if self.gift_optional_view == nil then self.gift_optional_view = GiftOptionalView.New() end if not self.gift_optional_view:HasOpen() then self.gift_optional_view:Open(goods_vo) end end self.model:Bind(GiftModel.OPEN_OPTIONAL_VIEW, openOptionalView) --关闭自选礼包界面 local function closeOptionalView() if self.gift_optional_view and self.gift_optional_view:HasOpen() then self.gift_optional_view:Close() end self.gift_optional_view = nil end self.model:Bind(GiftModel.CLOSE_OPTIONAL_VIEW, closeOptionalView) --打开彩钻礼包界面 local function openDiamondView(goods_vo) local kind, list = self.model:getGiftConfig(goods_vo.type_id) if kind == 0 then Message.show("所选物品不是礼包") return end if list.max_count > 0 then local now_times = self.model.gift_use_times[list.gift_id] if now_times >= list.now_times then Message.show("已超过使用次数") return end end if self.gift_diamond_view == nil then self.gift_diamond_view = GiftDiamondView.New() end if not self.gift_diamond_view:HasOpen() then self.gift_diamond_view:Open(goods_vo) end end self.model:Bind(GiftModel.OPEN_DIAMOND_VIEW, openDiamondView) --关闭彩钻礼包界面 local function closeDiamondView() if self.gift_diamond_view and self.gift_diamond_view:HasOpen() then self.gift_diamond_view:Close() end self.gift_diamond_view = nil end self.model:Bind(GiftModel.CLOSE_DIAMOND_VIEW, closeDiamondView) --打开不够天数查看奖励界面 local function openShowAllView(type_id, need_day) if self.gift_show_all_view == nil then self.gift_show_all_view = GiftShowAllView.New() end if not self.gift_show_all_view:HasOpen() then self.gift_show_all_view:Open(type_id, need_day) end end self.model:Bind(GiftModel.OPEN_SHOW_ALL_VIEW, openShowAllView) --关闭不够天数查看奖励界面 local function closeShowAllView() if self.gift_show_all_view and self.gift_show_all_view:HasOpen() then self.gift_show_all_view:Close() end self.gift_show_all_view = nil end self.model:Bind(GiftModel.CLOSE_SHOW_ALL_VIEW, closeShowAllView) local function onSendCmdFunc( ... ) local args_list = {...} if args_list[1] == 15085 then --礼包每天使用次数 self:SendFmtToGame(args_list[1], "i", args_list[2]) elseif args_list[1] == 15086 then --领取自选礼包物品内容 self:WriteBegin(args_list[1]) self:WriteFMT("l", args_list[2]) self:WriteFMT("i", args_list[3]) self:WriteFMT("i", args_list[4]) self:WriteFMT("h", #args_list[5]) for i, v in ipairs(args_list[5]) do self:WriteFMT("c", v.seqno) self:WriteFMT("h", v.seqnum) end self:SendToGame() end end self.model:Bind(GiftModel.PROTO_CCMD_EVENT, onSendCmdFunc) local function open_vip_gift_view(type_id,goods_id) if not self.VipActiveGiftView then self.VipActiveGiftView = VipActiveGiftView.New() end self.VipActiveGiftView:Open(type_id,goods_id) end GlobalEventSystem:Bind(EventName.OPEN_VIP_GIFT_CODE_VIEW,open_vip_gift_view) end function GiftController:registerAllProtocals() self:RegisterProtocal(15085, "Handler15085") self:RegisterProtocal(15086, "Handler15086") end --礼包每天使用次数 function GiftController:Handler15085() local vo = SCMD15085.New(true) --print("=============>>> YiRan:GiftController [start:174] vo Handler15085------------------------------------------") --PrintTable(vo) --print("=============>>> YiRan:GiftController [end] ------------------------------------------") self.model:saveGiftUseTimes(vo) end --领取自选礼包物品内容 function GiftController:Handler15086() local vo = SCMD15086.New(true) ---print("=============>>> YiRan:GiftController [start:180] vo15086 ------------------------------------------") --PrintTable(vo) --print("=============>>> YiRan:GiftController [end] ------------------------------------------") if vo.code == 1 then Message.show("领取成功") GiftModel:getInstance():Fire(GiftModel.CLOSE_OPTIONAL_VIEW) else ErrorCodeShow(vo.code) end end