#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
  
 | 
##@package GY_Query_Offline_ViewItem  
 | 
# ²é¿´ËùÓÐÎïÆ·  
 | 
#  
 | 
# @author panwei  
 | 
# @date 2010-3-31  
 | 
# @version 1.2  
 | 
#  
 | 
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  
 | 
# @change: "2010-10-29 11:30" panwei ×°±¸Î»°Î³ýÂß¼ÐÞ¸Ä  
 | 
# @change: "2013-04-18 17:00" wdb ÎïÆ·ÑÕɫʹÓÃÐÞ¸Ä  
 | 
#---------------------------------------------------------------------  
 | 
"""Version = 2013-04-18 17:00"""  
 | 
#---------------------------------------------------------------------  
 | 
#µ¼Èë  
 | 
import GameWorld  
 | 
import IPY_GameWorld  
 | 
import ShareDefine  
 | 
#---------------------------------------------------------------------  
 | 
#È«¾Ö±äÁ¿  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
#Â߼ʵÏÖ  
 | 
## ÇëÇóÂß¼  
 | 
#  @param query_Type ÇëÇóÀàÐÍ  
 | 
#  @param query_ID ÇëÇóµÄÍæ¼ÒID  
 | 
#  @param packCMDList ·¢°üÃüÁî [ ]  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return resultDisc  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def DoLogic(query_Type , query_ID , packCMDList , tick):  
 | 
    curFindPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)  
 | 
      
 | 
    if not curFindPlayer or curFindPlayer.IsEmpty():  
 | 
        return ''  
 | 
      
 | 
    #    rptDeleted = _IPY_GameWorld.rptDeleted  
 | 
    #    rptEquip = _IPY_GameWorld.rptEquip  
 | 
    #    rptItem = _IPY_GameWorld.rptItem  
 | 
    #    rptRecycle = _IPY_GameWorld.rptRecycle  
 | 
    #    rptBreakItem = _IPY_GameWorld.rptBreakItem  
 | 
    #    rptWarehouse = _IPY_GameWorld.rptWarehouse  
 | 
    #    rptTitle = _IPY_GameWorld.rptTitle(²»Òª)  
 | 
    #    rptCompose = _IPY_GameWorld.rptCompose  
 | 
    #    rptIdentify = _IPY_GameWorld.rptIdentify  
 | 
    #    rptBreakPrepare = _IPY_GameWorld.rptBreakPrepare  
 | 
    #    rptResult = _IPY_GameWorld.rptResult  
 | 
    #    rptInvestiture = _IPY_GameWorld.rptInvestiture(²»Òª)  
 | 
      
 | 
    #Á¬½Ó×°±¸±³°ü  
 | 
    curFindPlayerEquipPack = curFindPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)  
 | 
          
 | 
    resultDisc = {  
 | 
                  'Result'            : '1'                                 ,  
 | 
                  'DictName'          : 'GY_GM_Offline_ViewItem'            ,  
 | 
                  'EquipOne': {  
 | 
                                #===============================================  
 | 
                                # 'curEquip'   : __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retMask)   ,      
 | 
                                # 'retClothes' : __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retClothes),       
 | 
                                # 'retShoes'   : __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retShoes)  ,     
 | 
                                # 'retArm'     : __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retArm)    ,      
 | 
                                # 'retNeck'    : __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retNeck)   ,      
 | 
                                #===============================================  
 | 
                                'retWeapon'  : __GetEquipInfo(curFindPlayerEquipPack , ShareDefine.retWeapon) ,     
 | 
                                }                         
 | 
                                ,  
 | 
                'EquipOther':{  
 | 
  
 | 
                             }  
 | 
                  }  
 | 
      
 | 
    #Á¬½Óɾ³ý±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptDeleted, 'DelPack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½ÓÎïÆ·±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptItem, 'ItemPack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½ÓÀ¬»øÍ°  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptRecycle, 'RecyclePack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó²ð½â±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptBreakItem, 'BreakItemPack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó²Ö¿â  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptWarehouse, 'WarehousePack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó´òÔì±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptCompose, 'ComposePack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó¼ø¶¨±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptIdentify, 'IdentifyPack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó²ð½â×¼±¸±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptBreakPrepare, 'BreakPreparePack')  
 | 
    resultDisc.update(packDisc)  
 | 
    #Á¬½Ó´òÔì½á¹û±³°ü  
 | 
    packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptResult, 'ResultPack')  
 | 
    resultDisc.update(packDisc)  
 | 
       
 | 
    return resultDisc   
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
## ·µ»ØÖ¸¶¨ÎïÆ·µÄÐÅÏ¢  
 | 
