| | |
| | | curPlayer.MapServer_QueryPlayerResult(0, 0, "CrossGiveMoney", msgInfo, len(msgInfo))
|
| | | return
|
| | |
|
| | | def SetCrossPlayerAttrValue(msgInfo, tick):
|
| | | ## 设置跨服玩家属性值
|
| | | playerID, setType, setDict, isDelay = msgInfo
|
| | | if not PyGameData.g_crossSetPlayerAttr:
|
| | | GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick, tick)
|
| | | playerSetInfoList = PyGameData.g_crossSetPlayerAttr.get(playerID, [])
|
| | | playerSetInfoList.append([setType, setDict])
|
| | | PyGameData.g_crossSetPlayerAttr[playerID] = playerSetInfoList
|
| | | if not isDelay:
|
| | | __SendCrossServerSetPlayerAttr(0)
|
| | | return
|
| | |
|
| | | def OnCrossProcess(tick):
|
| | | __SendCrossServerSetPlayerAttr(tick)
|
| | | return
|
| | |
|
| | | def __SendCrossServerSetPlayerAttr(tick):
|
| | | if not PyGameData.g_crossSetPlayerAttr:
|
| | | return
|
| | | |
| | | if tick:
|
| | | # 延迟10秒一次性同步,主要是比如OnDay的时候当多个玩家同时跨服时,减少同步次数,延迟统一发送
|
| | | if tick - GameWorld.GetGameWorld().GetDictByKey(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick) < 10 * 1000:
|
| | | return
|
| | | GameWorld.GetGameWorld().SetDict(ChConfig.Def_WorldKey_CrossSetPlayerAttrTick, tick)
|
| | | |
| | | CrossRealmMsg.SendMsgToCrossServer(ShareDefine.ClientServerMsg_SetPlayerAttrValue, PyGameData.g_crossSetPlayerAttr)
|
| | | PyGameData.g_crossSetPlayerAttr = {}
|
| | | return
|
| | |
|
| | |
|
| | |
|
| | | |