From ee43f12300d1085a28dd44bdc802bee9917c5e0d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 26 四月 2024 16:42:28 +0800
Subject: [PATCH] 10138 内存分析(修复跨服运营活动读取活动配置属性bug)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py | 8 +++++---
ServerPython/CoreServerGroup/GameServer/Script/CommFunc.py | 11 +++++++++++
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/CommFunc.py b/ServerPython/CoreServerGroup/GameServer/Script/CommFunc.py
index 6a580bd..c2cc476 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/CommFunc.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/CommFunc.py
@@ -27,6 +27,7 @@
import datetime
import subprocess
import binascii
+import inspect
#---------------------------------------------------------------------
#全局变量
@@ -567,3 +568,13 @@
# 由于float会有不精确的现象出现xxx.9999999的问题,所以这里计算出的结果向上取整
return int(math.ceil(round(floatRMB * 100)))
+def get_class_method(cls, startswith=""):
+ ## 获取类中的所有方法
+ methods = []
+ members = inspect.getmembers(cls)
+ for member_name, member in members:
+ if startswith and not member_name.startswith(startswith):
+ continue
+ if inspect.ismethod(member):
+ methods.append(member_name)
+ return methods
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
index 1e3bd1d..f37a3c1 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
@@ -25,6 +25,7 @@
import CrossRealmMsg
import PyGameData
import ChConfig
+import CommFunc
import datetime
import time
@@ -404,10 +405,11 @@
# ipyData 活动时间表信息由跨服服务器同步子服,活动内容取子服自己的
ipyDataDict = {}
- for k, v in ipyData.__dict__.items():
- if k in ["NotifyInfoStart", "NotifyInfoEnd", "NotifyInfoLoop", "ServerIDRangeList"]:
+ methods = CommFunc.get_class_method(ipyData, "Get") # 获取所有Get开头的方法
+ for method_name in methods:
+ if method_name in ["GetNotifyInfoStart", "GetNotifyInfoEnd", "GetNotifyInfoLoop", "GetServerIDRangeList"]:
continue
- ipyDataDict[k] = v
+ ipyDataDict[method_name[3:]] = getattr(ipyData, method_name)()
ipyDataDict.update({"StartDate":startDateStr, "EndDate":endDateStr})
GameWorld.Log(" ipyDataDict=%s" % ipyDataDict)
--
Gitblit v1.8.0