فهرست منبع

提交金币一键点金和合服活动

SCFC 9 ماه پیش
والد
کامیت
1f3952473a

+ 4 - 1
script/common/CommonDefine.lua

@@ -88,4 +88,7 @@ COMMON_SEND_PRIZE_TYPE_ONLYEQUIP    =   3       -- 仅装备
 
 ----------------------------- 请求玩家全部数据来源 ---------------------
 COMMON_PLAY_INFO_CHAT = 1   -- 聊天
-COMMON_PLAY_INFO_JJC = 2    -- 战区
+COMMON_PLAY_INFO_JJC = 2    -- 战区
+
+
+MERGERSERVER_ACTIVITY_DAY = 14 -- 合服活动持续时间

+ 3 - 0
script/common/LogDefine.lua

@@ -253,6 +253,9 @@ DEFINE = {
 	darkforarea 			= 257,			 -- 幽暗禁地
 	rolesystemprize 		= 258,			 -- 系统开放奖励
 	onekillgift 			= 259,			 -- 一元秒杀礼包
+	MergeLogin				= 260,			 -- 合服登录
+	MergeCharge 			= 261,		     -- 合服充值
+	MergeHuoYue             = 262,			 -- 合服活跃
 	
 	abs_totalReach          = 500,           -- 周期性活动累计
     abs_singleReach         = 501,           -- 周期性活动单次

+ 13 - 11
script/common/ProtoID.lua

@@ -1505,18 +1505,20 @@ _ENV[1554]="CG_EQUIP_RETUN_RANDOM_ATTR"
 _ENV[1555]="CG_WAR_REPROT_ADMIRE_BY_ONETOUCH"
 _ENV[1556]="CG_JJC_WORSHIP_ONETOUCH"
 
--- _ENV[1557]="CG_MERGESERVER_LOGIN_QUERY"
--- _ENV[1558]="GC_MERGESERVER_LOGIN_QUERY"
--- _ENV[1559]="CG_MERGESERVER_GET_PRIZE"
--- _ENV[1560]="CG_MERGESERVER_CHARGE_QUERY"
--- _ENV[1561]="GC_MERGESERVER_CHARGE_QUERY"
--- _ENV[1562]="CG_MERGESERVER_GET_CHARGE_PRIZE"
--- _ENV[1563]="CG_MERGESERVER_QUERY_HUOYUE"
--- _ENV[1564]="GC_MERGESERVER_QUERY_HUOYUE"
--- _ENV[1565]="CG_MERGESERVER_HUOYUE_GET_PRIZE"
--- _ENV[1568]="CG_JINBI_EXCHANGE_ONECLICK"
+_ENV[1557]="CG_MERGESERVER_LOGIN_QUERY"
+_ENV[1558]="GC_MERGESERVER_LOGIN_QUERY"
+_ENV[1559]="CG_MERGESERVER_GET_PRIZE"
+_ENV[1560]="CG_MERGESERVER_CHARGE_QUERY"
+_ENV[1561]="GC_MERGESERVER_CHARGE_QUERY"
+_ENV[1562]="CG_MERGESERVER_GET_CHARGE_PRIZE"
+_ENV[1563]="CG_MERGESERVER_QUERY_HUOYUE"
+_ENV[1564]="GC_MERGESERVER_QUERY_HUOYUE"
+_ENV[1565]="CG_MERGESERVER_HUOYUE_GET_PRIZE"
+_ENV[1568]="CG_JINBI_EXCHANGE_ONECLICK"
 
 
 -- _ENV[1569]="CG_SHOP_RECORD_QUERY"
 -- _ENV[1570]="GC_SHOP_RECORD_QUERY"
--- _ENV[1571]="CG_SHOP_RECORD_ITEMS"
+-- _ENV[1571]="CG_SHOP_RECORD_ITEMS"
+
+_ENV[1572]="GC_MERGESERVER_UPDATE_RED"

+ 9 - 0
script/module/chat/Gm.lua

@@ -32,6 +32,7 @@ local day = require("dailyTask.DailyTaskLogic")
 local week = require("dailyTask.WeekTaskLogic")
 local honor = require("dailyTask.HonorJourney")
 local QQBigShot = require("platform.QQBigShot")
+local MergeServerCharge = require("present.MergeServerCharge")
 
 local HeroTable = require("excel.hero").hero
 d3 = {}
@@ -2126,6 +2127,9 @@ function d3.dayreward(human)
 	local d= day.dailyTaskGetReward(human)
 end 
 
+function d3.dayaddHuoYue(human, nNum)
+	day.Gm_AddHuoYue(human, nNum)
+end
 
 local allHeroIds= {}
 -- 一键获取所有资源--
@@ -2270,4 +2274,9 @@ function d3.jgidx(human, value)
 	value = tonumber(value)
 	local HeroPubLogic = require("hero.HeroPubLogic")
 	HeroPubLogic.GM_SetAttrIdx(human, value)
+end
+
+
+function d3.MergeChargeDay(human, nDay)
+	MergeServerCharge.MergeServerCharge_GMReset(human, nDay)
 end

+ 4 - 0
script/module/dailyTask/DailyTaskLogic.lua

@@ -382,4 +382,8 @@ function onLogin(human)
 	--周任务和荣耀历程
 	WeekTaskLogic.onLogin(human)
 	HonorTaskLogic.onLogin(human)
+end
+
+function Gm_AddHuoYue(human, nAddNum)
+	onDailyTaskHuoYue(human, nAddNum)
 end

+ 4 - 0
script/module/jinbiExchange/Handler.lua

@@ -7,4 +7,8 @@ end
 
 function CG_JINBI_EXCHANGE_DO (human, msg)
 	JinbiExchangeLogic.jinbiExchangDo(human, msg.type)
+end
+
+function CG_JINBI_EXCHANGE_ONECLICK(human, msg)
+	JinbiExchangeLogic.jinbiExchangOneClick(human)
 end

+ 49 - 0
script/module/jinbiExchange/JinbiExchangeLogic.lua

@@ -14,6 +14,7 @@ local YunYingLogic = require("yunying.YunYingLogic")
 local TalismanLogic = require("talisman.TalismanLogic")
 local TriggerDefine = require("trigger.TriggerDefine")
 local TriggerLogic = require("trigger.TriggerLogic")
+local MonthCardLogic = require("present.MonthCard")
 
 MAINTYPE_FREE = 1
 REFRESH_HOURS = {0, 9, 19}
@@ -108,6 +109,7 @@ end
 function jinbiExchangeQuery(human)
     local leftTime = checkRefresh(human)
     local msgRet = Msg.gc.GC_JINBI_EXCHANGE_QUERY
+    msgRet.bOpen = true == MonthCardLogic.IsBuyEverlastingCard(human) and 1 or 0
     -- 获得金币
     msgRet.jinbiCnt[0] = #JinbiExchangeExcel.define
     for i = 1, msgRet.jinbiCnt[0] do
@@ -171,6 +173,53 @@ function jinbiExchangDo(human, mainType)
     TriggerLogic.PublishEvent(TriggerDefine.GOLD_POINTS_NUM, human.db._id, 1)
 end
 
+-- 一键点金
+function jinbiExchangOneClick(human)
+    if  false == MonthCardLogic.IsBuyEverlastingCard(human) then
+        return
+    end
+    
+    checkRefresh(human)
+    local tConfig = JinbiExchangeExcel.define
+    local nAddJinBiCnt, nAddCiShu = 0, 0
+    for mainType, v in ipairs(tConfig) do
+        local nLeftCnt = getLeftCnt(human, mainType)
+        local needZuanshi = v.cost
+        if nLeftCnt >= 1 then
+            for i = 1, nLeftCnt, 1 do
+                if true == ObjHuman.checkRMB(human, needZuanshi) then
+                    -- 加金币
+                    local jinbiCnt = getJinbiCnt(human, mainType)
+                    if ObjHuman.canAddJinbi(human, jinbiCnt) then
+                        -- 扣消耗
+                        if needZuanshi > 0 then
+                            ObjHuman.decZuanshi(human, -needZuanshi, "jinbi_exchange")
+                        end
+        
+                        addExchangeCnt(human, mainType)
+                        nAddJinBiCnt = nAddJinBiCnt + jinbiCnt
+                        nAddCiShu = nAddCiShu + 1
+                    end
+                end
+            end
+        end
+    end
+
+    if nAddJinBiCnt > 0  then
+        ObjHuman.updateJinbi(human, nAddJinBiCnt, "jinbi_exchange")
+        local msgRet = Msg.gc.GC_JINBI_EXCHANGE_DO
+        Grid.makeItem(msgRet.item, ItemDefine.ITEM_JINBI_ID, nAddJinBiCnt)
+        msgRet.vipLv = human.db.vipLv or 0
+        Msg.send(msgRet, human.fd)
+
+        RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_103)
+        YunYingLogic.onCallBack(human, "onExchangeJinbi", 1)  
+        TriggerLogic.PublishEvent(TriggerDefine.GOLD_POINTS_NUM, human.db._id, 1)
+
+        jinbiExchangeQuery(human)
+    end
+end
+
 function isDot(human)
     checkRefresh(human)
     return getLeftCnt(human, MAINTYPE_FREE) > 0

