#!/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  
 | 
  
 | 
  
 |