#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.RemoteQuery.GY_Query_GMTDelPlayerMoney
|
#
|
# @todo:GM¹¤¾ß¿Û³ýÍæ¼Ò»õ±Ò
|
# @author hxp
|
# @date 2021-03-18
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: GM¹¤¾ß¿Û³ýÍæ¼Ò»õ±Ò
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2021-03-18 19:00"""
|
#-------------------------------------------------------------------------------
|
|
import GMCommon
|
import ShareDefine
|
import PlayerControl
|
import GameWorld
|
import ChConfig
|
|
## ÇëÇóÂß¼
|
# @param query_Type ÇëÇóÀàÐÍ
|
# @param query_ID ÇëÇóµÄÍæ¼ÒID
|
# @param packCMDList ·¢°üÃüÁî [ ]
|
# @param tick µ±Ç°Ê±¼ä
|
# @return resultDisc
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoLogic(query_Type, query_ID, packCMDList, tick):
|
curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)
|
|
if not curPlayer or curPlayer.IsEmpty():
|
return ''
|
|
orderId, gmCmdDict = packCMDList
|
moneyType = GameWorld.ToIntDef(gmCmdDict.get("moneyType"))
|
moneyValue = GameWorld.ToIntDef(gmCmdDict.get("moneyValue"))
|
delRemark = gmCmdDict.get("delRemark", "")
|
|
retMsg = ""
|
Result = GMCommon.Def_Success
|
if moneyType not in [1, 2, 3, 4, ShareDefine.TYPE_Price_PayCoin] and moneyType not in ShareDefine.TYPE_Price_CurrencyDict:
|
Result = GMCommon.Def_MoneyTypeErr
|
elif not moneyValue:
|
Result = GMCommon.Def_ParamErr
|
retMsg = "money value error."
|
#ÏÉÓñ¡¢°óÓñºǫֱ́½Ó¿Û³ýµÄ²»¼ì²é»õ±ÒÊÇ·ñ×ã¹»£¬Ö§³ÖÖ±½Ó¿Û³É¸ºÖµ
|
elif moneyType not in ShareDefine.MoneyMinusRefreshDict and not PlayerControl.HaveMoney(curPlayer, moneyType, moneyValue, False):
|
Result = GMCommon.Def_ParamErr
|
retMsg = "money is not enough. only %s" % PlayerControl.GetMoney(curPlayer, moneyType)
|
|
if Result == GMCommon.Def_Success:
|
infoDict = {ChConfig.Def_Cost_Reason_SonKey:delRemark}
|
if not PlayerControl.PayMoney(curPlayer, moneyType, moneyValue, ChConfig.Def_Cost_GM, infoDict, isNotify=False, isMinus=True):
|
Result = GMCommon.Def_Unknow
|
retMsg = "pay money error."
|
else:
|
retMsg = "remaining money %s" % PlayerControl.GetMoneyReal(curPlayer, moneyType)
|
|
resultMsg = str([orderId, retMsg, 'GMT_DelPlayerMoney', Result])
|
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))
|
return ''
|
|
|
|
|
|