#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_DeleteTestRebate # # @todo:ɾµµ²âÊÔ·µÀû·µ»Ø # @author hxp # @date 2026-03-18 # @version 1.0 # # ÏêϸÃèÊö: ɾµµ²âÊÔ·µÀû·µ»Ø # #------------------------------------------------------------------------------- #"""Version = 2026-03-18 18:00""" #------------------------------------------------------------------------------- import GMCommon import GameWorld from Player import (PlayerControl) import IpyGameDataPY import DataRecordPack import ShareDefine import PlayerMail import ItemCommon import ChConfig def OnExec(gmCmdDict): errorMsg = "" from GMToolLogicProcess import ProjSpecialProcess Result, curPlayer = ProjSpecialProcess.GMCmdPlayerValidation(gmCmdDict) if Result != GMCommon.Def_Success: return Result, errorMsg if not curPlayer: return Result, "offline" # Íæ¼ÒÔÚÏߣ¬¿É´¦Àí playerID = curPlayer.GetPlayerID() Result = GMCommon.Def_Unknow GMT_Name = gmCmdDict.get(GMCommon.Def_GMKey_Type, '') appID = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 1) playerAppID = GameWorld.GetAppIDByAccID(curPlayer.GetAccID()) if playerAppID != appID: return GMCommon.Def_Unknow, "appID error. playerAppID=%s" % playerAppID rebateRate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 5) if rebateRate <= 0: return GMCommon.Def_Unknow, "rebateRate is zero." itemID = ItemCommon.GetMoneyItemID(ShareDefine.TYPE_Price_PayCoin) if not itemID: return GMCommon.Def_Unknow, "payCoin itemID error." if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DeleteTestRebate): return GMCommon.Def_Unknow, "already rebate." accountPayTotal = GameWorld.ToNumDef(gmCmdDict.get('accountPayTotal', '0'), 0) # µ¥Î»£¬Ôª£¬Ö§³ÖСÊý GameWorld.Log("ɾµµ²âÊÔ³äÖµ×ܶî: %s" % accountPayTotal, curPlayer.GetPlayerID()) # Ö»ÒªÓÐÊÕµ½Í¬²½£¬¸Ã½ÇÉ«¾Í±ê¼ÇΪÒÑ´¦Àí£¬ÈçÓÐÒì³£ÔÙ½øÐÐÊÖ¶¯²¹³¥ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DeleteTestRebate, 1) if accountPayTotal > 0: rebateMoney = int(accountPayTotal * rebateRate / 100.0 * 100) # ³ý100Ϊ°Ù·Ö±È£¬³Ë100Ϊcoin±ÈÀý itemList = [[itemID, rebateMoney]] paramList = [accountPayTotal, rebateRate] PlayerMail.SendMailByKey("DeleteTestRebate", playerID, itemList, paramList) resultDict = {"accountPayTotal":accountPayTotal, "rebateRate":rebateRate, "itemID":itemID, "rebateMoney":rebateMoney} DataRecordPack.DR_ToolGMOperate(playerID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), GMT_Name, resultDict) return GMCommon.Def_Success