+ 24 - 20
script/module/jinbiExchange/Proto.lua

@@ -1,20 +1,24 @@
--- 金币兑换
-CG_JINBI_EXCHANGE_QUERY = {
-}
-
-GC_JINBI_EXCHANGE_QUERY = {
-	{"jinbiCnt",                 3,       "int"},   -- 按顺序排列
-	{"leftExchange",             3,       "byte"},  -- 剩余可兑换次数
-	{"needItemCnt",              2,       "int"},
-    {"leftTime",                 1,       "int"},   -- 刷新时间
-}
-
-
-CG_JINBI_EXCHANGE_DO = {
-	{"type",                     1,       "byte"},
-}
-
-GC_JINBI_EXCHANGE_DO = {
-	{"item",                     1,       require("bag.Proto").ItemData},
-	{"vipLv",                      1,       "int"},
-}
+-- 金币兑换
+CG_JINBI_EXCHANGE_QUERY = {
+}
+
+GC_JINBI_EXCHANGE_QUERY = {
+	{"jinbiCnt",                 3,       "int"},   -- 按顺序排列
+	{"leftExchange",             3,       "byte"},  -- 剩余可兑换次数
+	{"needItemCnt",              2,       "int"},
+    {"leftTime",                 1,       "int"},   -- 刷新时间
+	{"bOpen",					 1,		  "byte"},	-- 是否开启一键点金 1 开启 0 未开启
+}
+
+
+CG_JINBI_EXCHANGE_DO = {
+	{"type",                     1,       "byte"},
+}
+
+GC_JINBI_EXCHANGE_DO = {
+	{"item",                     1,       require("bag.Proto").ItemData},
+	{"vipLv",                      1,       "int"},
+}
+
+-- 一键点金
+CG_JINBI_EXCHANGE_ONECLICK = {}

+ 35 - 0
script/module/present/Handler.lua

@@ -38,6 +38,10 @@ local OnlineAwardLogic = require("present.OnlineAwardLogic")
 local NewFirstCharge = require("present.NewFirstChargeLogic")
 local ActCycleRechargeLogic = require("present.ActCycleRechargeLogic")
 local OneKillGiftLogic = require("present.OneKillGift")
+local MergeServerLogin = require("present.MergeServerLogin")
+local MergeServerCharge = require("present.MergeServerCharge")
+local MergeServerHuoYue = require("present.MergeServerHuoYue")
+
 
 -- 充值-特权商店
 function CG_TEQUANSHOP_QUERY(human)
@@ -399,4 +403,35 @@ end
 ----------------------------一元秒杀--------------------------------
 function CG_ONEKILLGIFT_QUERY(human, msg)
     OneKillGiftLogic.OneKillGiftLogic_Query(human, msg.bOperate)
+end
+
+---------------------------------------合服活动----------------------------------
+-- 请求合服登录相关信息
+function CG_MERGESERVER_LOGIN_QUERY(human, msg)
+    MergeServerLogin.MergeServerLogin_Query(human)
+end
+
+-- 请求领取登录奖励
+function CG_MERGESERVER_GET_PRIZE(human, msg)
+    MergeServerLogin.MergeServerLogin_Get(human)
+end
+
+--请求领取充值奖励
+function CG_MERGESERVER_CHARGE_QUERY(human, msg)
+    MergeServerCharge.MergeServerCharge_Query(human, msg.nMoney)
+end
+
+-- 请求领取充值奖励
+function CG_MERGESERVER_GET_CHARGE_PRIZE(human, msg)
+    MergeServerCharge.MergeServerCharge_Get(human, msg.nMoney)
+end
+
+-- 请求活跃奖励信息
+function CG_MERGESERVER_QUERY_HUOYUE(human, msg)
+    MergeServerHuoYue.MergeServerHuoYue_Query(human)
+end
+
+-- 请求领取活跃奖励
+function CG_MERGESERVER_HUOYUE_GET_PRIZE(human, msg)
+    MergeServerHuoYue.MergeServerHuoYue_Get(human)
 end

