#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package PyMongoDB.GMToolLogicProcess.Commands.GMT_ForbidTalk # # @todo:GM¹¤¾ßÃüÁî - ½ûÑÔ/½â½û # @author hxp # @date 2026-03-06 # @version 1.0 # # ÏêϸÃèÊö: GM¹¤¾ßÃüÁî - ½ûÑÔ/½â½û # #------------------------------------------------------------------------------- #"""Version = 2026-03-06 15:00""" #------------------------------------------------------------------------------- import GMCommon import GameWorld from Player import (PlayerControl) import IPY_GameWorld import DataRecordPack def OnExec(gmCmdDict): queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '') #playerFind = gmCmdDict.get(GMCommon.Def_GMKey_PlayerFind, '') if queryType == "IP": return __doForbidTalkByIP(gmCmdDict) errorMsg = "" from GMToolLogicProcess import ProjSpecialProcess Result, curPlayer = ProjSpecialProcess.GMCmdPlayerValidation(gmCmdDict) if Result != GMCommon.Def_Success: return Result, errorMsg if not curPlayer: return Result, "Íæ¼Ò²»ÔÚÏߣ¬ÉÏÏߺó×Ô¶¯´¦Àí" # Íæ¼ÒÔÚÏߣ¬¿É´¦Àí playerID = curPlayer.GetPlayerID() Result = GMCommon.Def_Unknow #GMT_Name = gmCmdDict.get(GMCommon.Def_GMKey_Type, '') forbidType = gmCmdDict.get("forbidType", '') isDevice = gmCmdDict.get("isDevice", '') forbitDay = GameWorld.ToIntDef(gmCmdDict.get("forbitDay", '0')) forbitHour = GameWorld.ToIntDef(gmCmdDict.get("forbitHour", '0')) forbitMinute = GameWorld.ToIntDef(gmCmdDict.get("forbitMinute", '0')) # ½ûÑÔ if forbidType == "1": if forbitDay <= 0 and forbitHour <= 0 and forbitMinute <= 0: return GMCommon.Def_ParamErr, "ÐèÉèÖýûÑÔʱ³¤" forbitTotalMinute = forbitDay * 24 * 60 + forbitHour * 60 + forbitMinute # ½ûÑÔʱ³¤ curFindPlayer_GMOper = curPlayer.GetGMOperManager() gmOper = curFindPlayer_GMOper.AddGMOper(IPY_GameWorld.gmForbidTalk) gmOper.SetGMAccID(curPlayer.GetAccID()) gmOper.SetLastTime(forbitTotalMinute) curFindPlayer_GMOper.Sync_SaveToDB() GameWorld.Log("½ûÑÔ·ÖÖÓ=%s,isDevice=%s,endTime=%s" % (forbitTotalMinute, isDevice, str(gmOper.GetEndTime())), playerID) if isDevice: PlayerControl.SetGMForbidenTalk(curPlayer, 2) PlayerControl.SetGMForbidenTalk(curPlayer, 1) #PlayerControl.NotifyCode(curFindPlayer, "GeRen_chenxin_80731", [lastTime]) DataRecordPack.DR_ToolGMOperate(playerID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), "GMTFobidTalk") # ½â½û else: curFindPlayer_GMOper = curPlayer.GetGMOperManager() for index in range(curFindPlayer_GMOper.GetCount()): curOper = curFindPlayer_GMOper.GetAt(index) if curOper.GetOper() == IPY_GameWorld.gmForbidTalk: curFindPlayer_GMOper.DeleteOper(IPY_GameWorld.gmForbidTalk) curFindPlayer_GMOper.Sync_SaveToDB() break if isDevice: PlayerControl.SetGMForbidenTalk(curPlayer, 3) PlayerControl.SetGMForbidenTalk(curPlayer, 0) #PlayerControl.NotifyCode(curFindPlayer, "GeRen_liubo_97211") #Á÷Ïò DataRecordPack.DR_ToolGMOperate(playerID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), "GMTUnForbidTalk") return GMCommon.Def_Success def __doForbidTalkByIP(gmCmdDict): Result = GMCommon.Def_Unknow # Ôݲ»Ö§³Ö£¬ºóÐøÀ©Õ¹£¬ÐèÒª´¦ÀíÈ«¾Ö¹ÜÀí #gmOper = IPY_GameServer.gmForbidTalk #ipManager = GameWorld.GetGameWorld().GetAllDBIPManage() #¸ù¾ÝIPɸѡ£¬Ö±½Ó½ûÑÔ #PlayerControl.SetGMForbidenTalk(curFindPlayer, 1) return Result, "Ôݲ»Ö§³Ö"