| | |
| | | Sync_OpenServerDay(curPlayer)
|
| | | #通知玩家基本信息
|
| | | curPlayer.Sync_ClientPlayerLogin() #01 02 玩家初始化#tagCDBPlayer
|
| | | SyncSettingData(curPlayer)
|
| | |
|
| | | # 屏蔽跨服下关闭和子服重复的数据的发送 pushsend接口, notifyall正常发送
|
| | | # !!!必要发送的数据要注意位置
|
| | |
| | | curPlayer.SetSetting(setting)
|
| | | return
|
| | |
|
| | | #// A1 31 前端自定义保存设置内容 #tagCSSettingData
|
| | | #
|
| | | #struct tagCSSettingData
|
| | | #{
|
| | | # tagHead Head;
|
| | | # BYTE KeyNum; // 自定义key编号,后端使用数字key存储,前端自行进行转换定义,限制100个
|
| | | # BYTE DataLen; |
| | | # char SetData[DataLen]; //自定义保存的内容
|
| | | #};
|
| | | def OnSettingData(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | |
| | | keyNum = clientData.KeyNum
|
| | | setData = clientData.SetData
|
| | | setData = setData.replace(" ", "") # 去空格
|
| | | keyStr = str(keyNum)
|
| | | |
| | | gameRecMgr = DBDataMgr.GetGameRecMgr()
|
| | | preSetRecMgr = gameRecMgr.GetRecTypeIDMgr(ShareDefine.Def_GameRecType_Setting, playerID) |
| | | recData = preSetRecMgr.GetOneRecData(True)
|
| | | if not recData:
|
| | | return
|
| | | dataDict = recData.GetUserDict()
|
| | | |
| | | if not setData:
|
| | | dataDict.pop(keyStr, None)
|
| | | else:
|
| | | keyMax = 100
|
| | | if keyStr not in dataDict:
|
| | | if len(dataDict) >= keyMax:
|
| | | GameWorld.ErrLog("存储个数达到上限! keyMax=%s" % keyMax)
|
| | | return
|
| | | dataDict[keyStr] = setData
|
| | | |
| | | SyncSettingData(curPlayer, keyStr)
|
| | | return
|
| | |
|
| | | def SyncSettingData(curPlayer, keyStr=""):
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | gameRecMgr = DBDataMgr.GetGameRecMgr()
|
| | | preSetRecMgr = gameRecMgr.GetRecTypeIDMgr(ShareDefine.Def_GameRecType_Setting, playerID) |
| | | recData = preSetRecMgr.GetOneRecData()
|
| | | if not recData:
|
| | | return
|
| | | dataDict = recData.GetUserDict()
|
| | | |
| | | settingDataList = []
|
| | | syncKeyList = [keyStr] if keyStr else dataDict.keys()
|
| | | for keyStr in syncKeyList:
|
| | | if keyStr in dataDict:
|
| | | setData = dataDict[keyStr]
|
| | | else:
|
| | | setData = ""
|
| | | keyNum = GameWorld.ToIntDef(keyStr, None)
|
| | | if keyNum == None:
|
| | | continue
|
| | | sData = ChPyNetSendPack.tagSCSettingData()
|
| | | sData.KeyNum = keyNum
|
| | | sData.SetData = setData
|
| | | sData.DataLen = len(sData.SetData)
|
| | | settingDataList.append(sData)
|
| | | if not settingDataList:
|
| | | return
|
| | | clientPack = ChPyNetSendPack.tagSCSettingDataInfo()
|
| | | clientPack.SettingDataList = settingDataList
|
| | | clientPack.DataCnt = len(clientPack.SettingDataList)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | #// A2 29 设置小助手 #tagCMSetLittleHelper
|
| | | #
|
| | | #struct tagCMSetLittleHelper
|