+ 414 - 0
script/module/present/MergeServerCharge.lua

@@ -0,0 +1,414 @@
+--------------------------------
+-- 文件名       :   MergeServerCharge.lua
+-- 文件说明     :   合服活动-充值
+-- 创建时间     :   2025/07/30
+-- 创建人       :   FC
+--------------------------------
+
+local Util = require("common.Util")
+local Msg = require("core.Msg")
+local Grid = require("bag.Grid")
+local BagLogic = require("bag.BagLogic")
+local CommonDefine = require("common.CommonDefine")
+local MergeConfig = require("excel.MergeServerActivity")
+local CommonDB = require("common.CommonDB")
+local YunYingLogic = require("yunying.YunYingLogic")
+local MergeServerLogin = require("present.MergeServerLogin")
+
+-- 金额映射红点下标
+local tChargeMoney2Index = 
+{
+    [6] = 1,
+    [98] = 2,
+    [198] = 3,
+}
+
+local tIndex2Money = {
+    [1] = 6,
+    [2] = 98,
+    [3] = 198,
+}
+
+----------------------------------------- 内部处理开始 -------------------------------------
+local function MergeServerCharge_IsOpen()
+    local nBeginTime = CommonDB.getMergeServerTime()
+    if 0 >= nBeginTime then
+        return false
+    end
+
+    local nEndTime = nBeginTime + (CommonDefine.MERGERSERVER_ACTIVITY_DAY - 1) * 24 * 60 * 60
+    local tEndDate = os.date("*t",nEndTime)
+    tEndDate.hour = 23
+    tEndDate.min = 59
+    tEndDate.sec = 59
+
+    nEndTime = os.time(tEndDate)
+
+    local nNowTime = os.time()
+    
+    return nEndTime > nNowTime
+end
+
+-- 获取配置
+local function MergeServerCharge_GetCof()
+    return MergeConfig.Charge
+end
+
+-- 初始化DB数据
+local function MergeServerCharge_CreatDB(human)
+    human.db.MergeCharge =
+    {
+        bDispose = false,
+        tChargeData = {},
+        tPrizeData = {}
+    }
+
+    local tPrizeData = human.db.MergeCharge.tPrizeData
+    local tConf = MergeServerCharge_GetCof()
+    for _, v in ipairs(tConf) do
+        if not tPrizeData[v.nDay] then
+            tPrizeData[v.nDay] = {
+                tMoney = {}
+            }
+        end
+
+        if not human.db.MergeCharge.tChargeData[v.nMoney] then
+            human.db.MergeCharge.tChargeData[v.nMoney] = {
+                nBuyTime = 0,
+                nBuyDay = 0
+            }
+        end
+       
+        local tNodeData = tPrizeData[v.nDay].tMoney
+        if not tNodeData[v.nMoney] then
+            tNodeData[v.nMoney] =
+            {
+                nStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
+                nMoney = 0
+            }
+        else
+            print("[MergeServerCharge_CreateDB] 配置了重复的数据")
+        end
+    end
+
+    print("[MergeServerCharge_CreatDB] 初始化数据完成 name = "..human.db.name)
+    return true
+end
+
+local function MergeServerCharge_CheckDB(human)
+    if not human.db.MergeCharge then
+        MergeServerCharge_CreatDB(human)
+    end
+end
+
+-- 获取是否处理合服前的充值
+local function MergeServerCharge_GetDispose(human)
+    return human.db.MergeCharge.bDispose
+end
+
+-- 设置处理合服前的充值
+local function MergeServerCharge_SetDispose(human, nValue)
+    human.db.MergeCharge.bDispose = nValue
+end
+
+-- 获取第一次充值的时间
+local function MergeServerCharge_GetChargeTime(human, nMoney)
+    return human.db.MergeCharge.tChargeData[nMoney].nBuyTime
+end
+
+-- 设置充值时间
+local function MergeServerCharge_SetChargeTime(human, nMoney, nValue)
+    human.db.MergeCharge.tChargeData[nMoney].nBuyTime = nValue
+end
+
+local function MergeServerCharge_GetBuyDay(human, nMoney)
+    return human.db.MergeCharge.tChargeData[nMoney].nBuyDay
+end
+
+local function MergeServerCharge_SetBuyDay(human, nMoney,nDay)
+    human.db.MergeCharge.tChargeData[nMoney].nBuyDay = nDay
+end
+
+-- 获取DB奖励数据
+local function MergeServerCharge_GetDBPrizeData(human)
+    return human.db.MergeCharge.tPrizeData
+end
+
+-- 获取DB奖励状态
+local function MergeServerCharge_GetDBPrizeStatus(human, nDay, nMoney)
+    local tPrizeData = MergeServerCharge_GetDBPrizeData(human)
+
+    if not tPrizeData[nDay] or not tPrizeData[nDay].tMoney[nMoney] then
+        return CommonDefine.COMMON_PRIZE_STATE_NOGET
+    end
+
+    return tPrizeData[nDay].tMoney[nMoney].nStatus
+end
+
+-- 设置DB奖励状态
+local function MergeServerCharge_SetDBPrizeStatus(human, nDay, nMoney, nStatus)
+    print("[MergeServerCharge_SetDBPrizeStatus] 设置DB奖励状态 nDay = "..nDay.." nMoney = "..nMoney.." nStatus = "..nStatus)
+    local tPrizeData = MergeServerCharge_GetDBPrizeData(human)
+    tPrizeData[nDay].tMoney[nMoney].nStatus = nStatus
+end
+
+-- 获取DB天数充值金额
+local function MergeServerCharge_GetDBDayCharge(human, nDay, nMoney)
+    local tPrizeData = MergeServerCharge_GetDBPrizeData(human)
+
+    if not tPrizeData[nDay] then
+        return 0
+    end
+
+    return tPrizeData[nDay].tMoney[nMoney].nMoney
+end
+
+-- 设置DB天数充值金额
+local function MergeServerCharge_SetDBDayCharge(human, nDay, nMoney, nAddMoney)
+    local tPrizeData = MergeServerCharge_GetDBPrizeData(human)
+    tPrizeData[nDay].tMoney[nMoney].nMoney = tPrizeData[nDay].tMoney[nMoney].nMoney + nAddMoney
+    if tPrizeData[nDay].tMoney[nMoney].nMoney < 0 then
+        tPrizeData[nDay].tMoney[nMoney].nMoney  = 0
+    end
+end
+
+
+local function MergeServerCharge_GetDayAllMoney(human, nDay)
+    local nAllMoney = 0
+    for _, v in ipairs(tIndex2Money) do
+        local nMoney = MergeServerCharge_GetDBDayCharge(human, nDay, v)
+        nAllMoney = nAllMoney + nMoney
+    end
+
+    return nAllMoney
+end
+
+-----------------------------------客户端请求-----------------------------
+-- 请求数据
+function MergeServerCharge_Query(human, nIndex)
+    if false == MergeServerCharge_IsOpen() then
+        return
+    end
+
+    MergeServerCharge_CheckDB(human)
+    local nMoney = tIndex2Money[nIndex]
+    if not nMoney then
+        return
+    end
+
+    local tConf = MergeServerCharge_GetCof()
+    
+    local tMsgData = Msg.gc.GC_MERGESERVER_CHARGE_QUERY
+    tMsgData.tList[0] = 0
+    
+    local nLen = 0
+    for nID, v in ipairs(tConf) do
+        if v.nMoney == nMoney then
+            nLen = nLen + 1
+            tMsgData.tList[0] = nLen
+            local tPrizeData = tMsgData.tList[nLen]
+            tPrizeData.nID = nID
+            tPrizeData.nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, nMoney)
+            tPrizeData.nDay = v.nDay
+            tPrizeData.nAllMoney = MergeServerCharge_GetDBDayCharge(human, v.nDay, nMoney)
+            tPrizeData.nMoney = v.nMoney
+            tPrizeData.item[0] = #v.tPrize
+
+
+            for i, tItem in ipairs(v.tPrize) do
+                local nGoodsID = tItem[1]
+                local nGoodsNum = tItem[2]
+
+                Grid.makeItem(tPrizeData.item[i], nGoodsID, nGoodsNum)
+            end
+        end
+    end
+
+    Msg.send(tMsgData, human.fd)
+end
+
+-- 请求领取奖励
+function MergeServerCharge_Get(human, nIndex)
+    if false == MergeServerCharge_IsOpen() then
+        return
+    end
+
+    local nMoney = tIndex2Money[nIndex]
+    if not nMoney then
+        return
+    end
+
+    local tConf = MergeServerCharge_GetCof()
+
+    local tItem = {}
+    for nID, v in ipairs(tConf) do
+        if v.nMoney == nMoney then
+            local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
+            if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
+                MergeServerCharge_SetDBPrizeStatus(human, v.nDay, nMoney, CommonDefine.COMMON_PRIZE_STATE_GET)
+                for _, tPrize in ipairs(v.tPrize) do
+                    if not tItem[tPrize[1]]  then
+                        tItem[tPrize[1]] = 0
+                    end
+
+                    tItem[tPrize[1]] = tItem[tPrize[1]] + tPrize[2]
+                end
+            end
+        end
+    end
+
+    if nil ~= _G.next(tItem) then
+        local tPrize = {}
+        for nID, nNum in pairs(tItem) do
+            table.insert(tPrize, {nID, nNum})
+        end
+    
+        BagLogic.addItemList(human, tPrize, "MergeCharge")
+        MergeServerCharge_Query(human, nIndex)
+
+        YunYingLogic.sendBanner(human)
+        MergeServerLogin.MergeServerLogin_SendRed(human)
+    end
+end
+
+----------------------------------------- 外部调用 -------------------------------------
+function isRed(human)
+    if false == MergeServerCharge_IsOpen() then
+        return false
+    end
+
+    MergeServerCharge_CheckDB(human)
+
+    if not human.db.MergeCharge then
+        return false
+    end
+
+    local tConf = MergeServerCharge_GetCof()
+    for _, v in ipairs(tConf) do
+        local nState = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
+        if nState == CommonDefine.COMMON_PRIZE_STATE_CANGET then
+            return true
+        end
+    end
+
+    return false
+end
+
+function onCharge(human, price, funcID, buyID)
+    if false == MergeServerCharge_IsOpen() then
+        return
+    end
+
+    local tConf = MergeServerCharge_GetCof()
+    local bQuery = false
+
+    for _, nMoney in ipairs(tIndex2Money) do
+        local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
+        local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
+        if 0 == nBuyTime then
+            nBuyTime = os.time()
+            MergeServerCharge_SetChargeTime(human, nMoney, nBuyTime)
+        end
+
+        if 0 == nBuyDay then
+            nBuyDay = nBuyDay + 1
+            MergeServerCharge_SetBuyDay(human, nMoney, nBuyDay)
+        else
+            -- 跨天了
+            if nil == Util.isSameDay(nBuyTime) then
+                nBuyDay = nBuyDay + 1
+                MergeServerCharge_SetBuyDay(human, nMoney, nBuyDay)
+                nBuyTime = os.time()
+                MergeServerCharge_SetChargeTime(human, nMoney, nBuyTime)
+            end
+        end
+
+        MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, price)
+        local nNewChareNum = MergeServerCharge_GetDBDayCharge(human, nBuyDay, nMoney)
+        print("[MergeServerCharge_onCharge] 玩家充值增加对应的总充值金额 天数 nBuyDay = "..nBuyDay
+                .." 对应金额 nMoney = "..nMoney.." 增加的钱 price = "..price.." 总金额 nNewChareNum = "..nNewChareNum)
+        for _, v in ipairs(tConf) do
+            if v.nDay == nBuyDay and v.nMoney == nMoney then
+                local nStatus = MergeServerCharge_GetDBPrizeStatus(human, v.nDay, v.nMoney)
+                if nStatus == CommonDefine.COMMON_PRIZE_STATE_NOGET and nNewChareNum >= v.nMoney then
+                    MergeServerCharge_SetDBPrizeStatus(human, v.nDay, v.nMoney, CommonDefine.COMMON_PRIZE_STATE_CANGET)
+                    bQuery = true
+                end
+            end
+        end
+    end
+
+    if true == bQuery then
+        MergeServerLogin.MergeServerLogin_SendRed(human)
+        -- MergeServerCharge_Query(human, price)
+    end
+end
+
+function isOpen(human, YYInfo, funcConfig)
+   return MergeServerCharge_IsOpen()
+end
+
+function isActive(human, YYInfo, funcConfig)
+    return not isOpen(human, YYInfo, funcConfig)
+end
+
+function onLogin(human)
+    if false == MergeServerCharge_IsOpen() then
+        return
+    end
+
+    MergeServerCharge_CheckDB(human)
+
+    local bDispose = MergeServerCharge_GetDispose(human)
+    if false == bDispose then
+        MergeServerCharge_SetDispose(human, true)
+        local nNowCharge = human.db.topupAcountDaily
+        if nNowCharge and 0 < nNowCharge then
+            onCharge(human, nNowCharge)
+        end
+    end
+
+    local nNowTime = os.time()
+    for _, nMoney in ipairs(tIndex2Money) do
+        local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
+        local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
+        if true ~= Util.isSameDayByTimes(nNowTime, nBuyTime) and nBuyDay ~= 0 then
+            local nAllMoney = MergeServerCharge_GetDBDayCharge(human, nBuyDay, nMoney)
+            if nAllMoney < nMoney and 0 < nAllMoney then
+                MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, -nAllMoney)
+                MergeServerCharge_SetChargeTime(human, nMoney, 0)
+                print("[MergeServerCharge_onLogin] 玩家登录 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
+            end
+        end
+     end
+end
+
+function onZero(human, funcID)
+    if false == MergeServerCharge_IsOpen() then
+        return
+    end
+
+    MergeServerCharge_CheckDB(human)
+
+    for _, nMoney in ipairs(tIndex2Money) do
+       -- local nBuyTime = MergeServerCharge_GetChargeTime(human, nMoney)
+        local nBuyDay = MergeServerCharge_GetBuyDay(human, nMoney)
+
+        local nAllMoney = MergeServerCharge_GetDBDayCharge(human, nBuyDay, nMoney)
+        if nAllMoney < nMoney and 0 < nAllMoney then
+            MergeServerCharge_SetDBDayCharge(human, nBuyDay, nMoney, -nAllMoney)
+            MergeServerCharge_SetChargeTime(human, nMoney, 0)
+            print("[MergeServerCharge_onZero] 零点刷新 重置对应不达标数据 nBuyDay = "..nBuyDay.." 对应金额 nMoney = "..nMoney.." 充值数 nAllMoney = "..nAllMoney)
+        end
+    end
+end
+
+function MergeServerCharge_GMReset(human, nDay)
+    for _, v in ipairs(tIndex2Money) do
+        human.db.MergeCharge.tPrizeData[nDay].tMoney[v]=
+        {
+            nStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
+            nMoney = 0,
+        }
+    end
+end

+ 295 - 0
script/module/present/MergeServerHuoYue.lua

@@ -0,0 +1,295 @@
+--------------------------------
+-- 文件名       :   MergeServerHuoYue.lua
+-- 文件说明     :   合服活动-充值
+-- 创建时间     :   2025/07/30
+-- 创建人       :   FC
+--------------------------------
+
+local Util = require("common.Util")
+local Msg = require("core.Msg")
+local Grid = require("bag.Grid")
+local BagLogic = require("bag.BagLogic")
+local CommonDefine = require("common.CommonDefine")
+local MergeConfig = require("excel.MergeServerActivity")
+local CommonDB = require("common.CommonDB")
+local BuyLogic = require("topup.BuyLogic")
+local YunYingLogic = require("yunying.YunYingLogic")
+local MergeServerLogin = require("present.MergeServerLogin")
+
+
+local MERGEHUOYUE_PAY_NOGET = 0     -- 不可领取
+local MERGEHUOYUE_PAY_BUY = 1       -- 已购买
+local MERGEHUOYUE_PAY_HUOYUE = 2    -- 活跃度到达要求
+local MERGEHUOYUE_PAY_CANGET = 3    -- 可以领取
+local MERGEHUOYUE_PAY_GET = 4       -- 已领取
+
+----------------------------------------- 内部处理开始 -------------------------------------
+local function MergeServerHuoYue_IsOpen()
+    local nBeginTime = CommonDB.getMergeServerTime()
+    if 0 >= nBeginTime then
+        return false
+    end
+
+    local nEndTime = nBeginTime + (CommonDefine.MERGERSERVER_ACTIVITY_DAY - 1) * 24 * 60 * 60
+    local tEndDate = os.date("*t",nEndTime)
+    tEndDate.hour = 23
+    tEndDate.min = 59
+    tEndDate.sec = 59
+
+    nEndTime = os.time(tEndDate)
+
+    local nNowTime = os.time()
+    
+    return nEndTime > nNowTime
+end
+
+local function MergeServerHuoYue_GetConf()
+    return MergeConfig.HuoYuePrize
+end
+
+local function MergeServerHuoYue_CreateDB(human)
+    human.db.MergeHuoYue = {
+        nAllHuoYue = 0,
+        tPrizeData = {}
+    }
+
+    local tData = human.db.MergeHuoYue.tPrizeData
+    local tConf = MergeServerHuoYue_GetConf()
+    for nID, v in ipairs(tConf) do
+        tData[nID] = {
+            nFreeStatus = CommonDefine.COMMON_PRIZE_STATE_NOGET,
+            nPayStatus = MERGEHUOYUE_PAY_NOGET,
+        }
+    end
+end
+
+local function MergeServerHuoYue_CheckDB(human)
+    if not human.db.MergeHuoYue then
+        MergeServerHuoYue_CreateDB(human)
+    end
+end
+
+local function MergeServerHuoYue_GetFreeStatus(human, nID)
+    return human.db.MergeHuoYue.tPrizeData[nID].nFreeStatus
+end
+
+local function MergeServerHuoYue_SetFreeStatus(human, nID, nValue)
+    human.db.MergeHuoYue.tPrizeData[nID].nFreeStatus = nValue
+end
+
+local function MergeServerHuoYue_GetPayStatus(human, nID)
+    return human.db.MergeHuoYue.tPrizeData[nID].nPayStatus
+end
+
+local function MergeServerHuoYue_SetPayStatus(human, nID, nValue)
+    human.db.MergeHuoYue.tPrizeData[nID].nPayStatus = nValue
+end
+
+local function MergeServerHuoYue_GetAllHuoYue(human)
+    return human.db.MergeHuoYue.nAllHuoYue
+end
+
+local function MergeServerHuoYue_AddHuoYue(human, nNum)
+    human.db.MergeHuoYue.nAllHuoYue = human.db.MergeHuoYue.nAllHuoYue + nNum
+end
+
+-- 检测付费奖励状态
+local function MergeServerHuoYue_CheckStatus(human)
+    local tConfig = MergeServerHuoYue_GetConf()
+    local nAllHuoYue = MergeServerHuoYue_GetAllHuoYue(human)
+    for nID, v in ipairs(tConfig) do
+        local nPayState = MergeServerHuoYue_GetPayStatus(human, nID)
+        if nAllHuoYue >= v.nHuoYue then
+            if nPayState == MERGEHUOYUE_PAY_BUY then
+                MergeServerHuoYue_SetPayStatus(human, nID, MERGEHUOYUE_PAY_CANGET)
+            elseif MERGEHUOYUE_PAY_NOGET == nPayState then
+                MergeServerHuoYue_SetPayStatus(human, nID, MERGEHUOYUE_PAY_HUOYUE)
+            end
+        end
+
+        local nFreeStatus = MergeServerHuoYue_GetFreeStatus(human, nID)
+        if CommonDefine.COMMON_PRIZE_STATE_NOGET == nFreeStatus and nAllHuoYue >= v.nHuoYue then
+            MergeServerHuoYue_SetFreeStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_CANGET)
+        end
+    end
+end
+
+-----------------------------------客户端请求-----------------------------
+-- 请求活跃奖励信息
+function MergeServerHuoYue_Query(human)
+    if false == MergeServerHuoYue_IsOpen() then
+        return
+    end
+
+    MergeServerHuoYue_CheckDB(human)
+
+    local tConfig = MergeServerHuoYue_GetConf()
+    local tMsgData = Msg.gc.GC_MERGESERVER_QUERY_HUOYUE
+    tMsgData.nAllHuoYue = MergeServerHuoYue_GetAllHuoYue(human)
+    tMsgData.tList[0] = #tConfig
+
+    for nID, v in ipairs(tConfig) do
+        local tData = tMsgData.tList[nID]
+        tData.nID = nID
+        tData.nNeedHuoYue = v.nHuoYue
+        tData.nFreeState = MergeServerHuoYue_GetFreeStatus(human, nID)
+        tData.bBuy = 0
+
+        local nPayState = MergeServerHuoYue_GetPayStatus(human, nID)
+        if MERGEHUOYUE_PAY_CANGET == nPayState then
+            tData.nPayState = CommonDefine.COMMON_PRIZE_STATE_CANGET
+            tData.bBuy = 1
+        elseif MERGEHUOYUE_PAY_GET == nPayState then
+            tData.nPayState = CommonDefine.COMMON_PRIZE_STATE_GET
+            tData.bBuy = 1
+        else
+            tData.nPayState =  CommonDefine.COMMON_PRIZE_STATE_NOGET
+        end
+
+        if MERGEHUOYUE_PAY_BUY == nPayState then
+            tData.bBuy = 1
+        end
+
+        -- 购买项
+        BuyLogic.fontBuyItem(human, tData.buyItem, v.nBuyID)
+
+        tData.tFreeItem[0] = #v.tFreePrize
+        for i, tItem in ipairs(v.tFreePrize) do
+            local nGoodsID = tItem[1]
+            local nGoodsNum = tItem[2]
+
+            Grid.makeItem(tData.tFreeItem[i], nGoodsID, nGoodsNum)
+        end
+
+        tData.tPayItem[0] = #v.tPayPrize
+        for i, tItem in ipairs(v.tPayPrize) do
+            local nGoodsID = tItem[1]
+            local nGoodsNum = tItem[2]
+
+            Grid.makeItem(tData.tPayItem[i], nGoodsID, nGoodsNum)
+        end
+    end
+
+    Msg.send(tMsgData, human.fd)
+end
+
+-- 请求领取活跃奖励
+function MergeServerHuoYue_Get(human)
+    if false == MergeServerHuoYue_IsOpen() then
+        return
+    end
+
+    local tConfig = MergeServerHuoYue_GetConf()
+    local tGoods = {}
+    for nID, v in ipairs(tConfig) do
+        local nFreeStatus = MergeServerHuoYue_GetFreeStatus(human, nID)
+        if CommonDefine.COMMON_PRIZE_STATE_CANGET == nFreeStatus then
+            MergeServerHuoYue_SetFreeStatus(human, nID, CommonDefine.COMMON_PRIZE_STATE_GET)
+            for _, tItem in ipairs(v.tFreePrize) do
+                local nGoodsID = tItem[1]
+                local nGoodsNum = tItem[2]
+
+                if not tGoods[nGoodsID] then
+                    tGoods[nGoodsID] = 0
+                end
+
+                tGoods[nGoodsID] = tGoods[nGoodsID] + nGoodsNum
+            end
+        end
+
+        local nPayStatus = MergeServerHuoYue_GetPayStatus(human, nID)
+        if MERGEHUOYUE_PAY_CANGET == nPayStatus then
+            MergeServerHuoYue_SetPayStatus(human, nID, MERGEHUOYUE_PAY_GET)
+            for _, tItem in ipairs(v.tPayPrize) do
+                local nGoodsID = tItem[1]
+                local nGoodsNum = tItem[2]
+
+                if not tGoods[nGoodsID] then
+                    tGoods[nGoodsID] = 0
+                end
+
+                tGoods[nGoodsID] = tGoods[nGoodsID] + nGoodsNum
+            end
+        end
+    end
+
+    if nil ~= _G.next(tGoods) then
+        local tItem = {}
+        for nGoodID, nGoodNum in pairs(tGoods) do
+            table.insert(tItem, {nGoodID, nGoodNum})
+        end
+
+        BagLogic.addItemList(human, tItem, "MergeHuoYue")
+        MergeServerHuoYue_Query(human)
+
+        YunYingLogic.sendBanner(human)
+        MergeServerLogin.MergeServerLogin_SendRed(human)
+    end
+end
+
+
+------------------------------------- 外部调用 -------------------------------
+-- 是否开启
+function isOpen(human, YYInfo, funcConfig)
+   return MergeServerHuoYue_IsOpen()
+end
+
+function isActive(human, YYInfo, funcConfig)
+    return not isOpen(human, YYInfo, funcConfig)
+end
+
+function isRed(human, YYInfo, funcConfig)
+    if false == MergeServerHuoYue_IsOpen() then
+        return false
+    end
+
+    MergeServerHuoYue_CheckDB(human)
+
+    local tConfig = MergeServerHuoYue_GetConf()
+    for nID, v in ipairs(tConfig) do
+        local nFreeStatus = MergeServerHuoYue_GetFreeStatus(human, nID)
+        local nPayStatus = MergeServerHuoYue_GetPayStatus(human, nID)
+        if CommonDefine.COMMON_PRIZE_STATE_CANGET == nFreeStatus or
+            MERGEHUOYUE_PAY_CANGET == nPayStatus then
+            return true
+        end
+    end
+
+    return false
+end
+
+function onDailyTask(human, funcID, nSum, parameter2)
+    if false == MergeServerHuoYue_IsOpen() then
+        return
+    end
+
+    MergeServerHuoYue_CheckDB(human)
+
+    MergeServerHuoYue_AddHuoYue(human, nSum)
+    MergeServerHuoYue_CheckStatus(human)
+    MergeServerLogin.MergeServerLogin_SendRed(human)
+end
+
+function onCharge(human, price, funcID, buyID)
+    if false == MergeServerHuoYue_IsOpen() then
+        return
+    end
+
+    MergeServerHuoYue_CheckDB(human)
+
+    
+    local tConfig = MergeServerHuoYue_GetConf()
+    for nID, v in ipairs(tConfig) do
+        if v.nBuyID == buyID then
+            local nPayStatus = MergeServerHuoYue_GetPayStatus(human, nID)
+            if MERGEHUOYUE_PAY_NOGET == nPayStatus then
+                MergeServerHuoYue_SetPayStatus(human, nID, MERGEHUOYUE_PAY_BUY)
+            elseif MERGEHUOYUE_PAY_HUOYUE == nPayStatus then
+                MergeServerHuoYue_SetPayStatus(human, nID, MERGEHUOYUE_PAY_CANGET)
+            end
+        end
+    end
+
+    MergeServerHuoYue_Query(human)
+    MergeServerLogin.MergeServerLogin_SendRed(human)
+end

