From a7cda2ada3349bce6a6f9261752c0a2fe5e6927b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 十月 2025 19:26:45 +0800
Subject: [PATCH] 263 【主界面】头像系统(内政-幻境阁系统)-服务端(玩家改名)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py             |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py         |  116 +++++++++-------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py         |    2 
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py  |   20 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/UpdatePlayerName.py |  224 +++++++------------------------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/ServerScript.ini                  |   14 --
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                |    6 
 7 files changed, 140 insertions(+), 244 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index 4ddee20..8b1c571 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -3315,11 +3315,7 @@
 Def_Player_Dict_HasVIPClubNote = 'HasVIPClubNote_186'  # 是否提示过vip升级可加入贵宾俱乐部信息
 Def_Player_Dict_PyPlayerAction = 'PyPlayerAction_187'  # py自定义玩家状态
 Def_Player_Dict_FamilyLV = 'FamilyLV_189'  # 玩家帮会等级
-Def_Player_UpdatePlayerNameCnt = "UpdatePlayerNameCnt_196"  # 角色改名次数
-Def_Player_Dict_UpdatePlayerNameItemIndex = "UpdatePlayerNameItemIndex_198"  # 改名物品在背包的位置
-Def_Player_Dict_UpdatePlayerName = "UpdatePlayerName_199"  # 改名锁
-Def_Player_Dict_UpdateFamilyNameItemIndex = "UpdateFamilyNameItemIndex"  # 改名物品在背包的位置
-Def_Player_Dict_UpdateFamilyName = "UpdateFamilyName"  # 改名锁
+Def_Player_Rename = "Rename"  # 是否已改名过
 Def_Player_Dict_FamilyZhenbaogeCut = "FamilyZhenbaogeCut" #珍宝阁今日是否已砍过价
 Def_Player_Dict_FamilyZhenbaogeBuy = "FamilyZhenbaogeBuy" #珍宝阁今日是否已购买过
 Def_Player_Dict_FamilyDonateCnt = "FamilyDonateCnt_%s"  # 仙盟今日捐献次数,参数(捐献类型)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 465a0be..2654c9c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -19721,6 +19721,70 @@
 
 
 #------------------------------------------------------
+# A9 21 角色改名结果 #tagSCRenameResult
+
+class  tagSCRenameResult(Structure):
+    Head = tagHead()
+    PlayerName = ""    #(char PlayerName[33])//size = 14
+    Result = 0    #(BYTE Result)//角色改名结果
+    data = None
+
+    def __init__(self):
+        self.Clear()
+        self.Head.Cmd = 0xA9
+        self.Head.SubCmd = 0x21
+        return
+
+    def ReadData(self, _lpData, _pos=0, _Len=0):
+        self.Clear()
+        _pos = self.Head.ReadData(_lpData, _pos)
+        self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,33)
+        self.Result,_pos = CommFunc.ReadBYTE(_lpData, _pos)
+        return _pos
+
+    def Clear(self):
+        self.Head = tagHead()
+        self.Head.Clear()
+        self.Head.Cmd = 0xA9
+        self.Head.SubCmd = 0x21
+        self.PlayerName = ""
+        self.Result = 0
+        return
+
+    def GetLength(self):
+        length = 0
+        length += self.Head.GetLength()
+        length += 33
+        length += 1
+
+        return length
+
+    def GetBuffer(self):
+        data = ''
+        data = CommFunc.WriteString(data, self.Head.GetLength(), self.Head.GetBuffer())
+        data = CommFunc.WriteString(data, 33, self.PlayerName)
+        data = CommFunc.WriteBYTE(data, self.Result)
+        return data
+
+    def OutputString(self):
+        DumpString = '''
+                                Head:%s,
+                                PlayerName:%s,
+                                Result:%d
+                                '''\
+                                %(
+                                self.Head.OutputString(),
+                                self.PlayerName,
+                                self.Result
+                                )
+        return DumpString
+
+
+m_NAtagSCRenameResult=tagSCRenameResult()
+ChNetPackDict[eval("0x%02x%02x"%(m_NAtagSCRenameResult.Head.Cmd,m_NAtagSCRenameResult.Head.SubCmd))] = m_NAtagSCRenameResult
+
+
+#------------------------------------------------------
 # A9 06 商城全服购买次数通知 #tagGCStoreServerBuyCntInfo
 
 class  tagGCStoreServerBuyCnt(Structure):
