From 6feb3406bd4edf15e443f5d58f06229d5ee8733c Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期一, 24 十二月 2018 14:13:53 +0800 Subject: [PATCH] 5571 【1.4】集市物品卖出提示邮件新增VIP玩家模板 --- ServerPython/CoreServerGroup/GameServer/Script/GM/GMShell.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 47 insertions(+), 6 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GM/GMShell.py b/ServerPython/CoreServerGroup/GameServer/Script/GM/GMShell.py index c734e31..e5c6737 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GM/GMShell.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GM/GMShell.py @@ -20,8 +20,10 @@ import Commands import IPY_GameServer import MergeChildMsg +import PyGameData import traceback import GMCommon +import ShareDefine import os #--------------------------------------------------------------------- g_broadCastList = [] @@ -91,7 +93,7 @@ if callFunc != None: extendParamList = callFunc(curPlayer) alist.extend(extendParamList) - MergeChildMsg.SendMergerChildToCenterStringData(ChConfig.Def_SendGMCMD, alist) + MergeChildMsg.SendMergerChildToCenterStringData(ShareDefine.ClientServerMsg_GMCMD, alist) return callFunc = GameWorld.GetExecFunc(Commands, "%s.%s"%(callFunName, "OnExec")) @@ -105,12 +107,10 @@ del alist[0] #把剩余参数转换为整型 for i in range(0, len(alist)): - if not alist[i].isdigit(): - continue value = GameWorld.ToIntDef(alist[i], None) if value == None: - GameWorld.DebugAnswer(curPlayer, "参数错误, 参数%s必须为纯数字!" % (i + 1)) - return + #GameWorld.DebugAnswer(curPlayer, "参数错误, 参数%s必须为纯数字!" % (i + 1)) + continue alist[i] = value callFunc(curPlayer,alist) @@ -246,7 +246,7 @@ return cmdDict ## 收到子服务器发送的GM命令 -def ClientServer_SendGMCMD(cmdMsgList, tick): +def ClientServerMsg_GMCMD(cmdMsgList, tick): if len(cmdMsgList) == 0: return @@ -260,3 +260,44 @@ #只将实际参数传入 callFunc(cmdMsgList[1:], tick) return + +def AddOfflinePlayerGMTInfo(orderId, queryType, playerFind, gmCmdDict): + # 玩家不在线,先记录,等玩家上线后处理,开关服后无效 + key = (queryType, playerFind) + ctgInfoList = PyGameData.g_gmtOfflinePlayerInfo.get(key, []) + ctgInfoList.append(gmCmdDict) + PyGameData.g_gmtOfflinePlayerInfo[key] = ctgInfoList + GameWorld.Log("离线玩家添加GMT: g_gmtOfflinePlayerInfo=%s" % str(PyGameData.g_gmtOfflinePlayerInfo)) + GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, "Player is off line.") + return + +def OnPlayerLogin(curPlayer): + gmtList = [] + nameKey = (ChConfig.queryType_sqtPlayerByName, curPlayer.GetName()) + if nameKey in PyGameData.g_gmtOfflinePlayerInfo: + gmtList += PyGameData.g_gmtOfflinePlayerInfo.pop(nameKey) + + accIDKey = (ChConfig.queryType_sqtPlayerByAccID, curPlayer.GetAccID()) + if accIDKey in PyGameData.g_gmtOfflinePlayerInfo: + gmtList += PyGameData.g_gmtOfflinePlayerInfo.pop(accIDKey) + + if not gmtList: + return + + tagMapID = curPlayer.GetRealMapID() + GameWorld.Log("离线玩家上线GMT: tagMapID=%s, %s" % (tagMapID, gmtList), curPlayer.GetPlayerID()) + if not tagMapID: + return + + for gmCmdDict in gmtList: + pack_type = gmCmdDict.get("pack_type") + if not pack_type: + continue + + callFunc = GameWorld.GetExecFunc(Commands, "%s.%s"%(pack_type, "OnOfflineCTGInfo")) + if callFunc: + GameWorld.Log("玩家上线执行GMT: %s, tagMapID=%s, %s" % (pack_type, tagMapID, gmCmdDict), curPlayer.GetPlayerID()) + callFunc(curPlayer, tagMapID, gmCmdDict) + + return + -- Gitblit v1.8.0