From 49d3a89c86edfd6e7f0b5c0e30ef71766703a46a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 02 十一月 2019 16:26:40 +0800
Subject: [PATCH] 8321 【主干】【后端】GM工具优化(禁言及封号相关数据优化,同步更新AccState 及 ExAttr17, GM工具支持离线/在线操作及查询)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMToolForbidLogin.py |    3 +
 ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidTalk.py                                    |    1 
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py                                               |    8 ++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTUnForbidTalk.py   |    6 ---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_Offline_UnBind.py    |    3 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTForbidTalk.py     |    9 ----
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py                                   |    3 +
 ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidTalk.py                                      |    1 
 ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py                                                    |    4 ++
 ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidLogin.py                                   |    1 
 ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidLogin.py                                     |    1 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py                               |    4 -
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CloseAccID.py        |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGMOper.py                           |   13 +++++-
 ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py                                                        |   17 ++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py                          |   29 ++++++++++++++
 16 files changed, 79 insertions(+), 26 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 0d71834..34b1463 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -618,6 +618,10 @@
         PlayerControl.SetGMForbidenTalk(curPlayer, packValue)
         return
     
+    if packType == ShareDefine.CDBPlayerRefresh_ExAttr17:
+        PlayerControl.SetPlayerAccState(curPlayer, packValue)
+        return
+
     if packType == IPY_GameServer.CDBPlayerRefresh_State:
         # 脱机在线
         PlayerControl.SetIsTJG(curPlayer, packValue)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
index d43cfd5..2176370 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
@@ -28,6 +28,7 @@
 #"""Version = 2017-06-22 15:00"""
 #---------------------------------------------------------------------
 import GameWorld
+import PlayerDBOper
 import IPY_GameServer
 import IpyGameDataPY
 import CrossRealmMsg
@@ -253,6 +254,13 @@
 def GetGMForbidenTalk(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_ForbiddenTalk)
 def SetGMForbidenTalk(curPlayer, value): curPlayer.SetDict(ChConfig.Def_ForbiddenTalk, value)
 
+# 玩家账号状态值
+def SetPlayerAccState(curPlayer, accState):
+    #curPlayer.SetAccState(accState)
+    curPlayer.SetExAttr17(accState)
+    #需要立即更新DB
+    PlayerDBOper.UpdateDBOper(PlayerDBOper.Table_DBPlayer, {"PlayerID":curPlayer.GetPlayerID()}, {"AccState":accState, "ExAttr17":accState})
+    return
 
 #------------------------------------------------------------------------------ 
 
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index 2171143..4d97373 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -864,7 +864,22 @@
 CDBPlayerRefresh_FinalHurtReducePer,   # 最终伤害减少百分比 
 CDBPlayerRefresh_YinjiTime,   # 每X秒减少印记时间,毫秒
 CDBPlayerRefresh_YinjiCnt,   # 当前印记数 214
-) = range(146, 215)
+CDBPlayerRefresh_SkillAddPer1,   # 技能伤害增强1 215
+CDBPlayerRefresh_SkillAddPer2,   # 技能伤害增强2
+CDBPlayerRefresh_SkillAddPer3,   # 技能伤害增强3
+CDBPlayerRefresh_SkillAddPer4,   # 技能伤害增强4
+CDBPlayerRefresh_SkillAddPer5,   # 技能伤害增强5
+CDBPlayerRefresh_SkillAddPer6,   # 技能伤害增强6 220
+CDBPlayerRefresh_SkillAddPer7,   # 技能伤害增强7
+CDBPlayerRefresh_SkillReducePer1,   # 受到技能伤害减少1
+CDBPlayerRefresh_SkillReducePer2,   # 受到技能伤害减少2
+CDBPlayerRefresh_SkillReducePer3,   # 受到技能伤害减少3
+CDBPlayerRefresh_SkillReducePer4,   # 受到技能伤害减少4 225
+CDBPlayerRefresh_SkillReducePer5,   # 受到技能伤害减少5
+CDBPlayerRefresh_SkillReducePer6,   # 受到技能伤害减少6
+CDBPlayerRefresh_SkillReducePer7,   # 受到技能伤害减少7
+CDBPlayerRefresh_ExAttr17,          # ExAttr17 
+) = range(146, 230)
 
 TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
 TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 8d0e19d..b86ab85 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -721,9 +721,7 @@
     if tjgTime:
         curPlayer.SendGameServerRefreshState(IPY_GameWorld.CDBPlayerRefresh_HappyPoint, tjgTime)
         
-    # 如果被禁言的,上线同步前端
-    if curPlayer.GetGMForbidenTalk():
-        curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ForbidenTalk, curPlayer.GetGMForbidenTalk(), False)
+    PlayerControl.DoGMForbidenTalkOnLogin(curPlayer)
     
     return
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index 212471d..d5b0438 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -5834,6 +5834,35 @@
     curPlayer.SetGMForbidenTalk(value)
     curPlayer.SendGameServerRefreshState(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value)
     curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value, False)
