| | |
| | | import PlayerTreasure
|
| | | import IpyGameDataPY
|
| | | import EventReport
|
| | | import PassiveBuffEffMng
|
| | | import PlayerActBuyOne
|
| | | import PlayerActCollectWords
|
| | | import PlayerActTotalRecharge
|
| | |
| | | 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
|
| | |
| | | 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) # 修正线上玩家数据用,暂时放最后
|
| | | # 上线查询一次充值订单
|
| | |
| | | #首登邮件
|
| | | 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)
|
| | |
|
| | |
| | | PlayerControl.SendMailByKey("MixServer1", [playerID], addItemList, gold=gold, silver=silver, detail=detailDict)
|
| | |
|
| | | # 同步排行榜
|
| | | PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
|
| | | #PlayerBillboard.UpdatePlayerBillboardOnLeaveServer(curPlayer, isAll=True)
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | |
| | | if (curPlayer.GetAccState() & pow(2, ChConfig.Def_PysForbidByPy)) <= 0:
|
| | | return True
|
| | |
|
| | | GameWorld.Log("玩家被封号禁止登录" , curPlayer.GetPlayerID())
|
| | | curPlayer.Kick(IPY_GameWorld.disGMKick)
|
| | | return
|
| | |
|
| | |
| | | #@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)
|
| | | # 群英榜历史最高名次奖励 7
|
| | | elif rewardType == ChConfig.Def_RewardType_QunyingRankHighest:
|
| | | GameLogic_Qunying.GetQunyingRankHighestAward(curPlayer)
|
| | |
|
| | | |
| | | |
| | | # 首充礼包奖励
|
| | | 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)
|
| | |
| | | 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
|
| | |
| | | # 游历体力
|
| | | elif adAwardType == 4:
|
| | | PlayerTravel.AddTravelEnergy(curPlayer, adAwardValue)
|
| | | |
| | | DataRecordPack.DR_ADAward(curPlayer, adID)
|
| | | return
|
| | |
|
| | | def ADCntOnDay(curPlayer):
|
| | |
| | | clientPack.NowSecond = serverTime.second
|
| | | clientPack.NowMicSecond = serverTime.microsecond
|
| | | clientPack.WeekOfYear = GameWorld.GetWeekOfYear()
|
| | | clientPack.OpenServerTime = DBDataMgr.GetEventTrigMgr().GetValue(ShareDefine.Def_InitOpenServerTime)
|
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | |
| | | 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()
|