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