From 3d42020890832d98b0ef6fcd66c300a85283662d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 26 四月 2024 16:44:51 +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 698833f..cd2c8b6 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
#---------------------------------------------------------------------
#全局变量
@@ -568,3 +569,13 @@
# 由于float会有不精确的现象出现xxx.9999999或xxx.0000000000001的问题,所以这里计算出的结果向上取整
return int(math.ceil(round(floatRMB * rate)))
+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 e4b9461..02a95d7 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossActionControl.py
@@ -26,6 +26,7 @@
import PyGameData
import PlayerFB
import ChConfig
+import CommFunc
import datetime
import time
@@ -405,10 +406,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