| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
|   | 
| ##@package GMT_LockIP  | 
| # Êý¾Ý¿âGMÃüÁîÖ´ÐÐ->IPËø¶¨  | 
| #  | 
| # @author whx  | 
| # @date 2012-08-10 17:00  | 
| # @version 1.0  | 
| #  | 
| # ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ  | 
| # @note  | 
| # Ä£¿éÏêϸ˵  | 
| #½Å±¾ËµÃ÷  | 
| #---------------------------------------------------------------------  | 
| #µ¼Èë  | 
| import IPY_GameServer  | 
| import GMCommon  | 
| import ChConfig  | 
| import GameWorld  | 
| import DataRecordPack  | 
| #---------------------------------------------------------------------  | 
| #È«¾Ö±äÁ¿  | 
| #---------------------------------------------------------------------  | 
| VER = "2012-08-10 17:00"   | 
| #---------------------------------------------------------------------  | 
| #Â߼ʵÏÖ(ÕâÀïcurPlayer = None)  | 
| ## Ö´ÐÐÂß¼  | 
| #  @param curPlayer µ±Ç°Íæ¼Ò  | 
| #  @param gmList   | 
| #  @return None  | 
| #  @remarks º¯ÊýÏêϸ˵Ã÷.  | 
| def OnExec(orderId, gmCmdDict):  | 
|     queryType = gmCmdDict.get(GMCommon.Def_GMKey_QueryType, '')  | 
|       | 
|     #IP´¦·ÖÐÅÏ¢  | 
|     if queryType == "allPlayer":  | 
|         GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_ParamErr)    | 
|         return   | 
|       | 
|     forbidLoginList = []  | 
|     forbidTalkList = []  | 
|       | 
|     allIPManager = GameWorld.GetGameWorld().GetAllDBIPManage()  | 
|       | 
|     ipManageCnt = allIPManager.GetCount()  | 
|       | 
|     if ipManageCnt <= 0:  | 
|         GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_NoTag)    | 
|         return  | 
|       | 
|     for i in range(ipManageCnt):  | 
|         ipMgr = allIPManager.GetAt(i)  | 
|         gmOper = ipMgr.GetOper()  | 
|           | 
|         #½ûÖ¹µÇ½  | 
|         if gmOper == IPY_GameServer.gmForbidAcc:  | 
|             forbidLoginList.append(ipMgr.GetIP())  | 
|           | 
|         #½ûÑÔ  | 
|         if gmOper == IPY_GameServer.gmForbidTalk:  | 
|             forbidTalkList.append(ipMgr.GetIP())  | 
|       | 
|     forbidInfo = {  | 
|               'forbidLoginList':forbidLoginList,  #ÊÇ·ñËø¶¨  | 
|               'forbidTalkList':forbidTalkList,  #ÊÇ·ñ½ûÑÔ  | 
|               }  | 
|       | 
|     if len(forbidInfo) > pow(2, 14):  | 
|         #Êý¾Ý¹ý´ó  | 
|         GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_MaxLimit)     | 
|         return  | 
|       | 
|     #Ö´Ðгɹ¦  | 
|     GMCommon.GMCommandResult(orderId, gmCmdDict, GMCommon.Def_Success, forbidInfo)          | 
|     return  | 
|       | 
|   | 
|   |