#!/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
|