From 442ed90a28985d56986b596f985c702c98019aa7 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 21 一月 2025 17:11:31 +0800 Subject: [PATCH] 10382 【后台】称号管理支持升星(支持升星、设置星级,支持离线设置;发放代币、后台充值、头像管理增加离线操作支持;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py index bc73a86..38cf5a0 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py @@ -244,7 +244,8 @@ # if curDienstgradMgr.GetUseGradID() == dienstgradID: # UnUseDienstgrad(curPlayer) #=========================================================================== - + + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % dienstgradID, 0) curDienstgradMgr.DeleteDienstgrad(dienstgradID) #通知称号删除 curDienstgradMgr.Sync_PlayerDelDienstgrad(dienstgradID) @@ -494,6 +495,33 @@ SyncTitleStarInfo(curPlayer, titleID) return +def GMSetTitleStar(curPlayer, titleID, setValue=None): + ## GM设置星级 + + curDienstgradMgr = curPlayer.GetDienstgradManager() + curDienstgrad = curDienstgradMgr.GetDienstgrad(titleID) + if curDienstgrad == None: + return False, "The player has not activated the titleID(%s)" % titleID + + if setValue == None: + curStar = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TitleStar % titleID) + setStar = curStar + 1 # 没指定星级时默认升星 + else: + setStar = setValue + + if setStar > 0: + if not IpyGameDataPY.GetIpyGameData("TitleStarUp", titleID, setStar): + return False, "The titleID(%s) star(%s) is not exist." % (titleID, setStar) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TitleStar % titleID, setStar) + GameWorld.Log("GM设置称号星级: titleID=%s,setStar=%s" % (titleID, setStar), curPlayer.GetPlayerID()) + + CalcAllDienstgradAttr(curPlayer) + playerControl = PlayerControl.PlayerControl(curPlayer) + playerControl.RefreshPlayerAttrState() + + SyncTitleStarInfo(curPlayer, titleID) + return True, "" + #------------------------------------------------------------- ## 获取已激活称号列表 # @param curPlayer @@ -623,7 +651,9 @@ return def SyncTitleStarInfo(curPlayer, titleID=None): + force = False if titleID > 0: + force = True syncIDList = [titleID] else: syncIDList = [] @@ -638,7 +668,7 @@ titleStarList = [] for titleID in syncIDList: curStar = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TitleStar % titleID) - if not curStar: + if not curStar and not force: continue starInfo = ChPyNetSendPack.tagMCTitleStar() starInfo.Clear() -- Gitblit v1.8.0