From 07423ad90ce28a8817671e8266a4aba2ea294935 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 18 三月 2026 17:43:29 +0800
Subject: [PATCH] 571 【荣耀战将】删档测试充值返利
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py | 67 +++++++++++++++++++++++++--------
1 files changed, 50 insertions(+), 17 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
index f473343..0fd83dd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerControl.py
@@ -958,7 +958,7 @@
def OnPlayerLogin(curPlayer):
- DoGMForbidenTalkOnLogin(curPlayer)
+ #DoGMForbidenTalkOnLogin(curPlayer)
curPlayer.SetDict(ChConfig.Def_PDict_DayOnlineCalcTime, int(time.time()))
return
@@ -1113,7 +1113,7 @@
playerControl.RefreshAllState()
#玩家下线更新排行榜
- PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer) #排行榜已实时更新,故下线不再同步
+ #PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer) #排行榜已实时更新,故下线不再同步
#玩家下线通知gameserver记录缓存(放在下线更新排行榜之后,方便Gameserver判断是否需要存入数据库中)
PlayerViewCache.OnPlayerLogout(curPlayer)
@@ -3311,6 +3311,7 @@
#不需要做升级任务, 设置玩家经验
SetPlayerTotalExp(curPlayer, curTotalExp)
+ DoDeleteTestRebate(curPlayer)
return
def __GiveLVMailAward(self, curLV):
@@ -4094,20 +4095,21 @@
GameWorld.DebugLog("SetPlayerAccState %s" % (accState), curPlayer.GetPlayerID())
return
-def DoGMForbidenTalkOnLogin(curPlayer):
- ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
- ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
-
- if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
- GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
- __SetGMForbidenTalkValue(curPlayer, 2)
- __SetGMForbidenTalkValue(curPlayer, 1)
- elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
- GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
- __SetGMForbidenTalkValue(curPlayer, 1)
- else:
- SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
- return
+#GM命令支持离线玩家上线后处理,且 PlayerGMOper 也有上线触发逻辑处理,故暂屏蔽
+#def DoGMForbidenTalkOnLogin(curPlayer):
+# ## 离线时被禁言,此时DB的账号状态值为禁言状态,但是GMOper暂时没有禁言操作命令,故上线时检查设置下离线禁言状态
+# ## 目前离线时被禁言的,暂时只处理AccState ExAttr17, GMOper命令暂不处理,所以为永久禁言
+#
+# if curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalkDevice):
+# GameWorld.Log("上线时角色为被设备禁言状态!", curPlayer.GetPlayerID())
+# __SetGMForbidenTalkValue(curPlayer, 2)
+# __SetGMForbidenTalkValue(curPlayer, 1)
+# elif curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidTalk):
+# GameWorld.Log("上线时角色为被禁言状态!", curPlayer.GetPlayerID())
+# __SetGMForbidenTalkValue(curPlayer, 1)
+# else:
+# SendPropertyRefresh(curPlayer, ShareDefine.CDBPlayerRefresh_ForbidenTalk, 0)
+# return
def IsMainLevelPass(curPlayer, lvID):
## 判断玩家是否过关某个主线关卡ID
@@ -4616,4 +4618,35 @@
if not curSummon:
continue
curSummon.SetSightLevel(sightLevel)
- return
\ No newline at end of file
+ return
+
+def DoDeleteTestRebate(curPlayer):
+ playerID = curPlayer.GetPlayerID()
+ appID = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 1)
+ if GameWorld.GetAppIDByAccID(curPlayer.GetAccID()) != appID:
+ #GameWorld.DebugLog("非返利渠道AppID! appID=%s" % appID, playerID)
+ return
+ if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DeleteTestRebate):
+ GameWorld.DebugLog("删档测试返利已经处理过,不再请求!", playerID)
+ return
+ if curPlayer.GetLV() < IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 2):
+ GameWorld.DebugLog("等级不足不处理删档测试返利! lv=%s" % curPlayer.GetLV(), playerID)
+ return
+ rebateRate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 5)
+ if rebateRate <= 0:
+ GameWorld.DebugLog("没有返利比例不处理!", playerID)
+ return
+ curTime = int(time.time())
+ testEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 3) # 删档测试结束日期
+ testEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % testEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
+ if curTime <= testEndTime:
+ GameWorld.DebugLog("删档测试期间不处理删档测试返利! testEndDate=%s" % testEndDate, playerID)
+ return
+ rebateEndDate = IpyGameDataPY.GetFuncCfg("DeleteTestRebate", 4) # 返利结束日期,由公测日期+有效天数得到
+ rebateEndTime = GameWorld.ChangeTimeStrToNum("%s235959" % rebateEndDate, ChConfig.TYPE_Time_Format_YmdHMS)
+ if curTime > rebateEndTime:
+ GameWorld.DebugLog("返利有效期已结束不处理删档测试返利! rebateEndDate=%s" % rebateEndDate, playerID)
+ return
+ import EventReport
+ EventReport.EventReport("DeleteTestRebate", "testEndDate=%s"%(testEndDate), curPlayer, checkNeed=False)
+ return
--
Gitblit v1.8.0