9415 【BT5】【后端】古神战场(初版:包含战场副本外的所有功能;副本中暂仅支持击杀玩家玩法 冲突)
6个文件已修改
109 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldProcess.py
@@ -90,6 +90,7 @@
import CrossRealmPK
import CrossRealmMsg
import CrossRealmPlayer
import CrossBattlefield
import CrossActionControl
import PlayerFBHelpBattle
import PlayerFamilyRedPacket
@@ -364,6 +365,7 @@
    GameWorldActionControl.Dispose_FBStateTime()
    #跨服PK
    CrossRealmPK.OnMinuteProcess()
    CrossBattlefield.OnMinuteProcess()
    #处理重开服务器后, 活动继续开启逻辑根据天数
    #GameWorldActionControl.Dispose_Action_GoOn_ByDay(tick)
    #触发世界等级
@@ -1259,6 +1261,8 @@
    GameWorldArena.OnServerStart()
    #跨服PK
    CrossRealmPK.OnGameServerInitOK()
    #跨服战场
    CrossBattlefield.OnServerStart()
    #红包
    PlayerFamilyRedPacket.OnServerStart()
    #云购
@@ -1362,6 +1366,8 @@
    
    GameWorldArena.OnServerStart()
    
    CrossBattlefield.OnServerStart()
    PlayerDBGSEvent.SetInitOpenServerTime(setOpenServerTime)
    
    ReadChConfig.ReloadConfig()
@@ -1451,6 +1457,8 @@
    
    # 跨服PK
    CrossRealmPK.OnMapServerInitOK()
    #跨服战场
    CrossBattlefield.OnMapServerInitOK()
    # 本服竞技场
    GameWorldArena.SendMapServerArenaInfo()
    # 幸运云购
@@ -1964,6 +1972,7 @@
    ChPlayer.SavePlayerLVData()
    PlayerFBHelpBattle.OnServerClose()
    CrossActionControl.OnServerClose()
    CrossBattlefield.OnServerClose()
    PlayerFamilyRedPacket.OnServerClose()
    CrossLuckyCloudBuy.OnServerClose()
    GameWorldArena.OnServerClose()
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -69,6 +69,8 @@
import PlayerFB
import PlayerLove
import PlayerCharm
import CrossRealmPlayer
import CrossBattlefield
#---------------------------------------------------------------------
#---------------------------------------------------------------------
@@ -133,6 +135,7 @@
    PlayerTeam.OnPlayerLoginRefreshTeam(curPlayer, tick)
    PlayerCompensation.NotifyPlayerCompensation(curPlayer)
    __UpdOnedayJobPlayerLoginoffTime(curPlayer)
    CrossRealmPlayer.OnPlayerLogin(curPlayer)
    
    if not PlayerControl.GetIsTJG(curPlayer):
        # 只有通知逻辑的应该放此处减少IO,如有逻辑处理存储等不可放在此处
@@ -225,6 +228,8 @@
        PlayerCharm.OnPlayerLogin(curPlayer)
        #情缘
        PlayerLove.OnPlayerLogin(curPlayer)
        #跨服战场
        CrossBattlefield.OnPlayerLogin(curPlayer)
        
    if isMixServerFirstLogin:
        PlayerCharm.OnMixServerFirstLogin(curPlayer)
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
@@ -29,6 +29,7 @@
import GameWorld
import PlayerDBOper
import IPY_GameServer
import PlayerDBGSEvent
import IpyGameDataPY
import CrossRealmMsg
import ShareDefine
@@ -54,8 +55,17 @@
    return
def CrossNotifyCode(serverGroupID, playerID, msgMark, msgParamList=[]):
    NotifyCodeCross(serverGroupID, playerID, msgMark, msgParamList)
    return
def NotifyCodeCross(serverGroupID, playerID, msgMark, msgParamList=[]):
    crossNotifyList = [{"Type":ShareDefine.CrossNotify_Player, "Params":[playerID, msgMark, msgParamList]}]
    CrossNotify([serverGroupID], crossNotifyList)
    return
def WorldNotifyCross(serverGroupIDList, country, msgMark, msgParamList=[]):
    crossNotifyList = [GetCrossWorldNotifyInfo(country, msgMark, msgParamList)]
    CrossNotify(serverGroupIDList, crossNotifyList)
    return
