| | |
| | | import PyGameDataStruct
|
| | | import PyDataManager
|
| | | import PlayerControl
|
| | | import CrossRealmMsg
|
| | | import CommFunc
|
| | | import PyGameData
|
| | | import PlayerGeTui
|
| | |
| | |
|
| | | ##--------------------------------------------------------------------------------------------------
|
| | |
|
| | | def CrossServerMsg_DropGoodItem(msgList, tick):
|
| | | ## 收到跨服服务器同步的掉落好物品信息
|
| | | playerID = msgList[0]
|
| | | curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if curPlayer:
|
| | | msgList[1] = curPlayer.GetName() # 本服玩家在线,修改为本服玩家的名字展示
|
| | | OnKillBossDropGoodItem(msgList, tick)
|
| | | return
|
| | |
|
| | | def OnKillBossDropGoodItem(msgList, tick):
|
| | | # playerName, mapID, npcID, itemID, userData
|
| | | if len(msgList) != 7:
|
| | | if len(msgList) != 8:
|
| | | return
|
| | | playerID, killerName, mapID, npcID, itemID, userData, weightValue = msgList
|
| | | GameWorld.DebugLog("击杀Boss掉落好物品: mapID=%s,npcID=%s,killerName=%s,itemID=%s, userData=%s, weightValue=%s" |
| | | % (mapID, npcID, killerName, itemID, userData, weightValue))
|
| | | playerID, killerName, mapID, npcID, itemID, userData, weightValue, serverGroupID = msgList
|
| | | GameWorld.DebugLog("击杀Boss掉落好物品: mapID=%s,npcID=%s,killerName=%s,itemID=%s, userData=%s, weightValue=%s, serverGroupID=%s" |
| | | % (mapID, npcID, killerName, itemID, userData, weightValue, serverGroupID))
|
| | | maxRecordCnt = IpyGameDataPY.GetFuncCfg('DropRecordNum')
|
| | | if not maxRecordCnt:
|
| | | return
|
| | | |
| | | if GameWorld.IsCrossServer():
|
| | | # 同步到玩家对应子服
|
| | | if not serverGroupID:
|
| | | return
|
| | | CrossRealmMsg.SendMsgToClientServer(ShareDefine.CrossServerMsg_DropGoodItem, msgList, [serverGroupID])
|
| | | return
|
| | | |
| | | recType = ShareDefine.Def_UniversalGameRecType_BossDropGoodItemInfo
|
| | | universalRecMgr = GameWorld.GetUniversalRecMgr()
|
| | | recordList = universalRecMgr.GetTypeList(recType)
|
| | |
| | |
|
| | | PlayerUniversalGameRec.MapServer_UniversalGameRec(None, recType, [mapID, npcID, itemID, playerID, weightValue],
|
| | | [killerName, "", userData])
|
| | | |
| | | msgList = [killerName, playerID, mapID, npcID, itemID, userData]
|
| | | PlayerControl.WorldNotify(0, 'DropRecord' , msgList)
|
| | | return
|
| | |
|
| | |
|