+ 226 - 0
script/module/present/MergeServerLogin.lua

@@ -0,0 +1,226 @@
+--------------------------------
+-- 文件名       :  MergeServerLogin.lua
+-- 文件说明     :  合服活动-登录豪礼
+-- 创建时间     :   2025/07/29
+-- 创建人       :   FC
+--------------------------------
+
+local Util = require("common.Util")
+local Msg = require("core.Msg")
+local Log = require("common.Log")
+local YunYingLogic = require("yunying.YunYingLogic")
+local CommonDB = require("common.CommonDB")
+local CommonDefine = require("common.CommonDefine")
+local MergeConfig = require("excel.MergeServerActivity")
+local Grid = require("bag.Grid")
+local BagLogic = require("bag.BagLogic")
+local MergeServerCharge = require("present.MergeServerCharge")
+local MergeServerHuioYue = require("present.MergeServerHuoYue")
+
+-----------------------------------内部调用-----------------------------
+-- 获取开始时间
+local function MergeServerLogin_GetTime()
+    local nBeginTime = CommonDB.getMergeServerTime()
+    print("[MergeServerLogin_GetTime] nBeginTime = "..nBeginTime)
+    if not nBeginTime or 0 >= nBeginTime then
+        return 0, 0
+    end
+
+    local nAddTime = (CommonDefine.MERGERSERVER_ACTIVITY_DAY - 1) * 24 * 60 *60
+    local nEndTime = nBeginTime + nAddTime
+    print("[MergeServerLogin_GetTime] nEndTime 1 = "..nEndTime.." nAddTime = "..nAddTime)
+    local tEndDate = os.date("*t",nEndTime)
+    tEndDate.hour = 23
+    tEndDate.min = 59
+    tEndDate.sec = 59
+
+    nEndTime = os.time(tEndDate)
+    print("[MergeServerLogin_GetTime] nEndTime 2 = "..nEndTime)
+
+    return nBeginTime, nEndTime
+end
+
+local function MergeServerLogin_IsOpen()
+    local nBeginTime, nEndTime = MergeServerLogin_GetTime()
+    if 0 >= nBeginTime or 0 >= nEndTime then
+        print("[MergeServerLogin_IsOpen] 获取到的时间为0")
+        return false
+    end
+
+    local nNowTime = os.time()
+    print("[MergeServerLogin_IsOpen] 当前时间 nNowTime = "..nNowTime.." nBeginTime = "..nBeginTime.." nEndTime = "..nEndTime)
+    return nEndTime > nNowTime
+end
+
+local function MergeServerLogin_GetConf()
+    return MergeConfig.LoginPrize
+end
+
+-- 初始化DB数据
+local function MergeServerLogin_CreateDB(human)
+    human.db.MergeLogin = {
+        nLoginTime = 0,
+        tPrize = {}
+    }
+
+    local tData = human.db.MergeLogin.tPrize
+    local tConfig = MergeServerLogin_GetConf()
+    for _, v in ipairs(tConfig) do
+        tData[v.nDay] = CommonDefine.COMMON_PRIZE_STATE_NOGET
+    end
+end
+
+local function MergeServerLogin_CheckDB(human)
+    if not human.db.MergeLogin then
+        MergeServerLogin_CreateDB(human)
+    end
+end
+
+-- 获取某天状态
+local function MergeServerLogin_GetStatus(human, nDay)
+    return human.db.MergeLogin.tPrize[nDay]
+end
+
+-- 设置某天状态
+local function MergeServerLogin_SetStatus(human, nDay, nValue)
+    human.db.MergeLogin.tPrize[nDay] = nValue
+end
+
+-- 获取登录时间
+local function MergeServerLogin_GetLoginTime(human)
+    return human.db.MergeLogin.nLoginTime
+end
+
+-- 设置登录时间
+local function MergeServerLogin_SetLoginTime(human, nValue)
+    human.db.MergeLogin.nLoginTime = nValue
+end
+
+
+-----------------------------------客户端请求-----------------------------
+-- 请求合服登录相关信息
+function MergeServerLogin_Query(human)
+    if false == MergeServerLogin_IsOpen then
+        return
+    end
+
+    MergeServerLogin_CheckDB(human)
+
+    local tMsgData = Msg.gc.GC_MERGESERVER_LOGIN_QUERY
+    tMsgData.nBeginTime, tMsgData.nEndTime = MergeServerLogin_GetTime()
+    local tConfig = MergeServerLogin_GetConf()
+    tMsgData.tList[0] = #tConfig
+    for nID, v in ipairs(tConfig) do
+        local tData = tMsgData.tList[nID]
+        tData.nID = nID
+        tData.nDay = v.nDay
+        tData.nState = MergeServerLogin_GetStatus(human, v.nDay)
+        tData.tPrize[0] = #v.tPrize
+        for i, tItem in ipairs(v.tPrize) do
+            Grid.makeItem(tData.tPrize[i], tItem[1], tItem[2])
+        end
+    end
+
+    Msg.send(tMsgData, human.fd)
+end
+
+-- 请求领取登录奖励
+function MergeServerLogin_Get(human)
+    if false == MergeServerLogin_IsOpen then
+        return
+    end
+
+    local tGoods = {}
+    local tConfig = MergeServerLogin_GetConf()
+    for nID, v in ipairs(tConfig) do
+        local nState = MergeServerLogin_GetStatus(human, v.nDay)
+        if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
+            MergeServerLogin_SetStatus(human, v.nDay, CommonDefine.COMMON_PRIZE_STATE_GET)
+            for i, tItem in ipairs(v.tPrize) do
+                if not tGoods[tItem[1]] then
+                    tGoods[tItem[1]] = 0
+                end
+
+                tGoods[tItem[1]] = tGoods[tItem[1]] + tItem[2]
+            end
+        end
+    end
+
+    if nil ~= _G.next(tGoods) then
+        local tItem = {}
+        for nGoodID, nGoodNum in pairs(tGoods) do
+            table.insert(tItem, {nGoodID, nGoodNum})
+        end
+
+        BagLogic.addItemList(human, tItem, "MergeLogin")
+        MergeServerLogin_Query(human)
+
+        YunYingLogic.sendBanner(human)
+        MergeServerLogin_SendRed(human)
+    end
+end
+
+
+------------------------------------- 外部调用 -------------------------------
+-- 是否开启
+function isOpen(human, YYInfo, funcConfig)
+   return MergeServerLogin_IsOpen()
+end
+
+function isActive(human, YYInfo, funcConfig)
+    return not isOpen(human, YYInfo, funcConfig)
+end
+
+function isRed(human, YYInfo, funcConfig)
+    if false == MergeServerLogin_IsOpen() then
+        return false
+    end
+
+    MergeServerLogin_CheckDB(human)
+
+    local tConfig = MergeServerLogin_GetConf()
+    for nID, v in ipairs(tConfig) do
+        local nState = MergeServerLogin_GetStatus(human, v.nDay)
+        if CommonDefine.COMMON_PRIZE_STATE_CANGET == nState then
+            return true
+        end
+    end
+
+    return false
+end
+
+function onLogin(human)
+    if false == MergeServerLogin_IsOpen() then
+        return
+    end
+
+    MergeServerLogin_CheckDB(human)
+
+    print("[MergeServerLogin_onLogin] 玩家登录")
+    local nLastTime = MergeServerLogin_GetLoginTime(human)
+    if 0 == nLastTime or nil == Util.isSameDay(nLastTime) then
+        MergeServerLogin_SetLoginTime(human, os.time())
+        local tConfig = MergeServerLogin_GetConf()
+        for _, v in ipairs(tConfig) do
+            local nState = MergeServerLogin_GetStatus(human, v.nDay)
+            if CommonDefine.COMMON_PRIZE_STATE_NOGET == nState then
+                MergeServerLogin_SetStatus(human, v.nDay, CommonDefine.COMMON_PRIZE_STATE_CANGET)
+                break
+            end
+        end
+    end
+
+    MergeServerLogin_SendRed(human)
+end
+
+
+function MergeServerLogin_SendRed(human)
+    local tMsgData = Msg.gc.GC_MERGESERVER_UPDATE_RED
+    tMsgData.tRed[0] = 3
+    tMsgData.tRed[1] = isRed(human) == true and 1 or 0
+    tMsgData.tRed[2] = MergeServerCharge.isRed(human) == true and 1 or 0
+    tMsgData.tRed[3] = MergeServerHuioYue.isRed(human) == true and 1 or 0
+
+    Msg.send(tMsgData, human.fd)
+    print("[MergeServerLogin_SendRed] 发送红点结束")
+end