@@ -19826,58 +19890,6 @@
 
 m_NAtagGCStoreServerBuyCntInfo=tagGCStoreServerBuyCntInfo()
 ChNetPackDict[eval("0x%02x%02x"%(m_NAtagGCStoreServerBuyCntInfo.Head.Cmd,m_NAtagGCStoreServerBuyCntInfo.Head.SubCmd))] = m_NAtagGCStoreServerBuyCntInfo
-
-
-#------------------------------------------------------
-#A9 21 角色改名结果 #tagUpdatePlayerNameResult
-
-class  tagUpdatePlayerNameResult(Structure):
-    _pack_ = 1
-    _fields_ = [
-                  ("Cmd", c_ubyte),
-                  ("SubCmd", c_ubyte),
-                  ("Result", c_ubyte),    #角色改名结果
-                  ]
-
-    def __init__(self):
-        self.Clear()
-        self.Cmd = 0xA9
-        self.SubCmd = 0x21
-        return
-
-    def ReadData(self, stringData, _pos=0, _len=0):
-        self.Clear()
-        memmove(addressof(self), stringData[_pos:], self.GetLength())
-        return _pos + self.GetLength()
-
-    def Clear(self):
-        self.Cmd = 0xA9
-        self.SubCmd = 0x21
-        self.Result = 0
-        return
-
-    def GetLength(self):
-        return sizeof(tagUpdatePlayerNameResult)
-
-    def GetBuffer(self):
-        return string_at(addressof(self), self.GetLength())
-
-    def OutputString(self):
-        DumpString = '''//A9 21 角色改名结果 //tagUpdatePlayerNameResult:
-                                Cmd:%s,
-                                SubCmd:%s,
-                                Result:%d
-                                '''\
-                                %(
-                                self.Cmd,
-                                self.SubCmd,
-                                self.Result
-                                )
-        return DumpString
-
-
-m_NAtagUpdatePlayerNameResult=tagUpdatePlayerNameResult()
-ChNetPackDict[eval("0x%02x%02x"%(m_NAtagUpdatePlayerNameResult.Cmd,m_NAtagUpdatePlayerNameResult.SubCmd))] = m_NAtagUpdatePlayerNameResult
 
 
 #------------------------------------------------------
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 da96c9a..42629f2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -126,6 +126,7 @@
 import PlayerActTask
 import PlayerMail
 import DBDataMgr
+import UpdatePlayerName
 import GameServerRefresh
 import IPY_ServerDefine
 import CommFunc
@@ -751,6 +752,7 @@
         PlayerActFamilyGCZ.OnPlayerLogin(curPlayer)
         PlayerTalk.OnPlayerLogin(curPlayer)
         SyncADCntInfo(curPlayer)
+        UpdatePlayerName.OnPlayerLogin(curPlayer)
         
         # 上线查询一次充值订单
         curPlayer.SendDBQueryRecharge()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
index 67ca5a6..f674bed 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBillboard.py
@@ -64,6 +64,26 @@
     
     return
 
+def UpdatePlayerBillboardName(curPlayer):
+    ## 更新排行榜中的玩家名字记录
+    
+    playerID = curPlayer.GetPlayerID()
+    updName = curPlayer.GetPlayerName()
+    billboardMgr = DBDataMgr.GetBillboardMgr()
+    for billboardType in ShareDefine.BillboardTypeList:
+        if billboardType in ShareDefine.FamilyBillboardList:
+            continue
+        groupList = billboardMgr.GetBillboardGroupList(billboardType)
+        for billboardType, groupValue1, groupValue2 in groupList:
+            billboardObj = billboardMgr.GetBillboard(billboardType, groupValue1, groupValue2)
+            billData = billboardObj.FindByID(playerID)
+            if not billData:
+                continue
+            billData.SetName1(updName)
+            
+    # 跨服榜更新, 待处理
+    return
+
 def UpdatePlayerFPTotalBillboard(curPlayer, isForceUpdate=False, isCheckRule=True):
     ##更新玩家总战斗力
 #    
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/UpdatePlayerName.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/UpdatePlayerName.py
index 9db01ba..9f6683b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/UpdatePlayerName.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/UpdatePlayerName.py
@@ -1,198 +1,78 @@
 #!/usr/bin/python
 # -*- coding: GBK -*-
