#!/usr/bin/python
|
# -*- coding: GBK -*-
|
|
##@package GY_Query_SetItemDelete
|
# ɾ³ýÒ»¶¨ÊýÁ¿ÎïÆ·
|
#
|
# @author mark
|
# @date 2010-3-31
|
# @version 1.3
|
#
|
# @change: "2012-05-16 15:00" jiang C++Ð޸ĽӿÚGameServer_QueryPlayerByIDºÍGameServer_QueryPlayerResult
|
# @change: "2012-06-27 15:30" whx Ôö¼ÓsetCount´íÎóoss¼Ç¼
|
# @change: "2012-08-10 15:00" zhangxi ÐÞ¸ÄOSS¼Ç¼
|
#
|
#µ¼Èë
|
import GameWorld
|
import ChConfig
|
import ItemControler
|
#---------------------------------------------------------------------
|
"""Version = 2012-08-10 15:00"""
|
#---------------------------------------------------------------------
|
|
#---------------------------------------------------------------------
|
#Â߼ʵÏÖ
|
## ÇëÇóÂß¼
|
# @param query_Type ÇëÇóÀàÐÍ
|
# @param query_ID ÇëÇóµÄÍæ¼ÒID
|
# @param packCMDList ·¢°üÃüÁî [ ]
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoLogic(query_Type , query_ID , packCMDList , tick):
|
curFindPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)
|
|
if not curFindPlayer or curFindPlayer.IsEmpty():
|
return ''
|
|
#²ÎÊýΪ ±³°üID£¬±³°üË÷Òý£¬ÎïÆ·GUID£¬ÎïÆ·Ë÷Òý, ÎïÆ·ÊýÁ¿
|
#packCMDList = [packID , packIndex , itemGUID , cmdIndex , delCount]
|
curItem = curFindPlayer.GetItemManager().GetPack( int( packCMDList[0] ) ).GetAt( int( packCMDList[1] ) )
|
|
reslut = __DoLogic_ItemLock( curFindPlayer , curItem , str( packCMDList[2] ) , int( packCMDList[4] ) )
|
|
sendMsg = '%s'%(reslut)
|
curFindPlayer.GameServer_QueryPlayerByID( ChConfig.queryType_sqtDataServer_GMCommand , int( packCMDList[3] ),
|
'SetItemDelete', sendMsg, len(sendMsg) )
|
return
|
|
## Ëø¶¨ÎïÆ·
|
# @param curFindPlayer µ±Ç°Íæ¼Ò
|
# @param curItem µ±Ç°ÎïÆ·
|
# @param itemGUID ÎïÆ·guid
|
# @param delCount ɾ³ýÊýÁ¿
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_ItemLock( curFindPlayer , curItem , itemGUID , delCount ):
|
if not curItem or curItem.IsEmpty():
|
return 'NoItem'
|
|
curItemGUID = curItem.GetGUID()
|
|
if curItemGUID != itemGUID:
|
return 'NoGUID'
|
|
curItemCount = curItem.GetCount()
|
|
if curItemCount < delCount:
|
return 'NoECount'
|
|
ItemControler.SetItemCount(curItem, curItemCount - delCount,
|
curFindPlayer.GetPlayerID(), curFindPlayer.GetAccID(),
|
curFindPlayer.GetPlayerName())
|
return 'True'
|
#---------------------------------------------------------------------
|
#Ö´Ðнá¹û
|
## Ö´Ðнá¹û
|
# @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò
|
# @param callFunName ¹¦ÄÜÃû³Æ
|
# @param funResult ²éѯµÄ½á¹û
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoResult(curPlayer , callFunName , funResult , tick):
|
return
|