#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Player.UpdatePlayerName # # @todo:¸ÄÃû # @author hxp # @date 2025-10-15 # @version 1.0 # # ÏêϸÃèÊö: ¸ÄÃû # #------------------------------------------------------------------------------- #"""Version = 2025-10-15 19:30""" #------------------------------------------------------------------------------- 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 #{ # tagHead Head; # BYTE NewNameLen; # char NewName[NewNameLen]; # BYTE ItemIndex; //¸ÄÃûÎïÆ·ÔÚ±³°üÖеÄλÖà # DWORD ServerID; #}; def UpdatePlayerName(index, clientData, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #ÐÂÃû×Ö newName = clientData.NewName renameState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Rename) if renameState: moneyType, moneyCount = IpyGameDataPY.GetFuncEvalCfg("PlayerRename", 1) if not PlayerControl.PayMoney(curPlayer, moneyType, moneyCount, "Rename"): return 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 def Sync_UpdatePlayerNameCount(curPlayer): clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagUpdatePlayerNameCount) clientPack.Count = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Rename) NetPackCommon.SendFakePack(curPlayer, clientPack) return