gitxsm vor 3 Monaten
Ursprung
Commit
8c4abf7865

+ 1 - 0
script/common/LogDefine.lua

@@ -316,6 +316,7 @@ DEFINE = {
 	AnotherWorldBattleNS 	= 778,			-- 异界之战
 	ServerCommerceActBattleGround 	= 779,  -- 巅峰战场
 	HeroTianYuan 			= 780,  		-- 英雄天元系统
+	BreakThroughTheme 		= 781,  		-- 闯关主题
 
 	errHandle				= 99999,		-- 异常处理
 }

+ 9 - 0
script/common/ProtoID.lua

@@ -1757,3 +1757,12 @@ _ENV[1797]="CG_HEROTY_QUERY"
 _ENV[1798]="GC_HEROTY_QUERY"
 _ENV[1799]="CG_HEROTY_POINT_UPGRADE"
 _ENV[1800]="CG_HEROTY_STAGE_UPGRADE"
+
+_ENV[1801]="CG_BREATHROUGHTHEME_LINEUP_QUERY"
+_ENV[1802]="GC_BREATHROUGHTHEME_LINEUP_QUERY"
+_ENV[1803]="CG_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY"
+_ENV[1804]="GC_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY"
+_ENV[1805]="CG_BREATHROUGHTHEME_ADVANCEDREWARD_QUERY"
+_ENV[1806]="GC_BREATHROUGHTHEME_ADVANCEDREWARD_QUERY"
+_ENV[1807]="CG_BREATHROUGHTHEME_GET_REWARD"
+_ENV[1808]="GC_BREATHROUGHTHEME_REDDOT"

+ 2 - 0
script/core/ObjHuman.lua

@@ -104,6 +104,7 @@ local WinnerRelicLogic = require("winnerRelic.WinnerRelicLogic")
 local commonOperate = require("core.commonOperate")
 local AnotherWorldBattleNS = require("anotherWorldBattle.AnotherWorldBattleNS")
 local RoleStorageBox = require("roleSystem.RoleStorageBox")
+local BreakThroughTheme = require("battle.BreakThroughTheme")
 
 
 local Json = require("common.Json")
@@ -909,6 +910,7 @@ function updateDaily(human, isGm)
 	RacialTrialLogic.updateDaily(human)
 	OnlineAwardLogic.NewUpdateDaily(human)
 	ClutterDataLogic.updateDaily(human)
+	BreakThroughTheme.updateDaily(human)
 	QQBigShot.updateDaily(human)
 	-- 红点 发送  理论放最后
 	RoleSystemLogic.onLogin(human)

+ 15 - 0
script/module/battle/BattleLogic.lua

@@ -74,6 +74,7 @@ local battleRougeCfg = require("excel.battleRouge").Sheet1
 local WeekTaskLogic = require("dailyTask.WeekTaskLogic")
 local TreasureChestLogic = require("treasurechest.TreasureChestLogic")
 
+local BreakThroughTheme
 
 BATTLE_HANG_EXP_OUT_PERIOD = 60 -- 经验产出时间间隔
 BATTLE_HANG_ITEM_OUT_PERIOD = 300 -- 战利品道具产出时间间隔
@@ -3053,6 +3054,9 @@ function onFightEnd(human, result, fightTypeID, param1, combatInfo)
         guajiID - 2
         )
 
+        BreakThroughTheme = BreakThroughTheme or require("battle.BreakThroughTheme")
+        BreakThroughTheme.EntranceRedDotUpdate(human)
+
         ChengjiuLogic.onCallback(human, ChengjiuDefine.CJ_TASK_TYPE_1, nextGuajiID)
         MengxinLogic.onCallBack(human, MengxinLogic.MX_TASK_TYPE_1, nextGuajiID)
         
@@ -3189,6 +3193,10 @@ function setBattleID(human, guajiID)
     -- 刷新排行榜
     human.db.maxBattleTime = os.time()
     BRoleLogic.updateData(BillboardDefine.TYPE_BATTLE, human.db)
+
+
+    BreakThroughTheme = BreakThroughTheme or require("battle.BreakThroughTheme")
+    BreakThroughTheme.EntranceRedDotUpdate(human)
 end
 
 -- GM
