8677 【BT】【后端】跨服冲榜活动; 新增跨服活动时间管理模块、跨服榜单;跨服邮件;跨服广播优化;相关GM命令、后台工具;(冲突补同步)
6个文件已修改
106 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -90,6 +90,7 @@
import CrossRealmPK
import CrossRealmMsg
import CrossRealmPlayer
import CrossActionControl
import PlayerFBHelpBattle
import PlayerFamilyRedPacket
import PlayerFairyDomain
@@ -1930,6 +1931,7 @@
    PlayerTeam.OnServerClose(tick)
    ChPlayer.SavePlayerLVData()
    PlayerFBHelpBattle.OnServerClose()
    CrossActionControl.OnServerClose()
    GameWorldArena.OnServerClose()
    GameWorld.Log("通知C++关服!")
    GameWorld.GetGameWorld().OnServerClose()
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -146,6 +146,7 @@
Def_Notify_WorldKey_MapServerScriptReloadVersion = 'MapServerScriptReloadVersion'  # MapServer 脚本重读版本标记
Def_Notify_WorldKey_InitGameWorldTime = "InitGameWorldTime"  #启动服务器时间
Def_Notify_WorldKey_OperationActionInfo = "OperationActionInfo_%s" # 运营活动信息,参数为运营活动名
Def_Notify_WorldKey_CrossActInfo = "CrossActInfo_%s" # 跨服运营活动信息,参数为运营活动名
Def_Notify_WorldKey_ActionBossRebornSign = "ActBossSign_%s" # 活动boss重生标记,参数为日常活动ID 或 运营活动名
Def_Notify_WorldKey_DailyActionState = "DailyActionState_%s" # 日常活动状态,参数为日常活动ID
Def_Notify_WorldKey_CrossDailyActionState = "CrossDailyActionState_%s" # 跨服日常活动状态,参数为日常活动ID
@@ -243,13 +244,24 @@
                                   OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
#跨服运营活动列表
CrossActNameList = [CrossActName_CTGBillboard]
#活动信息字典key定义
ActKey_ID = "ID" # 活动ID,唯一标识的ID,一般是活动开启的time值
ActKey_State = "State" # 活动状态 0-未开启, >0开启中,也代表当日的第几个时间段
ActKey_CfgID = "CfgID" # 活动表配置ID
ActKey_DayIndex = "DayIndex" # 活动表配置ID
ActKey_DayIndex = "DayIndex" # 当前活动天索引,0开始,代表第1天
ActKey_TemplateID = "TemplateID" # 当前活动模板ID
ActKey_WorldLV = "WorldLV" # 活动开启时世界等级
ActKey_WorldLVList = "WorldLVList" # 活动每天的世界等级列表
ActKey_ServerIDRangeList = "ServerIDRangeList" # 活动服务器ID范围信息
ActKey_IpyDataInfo = "IpyDataInfo" # 活动对应 IpyData 信息
ActKey_DBInfo = "DBInfo" # 保存db的历史活动信息
#答题类型枚举
Def_Game_ExamTypeList = range(1, 4 + 1)
@@ -667,7 +679,16 @@
    
    Def_BT_Max, #排行榜最大类型
) = range(0, 28 + 2) 
''' 跨服排行榜类型, 从 150 开始
与本服榜单存储的是不一样的数据库表格,理论上类型可以和本服榜单类型重复,为了做下区分防误导,跨服榜单从 150 开始
跨服榜单表(tagDBCrossBillboard)
本服榜单表(tagDBBillboard)
'''
CrossBillboardTypeList = (
Def_CBT_ActCTG, # 跨服运营活动 - 充值榜 150
) = range(150, 150 + 1)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
                              PlayerJob_Warrior:Def_BT_FightPower_Warrior,
@@ -1065,7 +1086,7 @@
                                Def_UniversalGameRecType_FairyDomain, #缥缈仙域事件次数记录13
                                Def_UniversalGameRecType_Reward,    # 通用奖励表(TopBar)14
                                Def_UniversalGameRecType_ArenaBattleRecord, # 竞技场玩家挑战记录 15
                                Def_UniversalGameRecType_16,
                                Def_UniversalGameRecType_CrossActInfo, # 跨服运营活动信息记录 16
                                Def_UniversalGameRecType_17,
                                Def_UniversalGameRecType_18,
                                Def_UniversalGameRecType_19,