+#-------------------------------------------------------------------------------
 #
+##@package Player.UpdatePlayerName
 #
-##@package UpdatePlayerName.py
+# @todo:改名
+# @author hxp
+# @date 2025-10-15
+# @version 1.0
 #
-# @todo:玩家改名
+# 详细描述: 改名
 #
-# @author jiang
-# @date 2013-01-23 13:30
-# @version 1.5
-# @note:
-#
-# @change: "2013-03-13 17:00" wdb 删除封包
-# @change: "2014-05-22 10:20" xcc 恢复改名功能
-# @change: "2014-12-23 03:40" Alee 改名字典用内存key
-# @change: "2016-11-09 14:10" xdh 修改改名消耗
-# @change: "2017-07-04 20:10" xdh 玩家合服首次登录改名次数重置为0
-#------------------------------------------------------------------------------ 
-#"""Version = 2017-07-04 20:10"""
-#------------------------------------------------------------------------------ 
-# 导入
-import GameWorld
-import ChConfig
-import ReadChConfig
-import PlayerControl
-import IPY_GameWorld
-import ItemCommon
-import ChPyNetSendPack
-import NetPackCommon
-import EventReport
-import ItemControler
-#------------------------------------------------------------------------------ 
+#-------------------------------------------------------------------------------
+#"""Version = 2025-10-15 19:30"""
+#-------------------------------------------------------------------------------
 
-## 合服首登
-def ResetChangeNameCnt(curPlayer):
-    return #暂屏蔽
-    GameWorld.DebugLog('        玩家合服首次登录 改名次数重置为0')
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_UpdatePlayerNameCnt, 0)
-    Sync_UpdatePlayerNameCount(curPlayer)
+import ChConfig
+import GameWorld
+import PlayerControl
+import ChPyNetSendPack
+import PlayerBillboard
+import NetPackCommon
+import IpyGameDataPY
+import PlayerFamily
+import ObjPool
+
+def OnPlayerLogin(curPlayer):
+    if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Rename):
+        Sync_UpdatePlayerNameCount(curPlayer)
     return
 
-#===============================================================================
 #//A1 22 角色改名 #tagUpdatePlayerName
 #
-#struct    tagUpdatePlayerName
+#struct tagUpdatePlayerName
 #{
 #    tagHead        Head;
-#    BYTE        NewNameLen;
+#    BYTE        NewNameLen; 
 #    char        NewName[NewNameLen];
-#    BYTE        ItemIndex;    //改名物品在背包中的位置
-#    DWORD       ServerID;
+#    BYTE        ItemIndex;  //改名物品在背包中的位置
+#    DWORD        ServerID;
 #};
-#===============================================================================
-## 玩家更改名字
-#  @param index: 玩家索引
-#  @param clientData: 封包结构体
-#  @param tick: 时间戳
-#  @return: None
 def UpdatePlayerName(index, clientData, tick):
     
     curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    if GameWorld.IsCrossServer():
-        #itemuse_lzxkoy_0:不可在跨服环境下使用改名功能。
-        PlayerControl.NotifyCode(curPlayer, "itemuse_lzxkoy_0")
-        return
-    
-    if curPlayer.GetDictByKey(ChConfig.Def_Player_Dict_UpdatePlayerName):
-        #正在改名中
-        GameWorld.Log("已经在改名中...", curPlayer.GetID())
-        return
-    
     #新名字
     newName = clientData.NewName