@@ -3241,6 +3249,8 @@ function setBattleByGm(human, val, maxBattleID)
     --human.db.battleID = val
     BattleLogic_QueryDifficulty(human)
 
+    BreakThroughTheme = BreakThroughTheme or require("battle.BreakThroughTheme")
+    BreakThroughTheme.EntranceRedDotUpdate(human)
 
     RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_1105)
 end
@@ -3813,6 +3823,11 @@ function getBattleID(human)
     return num
 end
 
+-- 根据类型获取已经通关的最大关卡Id
+function GetBattleIdByType(human, battleType)
+    return BattleLogic_GetBattleGuaJiIDByType(human, battleType)
+end
+
 --------------------------------------------- combat ----------------------------------------------
 function getCombatMonsterOutID(human, side)
     if side ~= CombatDefine.DEFEND_SIDE then

+ 425 - 0
script/module/battle/BreakThroughTheme.lua

@@ -0,0 +1,425 @@
+-- 闯关主题
+--db
+--[=[
+    human.db.breakThroughData = {
+        breakThroughGetList = { -- 闯关奖励领取记录列表
+            [cfgIdx1] = true,
+            [cfgIdx2] = true,
+        },
+
+        advanceRewardGetList = { --进阶奖励领取记录表
+            [day1] = true,
+            [day2] = true,
+        },
+
+        isBuy = nil, -- 购买指定项后,值为true
+        loginDays = nil, 购买指定项后才统计的登录天数
+    }
+]=]--
+
+
+local Msg = require("core.Msg")
+local Grid = require("bag.Grid")
+local BagLogic = require("bag.BagLogic")
+local Lang = require("common.Lang")
+local Broadcast = require("broadcast.Broadcast")
+local HeroGrid = require("hero.HeroGrid")
+local BreakThroughThemeConfig = require("excel.breakThroughTheme")
+local BattleLogic = require("battle.BattleLogic")
+local EliteDefine = require("battle.EliteDefine")
+local BuyLogic = require("topup.BuyLogic")
+local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
+local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
+
+
+local LOGTYPE = "BreakThroughTheme"
+
+
+local function getData(human)
+    return human.db.breakThroughData
+end
+
+local function updateBreakThroughGetList(human, getIdx)
+    human.db.breakThroughData = human.db.breakThroughData or {}
+    human.db.breakThroughData.breakThroughGetList = human.db.breakThroughData.breakThroughGetList or {}
+    human.db.breakThroughData.breakThroughGetList[getIdx] = true
+end
+
+local function updateAdvanceRewardGetList(human, getIdx)
+    human.db.breakThroughData = human.db.breakThroughData or {}
+    human.db.breakThroughData.advanceRewardGetList = human.db.breakThroughData.advanceRewardGetList or {}
+    human.db.breakThroughData.advanceRewardGetList[getIdx] = true
+end
+
+local function updateBuyState(human, state)
+    human.db.breakThroughData = human.db.breakThroughData or {}
+    human.db.breakThroughData.isBuy = state
+end
+
+local function addLoginDays(human)
+    human.db.breakThroughData = human.db.breakThroughData or {}
+    human.db.breakThroughData.loginDays = (human.db.breakThroughData.loginDays or 0) + 1
+end
+
+
+
+local function isBuy(human)
+    local breakThroughData = getData(human)
+    if breakThroughData and breakThroughData.isBuy then
+        return true
+    end
+
+    return false
+end
+
+-- 获取所有闯关奖励
+local function getAllBreakThroughReward(human)
+    if not isBuy(human) then
+        return
+    end
+
+    local breakThroughData = getData(human)
+    local breakThroughGetList = breakThroughData and breakThroughData.breakThroughGetList
+    local passStageId = BattleLogic.GetBattleIdByType(human, EliteDefine.COPY_ELITE_NORMAL)
+
+    local itemList, getIdArr
+
+    for k,v in ipairs(BreakThroughThemeConfig.breakThroughReward) do
+        if v.rewardCondStage <= passStageId and (not breakThroughGetList or not breakThroughGetList[k]) then
+            getIdArr = getIdArr or {}
+            getIdArr[#getIdArr+1] = k
+
+            itemList = itemList or {}
+            for _, itemInfo in ipairs(v.reward) do
+                local itemId, itemCnt = itemInfo[1], itemInfo[2]
+                itemList[itemId] = (itemList[itemId] or 0) + itemCnt
+            end
+        end
+    end
+
+    return itemList, getIdArr
+end
+
+-- 取所有进阶奖励
+local function getAllAdvancedReward(human)
+    if not isBuy(human) then
+        return
+    end
+
+    local breakThroughData = getData(human)
+    local advanceRewardGetList = breakThroughData.advanceRewardGetList
+    local loginDays = breakThroughData.loginDays or 0
+
+    local itemList, getIdArr
+
+    for k,v in ipairs(BreakThroughThemeConfig.advancedReward) do
+        if v.condDay <= loginDays and (not advanceRewardGetList or not advanceRewardGetList[k]) then
+            getIdArr = getIdArr or {}
+            getIdArr[#getIdArr+1] = k
+
+            itemList = itemList or {}
+            local itemId, itemCnt = v.reward[1], v.reward[2]
+            itemList[itemId] = (itemList[itemId] or 0) + itemCnt
+        end
+    end
+
+    return itemList, getIdArr
+end
+
+-- 填充推荐阵容协议数据
+local function populateLineupMsg(net, heroArr)
+    if not net or not heroArr then
+        return
+    end
+
+    local grid = { id =  0}
+    net[0] = #heroArr
+
+    for i, heroId in ipairs(heroArr) do
+        grid.id = heroId
+        HeroGrid.makeHeroSimple(net[i], grid)
+    end
+end
+
+-- 入口红点刷新
+function EntranceRedDotUpdate(human)
+    RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_112)
+end
+
+-- 标签红点刷新
+local function lableRedDotUpdate(human)
+    local msgRet = Msg.gc.GC_BREATHROUGHTHEME_REDDOT
+    msgRet.page1RedDotState = 0
+    msgRet.page2RedDotState = 0
+
+    if isBuy(human) then
+        local itemList = getAllBreakThroughReward(human)
+        if itemList then
+            msgRet.page1RedDotState = 1
+        end
+
+        itemList = getAllAdvancedReward(human)
+        if itemList then
+            msgRet.page2RedDotState = 1
+        end
+    end
+
+    Msg.send(msgRet, human.fd)
+end
+
+-- 所有红点刷新
+local function redDotUpdate(human)
+    EntranceRedDotUpdate(human)
+    lableRedDotUpdate(human)
+end
+
+-- 入口关闭检查
+local function entranceCloseCheck(human)
+    RoleSystemLogic.isClose(human, RoleSystemDefine.ROLE_SYS_ID_112)
+end
+
+-- 领取所有闯关奖励
+local function getBreakThroughReward(human)
+    local itemList, getIdArr = getAllBreakThroughReward(human)
+    if not itemList then
+        return Broadcast.sendErr(human, Lang.SHARE_GROUP_GET_ERR_CNT)
+    end
+
+    for _, getIdx in ipairs(getIdArr or {}) do
+        updateBreakThroughGetList(human, getIdx)
+    end
+    BagLogic.addItemList(human, itemList, LOGTYPE)
+
+    redDotUpdate(human)
+    entranceCloseCheck(human)
+end
+
+-- 领取所有进阶奖励
+local function getAdvancedReward(human)
+    local itemList, getIdArr = getAllAdvancedReward(human)
+    if not itemList then
+        return Broadcast.sendErr(human, Lang.SHARE_GROUP_GET_ERR_CNT)
+    end
+
+    for _, getIdx in ipairs(getIdArr or {}) do
+        updateAdvanceRewardGetList(human, getIdx)
+    end
+    BagLogic.addItemList(human, itemList, LOGTYPE)
+
+    redDotUpdate(human)
+    entranceCloseCheck(human)
+end
+
+
+
+-- 外部调用, 是否显示入口, 领取完所有免费/付费奖励, 入口才关闭
+function ModuleisOpen(human)
+    local breakThroughData = getData(human)
+    if not breakThroughData or not breakThroughData.isBuy then
+        return true
+    end
+
+    if not breakThroughData.breakThroughGetList or not breakThroughData.advanceRewardGetList then
+        return true
+    end
+
+    local breakThroughGetList = breakThroughData.breakThroughGetList
+    for k in ipairs(BreakThroughThemeConfig.breakThroughReward) do
+        if not breakThroughGetList[k] then
+            return true
+        end
+    end
+
+    local advanceRewardGetList = breakThroughData.breakThroughGetList
+    for k in ipairs(BreakThroughThemeConfig.advancedReward) do
+        if not advanceRewardGetList[k] then
+            return true
+        end
+    end
+
+    return false
+end
+
+-- 外部调用, 入口处是否有红点
+function isDot(human)
+    if not isBuy(human) then
+        return false
+    end
+
+    local itemList = getAllBreakThroughReward(human)
+    if itemList then
+        return true
+    end
+
+    itemList = getAllAdvancedReward(human)
+    if itemList then
+        return true
+    end
+
+    return false
+end
+
+-- 外部调用,跨天
+function updateDaily(human)
+    if not isBuy(human) then
+        return
+    end
+
+    addLoginDays(human)
+
+    -- 刷新红点
+    if ModuleisOpen(human) then
+        redDotUpdate(human)
+    end
+end
+
+-- 外部调用,充值
+function charge(human, nAllPrice, buyID)
+    local var = BreakThroughThemeConfig.var[1]
+    if var.buyId ~= buyID then
+        return
+    end
+
+    if isBuy(human) then
+        return
+    end
+
+    updateBuyState(human, true)
+    addLoginDays(human)
+
+    -- 红点
+    redDotUpdate(human)
+end
+
+-- 通关新的关卡了
+function StageUpdate(human)
+    if not isBuy(human) then
+        return
+    end
+
+    local itemList = getAllBreakThroughReward(human)
+    if not itemList then
+        return
+    end
+
+    -- 红点刷新
+    redDotUpdate(human)
+end
+
+
+
+
+-- 闯关阵容查询
+function BreakThrough_Lineup_Query(human)
+    local msgRet = Msg.gc.GC_BREATHROUGHTHEME_LINEUP_QUERY
+
+    local lineupCfg1 = BreakThroughThemeConfig.recommendedLineup[1]
+    populateLineupMsg(msgRet.lineup1, lineupCfg1.heroIdArr)
+
+    local lineupCfg2 = BreakThroughThemeConfig.recommendedLineup[2]
+    populateLineupMsg(msgRet.lineup2, lineupCfg2.heroIdArr)
+
+    local lineupCfg3 = BreakThroughThemeConfig.recommendedLineup[3]
+    populateLineupMsg(msgRet.lineup3, lineupCfg3.heroIdArr)
+
+    Msg.send(msgRet, human.fd)
+
+    lableRedDotUpdate(human)
+end
+
+-- 闯关奖励查询
+function BreakThrough_BreakThroughReward_Query(human)
+    local msgRet = Msg.gc.GC_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY
+    msgRet.list[0] = 0
+    msgRet.isEnd = 0
+    msgRet.buyState = isBuy(human) and 1 or 0
+
+    local breakThroughData = getData(human)
+    local breakThroughGetList = breakThroughData and breakThroughData.breakThroughGetList
+    local passStageId = BattleLogic.GetBattleIdByType(human, EliteDefine.COPY_ELITE_NORMAL)
+
+    local len = 0
+    local msgOnceLen = 5
+    local rewardCnt = #BreakThroughThemeConfig.breakThroughReward
+
+    for k,v in ipairs(BreakThroughThemeConfig.breakThroughReward) do
+        len = len + 1
+        msgRet.list[0] = len
+        msgRet.list[len].condStage = v.rewardCondStage
+        msgRet.list[len].reallyIdx = k
+        msgRet.list[len].rewardStage = 0
+        msgRet.list[len].rewardArr[0] = 0
+
+        if breakThroughGetList and breakThroughGetList[k] then
+            msgRet.list[len].rewardStage = 2
+        else
+            if breakThroughData and breakThroughData.isBuy and passStageId >= v.rewardCondStage then
+                msgRet.list[len].rewardStage = 1
+            end
+        end
+
+        msgRet.list[len].rewardArr[0] = #v.reward
+        for i, itemInfo in ipairs(v.reward) do
+            Grid.makeItem(msgRet.list[len].rewardArr[i], itemInfo[1], itemInfo[2])
+        end
+
+        if len >= msgOnceLen then
+            rewardCnt = rewardCnt - len
+            if rewardCnt <= 0 then
+                msgRet.isEnd = 1
+                return Msg.send(msgRet, human.fd)
+            end
+
+            Msg.send(msgRet, human.fd)
+            len = 0
+        end
+    end
+
+    if len >= 0 then
+        msgRet.isEnd = 1
+        Msg.send(msgRet, human.fd)
+    end
+end
+
+-- 进阶奖励查询
+function BreakThrough_AdvancedReward_Query(human)
+    local var = BreakThroughThemeConfig.var[1]
+    local advancedRewardCfg = BreakThroughThemeConfig.advancedReward
+
+    local msgRet = Msg.gc.GC_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY
+    msgRet.list[0] = 0
+    BuyLogic.fontBuyItem(human, msgRet.buyItem, var.buyId)
+    msgRet.buyState = 0
+
+    local breakThroughData = getData(human)
+    local advanceRewardGetList = breakThroughData and breakThroughData.advanceRewardGetList
+    if breakThroughData and breakThroughData.isBuy then
+        msgRet.buyState = 1
+    end
+
+    msgRet.list[0] = #advancedRewardCfg
+    for k, v in ipairs(advancedRewardCfg) do
+        msgRet.list[k].rewardStage = 0
+        msgRet.list[k].condDays = v.condDay
+        Grid.makeItem(msgRet.list[k].reward, v.reward[1], v.reward[2])
+
+        if advanceRewardGetList and advanceRewardGetList.getList[k] then
+            msgRet.list[k].rewardStage = 2
+        else
+            if msgRet.buyState == 1 and (breakThroughData and breakThroughData.loginDays or 0) >= v.condDay then
+                msgRet.list[k].rewardStage = 1
+            end
+        end
+    end
+
+    Msg.send(msgRet, human.fd)
+end
+
+-- 领奖
+function BreakThrough_GetReward(human, rewardType)
+    if rewardType == 1 then
+        getBreakThroughReward(human)
+    elseif rewardType == 2 then
+        getAdvancedReward(human)
+    end
+end

+ 26 - 1
script/module/battle/Handler.lua

@@ -1,4 +1,5 @@
 local BattleLogic = require("battle.BattleLogic")
+local BreakThroughTheme = require("battle.BreakThroughTheme")
 
 function CG_BATTLE_QUERY(human)
     --print("[CG_BATTLE_QUERY] 战役主界面查询开始")
@@ -117,4 +118,28 @@ end
 ------------------------------------------多队伍战斗------------------------------------------
 function CG_BATTLE_TEAM_COUNT(human,msg)
     BattleLogic.QueryLevelTeamCnt(human)
-end
+end
+
+
+
+
+------------------------------闯关主题-----------------------------------------------------
+
+function CG_BREATHROUGHTHEME_LINEUP_QUERY(human,msg)
+    BreakThroughTheme.BreakThrough_Lineup_Query(human)
+end
+
+
+function CG_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY(human,msg)
+    BreakThroughTheme.BreakThrough_BreakThroughReward_Query(human)
+end
+
+function CG_BREATHROUGHTHEME_ADVANCEDREWARD_QUERY(human,msg)
+    BreakThroughTheme.BreakThrough_AdvancedReward_Query(human)
+end
+
+
+function CG_BREATHROUGHTHEME_GET_REWARD(human,msg)
+    BreakThroughTheme.BreakThrough_GetReward(human, msg.rewardType)
+end
+

+ 51 - 0
script/module/battle/Proto.lua

@@ -3,6 +3,7 @@ local HeroSimple = require("hero.Proto").HeroSimple
 local RoleBase = require("role.Proto").RoleBase 
 local CombatSkillConf = require("combat.Proto").CombatSkillConf
 local Attr = require("role.Proto").Attr
+local BuyItem = require("topup.Proto").BuyItem
 
 -- 进入战役界面的查询
 CG_BATTLE_QUERY = {}
@@ -415,3 +416,53 @@ CG_BATTLE_TEAM_COUNT = {
 GC_BATTLE_TEAM_COUNT = {
 	{"teamCnt",		   	1,	    "byte"},	       		-- 队伍数量
 }
+
+
+--------------------------------------------------------闯关主题--------------------------------------------
+BREAKTHROUGHREWARD_INFO = {
+	{"rewardArr",		   	4,	    ItemData},	      -- 奖励列表
+	{"rewardStage",		   	1,	    "byte"},	      -- 奖励状态, 0-不可领取, 1-可领, 2-已领
+	{"reallyIdx",		   	1,	    "short"},	      -- 奖励索引
+	{"condStage",		   	1,	    "int"},	      	  -- 领取奖励所需关卡
+}
+
+ADVANCEDREWARD_INFO = {
+	{"reward",		   		1,	    ItemData},	  -- 奖励列表
+	{"rewardStage",		   	1,	    "byte"},	  -- 奖励状态, 0-不可领取, 1-可领, 2-已领
+	{"condDays",		   	1,	    "int"},	      -- 领取奖励所需登录天数
+}
+
+-- 闯关阵容查询
+CG_BREATHROUGHTHEME_LINEUP_QUERY = {}
+GC_BREATHROUGHTHEME_LINEUP_QUERY = {
+	{"lineup1",		   	5,	    HeroSimple},	       		-- 初级阵容
+	{"lineup2",		   	5,	    HeroSimple},	       		-- 中级阵容
+	{"lineup3",		   	5,	    HeroSimple},	       		-- 豪华阵容
+}
+
+-- 闯关奖励查询
+CG_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY = {}
+GC_BREATHROUGHTHEME_BREAKTHROUGHREWARD_QUERY = {
+	{"list",		   	5,	    BREAKTHROUGHREWARD_INFO},
+	{"isEnd",		   	1,	    "short"},	      -- 数据发完标识, 0-没有, 1-已发完
+	{"buyState",     	1,      "byte"},           -- 购买状态, 0-未购买, 1-已购买
+}
+
+-- 进阶奖励查询
+CG_BREATHROUGHTHEME_ADVANCEDREWARD_QUERY = {}
+GC_BREATHROUGHTHEME_ADVANCEDREWARD_QUERY = {
+	{"list",		   		7,	    ADVANCEDREWARD_INFO},
+	{"buyItem",     		1,      BuyItem},           -- 购买信息
+	{"buyState",     		1,      "byte"},           -- 购买状态, 0-未购买, 1-已购买
+}
+
+-- 领奖
+CG_BREATHROUGHTHEME_GET_REWARD = {
+	{"rewardType",     		1,      "byte"},           -- 奖励类型, 1-闯关奖励, 2-进阶奖励	
+}
+
+-- 红点
+GC_BREATHROUGHTHEME_REDDOT = {
+	{"page1RedDotState",     		1,      "byte"},           -- 闯关奖励标签红点状态, 0-不显示红点, 1-显示红点
+	{"page2RedDotState",     		1,      "byte"},           -- 进阶奖励标签红点状态, 0-不显示红点, 1-显示红点
+}

+ 1 - 0
script/module/roleSystem/RoleSystemDefine.lua

@@ -10,6 +10,7 @@ ROLE_SYS_ID_108 =  108  -- 充值返利
 ROLE_SYS_ID_109 =  109  -- QQ大咖  
 ROLE_SYS_ID_110 =  110  -- 系统开启奖励
 ROLE_SYS_ID_111 =  111  -- 无限高抽
+ROLE_SYS_ID_112 =  112  -- 闯关主题
 
 ROLE_SYS_ID_201 =  201  -- 主界面中-聊天
 ROLE_SYS_ID_202 =  202  -- 主界面中-战报

+ 3 - 1
script/module/topup/TopupLogic.lua

@@ -17,7 +17,8 @@ local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
 local MailExcel = require("excel.mail")
 local MailManager = require("mail.MailManager")
 local CommonDB = require("common.CommonDB")
-local Msg = require("core.Msg")
+local BreakThroughTheme = require("battle.BreakThroughTheme")
+
 -- 专属客服充值额度
 EXCLUSIVE_SERVER_9937 = 1000
 
@@ -69,6 +70,7 @@ function clacTopupAcount(human, price, buyID, buyNum)
 	LeichongHaoli.onAddMoney(human, nAllPrice)
 	LeijiChongzhi.onAddMoney(human, nAllPrice)
 	LoginSignLogic.chargeAfter(human)
+	BreakThroughTheme.charge(human, nAllPrice, buyID)
 
 	sendFireworksMail(human,nAllPrice)
 end