From a1ea5474ffd2b081668f9a0cef8d069aa78db85d Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 12 十二月 2025 20:53:42 +0800
Subject: [PATCH] 389 流向记录(战斗服务器不记录流向)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py |  161 +++++++++++++++++++++++++----------------------------
 1 files changed, 75 insertions(+), 86 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 76605b3..df3b473 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -53,10 +53,8 @@
 import PlayerCrossChampionship
 import GameFuncComm
 import PlayerFamilyTaofa
-import PlayerBossReborn
 import PlayerWeekParty
 import PlayerFeastWeekParty
-import PlayerFeastTravel
 import PlayerFeastLogin
 import PlayerFeastWish
 import PlayerActLogin
@@ -81,7 +79,6 @@
 import PlayerActManyDayRecharge
 import PlayerActSingleRecharge
 import PlayerSpringSale
-import GY_Query_BossFirstKill
 import PlayerCrossYaomoBoss
 import PlayerLuckyCloudBuy
 import PlayerLuckyTreasure
@@ -90,6 +87,7 @@
 import PlayerFuncSysPrivilege
 import PlayerActTurntable
 import PlayerTongTianLing
+import OpenServerActivity
 import CrossRealmPlayer
 import ChNetSendPack
 import PlayerArena
@@ -102,7 +100,6 @@
 import PlayerFaQi
 import SkillShell
 import PlayerGubao
-import PlayerShentong
 import PlayerCustomAward
 import PlayerZhanling
 import PlayerTree
@@ -132,9 +129,10 @@
 import PlayerTalk
 import PlayerHero
 import PlayerOnline
+import PlayerBeauty
+import PlayerTravel
 import TurnAttack
 import PlayerHJG
-import ObjPool
 
 import datetime
 import time
@@ -617,8 +615,6 @@
     #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
     # 极品白拿
     PlayerFreeGoods.OnLogin(curPlayer)
-    # BOSS复活活动
-    PlayerBossReborn.OnLogin(curPlayer)
     # 周狂欢活动
     PlayerWeekParty.OnLogin(curPlayer)
     # 购买次数礼包活动
@@ -637,8 +633,6 @@
     PlayerFeastLogin.OnPlayerLogin(curPlayer)
     # 节日祝福活动
     PlayerFeastWish.OnPlayerLogin(curPlayer)
-    # 节日游历活动
-    PlayerFeastTravel.OnPlayerLogin(curPlayer)
     # 登录奖励活动
     PlayerActLogin.OnLogin(curPlayer)
     # 炼器活动
@@ -651,6 +645,8 @@
     PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
     # 转盘活动
     PlayerActTurntable.OnPlayerLogin(curPlayer)
+    # 分支下载奖励记录通知
+    SyncPackDownloadAward(curPlayer)
     # 登录触发功能开启(老号处理)
     GameFuncComm.DoFuncOpenLogic(curPlayer)
     # 神兽
@@ -664,8 +660,6 @@
     PlayerFB.OnLogin(curPlayer)
     #技能专精信息
     #SkillShell.NotifyElementSkillInfo(curPlayer)
-    #Boss首杀
-    GY_Query_BossFirstKill.OnPlayerLogin(curPlayer)
     #通天令
     PlayerTongTianLing.OnPlayerLogin(curPlayer)
     #创角奖励
@@ -702,7 +696,7 @@
     curPlayer.SetState(0)   # 脱机挂恢复为正常上线
     curPlayer.SetCountryLastWeekHornor(0) # 通知数据库是否保存还是下线,做一次恢复,1为保存 0为正常下线
     
-    PlayerControl.DoGMForbidenTalkOnLogin(curPlayer)
+    PlayerControl.OnPlayerLogin(curPlayer)
     DataRecordPack.DR_PlayerLogin(curPlayer) # 放最后,记录等级、经验等信息
     return
 
@@ -723,7 +717,6 @@
         PlayerHJG.OnPlayerLogin(curPlayer)
         PlayerXiangong.OnPlayerLogin(curPlayer)
         PlayerGubao.OnPlayerLogin(curPlayer)
