From 36c1888dd0d44fa319c804a715c3551b98633650 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 03 三月 2026 15:09:33 +0800
Subject: [PATCH] 519 硬核渠道对接(指定appID可配置指定创角邮件;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 50 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 33 insertions(+), 17 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 25906c0..3c5320a 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
@@ -62,7 +61,6 @@
import PyGameData
import PlayerCoin
import PlayerFB
-import SkillShell
import PlayerGubao
import PlayerCustomAward
import PlayerZhanling
@@ -71,16 +69,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 +331,6 @@
PlayerActBuyCountGift.OnPlayerLogin(curPlayer)
# 任务活动
PlayerActTask.OnPlayerLogin(curPlayer)
- # 登录活动
- PlayerActLoginNew.OnPlayerLogin(curPlayer)
# 炼器活动
PlayerActLianqi.OnPlayerLogin(curPlayer)
# 多日连充活动
@@ -420,6 +417,7 @@
PlayerPreset.OnPlayerLogin(curPlayer)
CrossPlayer.OnPlayerLogin(curPlayer)
PlayerActLunhuidian.OnPlayerLogin(curPlayer)
+ PlayerActHeroAppear.OnPlayerLogin(curPlayer)
__OnFixVersion(curPlayer) # 修正线上玩家数据用,暂时放最后
# 上线查询一次充值订单
@@ -448,7 +446,7 @@
'''
playerID = curPlayer.GetPlayerID()
- sysFixVersion = 2025123012 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
+ sysFixVersion = 2026021300 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
playerVersion = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FixVersion)
if not playerVersion:
createRoleTime = curPlayer.GetCreateRoleTime() # 按创角
@@ -468,6 +466,13 @@
# 每个版本修正完需要立即更新到对应的版本号值,防止中间某个版本修正失败,导致重登后重复修正已经处理的版本
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FixVersion, fixVersion)
+ # 修正公会跨服首次没有过天
+ fixVersion = 2026021300
+ if playerVersion < fixVersion:
+ if DBFamily.IsFamilyCross():
+ GameWorld.Log("跨服公会玩家登录补过天")
+ PlayerFamily.__doPlayerOnDay(curPlayer)
+
# 其他
# 需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!
@@ -692,7 +697,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)
@@ -1897,7 +1907,8 @@
#@return 返回值无意义
#@remarks C++封包触发, 玩家下线
def PlayerDisconnect(index, tick):
- GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick)
+ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+ PlayerDisconnectEx(curPlayer, tick)
return
##C++封包触发, 玩家下线
@@ -1905,8 +1916,7 @@
#@param tick 时间戳
#@return 返回值无意义
#@remarks C++封包触发, 玩家下线
-def __Func_PlayerDisconnect(index, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
+def PlayerDisconnectEx(curPlayer, tick):
try:
# 避免因逻辑错误导致下线失败,可能导致回档的情况
DoPlayerDisconnect(curPlayer, tick)
@@ -3130,8 +3140,14 @@
# 轮回殿奖励
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)
-
+
# 首充礼包奖励
elif rewardType == ChConfig.Def_RewardType_FirstCharge:
PlayerGoldGift.GetPlayerFirstCharge(curPlayer, dataEx, dataExStr)
@@ -3144,9 +3160,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)
@@ -3865,14 +3878,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