hxp
2024-10-29 328648da94a07437fc46024f3e9b7e48c2e2ae38
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
#!/usr/bin/python
# -*- coding: GBK -*-
#---------------------------------------------------------------------
#
#---------------------------------------------------------------------
##@package GameDataControl
# @todo: ÓÎÏ·Êý¾Ý¿â
#
# @author: panwei
# @date 2010-09-01
# @version 1.1
#
# @note: ÓÃÓÚ»º´æÓÎÏ·ÖÐÐèÒªµÄһЩÊý¾Ý¿âÁбí, ²»ÓÃÿ´Î¶¼±éÀú
# @change: "2014-07-18 22:22" Alee É¸Ñ¡ÎïÆ·Ìí¼Ó¹ýÂËÌ××°×°±¸
#---------------------------------------------------------------------
"""Version = 2014-07-18 22:22"""
#---------------------------------------------------------------------
import GameWorld
import ChConfig
import ItemCommon
#---------------------------------------------------------------------
#ÎïÆ·Êý¾Ý×Öµä(¸ù¾ÝÎïÆ·ÀàÐÍɸѡ)
#{itemType:[itemData,itemData,itemData,...]}
g_itemData_ByType_Dist = {}
 
 
#---------------------------------------------------------------------
##ͨ¹ýÎïÆ·ÀàÐÍ»ñÈ¡ÎïÆ·Êý¾ÝÁбí
# @param findItemType ²éÕÒµÄÎïÆ·ÀàÐÍ
# @return ÎïÆ·Êý¾ÝÁбí[ItemData,ItemData,ItemData,ItemData....]
# @remarks Í¨¹ýÎïÆ·ÀàÐÍ»ñÈ¡ÎïÆ·Êý¾ÝÁбí
def GetItemDataListByType(findItemType):
    global g_itemData_ByType_Dist
    
    #g_itemData_ByType_Dist {itemType:[itemData,itemData,itemData,...], itemType:[itemData,itemData,itemData,...]}
    findList = g_itemData_ByType_Dist.get(findItemType)
    
    #---ÕÒµ½Á˾ͷµ»Ø---
    if findList != None:
        return findList
    
    #---δÕÒµ½, ³õʼ»¯---
    findList = __GetItemDataListInDB_ByType(findItemType)
    
    #¸üÐÂ×Öµä
    g_itemData_ByType_Dist.update({findItemType:findList})
    return findList
 
#---------------------------------------------------------------------
##²éÕÒÊý¾Ý¿â, »ñµÃÖ¸¶¨ÀàÐ͵ÄÎïÆ·Êý¾ÝÁбí
# @param itemType ²éÕÒµÄÎïÆ·ÀàÐÍ
# @return ÎïÆ·Êý¾ÝÁбí[ItemData,ItemData,ItemData,ItemData....]
# @remarks ²éÕÒÊý¾Ý¿â, »ñµÃÖ¸¶¨ÀàÐ͵ÄÎïÆ·Êý¾ÝÁбí
def __GetItemDataListInDB_ByType(itemType):
    #ÓÎÏ·Êý¾ÝÀà
    gameData = GameWorld.GetGameData()
    #ɸѡÊý¾Ý
    gameData.FilterItemByType(itemType)
    #·µ»ØµÄÊý¾ÝÁбí
    saveItemList = []
    
    for i in range(0, gameData.GetFilterItemCount()):
        findItemData = gameData.GetFilterItem(i)
        
        #¹ýÂËÌ××°×°±¸
        if ItemCommon.GetItemEffectByEffectID(findItemData, ChConfig.Def_Effect_SuiteMark):
            continue
        
        saveItemList.append(findItemData)
    
    return saveItemList
#---------------------------------------------------------------------