-    itemIndex = clientData.ItemIndex - 1 #客户端发的默认+了1
-    serverID = clientData.ServerID
-    if itemIndex == -1: #-1则默认扣钱否则扣道具
-        return
-        moneyType, moneyCount = GetCostMoney(curPlayer)
-        if not PlayerControl.HaveMoney(curPlayer, moneyType, moneyCount):
-            #金钱不足
-            return False
-    else:
-        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        curItem = itemPack.GetAt(itemIndex)
-        if not __CheckItemUpdatePlayerName(curPlayer, curItem):
-            #物品错误
+    
+    renameState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Rename)
+    if renameState:
+        moneyType, moneyCount = IpyGameDataPY.GetFuncEvalCfg("PlayerRename", 1)
+        if not PlayerControl.PayMoney(curPlayer, moneyType, moneyCount, "Rename"):
             return
-    
-        #改名物品在背包的位置, 因为背包物品索引从0开始, 字典最小值只能0, 所以此次索引+1
-        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_UpdatePlayerNameItemIndex, itemIndex + 1)
-    
-    #设置正在改名中...
-    curPlayer.SetDict(ChConfig.Def_Player_Dict_UpdatePlayerName, 1)
-    
-    #通知GameServer正式改名
-    newNameMsg = str([newName, serverID])
-    GameWorld.Log("UpdatePlayerName 通知GameServer正式改名为:%s"%newNameMsg, curPlayer.GetID())
-    curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_UpdatePlayerName, 0, '', newNameMsg, len(newNameMsg))
-    return True
-
-
-## 验证物品是否为改名贴
-#  @param curPlayer 玩家实例
-#  @param curItem 改名贴
-#  @return 是否为改名贴
-def __CheckItemUpdatePlayerName(curPlayer, curItem):
-    
-    if not ItemCommon.CheckItemCanUse(curItem):
-        return False
-    
-    return (curItem.GetType() == ChConfig.Def_ItemType_ChangePlayerName)
-
-
-## 获取金钱消耗
-#  @param curPlayer: 玩家实例
-#  @return: 金钱类型, 金钱数量
-def GetCostMoney(curPlayer):
-    #改名次数(公式参数)
-    updatePlayerNameCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_UpdatePlayerNameCnt)  
-    moneyType, moneyCount = ReadChConfig.GetEvalChConfig("UpdatePlayerNameMoney")
-    return moneyType, eval(moneyCount)
-    
-#===============================================================================
-#//01 17 角色名同步#tagMUpdatePlayerName
-#tagMUpdatePlayerName    * GettagMUpdatePlayerName();
-#
-#class IPY_MUpdatePlayerName
-#{
-#public:
-#
-#    
-#    unsigned char      GetNewNameLen();
-#    
-#    std::string GetNewName();
-#};
-#===============================================================================
-## 收到GameServer通知改名
-#  @param index: 玩家索引
-#  @param tick: 时间戳
-#  @return
-def GameServer_UpdatePlayerName(index, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    curPlayerName = curPlayer.GetName()
-    
-    sendPack = IPY_GameWorld.IPY_MUpdatePlayerName()
-    newName = sendPack.GetNewName()
-    
-    curPlayer.SetPlayerName(newName)
-    GameWorld.GetPlayerManager().UpdatePlayerNameIndex(curPlayerName, newName)
-    GameWorld.GetMapCopyPlayerManager().UpdatePlayerNameIndex(curPlayerName, newName)
-    #EventReport.WriteEvent_change_name(curPlayer, curPlayerName, newName)
-    GameWorld.Log("UpdatePlayerName MapServer改名成功, newName = %s"%newName, curPlayer.GetID())
         
-    #通知GameServer结果
-    curPlayer.UpdatePlayerNameResult(True)
-    return True
-
-
-## 扣除改名消耗
-#  @param curPlayer: 玩家实例
-#  @return: None
-def PayUpdatePlayerNameCost(curPlayer): 
-    itemIndex = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_UpdatePlayerNameItemIndex) - 1
-    if itemIndex == -1: #-1则默认扣钱否则扣道具
-        #扣除消耗
-        moneyType, moneyCount = GetCostMoney(curPlayer)
-        PlayerControl.PayMoney(curPlayer, moneyType, moneyCount, ChConfig.Def_Cost_Rename)
-    else:
-        #扣除物品
-        itemPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
-        curItem = itemPack.GetAt(itemIndex)
-        if not __CheckItemUpdatePlayerName(curPlayer, curItem):
-            # 物品可能已经变更,不是改名道具了或为空,重新找一遍
-            curItem = ItemControler.FindPlayerItemByType(curPlayer, IPY_GameWorld.rptItem, ChConfig.Def_ItemType_ChangePlayerName)
-        if ItemCommon.CheckItemCanUse(curItem):
-            ItemCommon.DelItem(curPlayer, curItem, 1, True, 'UpdatePlayerName')
-    
-    #改名次数+1
-    #updatePlayerNameCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_UpdatePlayerNameCnt)
-    #PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_UpdatePlayerNameCnt, updatePlayerNameCnt + 1)  
-    
-    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_UpdatePlayerNameItemIndex, 0)
+    oldName = curPlayer.GetName()
+    curPlayer.SetPlayerName(newName)
+    GameWorld.GetPlayerManager().UpdatePlayerNameIndex(oldName, newName)
+    GameWorld.GetMapCopyPlayerManager().UpdatePlayerNameIndex(oldName, newName)
+        
+    #改名结果
+    clientPack = ChPyNetSendPack.tagSCRenameResult()
+    clientPack.PlayerName = curPlayer.GetPlayerName()
+    NetPackCommon.SendFakePack(curPlayer, clientPack)
+    if not renameState:
+        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Rename, 1)
+        Sync_UpdatePlayerNameCount(curPlayer)
+        
+    #同步其他功能玩家名
+    PlayerFamily.RefreshFamilyMember(curPlayer)
+    PlayerBillboard.UpdatePlayerBillboardName(curPlayer)
+    #社交名待更新
     return
 