+    
+    #同步设置离线DB玩家账号状态值
+    accState = curPlayer.GetAccState()
+    if value:
+        accState = accState | pow(2, ChConfig.Def_PysForbidTalk)
+    elif (accState & pow(2, ChConfig.Def_PysForbidTalk)) > 0:
+        accState = accState ^ pow(2, ChConfig.Def_PysForbidTalk)
+    SetPlayerAccState(curPlayer, accState)
+    return
+
+def SetPlayerAccState(curPlayer, accState):
+    curPlayer.SetAccState(accState)
+    curPlayer.SetExAttr17(accState) # 同步设置该值 0309 封包登录时需要用到
+    curPlayer.SendGameServerRefreshState(ShareDefine.CDBPlayerRefresh_ExAttr17, accState)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ExAttr17, accState, False)
+    GameWorld.DebugLog("SetPlayerAccState %s" % (accState))
+    return
+
+def DoGMForbidenTalkOnLogin(curPlayer):
+    ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
+    ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
+    
+    if not curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
+        return
+    GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
+    value = 1
+    curPlayer.SetGMForbidenTalk(value)
+    curPlayer.SendGameServerRefreshState(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value)
+    curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_ForbidenTalk, value, False)
     return
 
 ## 队伍相关审核开关状态, joinReqCheck-入队申请是否需要审核; inviteCheck-组队邀请是否需要审核;
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGMOper.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGMOper.py
index eec4eb2..13fc89f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGMOper.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGMOper.py
@@ -55,6 +55,13 @@
             delList.append(curOperValue)
             continue
         
+        if curOperValue == IPY_GameWorld.gmForbidTalk:
+            if not curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
+                GameWorld.DebugLog("玩家账号状态已被解除禁言,删除该GMOper命令!")
+                DoClearOper(curPlayer, curOperValue)
+                delList.append(curOperValue)
+                continue
+        
         #执行GM命令
         DoOper(curPlayer, curOperValue)
             
@@ -214,7 +221,7 @@
     
     curFindPlayer_GMOper.Sync_SaveToDB()
     
-    curTagPlayer.SetAccState(IPY_GameWorld.pysForbidden)
+    PlayerControl.SetPlayerAccState(curTagPlayer, IPY_GameWorld.pysForbidden)
     
     curTagPlayer.Kick(IPY_GameWorld.disGMKick)
     return
@@ -236,8 +243,8 @@
     
     curFindPlayer_GMOper.Sync_SaveToDB()
     
-    curTagPlayer.SetAccState(IPY_GameWorld.pysForbidden)
-
+    PlayerControl.SetPlayerAccState(curTagPlayer, IPY_GameWorld.pysForbidden)
+    
     curTagPlayer.Kick(IPY_GameWorld.disGMKick)
     return
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CloseAccID.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CloseAccID.py
index 8b35453..b27ccd7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CloseAccID.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_CloseAccID.py
@@ -53,7 +53,7 @@
     
     curFindPlayer_GMOper.Sync_SaveToDB()
     
-    curFindPlayer.SetAccState(IPY_GameWorld.pysForbidden)
+    PlayerControl.SetPlayerAccState(curFindPlayer, IPY_GameWorld.pysForbidden)
     
     curFindPlayer.Kick(IPY_GameWorld.disGMKick)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTForbidTalk.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTForbidTalk.py
index dc32e88..60a2b86 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTForbidTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTForbidTalk.py
@@ -36,15 +36,6 @@
 #  @remarks 函数详细说明.
 def DoLogic(query_Type, query_ID, packCMDList, tick):
     GameWorld.DebugLog("GY_Query_GMTForbidTalk packCMDList=%s" % str(packCMDList))
-#    curFindPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)
-#
-#    if not curFindPlayer or curFindPlayer.IsEmpty():
-#        return ''
-#    
-#    curFindPlayer.SetAccState(curFindPlayer.GetAccState()|pow(2, ChConfig.Def_PysForbidTalk))
-#    curFindName = curFindPlayer.GetPlayerName()
-#    #流向
-#    DataRecordPack.DR_ToolGMOperate(query_ID, curFindName, curFindPlayer.GetAccID(), 'GMT_FobidTalk')
     
     # 在线时可设定禁言时长;离线则在UserDBResponse执行状态禁言
     # 故解禁时需两种情况都解除
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTUnForbidTalk.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTUnForbidTalk.py
index d9cac89..ac2780e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTUnForbidTalk.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTUnForbidTalk.py
@@ -41,12 +41,6 @@
     if not curFindPlayer or curFindPlayer.IsEmpty():
         return ''
     
