From 6147d46800b735eedf348f7b7b80038b1a5efe7c Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 13 三月 2026 17:51:16 +0800
Subject: [PATCH] 16 卡牌服务端(增加广告领奖流向记录;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |   58 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 37 insertions(+), 21 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index bb64b5f..f577fe2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -48,7 +48,6 @@
 import PlayerTreasure
 import IpyGameDataPY
 import EventReport
-import PassiveBuffEffMng
 import PlayerActBuyOne
 import PlayerActCollectWords
 import PlayerActTotalRecharge
@@ -57,12 +56,12 @@
 import PlayerActManyDayRecharge
 import PlayerActSingleRecharge
 import OpenServerActivity
+import GameLogic_Qunying
 import ChNetSendPack
 import PlayerArena
 import PyGameData
 import PlayerCoin
 import PlayerFB
-import SkillShell
 import PlayerGubao
 import PlayerCustomAward
 import PlayerZhanling
@@ -71,16 +70,17 @@
 import PlayerTask
 import GameObj
 import PlayerGoldRush
-import PlayerActLoginNew
+import PlayerActSign
 import PlayerActBuyCountGift
 import PlayerActLunhuidian
+import PlayerActHeroAppear
 import PlayerActFamilyGCZ
 import PlayerActTask
 import PlayerMail
 import DBDataMgr
 import PlayerViewCache
 import UpdatePlayerName
-import GameServerRefresh
+#import GameServerRefresh
 import IPY_ServerDefine
 import IPY_PlayerDefine
 import CommFunc
@@ -332,8 +332,6 @@
     PlayerActBuyCountGift.OnPlayerLogin(curPlayer)
     # 任务活动
     PlayerActTask.OnPlayerLogin(curPlayer)
-    # 登录活动
-    PlayerActLoginNew.OnPlayerLogin(curPlayer)
     # 炼器活动
     PlayerActLianqi.OnPlayerLogin(curPlayer)
     # 多日连充活动
@@ -420,6 +418,7 @@
         PlayerPreset.OnPlayerLogin(curPlayer)
         CrossPlayer.OnPlayerLogin(curPlayer)
         PlayerActLunhuidian.OnPlayerLogin(curPlayer)
+        PlayerActHeroAppear.OnPlayerLogin(curPlayer)
         
         __OnFixVersion(curPlayer) # 修正线上玩家数据用,暂时放最后
         # 上线查询一次充值订单
@@ -699,7 +698,12 @@
     #首登邮件
     mailList = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 2)
     for mailTypeKey, mailItemList in mailList:
-        PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
+        PlayerMail.SendMailByKey(mailTypeKey, playerID, mailItemList)
+    appID = GameWorld.GetAppIDByAccID(curPlayer.GetAccID())
+    appIDMailDict = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 3, {})
+    mailDict = appIDMailDict.get(appID, {})
+    for mailTypeKey, mailItemList in mailDict.items():
+        PlayerMail.SendMailByKey(mailTypeKey, playerID, mailItemList)
         
     PlayerHero.OnPlayerFirstLogin(curPlayer)
     
@@ -767,7 +771,7 @@
     PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, gold=gold, silver=silver, detail=detailDict)
     
     # 同步排行榜
-    PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
+    #PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
     return
 #---------------------------------------------------------------------
         
@@ -1373,6 +1377,7 @@
     if (curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidByPy)) <= 0:
         return True
     
+    GameWorld.Log("玩家被封号禁止登录" , curPlayer.GetPlayerID())
     curPlayer.Kick(IPY_GameWorld.disGMKick)
     return
 
@@ -1904,7 +1909,8 @@
 #@return 返回值无意义
 #@remarks C++封包触发, 玩家下线
 def PlayerDisconnect(index, tick):
-    GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick)
+    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+    PlayerDisconnectEx(curPlayer, tick)
     return
 
 ##C++封包触发, 玩家下线
@@ -1912,8 +1918,7 @@
 #@param tick 时间戳
 #@return 返回值无意义
 #@remarks C++封包触发, 玩家下线
