PySysDB/PySysDBG.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
PySysDB/PySysDBG.h
@@ -10,6 +10,14 @@ char Numerical5; //数据5 }; //创角限制服务器配置表 #tagCreateRoleLimitServer struct tagCreateRoleLimitServer { list LimitServerGroupIDRangeList; //限制创角的服务器组ID范围列表 list LimitServerGroupIDList; //限制创角的服务器组ID列表 }; //世界等级表格 #tagWorldLV struct tagWorldLV ServerPython/CoreServerGroup/GameServer/Script/IpyGameDataPY.py
@@ -41,6 +41,11 @@ ("char", "Numerical5", 0), ), "CreateRoleLimitServer":( ("list", "LimitServerGroupIDRangeList", 0), ("list", "LimitServerGroupIDList", 0), ), "WorldLV":( ("WORD", "WorldLV", 1), ("DWORD", "OpenServerSecond", 0), @@ -589,6 +594,17 @@ def GetNumerical3(self): return self.Numerical3 # 数据3 def GetNumerical4(self): return self.Numerical4 # 数据4 def GetNumerical5(self): return self.Numerical5 # 数据5 # 创角限制服务器配置表 class IPY_CreateRoleLimitServer(): def __init__(self): self.LimitServerGroupIDRangeList = [] self.LimitServerGroupIDList = [] return def GetLimitServerGroupIDRangeList(self): return self.LimitServerGroupIDRangeList # 限制创角的服务器组ID范围列表 def GetLimitServerGroupIDList(self): return self.LimitServerGroupIDList # 限制创角的服务器组ID列表 # 世界等级表格 class IPY_WorldLV(): @@ -1722,6 +1738,8 @@ self.ipyConfigEx = {} self.ipyFuncConfigCache = self.__LoadFileData("FuncConfig", IPY_FuncConfig) self.ipyFuncConfigLen = len(self.ipyFuncConfigCache) self.ipyCreateRoleLimitServerCache = self.__LoadFileData("CreateRoleLimitServer", IPY_CreateRoleLimitServer) self.ipyCreateRoleLimitServerLen = len(self.ipyCreateRoleLimitServerCache) self.ipyWorldLVCache = self.__LoadFileData("WorldLV", IPY_WorldLV) self.ipyWorldLVLen = len(self.ipyWorldLVCache) self.ipyFamilyCache = self.__LoadFileData("Family", IPY_Family) @@ -1990,6 +2008,8 @@ def GetFuncConfigCount(self): return self.ipyFuncConfigLen def GetFuncConfigByIndex(self, index): return self.ipyFuncConfigCache[index] def GetCreateRoleLimitServerCount(self): return self.ipyCreateRoleLimitServerLen def GetCreateRoleLimitServerByIndex(self, index): return self.ipyCreateRoleLimitServerCache[index] def GetWorldLVCount(self): return self.ipyWorldLVLen def GetWorldLVByIndex(self, index): return self.ipyWorldLVCache[index] def GetFamilyCount(self): return self.ipyFamilyLen ServerPython/CoreServerGroup/GameServer/Script/Player/CreateRole.py
@@ -83,6 +83,10 @@ PlayerControl.NotifyCode(curPlayer, "CreatSuccess") return if CheckIsServerCreateRoleLimit(curPlayer): PlayerControl.NotifyCode(curPlayer, "ServerCreateRoleLimit") return # CD保护 createSafeTick = 3000 accID = curPlayer.GetAccID() @@ -243,6 +247,19 @@ #DataRecordPack.DR_CreateRole(curPlayer.GetAccID(), sendPack_Name, sendPack_Job) return #--------------------------------------------------------------------- def CheckIsServerCreateRoleLimit(curPlayer): ## 服务器是否创角限制 groupID = GameWorld.GetServerGroupID() ipyDataMgr = IpyGameDataPY.IPY_Data() for i in xrange(ipyDataMgr.GetCreateRoleLimitServerCount()): ipyData = ipyDataMgr.GetCreateRoleLimitServerByIndex(i) if groupID in ipyData.GetLimitServerGroupIDList(): return True for idA, idB in ipyData.GetLimitServerGroupIDRangeList(): if idA <= groupID <= idB: return True return False ## 检查玩家名字是否合法(这里的PlayerName为过滤完空格的名字) # @param curPlayer 当前玩家 # @param playerName 玩家名称