-    #===========================================================================
-    # accState = curFindPlayer.GetAccState()
-    # if (accState & pow(2, ChConfig.Def_PysForbidTalk)) > 0:
-    #    curFindPlayer.SetAccState(accState ^ pow(2, ChConfig.Def_PysForbidTalk))
-    #===========================================================================
-        
     curFindName = curFindPlayer.GetPlayerName()
     #流向
     DataRecordPack.DR_ToolGMOperate(query_ID, curFindName, curFindPlayer.GetAccID(), 'GMTUnForbidTalk')
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMToolForbidLogin.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMToolForbidLogin.py
index ab1afa4..d3f432c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMToolForbidLogin.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMToolForbidLogin.py
@@ -20,6 +20,7 @@
 import ChConfig
 import GameWorld
 import DataRecordPack
+import PlayerControl
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -39,7 +40,7 @@
     if not curFindPlayer or curFindPlayer.IsEmpty():
         return ''
     
-    curFindPlayer.SetAccState(curFindPlayer.GetAccState()|pow(2, ChConfig.Def_PysForbidByPy))
+    PlayerControl.SetPlayerAccState(curFindPlayer, curFindPlayer.GetAccState()|pow(2, ChConfig.Def_PysForbidByPy))
     curFindName = curFindPlayer.GetPlayerName()
 
     DataRecordPack.DR_ToolGMOperate(query_ID, curFindName, curFindPlayer.GetAccID(), 'GMT_FobidLogin')
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_Offline_UnBind.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_Offline_UnBind.py
index 5e22874..5c9647e 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_Offline_UnBind.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_Offline_UnBind.py
@@ -16,6 +16,7 @@
 #---------------------------------------------------------------------
 import GameWorld
 import IPY_GameWorld
+import PlayerControl
 #---------------------------------------------------------------------
 #全局变量
 #---------------------------------------------------------------------
@@ -54,7 +55,7 @@
         if curOper.GetOper() == IPY_GameWorld.pysForbidden:
             curFindPlayer_GMOper.DeleteOper(IPY_GameWorld.pysForbidden)
             curFindPlayer_GMOper.Sync_SaveToDB()
-            curFindPlayer.SetAccState(IPY_GameWorld.pysNormal)
+            PlayerControl.SetPlayerAccState(curFindPlayer, IPY_GameWorld.pysNormal)
             return '%s,%s'%(curFindPlayer.GetPlayerID(), curFindPlayer.GetName())
         
     GameWorld.Log('###脱机工具解封异常 : 玩家 = %s查找解封信息失败'%(curFindPlayer.GetPlayerID()))       
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index fd59db3..4d97373 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -878,7 +878,8 @@
 CDBPlayerRefresh_SkillReducePer5,   # 受到技能伤害减少5
 CDBPlayerRefresh_SkillReducePer6,   # 受到技能伤害减少6
 CDBPlayerRefresh_SkillReducePer7,   # 受到技能伤害减少7
-) = range(146, 229)
+CDBPlayerRefresh_ExAttr17,          # ExAttr17 
+) = range(146, 230)
 
 TYPE_Price_Gold_Paper_Money = 5    # 金钱类型,(先用礼券,再用金子)
 TYPE_Price_Family_Contribution = 6 # 战盟贡献度(活跃度转换得来)
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidLogin.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidLogin.py
index 23e2922..abb68bd 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidLogin.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidLogin.py
@@ -96,6 +96,7 @@
     
     # 设置玩家账号状态
     dbPlayer.AccState = dbPlayer.AccState|pow(2, GMCommon.Def_PysForbidByPy)
+    dbPlayer.ExAttr17 = dbPlayer.AccState
     dbPlayer.adoUpdateC(collection)
     
     # 记录流向
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidTalk.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidTalk.py
index 0b082f6..a22c99a 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidTalk.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_ForbidTalk.py
@@ -98,6 +98,7 @@
         
     # 设置玩家账号状态
     dbPlayer.AccState = dbPlayer.AccState|pow(2, GMCommon.Def_PysForbidTalk)
+    dbPlayer.ExAttr17 = dbPlayer.AccState
     dbPlayer.adoUpdateC(collection)
             
     # 记录流向
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidLogin.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidLogin.py
index 52ecab5..3fe993d 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidLogin.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidLogin.py
@@ -82,6 +82,7 @@
         
     # 设置玩家账号状态
     dbPlayer.AccState = dbPlayer.AccState ^ pow(2, GMCommon.Def_PysForbidByPy)
+    dbPlayer.ExAttr17 = dbPlayer.AccState
     dbPlayer.adoUpdateC(collection)
 
     # 记录流向
diff --git a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidTalk.py b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidTalk.py
index ef8e88a..7315941 100644
--- a/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidTalk.py
+++ b/ServerPython/db/PyMongoDataServer/GMToolLogicProcess/Commands/GMT_UnForbidTalk.py
@@ -100,6 +100,7 @@
         
     # 设置玩家账号状态
     dbPlayer.AccState = dbPlayer.AccState ^ pow(2, GMCommon.Def_PysForbidTalk)
+    dbPlayer.ExAttr17 = dbPlayer.AccState
     dbPlayer.adoUpdateC(collection)
             
     # 记录流向

--
Gitblit v1.8.0