#!/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, "Ôݲ»Ö§³Ö"
|