@@ -1251,6 +1272,7 @@
CrossServerMsg_PKOverInfo = "PKOverInfo"                # 跨服PK结果
CrossServerMsg_PKSeasonInfo = "PKSeasonInfo"            # 跨服PK赛季信息
CrossServerMsg_PKSyncBillboard = "PKSyncBillboard"      # 跨服PK同步排行榜 
CrossServerMsg_SyncBillboard = "SyncBillboard"          # 跨服同步排行榜
CrossServerMsg_CrossBossInfo = "CrossBossInfo"          # 跨服Boss信息
CrossServerMsg_CrossBossState = "CrossBossState"        # 跨服Boss状态
CrossServerMsg_PutInItem = "PutInItem"                  # 获得物品
@@ -1262,8 +1284,11 @@
CrossServerMsg_EnterFBRet = "EnterFBRet"                # 请求进入跨服副本返回信息
CrossServerMsg_FBEnd = "FBEnd"                          # 完成跨服副本
CrossServerMsg_NPCAttackCount = "NPCAttackCount"        # 攻击NPC次数记录
CrossServerMsg_SendMail = "SendMail"                    # 发送邮件
CrossServerMsg_SendMail = "SendMail"                    # 发送邮件,已知玩家目标服务器,主动发送
CrossServerMsg_FBPlayerCount = "FBPlayerCount"          # 副本功能线路人数同步
CrossServerMsg_CrossActInfo = "CrossActInfo"            # 跨服运营活动信息
CrossServerMsg_MailPlayerIDList = "MailPlayerIDList"    # 跨服邮件玩家ID通知,玩家目标服务器可能无法知道,被动推送
CrossServerMsg_MailContent = "MailContent"              # 跨服邮件内容通知
# 子服发送跨服信息定义
ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
@@ -1275,6 +1300,9 @@
ClientServerMsg_PKCancel = "PKCancel"                   # 跨服PK取消匹配
ClientServerMsg_PKPrepareOK = "PKPrepareOK"             # 跨服PK准备完毕
ClientServerMsg_PKBillboard = "PKBillboard"             # 跨服PK排行榜
ClientServerMsg_QueryBillboard = "QueryBillboard"       # 跨服排行榜 - 查询、同步等
ClientServerMsg_UpdateBillboard = "UpdateBillboard"     # 跨服排行榜 - 更新
ClientServerMsg_MailContent = "MailContent"             # 跨服邮件内容同步 - 请求同步、汇报成功等
ClientServerMsg_Reborn = "Reborn"                       # 复活
ClientServerMsg_QueryNPCInfo = "QueryNPCInfo"           # 查询跨服地图NPC信息
ClientServerMsg_SetPlayerAttrValue = "SetPlayerAttrValue" # 玩家属性数值更新
@@ -1283,6 +1311,7 @@
ClientServerMsg_AddBuff = "AddBuff"                     # 添加BUFF
#跨服广播类型定义
CrossNotify_CrossAct = "CrossAct"
CrossNotify_World = "World"
CrossNotify_Family = "Family"
CrossNotify_Player = "Player"
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3688,6 +3688,12 @@
Def_PDict_FreeGoodsOpenTime = "FreeGoodsOpenTime" #极品白拿开启时间
Def_PDict_FreeGoodsBuyState = "FreeGoodsBuyState_%s" #极品白拿购买状态,参数编号  0-未买 time值-购买时间 1-已返还
#跨服充值排行活动
Def_PDict_CA_CTGBillboardID = "CA_CTGBillboardID"  # 玩家身上的活动ID,唯一标识,取活动开始日期time值
Def_PDict_CA_CTGBillboardTemplateID = "CA_CTGBillboardTemplateID"  # 玩家身上活动模板ID
Def_PDict_CA_CTGBillboardRMB = "CA_CTGBillboardRMB"  # 活动累计充值RMB值
Def_PDict_CA_CTGBillboardAward = "CA_CTGBillboardAward"  # 活动充值目标领奖状态,按二进制位存储
#消费返利活动
Def_PDict_CostRebateID = "CostRebateID"  # 玩家身上的消费返利活动ID,唯一标识,取活动开始日期time值
Def_PDict_CostRebateTemplateID = "CostRebateTemplateID"  # 玩家身上的消费返利模板ID
@@ -5353,7 +5359,8 @@
Def_RewardType_OnLineTotal, #累计在线奖励33
Def_RewardType_ShareGame, #每日分享奖励34
Def_RewardType_GoodGame, #游戏好评奖励35
)= range(36)
Def_RewardType_CACTGBillboardDabiao, #跨服充值排行活动达标奖励36
)= range(37)
#boss复活相关活动定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCoin.py
@@ -49,6 +49,7 @@
import PlayerGoldGift
import PlayerActTotalRecharge
import PlayerActRechargePrize
import CrossActCTGBillboard
import PlayerActGrowupBuy
import OpenServerCampaign
import PlayerWeekParty
@@ -357,6 +358,12 @@
    DataRecordPack.DR_CTGOK(curPlayer, addDRDict)
    
    #---充值成功后逻辑---
    orderRMB = orderCoin / 100
    # 所有真实充值均有效的
    if coinType in [CoinType_Gold, CoinType_Buy]:
        #跨服充值排行活动
        CrossActCTGBillboard.AddCTGRMB(curPlayer, orderRMB)
    #仙界盛典-充值大礼
    PlayerFairyCeremony.OnFCRecharge(curPlayer)
    PlayerNewFairyCeremony.OnFCRecharge(curPlayer)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -74,6 +74,7 @@
