| | |
| | | import PlayerOfflineSupport
|
| | | import PyGameData
|
| | | import GameWorld
|
| | | import DBDataMgr
|
| | |
|
| | | ##################################################################
|
| | | ####### python逻辑入口 #######
|
| | |
| | |
|
| | | ##################################################################
|
| | |
|
| | | def GMCmdPlayerListValidationID(gmCmdDict):
|
| | | '''后台GM工具玩家列表命令通用验证
|
| | | @param gmCmdDict: 命令参数字典
|
| | | @return: GMCommon.Def_xxx, idList or errorInfo
|
| | | 非 Def_Success 的错误类型 - 代表错误,可直接返回给后台
|
| | | Def_Success, playerIDList - 待处理的玩家ID列表
|
| | | '''
|
| | | playerList = gmCmdDict.get("playerList", '')
|
| | | playerList = playerList.split(",")
|
| | | if not playerList:
|
| | | return GMCommon.Def_ParamErr, ""
|
| | | |
| | | playerIDList = []
|
| | | queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '') |
| | | if queryType in [GMCommon.Def_GMKey_PlayerName, GMCommon.Def_GMKey_PlayerAccID]:
|
| | | for playerFind in playerList:
|
| | | if queryType == GMCommon.Def_GMKey_PlayerName:
|
| | | rec = PyGameData.g_usrCtrlDB.findDBPlayerByName(playerFind)
|
| | | elif queryType == GMCommon.Def_GMKey_PlayerAccID:
|
| | | rec = PyGameData.g_usrCtrlDB.findDBPlayerByAccID(playerFind)
|
| | | else:
|
| | | continue
|
| | | |
| | | if not rec:
|
| | | # db找不到就是不存在该玩家
|
| | | return GMCommon.Def_NoTag, "%s can not found!" % str(playerFind)
|
| | | |
| | | playerID = rec.get(u'PlayerID', 0)
|
| | | playerIDList.append(playerID)
|
| | | |
| | | elif queryType == GMCommon.Def_GMKey_FamilyID:
|
| | | # 根据家族ID的直接返回
|
| | | familyMgr = DBDataMgr.GetFamilyMgr()
|
| | | for familyID in eval(playerList):
|
| | | familyID = GameWorld.ToIntDef(familyID)
|
| | | family = familyMgr.FindFamily(familyID)
|
| | | if not family:
|
| | | GameWorld.DebugLog(" not family %s" % familyID)
|
| | | continue
|
| | | memberIDList = family.GetMemberIDList()
|
| | | playerIDList += memberIDList
|
| | | |
| | | if not playerIDList:
|
| | | return GMCommon.Def_ParamErr, ""
|
| | | |
| | | return GMCommon.Def_Success, playerIDList
|
| | |
|
| | | def GMCmdPlayerValidationID(gmCmdDict):
|
| | | '''后台GM工具玩家命令通用验证
|
| | | @param gmCmdDict: 命令参数字典
|
| | | @return: GMCommon.Def_xxx, playerID
|
| | | 非 Def_Success 的错误类型 - 代表错误,可直接返回给后台
|
| | | Def_Success, playerID - 本服玩家ID
|
| | | '''
|
| | | |
| | | queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '')
|
| | | playerFind = gmCmdDict.get(GMCommon.Def_GMKey_PlayerFind, '')
|
| | | |
| | | if len(playerFind) <= 0:
|
| | | return GMCommon.Def_ParamErr, None
|
| | | |
| | | # 玩家姓名
|
| | | if queryType == GMCommon.Def_GMKey_PlayerName:
|
| | | rec = PyGameData.g_usrCtrlDB.findDBPlayerByName(playerFind)
|
| | | elif queryType == GMCommon.Def_GMKey_PlayerAccID:
|
| | | rec = PyGameData.g_usrCtrlDB.findDBPlayerByAccID(playerFind)
|
| | | else:
|
| | | return GMCommon.Def_ParamErr, None
|
| | | |
| | | if not rec:
|
| | | # db找不到就是不存在该玩家
|
| | | return GMCommon.Def_NoTag, None
|
| | | |
| | | playerID = rec.get(u'PlayerID', 0)
|
| | | return GMCommon.Def_Success, playerID
|
| | |
|
| | | def GMCmdPlayerValidation(gmCmdDict, offlineSupport=True):
|
| | | '''后台GM工具玩家命令通用验证
|
| | | @param gmCmdDict: 命令参数字典
|
| | |
| | | def GMToolCommand(self):
|
| | | callFunc = GetExecFunc(Commands, "%s.%s"%(self.funcName, "OnExec"))
|
| | |
|
| | | execType = GMCommon.Def_SendToGameServer
|
| | | execType = GMCommon.Def_Unknow
|
| | | execInfo = ''
|
| | | if callFunc != None:
|
| | | execType, execInfo = callFunc(self.gmCmdDict)
|
| | | |
| | | ret = callFunc(self.gmCmdDict)
|
| | | if isinstance(ret, int):
|
| | | execType = ret
|
| | | elif isinstance(ret, tuple):
|
| | | execType = ret[0]
|
| | | execInfo = ret[1]
|
| | | |
| | | GetGMOrderMgr().PopCmd(self.orderId)
|
| | | GMCommandResult(self.orderId, self.funcName, execType, execInfo)
|
| | |
|