#!/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  
 | 
      
 | 
  
 |