| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
|   | 
| ##@package GY_Query_PlayerDetailByID  | 
| # ²éÑ¯Íæ¼ÒÐÅÏ¢  | 
| #  | 
| # @author panwei  | 
| # @date 2010-3-31  | 
| # @version 1.2  | 
| #  | 
| # @change: "2010-10-29 11:30" panwei ×°±¸Î»°Î³ýÂß¼ÐÞ¸Ä  | 
| # @change: "2014-01-07 15:30" hxp ÏµÍ³markÐÞ¸Ä  | 
| #---------------------------------------------------------------------  | 
| """Version = 2014-01-07 15:30"""  | 
| #---------------------------------------------------------------------  | 
| #ÃüÁî:  | 
| #GY_GM_PlayerDetailByID <ID>  | 
| #  | 
| #·µ»Ø×Öµä<Key:Value>:  | 
| #Result:   1     #0  | 
| #DictName: GY_GM_PlayerDetailByID  | 
| #AccID:  ÕÊ»§ID  | 
| #Job:    Ö°Òµ  | 
| #STR :   Á¦Á¿  | 
| #PNE :   ÕæÔª  | 
| #PHY :   ½î¹Ç  | 
| #CON :   ÌåÖÊ  | 
| #EquipOther:{  | 
| #            RetINC1: [ID,MaxEndure, CurEndure]  | 
| #            RetINC2: [ID,MaxEndure, CurEndure]  | 
| #            RetHorse: [ID,MaxEndure, CurEndure]  | 
| #            retHorseFood: [ID,MaxEndure, CurEndure]  | 
| #            }  | 
| #EquipOne: {  | 
| #curEquip:[ID,MaxEndure, CurEndure] ,    #Í·¿ø  | 
| #           retClothes:[ID,MaxEndure, CurEndure ],  #Ò·þ  | 
| #           retShoes:[ID,MaxEndure, CurEndure ] ,   #Ь×Ó  | 
| #           retArm:[ID,MaxEndure, CurEndure ],     #ÊÖÌ×  | 
| #           retNeck:[ID,MaxEndure, CurEndure ],    #ÏîÁ´  | 
| #           retWeapon:[ID,MaxEndure, CurEndure ],  #ÎäÆ÷  | 
| #  | 
| #}  | 
| #EquipTwo: {  | 
| #curEquip:[ID,MaxEndure, CurEndure] ,     #Í·¿ø  | 
| #           retClothes:[ID,MaxEndure, CurEndure ],  #Ò·þ  | 
| #           retShoes:[ID,MaxEndure, CurEndure ] ,   #Ь×Ó  | 
| #           retArm:[ID,MaxEndure, CurEndure ],    #ÊÖÌ×  | 
| #           retNeck:[ID,MaxEndure, CurEndure ],    #ÏîÁ´  | 
| #           retWeapon:[ID,MaxEndure, CurEndure ],  #ÎäÆ÷  | 
| #  | 
| #Pack:{  | 
| #      0:[ ID,MaxEndure, CurEndure, Count]  | 
| #      1:[ ID,MaxEndure, CurEndure, Count]  | 
| #      2:[ ID,MaxEndure, CurEndure, Count]  | 
| #      3:[ ID,MaxEndure, CurEndure, Count]  | 
| #      .  | 
| #      .  | 
| #      .   | 
| #     }                                     #½áÊø±êÖ¾:ÎªÍæ¼Ò±³°üµ±Ç°¿ªÊ¼Êý  | 
| #       | 
| #WareHouse:{  | 
| #       0:[ ID,MaxEndure, CurEndure, Count]  | 
| #       1:[ ID,MaxEndure, CurEndure, Count]  | 
| #       2:[ ID,MaxEndure, CurEndure, Count]  | 
| #       3:[ ID,MaxEndure, CurEndure, Count]  | 
| #       .  | 
| #       .  | 
| #       .  | 
| #         }      | 
| #}  | 
|   | 
| #---------------------------------------------------------------------  | 
| #µ¼Èë  | 
| import IPY_GameWorld  | 
| import PlayerControl  | 
| import 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)  | 
|     resultDisc = {}  | 
|       | 
|     #ÎÞ·¨²éÕÒÍæ¼Ò  | 
|     if not curFindPlayer or curFindPlayer.IsEmpty():  | 
|         resultDisc = {  | 
|                         'Result'  : '0'                      ,  | 
|                         'DictName': 'GY_GM_PlayerDetailByID'   | 
|                         }  | 
|         return resultDisc  | 
|           | 
|     else:  | 
|         curFindPlayerEquipPack = curFindPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)  | 
|           | 
|         #=======================================================================  | 
|         # mast_ID    , mast_maxEdu    , mast_curEdu    = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retMask)  | 
|         # clothes_ID , clothes_maxEdu , clothes_curEdu = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retClothes)  | 
|         # shoes_ID   , shoes_maxEdu   , shoes_curEdu   = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retShoes)  | 
|         # arm_ID     , arm_maxEdu     , arm_curEdu     = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retArm)  | 
|         # neck_ID    , neck_maxEdu    , neck_curEdu    = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retNeck)  | 
|         #=======================================================================  | 
|         weapon_ID  , weapon_maxEdu  , weapon_curEdu  = __GetEquipInfo(curFindPlayerEquipPack , ShareDefine.retWeapon)  | 
|   | 
| #===============================================================================  | 
| #        inc1_ID    , inc1_maxEdu    , inc1_curEdu    = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retINC1)  | 
| #        inc2_ID    , inc2_maxEdu    , inc2_curEdu    = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retINC2)  | 
| #   | 
| #        horse_ID   , horse_maxEdu   , horse_curEdu   = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retHorse)  | 
| #        food_ID    , food_maxEdu    , food_curEdu    = __GetEquipInfo(curFindPlayerEquipPack , IPY_GameWorld.retHorseFood)       | 
| #===============================================================================  | 
|           | 
|         gold = curFindPlayer.GetGold()  | 
|         goldPaper = curFindPlayer.GetGoldPaper()  | 
|         silver = PlayerControl.GetSilver(curFindPlayer)  | 
|         silverPaper = curFindPlayer.GetSilverPaper()  | 
|           | 
|         resultDisc = {  | 
|                         'Result'  : '1'                               ,  | 
|                         'DictName': 'GY_GM_PlayerDetailByID'          ,  | 
|                         'AccID'   : '%s'%curFindPlayer.GetAccID()     ,  | 
|                         'Job'     : '%s'%curFindPlayer.GetJob()       ,  | 
|                         'STR'     : '%s'%curFindPlayer.GetSTR()       ,  | 
|                         'PNE'     : '%s'%curFindPlayer.GetPNE()       ,  | 
|                         'PHY'     : '%s'%curFindPlayer.GetPHY()       ,  | 
|                         'CON'     : '%s'%curFindPlayer.GetCON()       ,  | 
|                         'EquipOne': {  | 
|                                         #=======================================  | 
|                                         # 'curEquip'   :['%s'%mast_ID   ,'%s'%mast_maxEdu   ,'%s'%mast_curEdu   ]  ,      | 
|                                         # 'retClothes' :['%s'%clothes_ID,'%s'%clothes_maxEdu,'%s'%clothes_curEdu]  ,       | 
|                                         # 'retShoes'   :['%s'%shoes_ID  ,'%s'%shoes_maxEdu  ,'%s'%shoes_curEdu  ]  ,     | 
|                                         # 'retArm'     :['%s'%arm_ID    ,'%s'%arm_maxEdu    ,'%s'%arm_curEdu    ]  ,      | 
|                                         # 'retNeck'    :['%s'%neck_ID   ,'%s'%neck_maxEdu   ,'%s'%neck_curEdu   ]  ,      | 
|                                         #=======================================  | 
|                                         'retWeapon'  :['%s'%weapon_ID ,'%s'%weapon_maxEdu ,'%s'%weapon_curEdu ]  ,     | 
|                                      }                        | 
|                                                     ,  | 
|                         'EquipOther':{  | 
| #===============================================================================  | 
| #                                        'RetINC1' : ['%s'%inc1_ID  , '%s'%inc1_maxEdu , '%s'%inc1_curEdu  ]    ,  | 
| #                                        'RetINC2' : ['%s'%inc2_ID  , '%s'%inc2_maxEdu , '%s'%inc2_curEdu  ]    ,  | 
| #   | 
| #                                        'RetHorse': ['%s'%horse_ID , '%s'%horse_maxEdu, '%s'%horse_curEdu ]    ,   | 
| #   | 
| #                                    'retHorseFood': ['%s'%food_ID  , '%s'%food_maxEdu , '%s'%food_curEdu  ]  | 
| #===============================================================================  | 
|                                      }   | 
|                                                     ,  | 
|                           | 
|                         'Gold'       : '%s'%gold          ,  | 
|                         'GoldPaper'  : '%s'%goldPaper     ,  | 
|                         'Silver'     : '%s'%silver        ,  | 
|                         'SilverPaper': '%s'%silverPaper   ,      | 
|                                       | 
|                                     }   | 
|           | 
|     packDisc = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptItem , 'Pack')  | 
|     #Á´½Ó±³°ü  | 
|     resultDisc.update(packDisc)  | 
|     wareHouse = __GetItemPackDisc(curFindPlayer , IPY_GameWorld.rptWarehouse , 'WareHouse')  | 
|     #Á¬½Ó²Ö¿â  | 
|     resultDisc.update(wareHouse)  | 
|       | 
|     return resultDisc  | 
| #---------------------------------------------------------------------  | 
| ## »ñȡװ±¸ÐÅÏ¢  | 
| #  @param equipPack ±³°üË÷Òý  | 
| #  @param packIndex Î»ÖÃË÷Òý  | 
| #  @return [itemTypeID, maxEndure, curDurg]  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def __GetEquipInfo(equipPack , packIndex):  | 
|     curEquip = equipPack.GetAt(packIndex)  | 
|       | 
|     if curEquip.IsEmpty():  | 
|         return '0' , '0' , '0'  | 
|       | 
|     return curEquip.GetItemTypeID() , 0 , 0  | 
| #---------------------------------------------------------------------  | 
| ## »ñÈ¡±³°ü×Öµä  | 
| #  @param curFindPlayer µ±Ç°Íæ¼Ò  | 
| #  @param packIndex ±³°üË÷Òý  | 
| #  @param discKey ×ÖµäÖµ  | 
| #  @return resultDisc  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def __GetItemPackDisc(curFindPlayer , packIndex , discKey):  | 
|     itemPack = curFindPlayer.GetItemManager().GetPack(packIndex)  | 
|     resultDisc = {discKey : {}}  | 
|     #ID,MaxEndure, CurEndure, Count  | 
|     for i in range(itemPack.GetCount()):  | 
|         item = itemPack.GetAt(i)  | 
|         if item.IsEmpty():  | 
|             resultDisc[discKey].update({'%s'%i : ['0','0','0','0']})  | 
|         else:  | 
|             resultDisc[discKey].update({'%s'%i : ['%s'%item.GetItemTypeID(),'0','0','%s'%item.GetCount()]})  | 
|       | 
|     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))  | 
|     #GeRen_chenxin_673416 GMÖ¸ÁîÒÑÉúЧ£¬²Ù×÷³É¹¦  | 
|     PlayerControl.NotifyCode(curPlayer,"GeRen_chenxin_673416")  | 
|     return  |