| | |
| | | import GameWorld
|
| | | import PlayerDBOper
|
| | | import IPY_GameServer
|
| | | import PlayerDBGSEvent
|
| | | import IpyGameDataPY
|
| | | import CrossRealmMsg
|
| | | import ShareDefine
|
| | | import PyGameData
|
| | | import ChConfig
|
| | | import types
|
| | | #---------------------------------------------------------------------
|
| | |
| | | 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=[]):
|
| | |
| | |
|
| | | if notifyType == ShareDefine.CrossNotify_World:
|
| | | country, msgMark, msgParamList = params
|
| | | openServerDayLimit = IpyGameDataPY.GetFuncCfg("CrossRealmCfg", 1)
|
| | | if msgMark.startswith("CrossBattlefield"):
|
| | | openServerDayLimit = IpyGameDataPY.GetFuncCfg("CrossRealmCfg", 2)
|
| | | 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
|
| | |
| | |
|
| | | return NotifyCodeList
|
| | |
|
| | | #------------------------------------------------------------------------------ |
| | | def LoadDBPlayer():
|
| | | if GameWorld.IsCrossServer():
|
| | | return
|
| | | PlayerDBOper.FindDBOper(PlayerDBOper.Table_DBPlayer, {}, {"PlayerID":1, "AccID":1, "_id":0}, LoadDBPlayerRet)
|
| | | return
|
| | |
|
| | | def LoadDBPlayerRet(resultSetList, extendValueList):
|
| | | for resultDict in resultSetList:
|
| | | PyGameData.g_dbPlayerIDMap[resultDict["PlayerID"]] = resultDict["AccID"]
|
| | | GameWorld.Log("启动服务器加载DBPlayer玩家账号ID对应关系! %s, %s" % (len(PyGameData.g_dbPlayerIDMap), PyGameData.g_dbPlayerIDMap))
|
| | | return
|
| | |
|
| | | def GetDBPlayerAccIDByID(playerID):
|
| | | ## 获取玩家表账号ID - 根据玩家ID, 可用于判断是否本服玩家
|
| | | return PyGameData.g_dbPlayerIDMap.get(playerID, "")
|
| | |
|
| | | #waring:以下使用的扩展属性字段记录的属性类型必须和MapServer一致
|
| | | #------------------------------------------------------------------------------
|
| | |
| | | def GetChatBubbleBox(curPlayer): return curPlayer.GetExAttr10()
|
| | | def SetChatBubbleBox(curPlayer, value): return curPlayer.SetExAttr10(value)
|
| | |
|
| | | ##伴侣ID
|
| | | def GetCoupleID(curPlayer): return curPlayer.GetExAttr11()
|
| | | def SetCoupleID(curPlayer, coupleID): return curPlayer.SetExAttr11(coupleID)
|
| | |
|
| | | ##玩家主动退出仙盟时间(<100代表退出次数)
|
| | | def SetLeaveFamilyTime(curPlayer, value, isSyncMap=True):
|
| | | curPlayer.SetExAttr12(value)
|
| | |
| | |
|
| | | #------------------------------------------------------------------------------
|
| | |
|
| | | def MapServer_QueryPlayer_DoLogic(tagPlayer, callName, cmdInfo, srcPlayerID=0, queryType=0):
|
| | | ## 通知目标玩家地图执行 DoLogic
|
| | | tagPlayerID = tagPlayer.GetPlayerID()
|
| | | tagMapID = tagPlayer.GetRealMapID()
|
| | | if tagMapID:
|
| | | cmdStr = str(cmdInfo)
|
| | | GameWorld.Log("MapServer_QueryPlayer_DoLogic: %s, cmdInfo=%s,tagPlayerID=%s,tagMapID=%s" |
| | | % (callName, cmdInfo, tagPlayerID, tagMapID), srcPlayerID)
|
| | | #MapServer_QueryPlayer(int srcPlayerID, int queryType, int queryID, int mapID, char *callName, char *cmd,WORD cmdLen, int RouteServerIndex)
|
| | | GameWorld.GetPlayerManager().MapServer_QueryPlayer(srcPlayerID, 0, tagPlayerID, tagMapID, callName,
|
| | | cmdStr, len(cmdStr), tagPlayer.GetRouteServerIndex())
|
| | | return
|
| | |
|
| | | ## 增加成就完成进度
|
| | | # @param curPlayer
|