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