import GameLogic_FamilyWar
import OpenServerCampaign
import PlayerCostRebate
import CrossActCTGBillboard
import PlayerActCollectWords
import PlayerActTotalRecharge
import PlayerActRechargePrize
@@ -1398,6 +1399,19 @@
                
            return
        
        if key.startswith(ShareDefine.Def_Notify_WorldKey_CrossActInfo[:-2]):
            keyHead = ShareDefine.Def_Notify_WorldKey_CrossActInfo[:-2]
            actionName = key[len(keyHead):]
            if actionName not in PyGameData.g_crossActInfoDict:
                PyGameData.g_crossActInfoDict[actionName] = {}
            actInfoDict = PyGameData.g_crossActInfoDict[actionName]
            actInfoDict.update(eval(msgValue))
            if actionName == ShareDefine.CrossActName_CTGBillboard:
                CrossActCTGBillboard.RefreshCrossActCTGBillboardInfo()
            return
        if key == ShareDefine.Def_Notify_WorldKey_CrossZoneName:
            PyGameData.g_crossZoneName = msgValue
            return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -146,6 +146,7 @@
Def_Notify_WorldKey_MapServerScriptReloadVersion = 'MapServerScriptReloadVersion'  # MapServer 脚本重读版本标记
Def_Notify_WorldKey_InitGameWorldTime = "InitGameWorldTime"  #启动服务器时间
Def_Notify_WorldKey_OperationActionInfo = "OperationActionInfo_%s" # 运营活动信息,参数为运营活动名
Def_Notify_WorldKey_CrossActInfo = "CrossActInfo_%s" # 跨服运营活动信息,参数为运营活动名
Def_Notify_WorldKey_ActionBossRebornSign = "ActBossSign_%s" # 活动boss重生标记,参数为日常活动ID 或 运营活动名
Def_Notify_WorldKey_DailyActionState = "DailyActionState_%s" # 日常活动状态,参数为日常活动ID
Def_Notify_WorldKey_CrossDailyActionState = "CrossDailyActionState_%s" # 跨服日常活动状态,参数为日常活动ID
@@ -243,13 +244,24 @@
                                   OperationActionName_CostRebate, OperationActionName_FlashGiftbag,
                                   OperationActionName_SpringSale, OperationActionName_LuckyTreasure]
#跨服运营活动表名定义
CrossActName_CTGBillboard = "CrossActCTGBillboard" # 充值排行榜
#跨服运营活动列表
CrossActNameList = [CrossActName_CTGBillboard]
#活动信息字典key定义
ActKey_ID = "ID" # 活动ID,唯一标识的ID,一般是活动开启的time值
ActKey_State = "State" # 活动状态 0-未开启, >0开启中,也代表当日的第几个时间段
ActKey_CfgID = "CfgID" # 活动表配置ID
ActKey_DayIndex = "DayIndex" # 活动表配置ID
ActKey_DayIndex = "DayIndex" # 当前活动天索引,0开始,代表第1天
ActKey_TemplateID = "TemplateID" # 当前活动模板ID
ActKey_WorldLV = "WorldLV" # 活动开启时世界等级
ActKey_WorldLVList = "WorldLVList" # 活动每天的世界等级列表
ActKey_ServerIDRangeList = "ServerIDRangeList" # 活动服务器ID范围信息
ActKey_IpyDataInfo = "IpyDataInfo" # 活动对应 IpyData 信息
ActKey_DBInfo = "DBInfo" # 保存db的历史活动信息
#答题类型枚举
Def_Game_ExamTypeList = range(1, 4 + 1)
@@ -667,7 +679,16 @@
    
    Def_BT_Max, #排行榜最大类型
) = range(0, 28 + 2) 
''' 跨服排行榜类型, 从 150 开始
与本服榜单存储的是不一样的数据库表格,理论上类型可以和本服榜单类型重复,为了做下区分防误导,跨服榜单从 150 开始
跨服榜单表(tagDBCrossBillboard)
本服榜单表(tagDBBillboard)
'''
CrossBillboardTypeList = (
Def_CBT_ActCTG, # 跨服运营活动 - 充值榜 150
) = range(150, 150 + 1)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
                              PlayerJob_Warrior:Def_BT_FightPower_Warrior,