def GetCrossWorldNotifyInfo(country, msgMark, msgParamList=[]):
@@ -95,6 +105,11 @@
        
        if notifyType == ShareDefine.CrossNotify_World:
            country, msgMark, msgParamList = params
            openServerDayLimit = IpyGameDataPY.GetFuncCfg("CrossRealmCfg", 1)
            openServerDay = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerDay) + 1
            if openServerDay < openServerDayLimit:
                GameWorld.DebugLog("开服天不足,不处理该跨服广播! openServerDay=%s < %s" % (openServerDay, openServerDayLimit))
                continue
            WorldNotify(country, msgMark, msgParamList)
        elif notifyType == ShareDefine.CrossNotify_CrossAct:
            country, msgMark, msgParamList = params
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -185,6 +185,8 @@
Def_Notify_WorldKey_LuckyCloudBuyInfo = "LuckyCloudBuyInfo"  # 本服幸运云购最新一期信息
Def_Notify_WorldKey_CrossBattlefieldCallTeamInfo = "CrossBattlefieldCallTeamInfo" # 跨服战场召集队伍信息
Def_Notify_WorldKey_GameWorldBossRebornCross = 'BossRebornCross_%s_%s'   # 跨服世界boss重生, 参数为(zoneID, bossID)
Def_Notify_WorldKey_GameWorldBossReborn = 'BossReborn_%s'   # 世界boss重生, 参数为(bossID)
Def_Notify_WorldKey_BossKilledCnt = 'BossKilledCnt_%s'  # boss击杀次数, 参数为NPCID
@@ -749,7 +751,10 @@
'''
CrossBillboardTypeList = (
Def_CBT_ActCTG, # 跨服运营活动 - 充值榜 150
) = range(150, 150 + 1)
Def_CBT_BattlefieldWJoin, # 跨服战场每周参与榜  151
Def_CBT_BattlefieldWCall, # 跨服战场每周召集榜  152
Def_CBT_BattlefieldWScore, # 跨服战场每周积分榜  153
) = range(150, 153 + 1)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -1178,7 +1183,7 @@
                                Def_UniversalGameRecType_20,
                                Def_UniversalGameRecType_LuckyCloudBuyNum, # 幸运云购购买号码记录 21
                                Def_UniversalGameRecType_LuckyCloudBuyLottery, # 幸运云购开奖记录 22
                                Def_UniversalGameRecType_23,
                                Def_UniversalGameRecType_CrossBattlefieldBuy, # 玩家购买的跨服战场 23
                                Def_UniversalGameRecType_UpdatePlayerName,  # 玩家改名正在改名中的信息24
                                Def_UniversalGameRecType_BossDropGoodItemInfo,  # boss掉落好物品信息记录25
                                Def_UniversalGameRecType_26,
@@ -1338,7 +1343,7 @@
Def_List_EscapeSequence = ['\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '\'', '\"', '\0']
#阵营 三种 中立 正义 邪恶
[
CampTypeList = [
CampType_Neutral,    #中立
CampType_Justice,    #正义(与 Def_ID1Win 一致)
CampType_Evil,       #邪恶(与 Def_ID2Win 一致)
@@ -1377,6 +1382,10 @@
CrossServerMsg_LuckyCloudBuyNum = "LuckyCloudBuyNum"    # 幸运云购购买记录通知
CrossServerMsg_LuckyCloudBuyLottery = "LuckyCloudBuyLottery"    # 幸运云购开奖记录通知
CrossServerMsg_CrossServerTime = "CrossServerTime"      # 跨服时间同步
CrossServerMsg_BattlefieldBuy = "BattlefieldBuy"        # 跨服战场购买信息
CrossServerMsg_BattlefieldState = "BattlefieldState"    # 跨服战场状态信息
CrossServerMsg_BattlefieldOver = "BattlefieldOver"      # 跨服战场结算信息
CrossServerMsg_DebugAnswer = "DebugAnswer"              # DebugAnswer
# 子服发送跨服信息定义
ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
@@ -1398,6 +1407,9 @@
ClientServerMsg_EnterFB = "EnterFB"                     # 请求进入跨服副本
ClientServerMsg_AddBuff = "AddBuff"                     # 添加BUFF
ClientServerMsg_LuckyCloudBuy = "LuckyCloudBuy"         # 幸运云购
ClientServerMsg_BattlefieldBuyOpen = "BattlefieldBuyOpen"   # 跨服战场购买召集
ClientServerMsg_BattlefieldCallJoin = "BattlefieldCallJoin"   # 跨服战场召集 - 加入
ClientServerMsg_BattlefieldCallKick = "BattlefieldCallKick"   # 跨服战场召集 - 踢出
#跨服广播类型定义
CrossNotify_CrossAct = "CrossAct"
@@ -1639,9 +1651,8 @@
DailyActionID_SkyTreasureBox, # 天降宝箱 32
DailyActionID_Arena, # 竞技场 33
DailyActionID_CrossDemonLand, # 跨服魔化之地Boss 34
) = range(1, 34 + 1)
DailyActionID_CrossBattlefield, # 跨服战场 35
) = range(1, 35 + 1)
# 成就类型定义
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -1828,6 +1828,8 @@
Def_FBMapID_CrossGrasslandLing = 32040
#跨服仙草园
Def_FBMapID_CrossGrasslandXian = 32050
#跨服战场
Def_FBMapID_CrossBattlefield = 32060
#竞技场战斗
Def_FBMapID_ArenaBattle = 31290
#情缘副本
@@ -1837,9 +1839,11 @@
ClientCustomScene = [Def_FBMapID_PersonalBoss, Def_FBMapID_ArenaBattle]
#注册上传跨服服务器数据后直接进入跨服服务器的地图
RegisterEnter_CrossServerMapIDList = [Def_FBMapID_CrossPenglai, Def_FBMapID_CrossDemonLand, Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian]
RegisterEnter_CrossServerMapIDList = [Def_FBMapID_CrossPenglai, Def_FBMapID_CrossDemonLand, Def_FBMapID_CrossDemonKing,
                                      Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian, Def_FBMapID_CrossBattlefield,
                                      ]
#跨服地图
Def_CrossMapIDList = [Def_FBMapID_CrossRealmPK, Def_FBMapID_CrossPenglai, Def_FBMapID_CrossDemonLand, Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian]
Def_CrossMapIDList = RegisterEnter_CrossServerMapIDList + [Def_FBMapID_CrossRealmPK]
#跨服分区类型配置, 没配置的默认 CrossZoneComm
Def_CrossZoneTypeName = {0:"CrossZoneComm", # 特殊0,默认常规分区
                         Def_FBMapID_CrossPenglai:"CrossZoneComm",
@@ -1848,13 +1852,14 @@
                         Def_FBMapID_CrossDemonKing:"CrossZonePK",
                         Def_FBMapID_CrossGrasslandLing:"CrossZonePK",
                         Def_FBMapID_CrossGrasslandXian:"CrossZonePK",
                         Def_FBMapID_CrossBattlefield:"CrossZonePK",
                         }
#跨服分区对应地图配置表名 - 仅适用于固定地图及虚拟分线的跨服玩法
Def_CrossZoneMapTableName = {Def_FBMapID_CrossPenglai:"CrossPenglaiZoneMap",
                             Def_FBMapID_CrossDemonLand:"CrossDemonLandZoneMap",
                             }
#需要动态分配线路的跨服地图
Def_CrossDynamicLineMap = [Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian]
Def_CrossDynamicLineMap = [Def_FBMapID_CrossDemonKing, Def_FBMapID_CrossGrasslandLing, Def_FBMapID_CrossGrasslandXian, Def_FBMapID_CrossBattlefield]
#副本关闭时未拾取的物品邮件发放给玩家
#这里只有需要的副本才配置,不做默认逻辑,防止某些副本实际不能给导致刷物品,如麒麟之府
@@ -1868,7 +1873,7 @@
# 副本中玩家下线就被踢出
Def_DisconnectExit_FBID = []
#会有阵营的地图
Def_MapID_NeedCamp = [Def_FBMapID_FamilyWar, Def_FBMapID_GatherSoul, Def_FBMapID_CrossRealmPK]
Def_MapID_NeedCamp = [Def_FBMapID_FamilyWar, Def_FBMapID_GatherSoul, Def_FBMapID_CrossRealmPK, Def_FBMapID_CrossBattlefield]
# 进入副本需要根据请求lineID动态分配虚拟分线属性的地图
Def_MapID_LineIDToPropertyID = [Def_FBMapID_ElderBattlefield]
@@ -1955,6 +1960,7 @@
                'HorsePetBoss':[Def_FBMapID_HorsePetBoss],#骑宠BOSS
                'FairyTreasure':[Def_FBMapID_FairyTreasure],#缥缈宝藏
                'Love':[Def_FBMapID_Love],#情缘副本
                'CrossBattlefield':[Def_FBMapID_CrossBattlefield], #跨服战场
                }
#特殊副本ID, 由系统分配, 进入时候不验证IsMapCopyFull
@@ -3051,6 +3057,8 @@
Def_NPC_Dict_SpeedPer = "SpeedPer" # 移动速度变更百分比
Def_NPC_Dict_Faction = "Faction" # 阵营
# 延迟攻击时长, 毫秒
Def_NPC_Dict_AtkDelayTick = "AtkDelayTick" # 延迟攻击时长
Def_NPC_Dict_AtkStartTick = "AtkStartTick" # 开始攻击tick
@@ -3991,6 +3999,7 @@
# 每日活跃度
Def_PDict_Activity_FinishCnt = "Activity_FinishCnt_%s"  # 活跃度类型对应完成次数
Def_PDict_Activity_AddTotal = "Activity_AddTotal_%s"  # 活跃度类型对应获得活跃度总
Def_PDict_Activity_TotalPoint = "Activity_TotalPoint"  # 当前总活跃值(不可消耗)
Def_PDict_ActivityAwardRecord = "ActivityAwardRecord"  # 活跃度奖励领取记录,按二进制位标识
Def_PDict_Activity_AwardStage = "Activity_AwardStage"  # 当前活跃奖励阶段,对应不同境界段
@@ -4065,6 +4074,13 @@
# 跨服幸运云购
Def_PDict_LuckyCloudBuy_RoundID = "LuckyCloudBuy_RoundID" # 本轮标识ID
Def_PDict_LuckyCloudBuy_BuyCount = "LuckyCloudBuy_BuyCount" # 本轮已购买份数
# 跨服战场
Def_PDict_Battlefield_EnterCountWeek = "CBF_EnterCountWeek" # 进入总次数 - 周
Def_PDict_Battlefield_BuyOpenCountToday = "CBF_BuyOpenCountToday" # 已购买召集总次数 - 日
Def_PDict_Battlefield_BuyOpenCountWeek = "CBF_BuyOpenCountWeek" # 已购买召集总次数 - 周
Def_PDict_Battlefield_HighScoreToday = "CBF_HighScoreToday" # 今日最高积分
Def_PDict_Battlefield_HighScoreTotalWeek = "CBF_HighScoreTotalWeek" # 每日最高分累加总分 - 周
#自动战斗设置记录
Def_PDict_AutoFightSetting = "AFSetting_%s_%s"
@@ -4918,6 +4934,10 @@
Def_Cost_ActivityPlace, #活跃放置 50
Def_Cost_FaQi, # 法器
Def_Cost_Love, # 情缘
Def_Cost_CrossBattlefield, # 跨服战场
Def_Cost_BuyOrderInfo, # 购买充值商品
Def_Cost_ActGodGift, # 天帝礼包活动
Def_Cost_TongTianLing, # 通天令
#-----------以下为暂时没用的,先不删除,如有新增消费点则放在这些之前------------
Def_Cost_RefreshArrestTask, # 刷新悬赏任务
Def_Cost_OffLineExp, # 兑换离线经验
@@ -4930,7 +4950,7 @@
Def_Cost_Trade, # 交易
Def_Cost_Rename, # 改名
Def_Cost_SkillLvUp, # 技能升级
) = range(2000, 2000 + 64)
) = range(2000, 2000 + 68)
Def_Cost_Reason_SonKey = "reason_name_son" # 消费点原因子类说明key
@@ -5016,6 +5036,10 @@
Def_Cost_ActivityPlace:"ActivityPlace",
Def_Cost_FaQi:"FaQi",
Def_Cost_Love:"Love",
Def_Cost_CrossBattlefield:"CrossBattlefield",
Def_Cost_BuyOrderInfo:"BuyOrderInfo",
Def_Cost_ActGodGift:"ActGodGift",
Def_Cost_TongTianLing:"TongTianLing",
}
## -----------------------------------------------------
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -185,6 +185,8 @@
Def_Notify_WorldKey_LuckyCloudBuyInfo = "LuckyCloudBuyInfo"  # 本服幸运云购最新一期信息
Def_Notify_WorldKey_CrossBattlefieldCallTeamInfo = "CrossBattlefieldCallTeamInfo" # 跨服战场召集队伍信息
Def_Notify_WorldKey_GameWorldBossRebornCross = 'BossRebornCross_%s_%s'   # 跨服世界boss重生, 参数为(zoneID, bossID)
Def_Notify_WorldKey_GameWorldBossReborn = 'BossReborn_%s'   # 世界boss重生, 参数为(bossID)
Def_Notify_WorldKey_BossKilledCnt = 'BossKilledCnt_%s'  # boss击杀次数, 参数为NPCID
@@ -749,7 +751,10 @@
'''
CrossBillboardTypeList = (
Def_CBT_ActCTG, # 跨服运营活动 - 充值榜 150
) = range(150, 150 + 1)
Def_CBT_BattlefieldWJoin, # 跨服战场每周参与榜  151
Def_CBT_BattlefieldWCall, # 跨服战场每周召集榜  152
Def_CBT_BattlefieldWScore, # 跨服战场每周积分榜  153
) = range(150, 153 + 1)
#职业对应战力排行榜类型
JobFightPowerBillboardDict = {
@@ -1178,7 +1183,7 @@
                                Def_UniversalGameRecType_20,
                                Def_UniversalGameRecType_LuckyCloudBuyNum, # 幸运云购购买号码记录 21
                                Def_UniversalGameRecType_LuckyCloudBuyLottery, # 幸运云购开奖记录 22
                                Def_UniversalGameRecType_23,
                                Def_UniversalGameRecType_CrossBattlefieldBuy, # 玩家购买的跨服战场 23
                                Def_UniversalGameRecType_UpdatePlayerName,  # 玩家改名正在改名中的信息24
                                Def_UniversalGameRecType_BossDropGoodItemInfo,  # boss掉落好物品信息记录25
                                Def_UniversalGameRecType_26,
@@ -1338,7 +1343,7 @@
Def_List_EscapeSequence = ['\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '\'', '\"', '\0']
#阵营 三种 中立 正义 邪恶
[
CampTypeList = [
CampType_Neutral,    #中立
CampType_Justice,    #正义(与 Def_ID1Win 一致)
CampType_Evil,       #邪恶(与 Def_ID2Win 一致)
@@ -1377,6 +1382,10 @@
CrossServerMsg_LuckyCloudBuyNum = "LuckyCloudBuyNum"    # 幸运云购购买记录通知
CrossServerMsg_LuckyCloudBuyLottery = "LuckyCloudBuyLottery"    # 幸运云购开奖记录通知
CrossServerMsg_CrossServerTime = "CrossServerTime"      # 跨服时间同步
CrossServerMsg_BattlefieldBuy = "BattlefieldBuy"        # 跨服战场购买信息
CrossServerMsg_BattlefieldState = "BattlefieldState"    # 跨服战场状态信息
CrossServerMsg_BattlefieldOver = "BattlefieldOver"      # 跨服战场结算信息
CrossServerMsg_DebugAnswer = "DebugAnswer"              # DebugAnswer
# 子服发送跨服信息定义
ClientServerMsg_ServerInitOK = "ServerInitOK"           # 子服启动成功
@@ -1398,6 +1407,9 @@
ClientServerMsg_EnterFB = "EnterFB"                     # 请求进入跨服副本
ClientServerMsg_AddBuff = "AddBuff"                     # 添加BUFF
ClientServerMsg_LuckyCloudBuy = "LuckyCloudBuy"         # 幸运云购
ClientServerMsg_BattlefieldBuyOpen = "BattlefieldBuyOpen"   # 跨服战场购买召集
ClientServerMsg_BattlefieldCallJoin = "BattlefieldCallJoin"   # 跨服战场召集 - 加入
ClientServerMsg_BattlefieldCallKick = "BattlefieldCallKick"   # 跨服战场召集 - 踢出
#跨服广播类型定义
CrossNotify_CrossAct = "CrossAct"
@@ -1639,9 +1651,8 @@
DailyActionID_SkyTreasureBox, # 天降宝箱 32
DailyActionID_Arena, # 竞技场 33
DailyActionID_CrossDemonLand, # 跨服魔化之地Boss 34
) = range(1, 34 + 1)
DailyActionID_CrossBattlefield, # 跨服战场 35
) = range(1, 35 + 1)
# 成就类型定义