From 01a0e539b786ae0f1c46646874502367f5410aca Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 04 二月 2026 18:18:51 +0800
Subject: [PATCH] 66 【公会】基础主体-服务端(优化游戏服及跨服启动、通讯逻辑;服务器类型增加跨服中心、跨服事件、时间管理;跨服玩家在线状态、基础信息、玩家资源增减管理、发送跨服个人邮件等;跨服公会初版,修复公会成员审核、成员战力刷新等bug,增加公会名次同步;跨服公会暂未测试;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 111 +++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 86 insertions(+), 25 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 9875d4c..650e9f8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -15,6 +15,8 @@
#"""Version = 2013-10-30 15:20"""
#---------------------------------------------------------------------
+import IPY_GameWorld
+
# 游戏默认编码
Def_Game_Character_Encoding = 'gbk'
@@ -31,6 +33,7 @@
Def_MixServerDay = 'MixServerDay' #服务器已经合服多少天
Def_IsMixServerInitOK = 'IsMixServerInitOK' #服务器合服首次启动OK
Def_LastMixServerDay = 'LastMixServerDay' #上次合服时的开服天数
+Def_CrossCenterEvent = 'CrossCenterEvent' # 跨服中心事件值
#首次开服时间,注意不要用该日期做开服天相关的功能逻辑,如果要用开服天,请用 Def_ServerDay
''' 原因:
因为目前开服天的逻辑大部分是用 Def_ServerDay,当出现服务器宕机超过24小时时,就会导致 Def_ServerDay 与 Def_InitOpenServerTime 不对应
@@ -40,9 +43,9 @@
Def_InitOpenServerTime = 'InitOpenServerTime'
Def_SetOpenServerTime = 'SetOpenServerTime' # GM工具预定的开服时间
-
+Def_FamilyCrossState = 'FamilyCrossState' # 本服公会跨服状态, 0-未跨服;1-已跨服
+Def_FamilyTransDataTime = 'FamilyTransDataTime' # 本服公会首次跨服互通数据开始传输时间戳,不为0代表传输数据中
Def_OSAAwardState = 'OSAAwardState' #开服冲榜活动结算状态
-# ------------------------- WorldKey -------------------------
#---奇迹, 职业枚举定义---
(
@@ -419,7 +422,9 @@
Def_mitGatherSoulCompound,# 聚魂合成
Def_mitGatherSoulDecompose,# 聚魂分解
Def_mitMainDropItemOP,# 主线装备操作 25
-) = range(1, 1 + 25)
+ Def_mitMGTuiyan, # 命格推演 26
+ Def_mitMinggeEquip, # 命格装备 27
+) = range(1, 1 + 27)
#---写死的技能ID---
@@ -815,6 +820,7 @@
GameFuncID_OSA_MainLevel = 45 # 开服关卡榜
GameFuncID_OSA_HeroCall = 46 # 开服招募榜
GameFuncID_OSA_Celebration = 47 # 开服庆典
+GameFuncID_Mingge = 54 # 命格
# 以下为暂时无用的
GameFuncID_Pet = -1 # 宠物,灵宠 6
@@ -829,8 +835,10 @@
rptDogzEquip, # 神兽装备背包 33
rptGarbage, # 垃圾分类背包 34
rptHero, # 武将英雄背包 35
+rptMGGuayu, # 命格卦玉背包 36
+rptMGTuiyan, # 命格推演背包 37
rptMax, # 最大背包类型数量,放在最后一个
-) = range(28, 28 + 9) #C++定义的枚举到27
+) = range(28, 28 + 11) #C++定义的枚举到27
#虚拟背包类型, 从255递减
Def_VPack_TypeList = (
@@ -838,6 +846,7 @@
rptRune, # 符印背包 255
) = range(256 - 2, 256)
+NeedRecordRPType = [IPY_GameWorld.rptItem, rptTreasure, rptHero, IPY_GameWorld.rptIdentify, rptMGTuiyan]
#武器的手持形式
(
@@ -880,13 +889,17 @@
Def_GameRecType_TalkCache, # 聊天缓存,频道 306
Def_GameRecType_PlayerOfflineUnprocessed, # 离线玩家待处理事件,playerID 307
Def_GameRecType_ArenaRecord, # 演武场玩家挑战记录,playerID 308
- ) = range(300, 1 + 308)
+ Def_GameRecType_BatPreset, # 战斗方案预设额外存储信息,playerID 309
+ ) = range(300, 1 + 309)
#通用信息记录新 - 字典key配置,如果有配置,则可额外按对应记录Value值存储字典,方便快速取值,可配置Value编号 1~8,配空默认 Value1
Def_GameRecValueKeyDict = {
Def_GameRecType_Xiangong:[1],
}
#仅查看自己的记录
-Def_ViewGameRecSelfList = [Def_GameRecType_ArenaRecord]
+Def_ViewGameRecSelfList = [Def_GameRecType_ArenaRecord, Def_GameRecType_BatPreset]
+
+#UserData不使用json的记录类型
+UserDataNOJsonRecTypeList = []
#通用信息记录类型
Def_UniversalGameRecTypeList = (
@@ -976,7 +989,7 @@
#家族行为类型 在GameServer.ChConfig.ActionTypeSaveCnt 中配置最高存储条数
Def_ActionTypeList = (
- Def_ActionType_FamilyData, #仙盟额外记录信息0
+ Def_ActionType_0,
Def_ActionType_1,
Def_ActionType_2,
Def_ActionType_FamilyAdd, #申请进入家族3
@@ -1050,11 +1063,19 @@
CampType_Evil, #邪恶(与 Def_ID2Win 一致)
] = range(3)
-# json里的配表 服务器类型(0主服,1子服,2跨服,3战斗服)]
+# serverJosn里配置索引 ServersConfig.json目前配置规则{SeverID:[GroupName,MapID,服务器类型(0主服,1子服,2跨服)], ...}
+(
+serverCfgIndex_GroupName, # 所属 GroupName
+serverCfgIndex_MapID, # 服务器对应的地图ID
+serverCfgIndex_ServerType, # 服务器类型
+) = range(3)
+
+# json里的配表 服务器类型(0主服,1子服,2跨服,3战斗服,4跨服中心)]
serverType_Main = 0 # 0主服
serverType_Child = 1 # 1子服
serverType_Cross = 2 # 2跨服
serverType_Battle = 3 # 3战斗服
+serverType_CrossCenter = 4 # 4跨服中心,只允许最多1台
# dirType //0全广播,1通知主服务器排除合服子服,2通知服务器包含合服子服, 3通知跨服服务器 ,4通知战斗服务器
dirType_All = 0 # 0全广播
@@ -1062,10 +1083,47 @@
dirType_Child = 2 # 2通知服务器包含合服子服
dirType_Cross = 3 # 3通知跨服服务器
dirType_Battle = 4 # 4通知战斗服务器
+dirType_MainAndCross = 5 # 通知主服务器+跨服
+
+# 服务器间连接状态
+(
+ssConn_Unknown, # 未知 0
+ssConn_Normal, # 正常连接 1
+ssConn_Disconnected, # 断开 2
+) = range(3)
# 服务器间的信息定义
-SSMsg_BattleRequest = "SS_BattleRequest"
-SSMsg_BattleResult = "SS_BattleResult"
+# 服务器类型简写: C - 跨服/跨服中心; CC - 跨服中心;S - 游戏服; B - 战斗服
+
+# 跨服中心 -> 其他跨服
+CC2C_FamilyCrossCfg = "CC2C_FamilyCrossCfg" # 公会分区配置
+
+# 跨服 -> 游戏服
+#C2S_PlayerLoginOK = "C2S_PlayerLoginOK" # 跨服玩家处理登录成功
+C2S_SendFakePack = "C2S_SendFakePack" # 给玩家发送封包
+C2S_FamilyCrossInfo = "C2S_FamilyCrossInfo" # 跨服同步给游戏服的公会信息
+C2S_FamilyDataRet = "C2S_FamilyDataRet" # 公会首次跨服互通时同步数据结果回复
+C2S_FamilyMapPlayer = "C2S_FamilyMapPlayer" # 给公会玩家处理地图服务器逻辑
+C2S_FamilyPyPackRet = "C2S_FamilyPyPackRet" # 公会功能玩家请求包处理结束回包,一般用于重置请求cd等
+C2S_NotifyCode = "C2S_NotifyCode" # 给玩家发送信息提示
+C2S_CostPlayerResources = "C2S_CostPlayerResources" # 扣除玩家资源,货币、物品等
+C2S_GivePlayerResources = "C2S_GivePlayerResources" # 奖励玩家资源,货币、物品等
+C2S_SetPlayerNomalDict = "C2S_SetPlayerNomalDict" # 设置玩家字典值
+C2S_SendPlayerMail = "C2S_SendPlayerMail" # 发送玩家个人邮件
+
+# 游戏服 -> 跨服
+S2C_OnlineState = "S2C_OnlineState" # 玩家在线状态同步
+S2C_PlayerBaseInfo = "S2C_PlayerBaseInfo" # 玩家基础信息同步
+S2C_FamilyData = "S2C_FamilyData" # 公会首次跨服互通时同步数据
+S2C_FamilyPyPack = "S2C_FamilyPyPack" # 公会功能玩家请求包
+S2C_GMCMD = "S2C_GMCMD" # GM命令
+
+# 其他
+S2B_BattleRequest = "S2B_BattleRequest" # 战斗请求
+B2S_BattleResult = "B2S_BattleResult" # 战斗结果
+
+# Debug日志不输出通讯数据明细的类型,debug模式下看,一些纯数据类的可不输出通讯数据明细
+NoLogDataSSMsgTypes = [S2B_BattleRequest, B2S_BattleResult, S2C_FamilyData, C2S_SendFakePack]
# 跨服服务器发送子服信息定义
CrossServerMsg_CrossServerState = "CrossServerState" # 跨服服务器状态变更
@@ -1214,18 +1272,13 @@
Def_IudetItemDecompound = 33 # 拆解返还物品列表 [装备ID,材料1ID,个数,是否绑定,材料2ID,个数,是否绑定,...]
Def_IudetLiantaiItemID = 35 # 合成该莲台的所有莲台ID [itemID, itemID, ...]
Def_IudetAddSkillID = 37 # 可添加的技能ID列表 [skillID, skillID, ...]
-Def_IudetLegendAttrIDShen = 51 # 物品传奇属性ID列表 - 神
-Def_IudetLegendAttrValueShen = 61 # 物品传奇属性值列表 - 神
-Def_IudetLegendAttrIDXian = 53 # 物品传奇属性ID列表 - 仙
-Def_IudetLegendAttrValueXian = 63 # 物品传奇属性值列表 - 仙
-Def_IudetLegendAttrIDJi = 55 # 物品传奇属性ID列表 - 极
-Def_IudetLegendAttrValueJi = 65 # 物品传奇属性值列表 - 极
Def_IudetHeroTalentID = 71 # 英雄天赋ID列表
Def_IudetHeroTalentIDLV = 73 # 英雄天赋ID等级列表
Def_IudetHeroTalentWashLock = 75 # 英雄天赋洗炼锁定索引列表
Def_IudetHeroTalentWashID = 77 # 英雄天赋洗炼随机ID列表
Def_IudetHeroTalentIDAwakeRand = 79 # 英雄觉醒时随机天赋选项ID列表
Def_IudetHeroLineup = 81 # 所在阵容信息列表 [阵容类型*10000+阵型类型*100+位置编号, ...]
+Def_IudetHeroEffPresetID = 83 # 卡牌有生效的预设ID [预设ID, ...]
Def_IudetItemColor = 16 # 物品颜色,如果该值没有就取物品
#Def_IudetItemCount = 18 # 物品个数,支持20亿,目前仅特殊转化物品会用到
@@ -1247,7 +1300,7 @@
Def_IudetHeroBreakLV = 74 # 英雄突破等级
Def_IudetHeroAwakeLV = 76 # 英雄觉醒等级
Def_IudetHeroSkin = 78 # 英雄使用的皮肤索引
-Def_IudetHeroCardEffective = 80 # 卡牌加成是否生效的,每个武将仅有一张卡牌生效
+Def_IudetHeroCardEffective = 80 # 卡牌在主线预设中生效标识,每个武将在某一阵容预设中仅有一张卡牌生效,废弃,使用 Def_IudetHeroEffPresetID 代替
# 200~300 宠物数据用
Def_IudetPet_NPCID = 200 # npcID
@@ -1264,15 +1317,23 @@
LineupObjMax = 6 # 阵容最大上阵武将数
-# 阵容定义,主动进攻阵容只使用主阵容,功能可以有指定的阵容,如防守阵容、系统PK阵容等
-LineupList = (
-Lineup_Main, # 主阵容 1
-Lineup_2, # 废弃
-Lineup_ArenaDef, # 竞技场防守阵容 3
-) = range(1, 1 + 3)
+# 战斗功能预设定义
+BatPresetList = (
+BatPreset_Main, # 主线战斗 1
+BatPreset_ArenaDef, # 演武场防守 2
+) = range(1, 1 + 2)
-# 需要存储查看缓存的阵容ID列表,一般只存储主阵容及各功能所需的防守阵容
-NeedViewCacheLineupIDList = [Lineup_Main, Lineup_ArenaDef]
+# 需要缓存的战斗功能预设,一般只要主线+防守功能预设,主动攻击的PVE功能可以不用,如某个副本的主动攻击预设
+NeedCacheBatPresetList = [BatPreset_Main, BatPreset_ArenaDef]
+
+BatPresetName = {BatPreset_Main:"主线", BatPreset_ArenaDef:"演武场防守"}
+
+# 功能预设定义
+FuncPresetList = (
+FuncPreset_Battle, # 全局战斗预设 1
+FuncPreset_Hero, # 武将预设 2
+FuncPreset_Mingge, # 命格预设 3
+) = range(1, 1 + 3)
# 宠物物品数据状态
Def_PetStateList = (
--
Gitblit v1.8.0