#  @param equipPack ±³°üË÷Òý  
 | 
#  @param packIndex Î»ÖÃË÷Òý  
 | 
#  @return [name, starLV, stone, durg, maxEnd, count]  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def __GetEquipInfo(equipPack , packIndex):  
 | 
    curEquip = equipPack.GetAt(packIndex)  
 | 
    #Ãû×Ö , ÐǼ¶ , ÏâǶÊý , Ä;Ã/×î´óÄ;à, ÊýÁ¿  
 | 
    if curEquip.IsEmpty():  
 | 
        return ['0' , '0' , '0' , '0/0' , '0']  
 | 
      
 | 
    return [  
 | 
            '%s'%(__ParseItemName(curEquip)), '0', '0', '0/0', '%s'%(curEquip.GetCount())   
 | 
            ]  
 | 
  
 | 
#---------------------------------------------------------------------  
 | 
## ½âÎöÎïÆ·Ãû³Æ °× -> ÆÆ¾ÉµÄ,´ÖÖÆµÄ,ÆÕͨµÄ, À¶ -> 4 ÓÅÐãµÄ,¾«Á¼µÄ,׿ԽµÄ, ×Ï -> Ï¡ÓеÄ,ÎÞϾµÄ,ÍêÃÀµÄ  
 | 
#  @param item ÎïÆ·  
 | 
#  @return itemName  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def __ParseItemName(item):  
 | 
    #׿ԽµÄ»¤Éú¶Ìµ¶  
 | 
    #{ °× -> ÆÆ¾ÉµÄ,´ÖÖÆµÄ,ÆÕͨµÄ, À¶ -> 4 ÓÅÐãµÄ,¾«Á¼µÄ,׿ԽµÄ, ×Ï -> Ï¡ÓеÄ,ÎÞϾµÄ,ÍêÃÀµÄ}  
 | 
      
 | 
    itemName = item.GetName()  
 | 
    itemQuality = item.GetItemQuality()  
 | 
      
 | 
    if not itemQuality:  
 | 
        return itemName  
 | 
      
 | 
#    parseName = {  
 | 
#                1: ['%s%s'%('ÆÆ¾ÉµÄ',itemName) , '%s%s'%('´ÖÖÆµÄ',itemName) ,'%s%s'%('ÆÕͨµÄ',itemName)] ,   
 | 
#                2: ['%s%s'%('ÓÅÐãµÄ',itemName) , '%s%s'%('¾«Á¼µÄ',itemName) ,'%s%s'%('׿ԽµÄ',itemName)] ,  
 | 
#                3: ['%s%s'%('Ï¡ÓеÄ',itemName) , '%s%s'%('ÎÞϾµÄ',itemName) ,'%s%s'%('ÍêÃÀµÄ',itemName)] ,  
 | 
#                }  
 | 
#    if parseName.has_key(itemColor):  
 | 
#        return parseName[itemColor][itemQuality - 1]  
 | 
      
 | 
    return itemName  
 | 
#---------------------------------------------------------------------  
 | 
## »ñÈ¡±³°ü×Öµä  
 | 
#  @param curFindPlayer µ±Ç°Íæ¼Ò  
 | 
#  @param packIndex ±³°üË÷Òý  
 | 
#  @param discKey ×Öµäkey  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def __GetItemPackDisc(curFindPlayer , packIndex , discKey):  
 | 
    itemPack = curFindPlayer.GetItemManager().GetPack(packIndex)  
 | 
    resultDisc = {discKey : {}}  
 | 
    for i in range(itemPack.GetCount()):  
 | 
        resultDisc[discKey].update({'%s'%i : __GetEquipInfo(itemPack , i)})  
 | 
      
 | 
    return resultDisc  
 | 
#---------------------------------------------------------------------  
 | 
#Ö´Ðнá¹û  
 | 
## Ö´Ðнá¹û  
 | 
#  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  
 | 
#  @param callFunName ¹¦ÄÜÃû³Æ  
 | 
#  @param funResult ²éѯµÄ½á¹û  
 | 
#  @param tick µ±Ç°Ê±¼ä  
 | 
#  @return None  
 | 
#  @remarks º¯ÊýÏêϸ˵Ã÷.  
 | 
def DoResult(curPlayer , callFunName , funResult , tick):  
 | 
    curPlayer.GMAnswer('%s;%s'%(callFunName, funResult))  
 | 
    return  
 |