From a7ab0247c7b8eff06ad104bee39bc035384ca43e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 23 七月 2025 12:08:22 +0800 Subject: [PATCH] 80 【常规】背包-服务端(增加背包购买格子;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CTG.py | 134 +++++++++++++++++++++++--------------------- 1 files changed, 71 insertions(+), 63 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CTG.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CTG.py index e6fb080..9929b80 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CTG.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/PyMongoDB/GMToolLogicProcess/Commands/GMT_CTG.py @@ -1,83 +1,91 @@ #!/usr/bin/python # -*- coding: GBK -*- -#--------------------------------------------------------------------- +#------------------------------------------------------------------------------- # -#--------------------------------------------------------------------- -##@package GMT_CTG -# GM命令CTG +##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_CTG # -# @author whx -# @date 2012-08-27 13:59 +# @todo:GM工具命令 - CTG充值 +# @author hxp +# @date 2025-06-03 # @version 1.0 # -# @note -#--------------------------------------------------------------------- -"""Version = 2012-08-27 13:59""" -#--------------------------------------------------------------------- -#导入 -import GMCommon -from MangoDBCommon import fix_incomingText -#--------------------------------------------------------------------- -#全局变量 +# 详细描述: GM工具命令 - CTG充值 +# +#------------------------------------------------------------------------------- +#"""Version = 2025-06-03 14:00""" +#------------------------------------------------------------------------------- -#--------------------------------------------------------------------- +import GMCommon +import GameWorld +from Player import (PlayerControl, PlayerCoin) +import IpyGameDataPY +import IPY_GameWorld +import DataRecordPack +import ShareDefine +import ChConfig ## 收到gm命令执行 # @param gmCmdDict:gm命令字典 # @return None def OnExec(gmCmdDict): - queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '') - playerFind = gmCmdDict.get(GMCommon.Def_GMKey_PlayerFind, '') - #value = gmCmdDict.get('value', '') - if queryType not in [GMCommon.Def_GMKey_PlayerAccID, GMCommon.Def_GMKey_PlayerName]: - return GMCommon.Def_ParamErr, '' + errorMsg = "" + from GMToolLogicProcess import ProjSpecialProcess + Result, curPlayer = ProjSpecialProcess.GMCmdPlayerValidation(gmCmdDict) + if Result != GMCommon.Def_Success: + return Result, errorMsg + if not curPlayer: + return Result, "玩家不在线,上线后处理" - if len(playerFind) <= 0: - return GMCommon.Def_ParamErr, '' + # 玩家在线,可处理 + playerID = curPlayer.GetPlayerID() + Result = GMCommon.Def_Unknow + GMT_Name = gmCmdDict.get(GMCommon.Def_GMKey_Type, '') - return GMCommon.Def_DoQueryUserDB, '' + value = gmCmdDict.get('value', '') + appID = gmCmdDict.get('appID', '') + isAddBourseMoney = GameWorld.ToIntDef(gmCmdDict.get('isAddBourseMoney', ''), 0) + goldBefore = PlayerControl.GetMoneyReal(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money) + changeCoinPointBefore = curPlayer.GetChangeCoinPointTotal() + bourseMoneyBefore = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney) -## 查询logdb返回 -# @param logdb:logdb -# @param data:传入的信息 -# @param gmCmdDict:gm命令字典 -# @return None -def LogDBResponse(logdb, data, gmCmdDict): - if data == "": - return GMCommon.Def_DoQueryUserDB, '' - # 修改为离线可用 - return GMCommon.Def_SendToGameServer, '' -# if GMCommon.GetPlayerOnLineByAccID(logdb, data): -# return GMCommon.Def_SendToGameServer, '' -# -# return GMCommon.Def_PlayerOfLine, '' - - -## 查询userdb返回 -# @param userdb:userdb -# @param data:传入的信息 -# @param gmCmdDict:gm命令字典 -# @return None -def UserDBResponse(userdb, data, gmCmdDict): - queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '') - playerFind = gmCmdDict.get(GMCommon.Def_GMKey_PlayerFind, '') + orderInfoIpyData = None + if appID: + orderInfoIpyData = IpyGameDataPY.GetIpyGameDataNotLog("OrderInfo", value, appID) + if not orderInfoIpyData: + Result = GMCommon.Def_ParamErr + errorMsg = "Can not found the orderInfo(%s) and appID(%s)!" % (value, appID) + + if errorMsg: + return Result, errorMsg - playerAccID = "" - # 玩家姓名 - if queryType == GMCommon.Def_GMKey_PlayerName: - playerAccID = GMCommon.GetPlayerAccID(userdb, {'PlayerName':fix_incomingText(playerFind), 'IsDeleted':0}) + orderRMB = GameWorld.ToNumDef(value, None) + if not orderInfoIpyData and orderRMB != None: + if PlayerCoin.PlayerCoinToGoldEx(curPlayer, orderRMB, ChConfig.Def_GiveMoney_GMTCTG, isAddBourseMoney): + Result = GMCommon.Def_Success + else: + errorMsg = "order error! value(%s)" % (value) + else: + orderInfo = value + if PlayerCoin.DoGMCTG(curPlayer, orderInfo, appID, isAddBourseMoney, ChConfig.Def_GiveMoney_GMTCTG): + Result = GMCommon.Def_Success + else: + errorMsg = "orderInfo error! appID(%s), value(%s)" % (appID, value) + + if Result != GMCommon.Def_Success: + return Result, errorMsg - elif queryType == GMCommon.Def_GMKey_PlayerAccID: - playerAccID = GMCommon.GetPlayerAccID(userdb, {'AccID':fix_incomingText(playerFind), 'IsDeleted':0}) + goldAfter = PlayerControl.GetMoneyReal(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money) + changeCoinPointAfter = curPlayer.GetChangeCoinPointTotal() + bourseMoneyAfter = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_BourseMoney) - if playerAccID == '': - return GMCommon.Def_NoTag, '' - - return GMCommon.Def_DoQueryLogDB, playerAccID - - - - - + resultDict = {"value":value, "appID":appID, "isAddBourseMoney":isAddBourseMoney, "Result":Result, + "gold":[goldBefore, goldAfter], "changeCoinPoint":[changeCoinPointBefore, changeCoinPointAfter], + "bourseMoney":[bourseMoneyBefore, bourseMoneyAfter]} + + #流向 增加金额记录 + DataRecordPack.DR_ToolGMOperate(playerID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), GMT_Name, resultDict) + + return Result, resultDict + \ No newline at end of file -- Gitblit v1.8.0