-        PlayerShentong.OnPlayerLogin(curPlayer)
         PlayerZhanling.OnPlayerLogin(curPlayer)
         PlayerTask.OnPlayerLogin(curPlayer)
         PlayerTree.OnPlayerLogin(curPlayer)
@@ -734,9 +727,12 @@
         UpdatePlayerName.OnPlayerLogin(curPlayer)
         PlayerActivity.OnPlayerLogin(curPlayer)
         PlayerLLMJ.OnPlayerLogin(curPlayer)
+        PlayerBeauty.OnPlayerLogin(curPlayer)
+        PlayerTravel.OnPlayerLogin(curPlayer)
+        OpenServerActivity.OnPlayerLogin(curPlayer)
         
         # 上线查询一次充值订单
-        curPlayer.SendDBQueryRecharge()
+        # curPlayer.SendDBQueryRecharge() 不查了,由在线轮询触发即可
         
     # 通知GameServer地图最终登录成功了
     isMixServerFirstLogin = curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_MixServerFirstLogin)
@@ -767,8 +763,7 @@
     # 特殊说明: 如果地图没有完全初始化好,客户端断开或者异常等情况会触发RunGateGameServerMapServerKickOutPlayerNoSave
     # 那么在DoPlayerLogin 中设置的数据将不会被保存, 如会导致第一个任务重复触发问题,记录多次发送
     EventReport.WriteEvent_Entry(curPlayer, 4)
-    #EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
-     
+    
     curPlayer.SetFightPoint(1) # 初始化为1倍消耗
     
     #---补满血满魔---
@@ -1024,7 +1019,6 @@
     
     #检查更新总战斗力
     #PlayerBillboard.UpdatePlayerFPTotalBillboard(curPlayer, True)
-    EventReport.WriteEvent_FightPower(curPlayer)
     
     #清除在本地图离线记录信息
     PlayerControl.RemoveLeaveServerPlayerInfo(curPlayer.GetPlayerID())
@@ -3115,54 +3109,6 @@
     curPlayer.Syn_OfflineTimeQueryResult() # 通知客服端离线时间
     return
 
-
-#//B0 24 领取家族悬赏奖励 #tagReceiveFamilyArrestAward
-#
-#struct    tagReceiveFamilyArrestAward
-#
-#{
-#    tagHead        Head;
-#    DWORD        ArrestID;        //悬赏任务ID
-#};
-## 领取家族悬赏奖励
-#  @param index: 玩家索引
-#  @param clientData: 封包结构体
-#  @param tick: 时间戳
-#  @return: None
-def ReceiveFamilyArrestAward(index, clientData, tick):
-    return
-
-
-#//B0 26 请求家族悬赏奖励领取情况 #tagQueryFamilyArrestAwardReceiveState
-#
-#struct    tagQueryFamilyArrestAwardReceiveState
-#
-#{
-#    tagHead        Head;
-#};
-## 请求家族悬赏奖励领取情况
-#  @param index: 玩家索引
-#  @param clientData: 封包结构体
-#  @param tick: 时间戳
-#  @return: None
-def QueryFamilyArrestAwardReceiveState(index, clientData, tick):
-    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
-    Sync_FamilyArrestAwardReceiveState(curPlayer)
-    return
-
-
-## 通知客户端家族悬赏任务奖励领取情况
-#  @param curPlayer: 玩家实例
-#  @return: None
-def Sync_FamilyArrestAwardReceiveState(curPlayer):
-    awardReceiveState = ChPyNetSendPack.tagFamilyArrestAwardReceiveState()
-    awardReceiveState.Clear()
-    
-    state = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyArrestAwardState)
-    awardReceiveState.ReceiveState = state
-    NetPackCommon.SendFakePack(curPlayer, awardReceiveState)
-    return
-
 def PlayerOnDay(curPlayer):
     #玩法前瞻奖励
     gameNoticeAwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GameNoticeAwardState)
@@ -3219,7 +3165,7 @@
         PlayerSuccess.GetSuccessAward(curPlayer, dataEx)
     # 仙树免费减时
     elif rewardType == ChConfig.Def_RewardType_TreeFreeTime:
