#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GameWorldItem # # @todo:ÊÀ½çÎïÆ·¹ÜÀí # @author hxp # @date 2019-05-11 # @version 1.0 # # ÏêϸÃèÊö: ÊÀ½çÎïÆ·¹ÜÀí # #------------------------------------------------------------------------------- #"""Version = 2019-05-11 10:30""" #------------------------------------------------------------------------------- import GameWorld import PlayerControl import ChPyNetSendPack import NetPackCommon MaxCacheNotifyEquipCount = 100 # ×î´ó»º´æ¸öÊý g_notifyEquipDetailInfoCache = {} # ×°±¸¹ã²¥ÏêϸÐÅÏ¢»º´æ g_notifyEquipDetailGUIDList = [] def OnCacheNotifyEquipDetailInfo(cacheInfo, tick): ## ×°±¸¹ã²¥ÏêϸÐÅÏ¢»º´æ global g_notifyEquipDetailGUIDList global g_notifyEquipDetailInfoCache guid = cacheInfo[0] if guid in g_notifyEquipDetailGUIDList: g_notifyEquipDetailGUIDList.remove(guid) g_notifyEquipDetailGUIDList.append(guid) g_notifyEquipDetailInfoCache[guid] = cacheInfo[1:] if len(g_notifyEquipDetailGUIDList) > MaxCacheNotifyEquipCount: removeGUID = g_notifyEquipDetailGUIDList[0] g_notifyEquipDetailGUIDList.remove(removeGUID) g_notifyEquipDetailInfoCache.pop(removeGUID, None) return #// A9 05 ²éѯ¹ã²¥×°±¸ÏêϸÐÅÏ¢ #tagCGQueryNotifyEquipDetailInfo # #struct tagCGQueryNotifyEquipDetailInfo #{ # tagHead Head; # char ItemGUID[40]; #}; def OnQueryNotifyEquipDetailInfo(index, clientData, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) guid = clientData.ItemGUID if guid not in g_notifyEquipDetailInfoCache: PlayerControl.NotifyCode(curPlayer, "CheckEquip") return itemID, equipStar, plusLV, plusEvolveLV, washLV, washValueList, stoneIDList, classItems = g_notifyEquipDetailInfoCache[guid] equipDetail = ChPyNetSendPack.tagGCNotifyEquipDetailInfo() equipDetail.ItemGUID = guid equipDetail.ItemID = itemID equipDetail.Star = equipStar equipDetail.PlusLV = plusLV equipDetail.EvolveLV = plusEvolveLV equipDetail.WashLV = washLV equipDetail.WashValueList = washValueList equipDetail.WashValueCount = len(equipDetail.WashValueList) equipDetail.StoneIDList = stoneIDList equipDetail.StoneIDCount = len(equipDetail.StoneIDList) for classItemID, classStar in classItems: classEquip = ChPyNetSendPack.tagGCNotifyEquipClassEquip() classEquip.ItemID = classItemID classEquip.Star = classStar equipDetail.ClassEquipList.append(classEquip) equipDetail.ClassEquipCount = len(equipDetail.ClassEquipList) NetPackCommon.SendFakePack(curPlayer, equipDetail) return