From 40f2e314ff6df3d45e643419c6f155bb665b78dc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 14 九月 2024 13:34:19 +0800
Subject: [PATCH] 10249 【越南】【砍树】【英文】仙宫(增加获得气运提示;)
---
ServerPython/CoreServerGroup/GameServer/Script/EventReport.py | 94 +++++++++++++++++++++++++++++------------------
1 files changed, 58 insertions(+), 36 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py b/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py
index 9a92af3..2dbb565 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py
@@ -38,6 +38,8 @@
import md5
import os
import re
+import urllib
+import IpyGameDataPY
EventFilepath = "D:\\EventServer\\PythonScribe\\EventLog\\"
@@ -84,22 +86,28 @@
# @param eventParam 事件参数
# @param curPlayer
# @return None
-def EventReport(eventActionID, eventParam, curPlayer=None):
+def EventReport(eventActionID, eventParam, curPlayer=None, OperatorID=""):
# 组成例子 eventParam 的格式必须是 xx=yy&zz=cc
# "http://192.168.0.249:12000/event_receiver?EventID=3099&OperatorID=test&PlayerCount=102&Time=2018-02-08 18:30:30&ProductID=snxxz&RegionName=s1"
-
- OperatorID = GameWorld.GetPlatform()
- if not OperatorID:
+
+ reportActionIDList = IpyGameDataPY.GetFuncEvalCfg("EventReport", 3)
+ if reportActionIDList and eventActionID not in reportActionIDList:
+ #GameWorld.DebugLog("非需要汇报的事件ID! %s" % eventActionID)
+ return
+ if eventActionID in IpyGameDataPY.GetFuncEvalCfg("EventReport", 1):
+ #GameWorld.DebugLog("不需要汇报的事件! %s" % eventActionID)
+ return
+
+ if not curPlayer and not OperatorID:
return
ProductID = ReadChConfig.GetPyMongoConfig("EventReport", "ProductID")
ReportUrl = ReadChConfig.GetPyMongoConfig("EventReport", "ReportUrl")
- RegionName = GameWorld.GetServerSID() # 需考虑合服情况
playerInfo = ""
if curPlayer:
- playerInfo = "&AccountID=%s&IP=%s"%(GameWorld.GetPlatformAccID(curPlayer.GetAccID()),
- curPlayer.GetIP())
+ playerInfo = "&AccountID=%s&IP=%s&DeviceFlag=%s"%(GameWorld.GetPlatformAccID(curPlayer.GetAccID()),
+ curPlayer.GetIP(), curPlayer.GetDeviceFlag())
#=======================================================================
# #UTF8 需要转成url编码才可用
# playerInfo = urllib.urlencode({"RoleID": curPlayer.GetName(),
@@ -107,11 +115,23 @@
# "IP": curPlayer.GetIP(),
# "Level": curPlayer.GetLV()})
#=======================================================================
-
-
- getUrl = "%s?ProductID=%s&OperatorID=%s&RegionName=%s&EventID=%s%s&Time=%s&%s"%(\
+ OperatorID = GameWorld.GetPlayerPlatform(curPlayer)
+ RegionName = GameWorld.GetPlayerServerSID(curPlayer)
+
+ else:
+ # 合服情况,玩家取自己服发送,非玩家数据按指定平台配置发
+ sid = GameWorld.GetPlayerMainServerID(OperatorID)
+ if not sid:
+ GameWorld.ErrLog("GetPlayerMainServerID: %s-%s"%(OperatorID, sid))
+ return
+ RegionName = 's%s'%sid
+
+ if eventParam:
+ eventParam = "&%s"%eventParam
+
+ getUrl = "%s?ProductID=%s&OperatorID=%s&RegionName=%s&EventID=%s%s&Time=%s%s"%(\
ReportUrl, ProductID, OperatorID, RegionName, eventActionID, playerInfo,
- str(datetime.datetime.today()).split('.')[0], eventParam)
+ urllib.quote(str(datetime.datetime.today()).split('.')[0]), eventParam)
GameWorld.DebugLog("EventReport: %s"%getUrl)
# 第五个参数0代表get发送 1代表post
@@ -124,7 +144,7 @@
# @param eventClass
# @return None
def WriteEvent(eventClass):
- if GameWorld.IsMergeServer():
+ if GameWorld.IsCrossServer():
return
if eventClass.GetScribeEventName() not in ReadChConfig.GetEvalChConfig("EventReportID"):
@@ -312,11 +332,11 @@
## =================================================================================================
## 在线
-def WriteEvent_concurrency(activePlayerCount, tjgOnlineCnt):
+def WriteEvent_concurrency(activePlayerCount, tjgOnlineCnt, OperatorID):
# 只传真实玩家,让后台显示真实在线玩家
realPlayer = activePlayerCount-tjgOnlineCnt
EventReport(ShareDefine.Def_UserAction_KeepOnline,
- "PlayerCount=%s&TotalPlayerCount=%s"%(realPlayer, realPlayer))
+ "PlayerCount=%s&TotalPlayerCount=%s"%(realPlayer, realPlayer), None, OperatorID)
return
@@ -331,28 +351,30 @@
def WriteEvent_chat_log(curPlayer, content, cmc_name, tagName="", addinfo=""):
return
- '''
- @todo: 写聊天监控记录
- @param content: 聊天内容
- @param cmc_name: 聊天频道标识
- @param tagName: 私聊对象
- @param addinfo: 额外信息
- '''
-
- chatlogEvent = chat_log()
- chatlogEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer.GetAccID()))
- chatlogEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID())
- chatlogEvent.chr_name = curPlayer.GetName()
- chatlogEvent.content = __GetEventChatContent(content)
- chatlogEvent.cmc_name = cmc_name
- chatlogEvent.ip = curPlayer.GetIP()
- chatlogEvent.account_name = chatlogEvent.account_id
- chatlogEvent.account_type = 0
- chatlogEvent.chr_level = 0
- chatlogEvent.object = tagName
- chatlogEvent.addinfo = addinfo
- WriteEvent(chatlogEvent)
- return
+ #===========================================================================
+ # '''
+ # @todo: 写聊天监控记录
+ # @param content: 聊天内容
+ # @param cmc_name: 聊天频道标识
+ # @param tagName: 私聊对象
+ # @param addinfo: 额外信息
+ # '''
+ #
+ # chatlogEvent = chat_log()
+ # chatlogEvent.SetEventAgentInfo(GameWorld.GetPlayerPlatform(curPlayer))
+ # chatlogEvent.account_id = GameWorld.GetPlatformAccID(curPlayer.GetAccID())
+ # chatlogEvent.chr_name = curPlayer.GetName()
+ # chatlogEvent.content = __GetEventChatContent(content)
+ # chatlogEvent.cmc_name = cmc_name
+ # chatlogEvent.ip = curPlayer.GetIP()
+ # chatlogEvent.account_name = chatlogEvent.account_id
+ # chatlogEvent.account_type = 0
+ # chatlogEvent.chr_level = 0
+ # chatlogEvent.object = tagName
+ # chatlogEvent.addinfo = addinfo
+ # WriteEvent(chatlogEvent)
+ # return
+ #===========================================================================
def __GetEventChatContent(content):
'''
--
Gitblit v1.8.0