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