#!/usr/bin/python
|
# -*- coding: GBK -*-
|
|
##@package GMT_UnFobidTalk.py
|
# Êý¾Ý¿âGMÃüÁîÖ´ÐÐ->½â³ýÕʺŽûÑÔ
|
#
|
# @author wdb
|
# @date 2012-06-14
|
# @version 1.4
|
#
|
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
|
# @change: "2012-07-12 18:00" wdb ×Ö·ûת»»ÔÚÈë¿Ú´¦Àí
|
# @change: "2012-07-30 11:30" wdb GM»Ø¸´Ï¸»¯£¬´úÂëÓÅ»¯
|
# @change: "2012-08-10 15:00" zhangxi ÐÞ¸ÄOSS¼Ç¼
|
# @change: "2014-09-05 16:30" hxp ½â½ûͳһÓÃGMTUnForbidTalk
|
#
|
# @note
|
# Ä£¿éÏêϸ˵
|
#Êý¾Ý¿âGMÃüÁîÖ´ÐÐ->½â³ýÕʺŽûÑÔ
|
#---------------------------------------------------------------------
|
#µ¼Èë
|
import IPY_GameServer
|
import GMCommon
|
import ChConfig
|
import GameWorld
|
import DataRecordPack
|
#---------------------------------------------------------------------
|
#È«¾Ö±äÁ¿
|
#---------------------------------------------------------------------
|
VER = "2014-09-05 16:30"
|
#---------------------------------------------------------------------
|
#Â߼ʵÏÖ(ÕâÀïcurPlayer = None)
|
## Ö´ÐÐÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param gmList [cmdIndex gmAccID forbidAcc]
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(orderId, gmCmdDict):
|
|
# »ñµÃ²¢×ª»»×Ö·û´®
|
playerName = gmCmdDict.get(GMCommon.Def_GMKey_PlayerName, '')
|
playerAccID = gmCmdDict.get(GMCommon.Def_GMKey_PlayerAccID, '')
|
|
playerFind = ''
|
# Õ˺ŽûÑÔ
|
if playerAccID != '':
|
queryType = ChConfig.queryType_sqtPlayerByAccID
|
playerFind = playerAccID
|
# Ãû×Ö½ûÑÔ
|
elif playerName != '':
|
playerFind = playerName
|
queryType = ChConfig.queryType_sqtPlayerByName
|
|
# ͨ¹ýÕ˺ÅËø¶¨
|
if playerFind != '':
|
GMCommon.GMTool_MapServer_Query(queryType, orderId, playerFind,
|
gmCmdDict, 'GMTUnForbidTalk', [])
|
return
|
|
forbidAccIP = gmCmdDict.get(GMCommon.Def_GMKey_IP, '')
|
if forbidAccIP == "":
|
GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)
|
return
|
|
#²Ù×÷·û
|
gmOper = IPY_GameServer.gmForbidTalk
|
ipManager = GameWorld.GetGameWorld().GetAllDBIPManage()
|
|
curFindIP = ipManager.FindIPManage(forbidAccIP, gmOper)
|
#²»´æÔڴ˲Ù×÷
|
if not curFindIP:
|
GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_NoNeed)
|
return
|
|
#¹ã²¥ËùÓеØÍ¼ , Èç¹ûÍæ¼ÒÔÚÏßÖ´Ðд˲Ù×÷
|
playerManager = GameWorld.GetPlayerManager()
|
|
for index in range(playerManager.GetPlayerCount()):
|
curPlayer = playerManager.GetPlayerByIndex(index)
|
if not curPlayer.GetID():
|
continue
|
|
if curPlayer.GetIP() != forbidAccIP:
|
continue
|
|
GMCommon.GMTool_MapServer_Query(ChConfig.queryType_sqtPlayerByAccID, orderId,
|
curPlayer.GetAccID(), gmCmdDict, 'GMTUnForbidTalk', [], False)
|
|
#ɾ³ýÕâÌõ²Ù×÷
|
result = ipManager.DeleteIPManage(forbidAccIP, gmOper)
|
|
if result:
|
#֪ͨ³É¹¦
|
GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success)
|
else:
|
GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_DeleteIPFail)
|
|
#¼Ç¼Á÷Ïò
|
DataRecordPack.DR_ToolGMOperate(0, '', '', gmCmdDict.get(GMCommon.Def_GMKey_Type, forbidAccIP))
|
return
|
|
|