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