| | |
| | | #
|
| | | # @change: "2011-02-23 14:20" panwei 系统提示函数重写
|
| | | # @change: "2011-07-15 19:30" Alee 队伍通知
|
| | | # @change: "2011-09-02 16:20" panwei 新增竞技场设置和获取决斗值接口
|
| | | # @change: "2012-11-06 15:00" jiang 新增竞威望设置和获取威望设接口
|
| | | # @change: "2012-11-07 17:30" wdb 新增跨服预选赛排位信息
|
| | | # @change: "2012-11-14 12:00" jiang 修改扩展属性字段记录的属性类型必须和MapServer一致
|
| | |
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_Notify, crossNotifyList, serverGroupIDList)
|
| | | return
|
| | |
|
| | | def CrossNotifyEx(serverGroupIDList, crossNotifyList):
|
| | | ''' 跨服广播信息提示,支持同步多条,同时也建议多条一起同步
|
| | | @param serverGroupIDList: 需要同步到的目标服务器组ID列表
|
| | | @param crossNotifyList: 信息提示列表,[[notifyType, paramsList, 自定义扩展信息], ...] notifyType 如 ShareDefine.CrossNotify_CrossAct
|
| | | '''
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_Notify, crossNotifyList, serverGroupIDList)
|
| | | return
|
| | |
|
| | | def CrossServerMsg_Notify(crossNotifyList):
|
| | | GameWorld.DebugLog("收到跨服同步的广播提示内容: count=%s" % len(crossNotifyList))
|
| | | for notifyInfo in crossNotifyList:
|
| | | if "Type" not in notifyInfo or "Params" not in notifyInfo:
|
| | | if isinstance(notifyInfo, dict):
|
| | | if "Type" not in notifyInfo or "Params" not in notifyInfo:
|
| | | continue
|
| | | notifyType = notifyInfo["Type"]
|
| | | params = notifyInfo["Params"]
|
| | | elif isinstance(notifyInfo, list) and len(notifyInfo) >= 2:
|
| | | notifyType, params = notifyInfo[:2]
|
| | | else:
|
| | | continue
|
| | | notifyType = notifyInfo["Type"]
|
| | | params = notifyInfo["Params"]
|
| | | |
| | | if notifyType == ShareDefine.CrossNotify_World:
|
| | | country, msgMark, msgParamList = params
|
| | | WorldNotify(country, msgMark, msgParamList)
|
| | | elif notifyType == ShareDefine.CrossNotify_CrossAct:
|
| | | country, msgMark, msgParamList = params
|
| | | serverIDRangeList = notifyInfo[2]
|
| | | playerManager = GameWorld.GetPlayerManager()
|
| | | for i in xrange(playerManager.GetPlayerCount()):
|
| | | curPlayer = playerManager.GetPlayerByIndex(i)
|
| | | if curPlayer == None or not curPlayer.GetInitOK() or GetIsTJG(curPlayer):
|
| | | continue
|
| | | if not serverIDRangeList:
|
| | | NotifyCode(curPlayer, msgMark, msgParamList)
|
| | | return
|
| | | playerServerID = GameWorld.GetPlayerServerID(curPlayer)
|
| | | for serverIDA, serverIDB in serverIDRangeList:
|
| | | if serverIDA <= playerServerID <= serverIDB:
|
| | | NotifyCode(curPlayer, msgMark, msgParamList)
|
| | | break
|
| | | |
| | | elif notifyType == ShareDefine.CrossNotify_Family:
|
| | | familyID, msgMark, msgParamList = params
|
| | | FamilyNotify(familyID, msgMark, msgParamList)
|
| | |
| | |
|
| | | #waring:以下使用的扩展属性字段记录的属性类型必须和MapServer一致
|
| | | #------------------------------------------------------------------------------
|
| | | ##设置决斗值(竞技场用)
|
| | | # @param curPlayer 玩家
|
| | | # @param value 数值
|
| | | # @return None
|
| | | def SetVsFightValue(curPlayer, value):
|
| | | return
|
| | |
|
| | |
|
| | | ##获取决斗值(竞技场用)
|
| | | # @param curPlayer 玩家
|
| | | # @return 决斗值
|
| | | def GetVsFightValue(curPlayer):
|
| | | return 0
|
| | |
|
| | | #------------------------------------------------------------------------------ |
| | | ## 设置威望
|
| | | # @param curPlayer: 玩家实例
|
| | | # @param value: 威望值
|
| | |
| | |
|
| | |
|
| | | #------------------------------------------------------------------------------
|
| | | ## 协助目标玩家ID
|
| | | def SetAssistTagPlayerID(curPlayer, value):
|
| | | curPlayer.SetExAttr1(value)
|
| | | SetMapServerPlayerAttrValue(curPlayer, "SetAssistTagPlayerID", value)
|
| | | return
|
| | | def GetAssistTagPlayerID(curPlayer): return curPlayer.GetExAttr1()
|
| | |
|
| | | ## 副本功能线路ID
|
| | | def SetFBFuncLineID(curPlayer, funcLineID): return curPlayer.SetExAttr3(funcLineID)
|
| | | def GetFBFuncLineID(curPlayer): return curPlayer.GetExAttr3()
|
| | |
|
| | | ##VIP到期时间
|
| | | def GetVIPExpireTime(curPlayer): return curPlayer.GetExAttr9()
|
| | |
| | | ##聊天气泡框
|
| | | def GetChatBubbleBox(curPlayer): return curPlayer.GetExAttr10()
|
| | | def SetChatBubbleBox(curPlayer, value): return curPlayer.SetExAttr10(value)
|
| | |
|
| | | ##今日已获得仙缘币
|
| | | def GetTodayXianyuanCoin(curPlayer): return curPlayer.GetExAttr11()
|
| | | def SetTodayXianyuanCoin(curPlayer, value): return curPlayer.SetExAttr11(value)
|
| | |
|
| | | ##玩家主动退出仙盟时间(<100代表退出次数)
|
| | | def SetLeaveFamilyTime(curPlayer, value, isSyncMap=True):
|