| | |
| | | import PlayerTreasure
|
| | | import IpyGameDataPY
|
| | | import EventReport
|
| | | import PassiveBuffEffMng
|
| | | import PlayerActBuyOne
|
| | | import PlayerActCollectWords
|
| | | import PlayerActTotalRecharge
|
| | |
| | | import PyGameData
|
| | | import PlayerCoin
|
| | | import PlayerFB
|
| | | import SkillShell
|
| | | import PlayerGubao
|
| | | import PlayerCustomAward
|
| | | import PlayerZhanling
|
| | |
| | | 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
|
| | |
| | | PlayerActBuyCountGift.OnPlayerLogin(curPlayer)
|
| | | # 任务活动
|
| | | PlayerActTask.OnPlayerLogin(curPlayer)
|
| | | # 登录活动
|
| | | PlayerActLoginNew.OnPlayerLogin(curPlayer)
|
| | | # 炼器活动
|
| | | PlayerActLianqi.OnPlayerLogin(curPlayer)
|
| | | # 多日连充活动
|
| | |
| | | PlayerPreset.OnPlayerLogin(curPlayer)
|
| | | CrossPlayer.OnPlayerLogin(curPlayer)
|
| | | PlayerActLunhuidian.OnPlayerLogin(curPlayer)
|
| | | PlayerActHeroAppear.OnPlayerLogin(curPlayer)
|
| | |
|
| | | __OnFixVersion(curPlayer) # 修正线上玩家数据用,暂时放最后
|
| | | # 上线查询一次充值订单
|
| | |
| | | '''
|
| | |
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | sysFixVersion = 2025123012 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
|
| | | sysFixVersion = 2026021300 # 系统定义的最后一次修正版本号,一般以 yyyyMMddhh 定义为版本号
|
| | | playerVersion = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FixVersion)
|
| | | if not playerVersion:
|
| | | createRoleTime = curPlayer.GetCreateRoleTime() # 按创角
|
| | |
| | | # 每个版本修正完需要立即更新到对应的版本号值,防止中间某个版本修正失败,导致重登后重复修正已经处理的版本
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FixVersion, fixVersion)
|
| | |
|
| | | # 修正公会跨服首次没有过天
|
| | | fixVersion = 2026021300
|
| | | if playerVersion < fixVersion:
|
| | | if DBFamily.IsFamilyCross():
|
| | | GameWorld.Log("跨服公会玩家登录补过天")
|
| | | PlayerFamily.__doPlayerOnDay(curPlayer)
|
| | | |
| | | # 其他
|
| | | # 需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!需要按修正版本时间顺序依次处理!!!
|
| | |
|
| | |
| | | #@return 返回值无意义
|
| | | #@remarks C++封包触发, 玩家下线
|
| | | def PlayerDisconnect(index, tick):
|
| | | GameWorld.GetPsycoFunc(__Func_PlayerDisconnect)(index, tick)
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | PlayerDisconnectEx(curPlayer, tick)
|
| | | return
|
| | |
|
| | | ##C++封包触发, 玩家下线
|
| | |
| | | #@param tick 时间戳
|
| | | #@return 返回值无意义
|
| | | #@remarks C++封包触发, 玩家下线
|
| | | def __Func_PlayerDisconnect(index, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | def PlayerDisconnectEx(curPlayer, tick):
|
| | | try:
|
| | | # 避免因逻辑错误导致下线失败,可能导致回档的情况
|
| | | DoPlayerDisconnect(curPlayer, tick)
|
| | |
| | | # 轮回殿奖励
|
| | | 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)
|
| | |
| | | # 领取单笔累充领取
|
| | | 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)
|
| | |
| | | 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()
|