hxp
2022-02-21 0c27822ef5e6c67782ed143a4ff03ecfbdfda1fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/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