-def __Func_PlayerDisconnect(index, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+def PlayerDisconnectEx(curPlayer, tick):
     try:
         # 避免因逻辑错误导致下线失败,可能导致回档的情况
         DoPlayerDisconnect(curPlayer, tick)
@@ -3137,8 +3142,17 @@
     # 轮回殿奖励
     elif rewardType == ChConfig.Def_RewardType_LunhuidianAward:
         PlayerActLunhuidian.GetLunhuidianAward(curPlayer, dataEx, dataExStr)
+    # 武将登场升星计划免费奖励 10
+    elif rewardType == ChConfig.Def_RewardType_ActHeroAppearStarFreeAward:
+        PlayerActHeroAppear.GetHeroAppearStarFreeAward(curPlayer, dataEx)
+    # 领取活动签到奖励 70
+    elif rewardType == ChConfig.Def_RewardType_ActSignAward:
+        PlayerActSign.OnGetActSignAward(curPlayer, dataEx, dataExStr)
+    # 群英榜历史最高名次奖励 7
+    elif rewardType == ChConfig.Def_RewardType_QunyingRankHighest:
+        GameLogic_Qunying.GetQunyingRankHighestAward(curPlayer)
         
-    
+        
     # 首充礼包奖励
     elif rewardType == ChConfig.Def_RewardType_FirstCharge:
         PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
@@ -3151,9 +3165,6 @@
     # 领取单笔累充领取
     elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
         PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
-    # 领取登录活动奖励
-    elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
-        PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
     # 领取购买次数礼包活动
     elif rewardType == ChConfig.Def_RewardType_ActBuyCountGift:
         PlayerActBuyCountGift.OnGetBuyCountGiftAward(curPlayer, dataEx, dataExStr)
@@ -3195,16 +3206,16 @@
         PlayerZhanling.GetZhanlingReward(curPlayer, dataEx, dataExStr)
     #玩法前瞻奖励
     elif rewardType == ChConfig.Def_RewardType_GameNotice:
-        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1))
+        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GameNoticeAwardState, IpyGameDataPY.GetFuncEvalCfg("GameNoticeReward", 1), "GameNotice")
     #每日分享奖励34
     elif rewardType == ChConfig.Def_RewardType_ShareGame:
-        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_ShareGameAwardState, IpyGameDataPY.GetFuncEvalCfg("ShareGameReward", 1))
+        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_ShareGameAwardState, IpyGameDataPY.GetFuncEvalCfg("ShareGameReward", 1), "ShareGame")
     #游戏好评奖励35
     elif rewardType == ChConfig.Def_RewardType_GoodGame:
-        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GoodGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 1))
+        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_GoodGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 1), "GoodGame")
     #游戏点赞奖励67
     elif rewardType == ChConfig.Def_RewardType_LikeGame:
-        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_LikeGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 4))
+        OnGiveAwardByClient(curPlayer, rewardType, ChConfig.Def_PDict_LikeGameAwardState, IpyGameDataPY.GetFuncEvalCfg("GoodGameReward", 4), "LikeGame")
     #领取开服每日奖励
     elif rewardType == ChConfig.Def_RewardType_OpenServerDailyAward:
         openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
@@ -3250,6 +3261,8 @@
     # 游历体力
     elif adAwardType == 4:
         PlayerTravel.AddTravelEnergy(curPlayer, adAwardValue)
+        
+    DataRecordPack.DR_ADAward(curPlayer, adID)
     return
 
 def ADCntOnDay(curPlayer):
@@ -3872,14 +3885,17 @@
     if recType in ShareDefine.Def_ViewGameRecSelfList:
         recID = curPlayer.GetPlayerID()
     recTypeIDMgr = DBDataMgr.GetGameRecMgr().GetRecTypeIDMgr(recType, recID)
-    SyncGameRecInfo(curPlayer, recType, recID, recTypeIDMgr.GetDataList())
+    SyncGameRecInfo(curPlayer, recTypeIDMgr.GetDataList(), recType, recID)
     return
 
-def SyncGameRecInfo(curPlayer, recType, recID, recDataList):
+def SyncGameRecInfo(curPlayer, recDataList, recType=0, recID=0):
     recList = []
     for recData in recDataList:
         if not recData:
             continue
+        if not recType:
+            recType = recData.GetRecType()
+            recID = recData.GetRecID()
         rec = ChPyNetSendPack.tagSCGameRec()
         rec.Time = recData.GetTime()
         rec.Value1 = recData.GetValue1()

--
Gitblit v1.8.0