From e4c07a355d66c9f9610176e3b7f63155c2222acd Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 06 二月 2025 16:52:18 +0800
Subject: [PATCH] 10382 【后台】称号和头像管理支持升星(支持升星、设置星级,支持离线设置;优化设置结果返回信息;支持在线查询玩家当前称号、头像、头像框状态明细;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTAddTitle.py |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTAddTitle.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTAddTitle.py
index e0f158d..2c3032d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTAddTitle.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GMTAddTitle.py
@@ -52,6 +52,8 @@
         isOK, errorMsg = PlayerDienstgrad.GMSetTitleStar(curPlayer, titleID)
     elif opType == "setStar":
         isOK, errorMsg = PlayerDienstgrad.GMSetTitleStar(curPlayer, titleID, setValue)
+    elif opType == "query":
+        isOK = True
         
     if not isOK:
         if errorMsg:
@@ -63,8 +65,15 @@
         GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'GMToolResult', resultMsg, len(resultMsg))
         return
     
+    curDienstgradMgr = curPlayer.GetDienstgradManager()
+    curGrad = curDienstgradMgr.GetDienstgrad(titleID)
+    endTimeStr = "未激活"
+    if curGrad:
+        endTime = GetEndTime(curGrad, titleID)
+        endTimeStr = "永久" if not endTime else GameWorld.ChangeTimeNumToStr(endTime)
+        
     curStar = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TitleStar % titleID)
-    resultDict = {"titleID":titleID, "expireTime":expireTime, "isOnlineGMT":isOnlineGMT, "opType":opType, "star":curStar}
+    resultDict = {"titleID":titleID, "expireTime":expireTime, "isOnlineGMT":isOnlineGMT, "opType":opType, "star":curStar, "endTimeStr":endTimeStr}
     GameWorld.Log("GMT_AddTitle, isOnlineGMT=%s,resultDict=%s" % (isOnlineGMT, resultDict), curPlayer.GetPlayerID())
     #流向 记录
     DataRecordPack.DR_ToolGMOperate(query_ID, curPlayer.GetPlayerName(), curPlayer.GetAccID(), 'GMT_AddTitle', resultDict)
@@ -75,6 +84,19 @@
         
     return
 
+def GetEndTime(curGrad, titleID):
+    if not curGrad:
+        return 0
+    curExpireTime = curGrad.GetExpireTime() # 特殊指定有效期
+    if not curExpireTime:
+        curDienstgradData = PlayerDienstgrad.GetDienstgradData(titleID)
+        if curDienstgradData:
+            curExpireTime = curDienstgradData.GetExpireTime()
+    if curExpireTime <= 0:
+        return 0
+    createTimeStr = curGrad.GetCreateTimeStr()
+    return GameWorld.ChangeTimeStrToNum(createTimeStr) + curExpireTime
+
 #---------------------------------------------------------------------
 #执行结果
 ## 执行结果

--
Gitblit v1.8.0