| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package Player.RemoteQuery.GY_Query_ShopItem  | 
| #  | 
| # @todo:×Ô¶¨ÒåÉÌµê  | 
| # @author hxp  | 
| # @date 2014-06-21  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ×Ô¶¨ÒåÉÌµê  | 
| #  | 
| #---------------------------------------------------------------------  | 
| """Version = 2014-06-21 15:20"""  | 
|   | 
| import GameWorld  | 
| import ShareDefine  | 
| import ShopItemManage  | 
|   | 
|   | 
| #Â߼ʵÏÖ  | 
| ## ÇëÇóÂß¼  | 
| #  @param query_Type ÇëÇóÀàÐÍ  | 
| #  @param query_ID ÇëÇóµÄÍæ¼ÒID  | 
| #  @param packCMDList ·¢°üÃüÁî [ ]  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return "True" or "False" or ""  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoLogic(query_Type, query_ID, packCMDList, tick):  | 
|     return packCMDList  | 
|   | 
| #---------------------------------------------------------------------  | 
| #Ö´Ðнá¹û  | 
| ## Ö´Ðнá¹û  | 
| #  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò  | 
| #  @param callFunName ¹¦ÄÜÃû³Æ  | 
| #  @param funResult ²éѯµÄ½á¹û  | 
| #  @param tick µ±Ç°Ê±¼ä  | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def DoResult(curPlayer, callFunName, funResult, tick):  | 
|     if funResult == '':  | 
|         return  | 
|     GameWorld.Log("GY_Query_ShopItem DoResult funResult=%s" % funResult)  | 
|     #»¹Ô¸ñʽ '[]' -> []  | 
|     funResult = eval(funResult)  | 
|     queryType = funResult[0]  | 
|       | 
|     # Í¬²½¹ºÂò´ÎÊý[queryType, shopID, buyCntDict]  | 
|     if queryType == ShareDefine.Def_ShopItem_QueryServerBuyCnt:  | 
|         shopID = funResult[1]  | 
|         buyCntDict = funResult[2] # È«·þÒѹºÂò´ÎÊý×Öµä  | 
|         ShopItemManage.Send_ShopItemAllBuyCntInfo(curPlayer, shopID, buyCntDict)  | 
|       | 
|     # ¹ºÂòÎïÆ·[queryType, shopID, itemShopIndex, buyCount, canBuy, serverBuyCnt]  | 
|     elif queryType == ShareDefine.Def_ShopItem_BuyItem:  | 
|         shopID = funResult[1]  | 
|         itemShopIndex = funResult[2]  | 
|         buyCount = funResult[3]  | 
|         canBuy = funResult[4] # ·´À¡µÄ¿É·ñ¹ºÂò  | 
|         serverBuyCnt = funResult[5] # ¸üкóµÄÈ«·þÏÞ¹º´ÎÊý  | 
|           | 
|         # ²»¿ÉÒÔÂò£¬²»´¦Àí  | 
|         if not canBuy:  | 
|             GameWorld.DebugLog("    GameServer·´À¡²»¿É¹ºÂò£¡")  | 
|             return  | 
|           | 
|         itemInfoDict = ShopItemManage.GetShopItemInfoDict(shopID, itemShopIndex)  | 
|         if not itemInfoDict:  | 
|             return  | 
|           | 
|         ShopItemManage.DoBuyShopItem(curPlayer, itemInfoDict, buyCount, serverBuyCnt)  | 
|       | 
|     # Çå¿ÕÈ«·þÏÞ¹º´ÎÊý[queryType, shopID]  | 
|     elif queryType == ShareDefine.Def_ShopItem_ClearBuyCnt:  | 
|         shopID = funResult[1]  | 
|         shopItemList = ShopItemManage.GetShopItemList(shopID)  | 
|           | 
|         ShopItemManage.Send_ShopItem(curPlayer, shopItemList)  | 
|         ShopItemManage.ClearPlayerShopItemBuyCnt(curPlayer, shopID)  | 
|         ShopItemManage.Send_ShopItemAllBuyCntInfo(curPlayer, shopID, {})  | 
|           | 
|     # Í¬²½µ¥Æ·ÏÞ¹º´ÎÊý[queryType, shopID, itemShopIndex, serverBuyCnt]  | 
|     elif queryType == ShareDefine.Def_ShopItem_SyncServerBuyCnt:  | 
|         shopID = funResult[1]  | 
|         itemShopIndex = funResult[2]  | 
|         serverBuyCnt = funResult[3]  | 
|         ShopItemManage.Send_ShopItemBuyCntInfo(curPlayer, shopID, [itemShopIndex],   | 
|                                                {itemShopIndex:serverBuyCnt})  | 
|       | 
|     else:  | 
|         pass  | 
|   | 
|     return  | 
|   |