|  |  | 
 |  |  |     if not loadOK:
 | 
 |  |  |         return GMCommon.Def_NoTag, ''
 | 
 |  |  |     
 | 
 |  |  |     unForbidDevice = gmCmdDict.get("unForbidDevice", '')
 | 
 |  |  |     unForbidType = GMCommon.Def_PysForbidTalkDevice if unForbidDevice else GMCommon.Def_PysForbidTalk
 | 
 |  |  |     # 玩家账号正常
 | 
 |  |  |     if (dbPlayer.AccState & pow(2, GMCommon.Def_PysForbidTalk)) <= 0:
 | 
 |  |  |     if (dbPlayer.AccState & pow(2, unForbidType)) <= 0:
 | 
 |  |  |         return GMCommon.Def_NoNeed, ''
 | 
 |  |  |         
 | 
 |  |  |     # 设置玩家账号状态
 | 
 |  |  |     dbPlayer.AccState = dbPlayer.AccState ^ pow(2, GMCommon.Def_PysForbidTalk)
 | 
 |  |  |     dbPlayer.AccState = dbPlayer.AccState ^ pow(2, unForbidType)
 | 
 |  |  |     if unForbidType == GMCommon.Def_PysForbidTalkDevice and (dbPlayer.AccState & pow(2, GMCommon.Def_PysForbidTalk)):
 | 
 |  |  |         dbPlayer.AccState = dbPlayer.AccState ^ pow(2, GMCommon.Def_PysForbidTalk)
 | 
 |  |  |     dbPlayer.ExAttr17 = dbPlayer.AccState
 | 
 |  |  |     dbPlayer.adoUpdateC(collection)
 | 
 |  |  |              | 
 |  |  |      | 
 |  |  |     # 记录流向
 | 
 |  |  |     dataDic = {"PlayerID":dbPlayer.PlayerID, 'AccID':playerAccID}
 | 
 |  |  |     GMCommon.SendEventPack(gmCmdDict.get(GMCommon.Def_GMKey_Type, ''), dataDic)
 | 
 |  |  |     mylog.info("GMT_UnForbidTalk: playerAccID=%s,unForbidType=%s,AccState=%s" % (playerAccID, unForbidType, dbPlayer.AccState))
 | 
 |  |  |     return GMCommon.Def_Success, ''
 | 
 |  |  | 
 | 
 |  |  | 
 |