-
-## 通知改名次数
-#  @param curPlayer: 玩家实例
-#  @return: None
 def Sync_UpdatePlayerNameCount(curPlayer):
-    return
-    updatePlayerNameCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_UpdatePlayerNameCnt)
-    
-    pack = ChPyNetSendPack.tagUpdatePlayerNameCount()
-    pack.Clear()
-    pack.Count = updatePlayerNameCnt
-    NetPackCommon.SendFakePack(curPlayer, pack)
+    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagUpdatePlayerNameCount)
+    clientPack.Count = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Rename)
+    NetPackCommon.SendFakePack(curPlayer, clientPack)
     return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index 35d1190..56276a1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -963,7 +963,7 @@
                                 Def_UniversalGameRecType_LuckyCloudBuyNum, # 幸运云购购买号码记录 21
                                 Def_UniversalGameRecType_LuckyCloudBuyLottery, # 幸运云购开奖记录 22
                                 Def_UniversalGameRecType_CrossBattlefieldBuy, # 玩家购买的跨服战场 23
-                                Def_UniversalGameRecType_UpdatePlayerName,  # 玩家改名正在改名中的信息24
+                                Def_UniversalGameRecType_24,
                                 Def_UniversalGameRecType_BossDropGoodItemInfo,  # boss掉落好物品信息记录25
                                 Def_UniversalGameRecType_26,
                                 Def_UniversalGameRecType_27,
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/ServerScript.ini b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/ServerScript.ini
index be8b2a3..4dfbade 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/ServerScript.ini
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/ServerScript.ini
@@ -88,20 +88,6 @@
 PacketSubCMD_1=0x1
 PacketCallFunc_1=GameServer_MergeRegisterResult
 
-
-;角色改名
-[UpdatePlayerName]
-ScriptName = Player\UpdatePlayerName
-Writer = jiang
-Releaser = jiang
-RegType = 0
-RegisterPackCount = 1
-
-PacketCMD_1=0x1
-PacketSubCMD_1=0x17
-PacketCallFunc_1=GameServer_UpdatePlayerName
-
-
 ;GameServerPy万能封包
 [GameServerPyPack]
 ScriptName = NetPackCommon.py

--
Gitblit v1.8.0