| | |
| | | import PlayerPrestigeSys
|
| | | import PlayerFamily
|
| | | import PlayerLoginDayAward
|
| | | import PlayerGodWeapon
|
| | | import PlayerGoldInvest
|
| | | import PlayerActivity
|
| | | import FBCommon
|
| | |
| | | import PlayerCrossRealmPK
|
| | | import PlayerCrossChampionship
|
| | | import GameFuncComm
|
| | | import PlayerFamilyTaofa
|
| | | import PlayerBossReborn
|
| | | import PlayerWeekParty
|
| | | import PlayerFeastWeekParty
|
| | |
| | | import PlayerRune
|
| | | import IpyGameDataPY
|
| | | import EventReport
|
| | | import OpenServerCampaign
|
| | | import PassiveBuffEffMng
|
| | | import PlayerFlashSale
|
| | | import PlayerFlashGiftbag
|
| | |
| | | import PlayerCustomAward
|
| | | import PlayerZhanling
|
| | | import PlayerTree
|
| | | import PlayerLLMJ
|
| | | import PlayerLianTi
|
| | | import PlayerTask
|
| | | import PlayerYinji
|
| | |
| | | PlayerControl.SyncOnLineTimeTotal(curPlayer)
|
| | | #PlayerControl.SyncOnLineTimeLastOpenPack(curPlayer, IPY_GameWorld.rptItem)
|
| | | PlayerControl.SyncTrainRealmLV(curPlayer)
|
| | | PlayerGodWeapon.OnLogin(curPlayer)
|
| | | PlayerPrestigeSys.OnLogin(curPlayer)
|
| | | #DataRecordPack.DR_PlayerLogin(curPlayer)
|
| | | EventReport.WriteEvent_login(curPlayer)
|
| | |
| | |
|
| | | #玩家扩展信息
|
| | | __SyncPlayerInfoEx(curPlayer)
|
| | | |
| | | #补丁包下载奖励
|
| | | GiveDownloadPatchAward(curPlayer)
|
| | |
|
| | | #PKģʽ
|
| | | #SyncPKModel(curPlayer)
|
| | |
| | |
|
| | | # 通知累计登陆礼
|
| | | PlayerLoginDayAward.OnLoginNotifyLoginDayAward(curPlayer)
|
| | | |
| | | # 开服活动奖励信息
|
| | | OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
|
| | | |
| | | # 采集NPC次数通知
|
| | | #NPCCommon.SyncCollNPCTime(curPlayer)
|
| | |
|
| | | # 副本进入时间
|
| | | FBCommon.FBOnLogin(curPlayer)
|
| | |
| | | PlayerActSingleRecharge.OnPlayerLogin(curPlayer)
|
| | | # 转盘活动
|
| | | PlayerActTurntable.OnPlayerLogin(curPlayer)
|
| | | # 分支下载奖励记录通知
|
| | | SyncPackDownloadAward(curPlayer)
|
| | | # 登录触发功能开启(老号处理)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | # 神兽
|
| | |
| | | SyncADCntInfo(curPlayer)
|
| | | UpdatePlayerName.OnPlayerLogin(curPlayer)
|
| | | PlayerActivity.OnPlayerLogin(curPlayer)
|
| | | PlayerLLMJ.OnPlayerLogin(curPlayer)
|
| | |
|
| | | # 上线查询一次充值订单
|
| | | curPlayer.SendDBQueryRecharge()
|
| | |
| | |
|
| | | # 重置首充双倍
|
| | | PlayerCoin.DoResetCTGCount(curPlayer, "MixServer")
|
| | | |
| | | # 重置商店购买次数,暂定只重置类型 7 的
|
| | | FunctionNPCCommon.ResetShopItemBuyCount(curPlayer, [7])
|
| | |
|
| | | # 合服邮件,盟主专属邮件在GameServer处理
|
| | | mailItemList = IpyGameDataPY.GetFuncEvalCfg("MixServerMail", 1)
|
| | |
| | | #if curPlayer.GetPlayerAction() != IPY_GameWorld.paEvent:
|
| | | curPlayer.SetCanMove(True)
|
| | |
|
| | | #同步客户端tick
|
| | | #这个封包要在EndLoadMap, 上马之前发, 否则客户端处理时机不对(客户端封包缓存机制)
|
| | | #curPlayer.Sync_ClientTick()
|
| | | |
| | | #做上一个地图的上马/骠车逻辑
|
| | | #恢复自己的状态
|
| | | playerVehicle = curPlayer.GetLastMapPlayerVehicle()
|
| | | if playerVehicle == IPY_GameWorld.pvHorse:
|
| | | #玩家在骑马中
|
| | | if not PlayerHorse.PlayerRideHorseUp(curPlayer, False, False):
|
| | | #=======================================================================
|
| | | # playerHorseState = curPlayer.GetLastMapPlayerRidehorseState()
|
| | | # if playerHorseState != IPY_GameWorld.prsNormal:
|
| | | # #切换地图, 恢复急行状态
|
| | | # curPlayer.SetPlayerRidehorseState(playerHorseState)
|
| | | # |
| | | # #刷新人物属性 所有状态
|
| | | # playerControl = PlayerControl.PlayerControl(curPlayer)
|
| | | # playerControl.RefreshAllState()
|
| | | # else:
|
| | | #=======================================================================
|
| | | #此时已经是下马状态不需要刷状态 但是需要通知客户端下马
|
| | | PlayerHorse.PlayerRideHorseDown(curPlayer, False)
|
| | | |
| | | #激活玩家(保证持续性Buff处理间隔)
|
| | | PlayerControl.SetIsNeedProcess(curPlayer, True)
|
| | |
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | |
|
| | | #防外挂 不可移动
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
|
| | | == ChConfig.Def_AutoCheck_State_Danger:
|
| | | return
|
| | | #if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
|
| | | # == ChConfig.Def_AutoCheck_State_Danger:
|
| | | # return
|
| | |
|
| | |
|
| | | #不可移动行为状态, 判断客户端限制
|
| | |
| | |
|
| | | #流向记录玩家下线
|
| | | DataRecordPack.DR_PlayerDisconnect(curPlayer)
|
| | | |
| | | #玩家未回图形验证码下线将会记录错误次数
|
| | | #===========================================================================
|
| | | # if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_Captcha_WaitSign) \
|
| | | # == PlayerAutoCheckOnline.Def_Captcha_WaitAnswer:
|
| | | # PlayerAutoCheckOnline.CaptchaAnswerErr(curPlayer, tick, False)
|
| | | # |
| | | # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_Captcha_WaitSign, PlayerAutoCheckOnline.Def_Captcha_Safe)
|
| | | # |
| | | #===========================================================================
|
| | | #@warning: 等字段统一修改,删除双倍经验BUFF
|
| | | #PlayerDoubleExpSys.DeleteDoubleExpBuff(curPlayer, ChConfig.Def_DoubleExpNote_StopOff)
|
| | |
|
| | | #设置RouteServerInitOK字典
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_RouteServerInitOK, 0)
|
| | |
| | | # 广告奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ADAward:
|
| | | OnGetADAward(curPlayer, dataEx)
|
| | | # 历练秘笈升级
|
| | | elif rewardType == ChConfig.Def_RewardType_LLMJLVUp:
|
| | | PlayerLLMJ.OnLLMJLVUp(curPlayer)
|
| | | # 公会讨伐领取宝箱奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_FamilyTaofaBox:
|
| | | PlayerFamilyTaofa.GetTaofaBoxAward(curPlayer)
|
| | | # 阵容推荐奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_LineupRecommend:
|
| | | PlayerHero.GetLineupRecommendAward(curPlayer, dataEx, dataExStr)
|
| | | |
| | | |
| | | # 每日免费直购礼包
|
| | | elif rewardType == ChConfig.Def_RewardType_DayFreeGoldGift:
|
| | | PlayerDailyGiftbag.OnGetDailyFreeGiftbag(curPlayer)
|
| | | # 仙盟每日福利奖励
|
| | | #elif rewardType == ChConfig.Def_RewardType_FamilyDayAward:
|
| | | # PlayerFamily.GetFamilyDayAward(curPlayer)
|
| | | # 玩家等级奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_LVAward:
|
| | | PlayerLVAward.GetPlayerLVAward(curPlayer, dataEx)
|
| | |
| | | # 领取boss复活活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_BossReborn:
|
| | | PlayerBossReborn.GetBossRebornActionAward(curPlayer, dataEx)
|
| | | # 领取分包下载奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_DownLoad:
|
| | | GetDownloadAward(curPlayer, dataEx)
|
| | | # 领取许愿池奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_WishingWell:
|
| | | PlayerWishingWell.DoGetWishingAward(curPlayer)
|
| | |
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | |
|
| | | #防外挂 不可移动
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
|
| | | == ChConfig.Def_AutoCheck_State_Danger:
|
| | | return
|
| | | #if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_AutoCheckHack_State) \
|
| | | # == ChConfig.Def_AutoCheck_State_Danger:
|
| | | # return
|
| | |
|
| | | if not PYPlayerNormalMove(curPlayer, clientPack, tick):
|
| | | posX, posY = curPlayer.GetPosX(), curPlayer.GetPosY()
|
| | |
| | | sendPack.MoveType = moveType
|
| | | # NotifyAll 做过滤或者数量处理
|
| | | PlayerControl.PyNotifyAll(curPlayer, sendPack, False, 0)
|
| | | return
|
| | |
|
| | | def GiveDownloadPatchAward(curPlayer):
|
| | | ## 发放下载补丁包奖励
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | patchAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 4)
|
| | | curAwardNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadPatchAward)
|
| | | if curAwardNum == patchAwardNum:
|
| | | GameWorld.DebugLog("已发放下载补丁包奖励! curAwardNum(%s) == patchAwardNum(%s)" % (curAwardNum, patchAwardNum), playerID)
|
| | | return
|
| | | |
| | | awardItemList = IpyGameDataPY.GetFuncEvalCfg('DownReward', 3)
|
| | | if not awardItemList:
|
| | | return
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadPatchAward, patchAwardNum)
|
| | | GameWorld.DebugLog("发放补丁包下载奖励: curAwardNum=%s,patchAwardNum=%s" % (curAwardNum, patchAwardNum), playerID)
|
| | | PlayerControl.SendMailByKey("DownloadPatchAward", [playerID], awardItemList)
|
| | | return
|
| | |
|
| | | def GetDownloadAward(curPlayer, dataEx):
|
| | | ##分包下载奖励 dataEx 0直接领取 1发邮件
|
| | | playerID = curPlayer.GetPlayerID()
|
| | | downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
|
| | | 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
|
| | | |
| | | # 检查背包
|
| | | if dataEx == 0:
|
| | | needSpace = len(awardItemList)
|
| | | packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
|
| | | if needSpace > packSpace:
|
| | | PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
|
| | | return
|
| | | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_DownloadAwardState, downloadAwardNum)
|
| | | GameWorld.DebugLog("领取分包下载奖励: curAwardNum=%s,downloadAwardNum=%s" % (curAwardNum, downloadAwardNum), playerID)
|
| | | if dataEx == 1:
|
| | | PlayerControl.SendMailByKey('SubpackageDownload', [curPlayer.GetID()], awardItemList)
|
| | | else:
|
| | | for itemID, itemCnt, isBind in awardItemList:
|
| | | ItemControler.GivePlayerItem(curPlayer, itemID, itemCnt, 0, [IPY_GameWorld.rptItem])
|
| | | SyncPackDownloadAward(curPlayer)
|
| | | return
|
| | |
|
| | | def SyncPackDownloadAward(curPlayer):
|
| | | #分包下载奖励记录通知
|
| | | downloadAwardNum = IpyGameDataPY.GetFuncCfg('DownReward', 5)
|
| | | sendPack = ChPyNetSendPack.tagMCPackDownloadRecord()
|
| | | sendPack.Clear()
|
| | | sendPack.Record = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_DownloadAwardState) == downloadAwardNum
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack)
|
| | | return
|
| | |
|
| | | def NotifyPlayerMove(curPlayer, posX, posY, npcID=0):
|