From 388823edfe6308cba6f76ca6dc4f20022c5cb2be Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 30 六月 2025 19:03:50 +0800
Subject: [PATCH] 10431 【英文】看广告获得限时代金券

---
 ServerPython/CoreServerGroup/GameServer/Script/EventReport.py |   33 +++++++++++++++++++++++++--------
 1 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py b/ServerPython/CoreServerGroup/GameServer/Script/EventReport.py
index 7b6577f..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\\" 
@@ -87,7 +89,15 @@
 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"
-
+    
+    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
 
@@ -96,8 +106,8 @@
     
     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(),
@@ -109,12 +119,19 @@
         RegionName = GameWorld.GetPlayerServerSID(curPlayer)
         
     else:
-        # 合服情况,玩家取自己服发送,非玩家数据按指定平台配置发,没有则取配置主服
-        RegionName = 's%s'%GameWorld.GetPlayerMainServerID(OperatorID) 
+        # 合服情况,玩家取自己服发送,非玩家数据按指定平台配置发
+        sid = GameWorld.GetPlayerMainServerID(OperatorID)
+        if not sid:
+            GameWorld.ErrLog("GetPlayerMainServerID: %s-%s"%(OperatorID, sid))
+            return
+        RegionName = 's%s'%sid
         
-    getUrl = "%s?ProductID=%s&OperatorID=%s&RegionName=%s&EventID=%s%s&Time=%s&%s"%(\
+    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
@@ -127,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"):

--
Gitblit v1.8.0