+ 73 - 1
script/module/present/Proto.lua

@@ -1076,4 +1076,76 @@ GC_ONEKILLGIFT_QUERY = {
 }
 
 -- 关闭界面
-GC_ONEKILLGIFT_CLOSE = {}
+GC_ONEKILLGIFT_CLOSE = {}
+
+---------------------------------------合服活动----------------------------------
+MergeServerLogin = 
+{
+    {"nID",         1,      "int"},
+    {"nDay",        1,      "int"},
+    {"nState",      1,      "byte"},    -- 0 不可领取 1 - 可领取 2- 已领取
+    {"tPrize",      5,      ItemData}
+}
+
+MergeServerCharge = {
+    {"nID",         1,      "int"},
+    {"nMoney",      1,      "int"},
+    {"nDay",        1,       "int"},
+    {"nState",      1,      "byte"},    -- 0 不可领取 1 - 可领取 2- 已领取
+    {"nAllMoney",   1,      "int"},     -- 已累充金额
+    {"item",        5,      ItemData},  -- 奖励信息
+}
+
+MergeServerHuoYue = {
+    {"nID",             1,      "int"},
+    {"nNeedHuoYue",     1,      "int"},
+    {"nFreeState",      1,      "byte"},    -- 免费 0 不可领取 1 - 可领取 2- 已领取
+    {"nPayState",       1,      "byte"},    -- 付费 0 不可领取 1 - 可领取 2- 已领取
+    {"bBuy",            1,      "byte"},    -- 0 未购买 1 购买
+    {"buyItem",         1,      BuyItem},   -- 购买信息
+    {"tFreeItem",       5,      ItemData},  -- 免费奖励信息
+    {"tPayItem",        5,      ItemData},  -- 付费奖励信息
+}
+
+-- 请求登录相关信息
+CG_MERGESERVER_LOGIN_QUERY = {}
+
+GC_MERGESERVER_LOGIN_QUERY = {
+    {"nBeginTime",  1,      "int"},
+    {"nEndTime",    1,      "int"},
+    {"tList",   15, MergeServerLogin}
+}
+
+-- 请求领取登录奖励
+CG_MERGESERVER_GET_PRIZE = {}
+
+
+-- 请求充值相关信息
+CG_MERGESERVER_CHARGE_QUERY = {
+    {"nMoney",            1,       "int"}       -- 金额
+}
+
+GC_MERGESERVER_CHARGE_QUERY = {
+    {"tList",              15,       MergeServerCharge},    -- 信息
+}
+
+-- 请求领取充值奖励
+CG_MERGESERVER_GET_CHARGE_PRIZE = {
+    {"nMoney",            1,       "int"},          -- 金额
+}
+
+-- 请求活跃奖励信息
+CG_MERGESERVER_QUERY_HUOYUE = {}
+
+GC_MERGESERVER_QUERY_HUOYUE =
+{
+    {"nAllHuoYue",      1,      "int"},
+    {"tList",           15,     MergeServerHuoYue},
+}
+
+-- 请求领取活跃奖励
+CG_MERGESERVER_HUOYUE_GET_PRIZE = {}
+
+GC_MERGESERVER_UPDATE_RED = {
+    {"tRed",    4,      "byte"}     -- 0 不存在红点 1 存在
+}