-        PlayerTree.FreeReduceTreeLVTime(curPlayer)
+        PlayerTree.FreeReduceTreeLVTime(curPlayer, dataEx)
     # 广告奖励
     elif rewardType == ChConfig.Def_RewardType_ADAward:
         OnGetADAward(curPlayer, dataEx)
@@ -3232,6 +3178,18 @@
     # 阵容推荐奖励
     elif rewardType == ChConfig.Def_RewardType_LineupRecommend:
         PlayerHero.GetLineupRecommendAward(curPlayer, dataEx, dataExStr)
+    # 功能开启奖励
+    elif rewardType == ChConfig.Def_RewardType_OpenFunc:
+        GameFuncComm.GetFuncOpenAward(curPlayer, dataEx)
+    # 红颜等级奖励
+    elif rewardType == ChConfig.Def_RewardType_BeautyLVAward:
+        PlayerBeauty.GetBeautyLVAward(curPlayer, dataEx)
+    # 领取分包下载奖励
+    elif rewardType == ChConfig.Def_RewardType_DownLoad:
+        GetDownloadAward(curPlayer, dataEx)
+    # 开服庆典积分阶段奖励 
+    elif rewardType == ChConfig.Def_RewardType_OSACelebrationPointAward:
+        OpenServerActivity.GetOSACelebrationPointAward(curPlayer, dataEx)
         
         
     # 每日免费直购礼包
@@ -3258,15 +3216,9 @@
     # 领取单笔累充领取
     elif rewardType == ChConfig.Def_RewardType_SingleRecharge:
         PlayerActSingleRecharge.OnGetSingleRechargeAward(curPlayer, dataEx, dataExStr)
-    # 领取boss复活活动奖励
-    elif rewardType == ChConfig.Def_RewardType_BossReborn:
-        PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
     # 领取许愿池奖励
     elif rewardType == ChConfig.Def_RewardType_WishingWell:
         PlayerWishingWell.DoGetWishingAward(curPlayer)
-    # 功能开启奖励
-    elif rewardType == ChConfig.Def_RewardType_OpenFunc:
-        GameFuncComm.GetFuncOpenAward(curPlayer, dataEx)
     # 领取周狂欢活动奖励
     elif rewardType == ChConfig.Def_RewardType_WeekPartyAct:
         PlayerWeekParty.GetWeekPartyActionAward(curPlayer, dataEx, dataExStr)
@@ -3285,9 +3237,6 @@
     # 领取节日登录奖励
     elif rewardType == ChConfig.Def_RewardType_FeastLogin:
         PlayerFeastLogin.GetFeastLoginAward(curPlayer, dataEx)
-    # 领取节日游历奖励
-    elif rewardType == ChConfig.Def_RewardType_FeastTravel:
-        PlayerFeastTravel.GetFeastTravelAward(curPlayer, dataEx)
     # 领取登录活动奖励
     elif rewardType == ChConfig.Def_RewardType_ActLoginAwardNew:
         PlayerActLoginNew.OnGetActLoginAward(curPlayer, dataEx, dataExStr)
@@ -3327,9 +3276,6 @@
     #历史累计充值领取
     elif rewardType == ChConfig.Def_RewardType_HistoryChargeAward:
         PlayerGoldGift.OnGetHistoryRechargeAward(curPlayer, dataEx)
-    #在线特惠充值额外奖励
-    elif rewardType == ChConfig.Def_RewardType_OnlineRechargeTH:
-        PlayerCoin.OnGetOnlineRechargeTH(curPlayer)
     #创角奖励
     elif rewardType == ChConfig.Def_RewardType_CreateRole:
         OnGetCreateRoleAward(curPlayer)
@@ -3377,22 +3323,34 @@
         return
     adCntMax = ipyData.GetADCntMax()
     adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID)
-    if adCnt >= adCntMax:
+    if adCntMax and adCnt >= adCntMax:
         GameWorld.DebugLog("今日该广告奖励已达上限! adID=%s,adCnt=%s > %s" % (adID, adCnt, adCntMax))
         return
     adCnt += 1
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ADCnt % adID, adCnt)
     awardItemList = ipyData.GetADAwardItemList()