@@ -1065,7 +1086,7 @@
                                Def_UniversalGameRecType_FairyDomain, #缥缈仙域事件次数记录13
                                Def_UniversalGameRecType_Reward,    # 通用奖励表(TopBar)14
                                Def_UniversalGameRecType_ArenaBattleRecord, # 竞技场玩家挑战记录 15
                                Def_UniversalGameRecType_16,
                                Def_UniversalGameRecType_CrossActInfo, # 跨服运营活动信息记录 16
                                Def_UniversalGameRecType_17,
                                Def_UniversalGameRecType_18,
                                Def_UniversalGameRecType_19,
@@ -1251,6 +1272,7 @@
CrossServerMsg_PKOverInfo = "PKOverInfo"                # 跨服PK结果
CrossServerMsg_PKSeasonInfo = "PKSeasonInfo"            # 跨服PK赛季信息
CrossServerMsg_PKSyncBillboard = "PKSyncBillboard"      # 跨服PK同步排行榜 
CrossServerMsg_SyncBillboard = "SyncBillboard"          # 跨服同步排行榜
CrossServerMsg_CrossBossInfo = "CrossBossInfo"          # 跨服Boss信息
CrossServerMsg_CrossBossState = "CrossBossState"        # 跨服Boss状态
CrossServerMsg_PutInItem = "PutInItem"                  # 获得物品
@@ -1262,8 +1284,11 @@
CrossServerMsg_EnterFBRet = "EnterFBRet"                # 请求进入跨服副本返回信息
CrossServerMsg_FBEnd = "FBEnd"                          # 完成跨服副本
CrossServerMsg_NPCAttackCount = "NPCAttackCount"        # 攻击NPC次数记录
CrossServerMsg_SendMail = "SendMail"                    # 发送邮件
CrossServerMsg_SendMail = "SendMail"                    # 发送邮件,已知玩家目标服务器,主动发送
CrossServerMsg_FBPlayerCount = "FBPlayerCount"          # 副本功能线路人数同步
CrossServerMsg_CrossActInfo = "CrossActInfo"            # 跨服运营活动信息
CrossServerMsg_MailPlayerIDList = "MailPlayerIDList"    # 跨服邮件玩家ID通知,玩家目标服务器可能无法知道,被动推送
CrossServerMsg_MailContent = "MailContent"              # 跨服邮件内容通知
# 子服发送跨服信息定义
ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
@@ -1275,6 +1300,9 @@
ClientServerMsg_PKCancel = "PKCancel"                   # 跨服PK取消匹配
ClientServerMsg_PKPrepareOK = "PKPrepareOK"             # 跨服PK准备完毕
ClientServerMsg_PKBillboard = "PKBillboard"             # 跨服PK排行榜
ClientServerMsg_QueryBillboard = "QueryBillboard"       # 跨服排行榜 - 查询、同步等
ClientServerMsg_UpdateBillboard = "UpdateBillboard"     # 跨服排行榜 - 更新
ClientServerMsg_MailContent = "MailContent"             # 跨服邮件内容同步 - 请求同步、汇报成功等
ClientServerMsg_Reborn = "Reborn"                       # 复活
ClientServerMsg_QueryNPCInfo = "QueryNPCInfo"           # 查询跨服地图NPC信息
ClientServerMsg_SetPlayerAttrValue = "SetPlayerAttrValue" # 玩家属性数值更新
@@ -1283,6 +1311,7 @@
ClientServerMsg_AddBuff = "AddBuff"                     # 添加BUFF
#跨服广播类型定义
CrossNotify_CrossAct = "CrossAct"
CrossNotify_World = "World"
CrossNotify_Family = "Family"
CrossNotify_Player = "Player"