-    adMapID = ipyData.GetADMapID()
-    GameWorld.DebugLog("领取广告奖励! adID=%s,adCnt=%s,adMapID=%s,awardItemList=%s" % (adID, adCnt, adMapID, awardItemList))
+    adAwardType = ipyData.GetADAwardType()
+    adAwardValue = ipyData.GetADAwardValue()
+    GameWorld.DebugLog("领取广告奖励! adID=%s,adCnt=%s,adAwardType=%s,adAwardValue=%s,awardItemList=%s" % (adID, adCnt, adAwardType, adAwardValue, awardItemList))
     SyncADCntInfo(curPlayer, [adID])
     
-    if adMapID:
-        FBCommon.AddFBADCnt(curPlayer, adMapID)
-        
     if awardItemList:
         ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["ADAward", False, {}])
         
+    # 领取祝福树充能奖励
+    if adAwardType == 1:
+        PlayerTree.GetTreeEnergyAward(curPlayer, False)
+    # 副本次数
+    elif adAwardType == 2:
+        adMapID = adAwardValue
+        FBCommon.AddFBADCnt(curPlayer, adMapID)
+    # 寻宝
+    elif adAwardType == 3:
+        treasureType = adAwardValue
+        PlayerTreasure.DoTreasure(curPlayer, treasureType, PlayerTreasure.CostType_ADFree)
+    # 游历体力
+    elif adAwardType == 4:
+        PlayerTravel.AddTravelEnergy(curPlayer, adAwardValue)
     return
 
 def ADCntOnDay(curPlayer):
@@ -3421,7 +3379,7 @@
         adCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ADCnt % adID)
         if not adCnt and syncADIDList == None:
             continue
-        adInfo = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfo)
+        adInfo = ChPyNetSendPack.tagSCADInfo()
         adInfo.ADID = adID
         adInfo.ADCnt = adCnt
         adInfoList.append(adInfo)
@@ -3429,7 +3387,7 @@
     if not adInfoList:
         return
     
-    clientPack = ObjPool.GetPoolMgr().acquire(ChPyNetSendPack.tagSCADInfoList)
+    clientPack = ChPyNetSendPack.tagSCADInfoList()
     clientPack.ADInfoList = adInfoList[:255]
     clientPack.Count = len(clientPack.ADInfoList)
     NetPackCommon.SendFakePack(curPlayer, clientPack)
@@ -3476,6 +3434,37 @@
     NetPackCommon.SendFakePack(curPlayer, sendPack)
     return
 
+def GetDownloadAward(curPlayer, dataEx):
+    ##分包下载奖励 dataEx 0直接领取 1发邮件
+    playerID = curPlayer.GetPlayerID()
+    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 2)
+    curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState)
+    if curAwardNum == downloadAwardNum:
+        GameWorld.DebugLog("已领取分包奖励! curAwardNum(%s) == downloadAwardNum(%s)" % (curAwardNum, downloadAwardNum), playerID)
+        return
+    
+    awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 1)
+    if not awardItemList:
+        return
+    
+    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, downloadAwardNum)
+    GameWorld.DebugLog("领取分包下载奖励: curAwardNum=%s,downloadAwardNum=%s" % (curAwardNum, downloadAwardNum), playerID)
+    if dataEx == 1:
+        PlayerMail.SendMailByKey('SubpackageDownload', curPlayer.GetID(), awardItemList)
+    else:
+        ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["PackDownload", False, {}])
+    SyncPackDownloadAward(curPlayer)
+    return
+
+def SyncPackDownloadAward(curPlayer):
+    #分包下载奖励记录通知
+    downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 2)
+    sendPack = ChPyNetSendPack.tagMCPackDownloadRecord()
+    sendPack.Clear()
+    sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) == downloadAwardNum
+    NetPackCommon.SendFakePack(curPlayer, sendPack)
+    return
+
 def OnGiveAwardByClient(curPlayer, rewardType, dictKey, awardCfg, eventName=""):
     ## 发放前端控制的奖励,后端只负责发放奖励,是否可领奖前端自行判断
     if curPlayer.NomalDictGetProperty(dictKey):

--
Gitblit v1.8.0