| | |
| | | import GameLogic_FamilyWar
|
| | | import PlayerBossReborn
|
| | | import PlayerWeekParty
|
| | | import PlayerActLogin
|
| | | import Operate_EquipWash
|
| | | import PlayerTreasure
|
| | | import GameLogic_GodArea
|
| | |
| | |
|
| | | Sync_DBPlayer(curPlayer)
|
| | |
|
| | | # 死亡复活
|
| | | if curPlayer.GetHP() <=0 or curPlayer.GetPlayerAction() == IPY_GameWorld.paDie:
|
| | | PlayerRebornByType(curPlayer, ChConfig.rebornType_System, tick)
|
| | | |
| | | # 强刷一次属性,刷之前重置还没同步过所有属性
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_NotifyAllAttrState, 0)
|
| | | playerControl = PlayerControl.PlayerControl(curPlayer)
|
| | |
| | | if PlayerControl.GetCrossMapID(curPlayer):
|
| | | CrossRealmPlayer.DoExitCrossRealm(curPlayer)
|
| | |
|
| | | msgInfo = ""
|
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetPlayerID(), 0, 0, "RefreshMainServerRole", msgInfo, len(msgInfo))
|
| | | return
|
| | |
|
| | | def Sync_DBPlayer(curPlayer):
|
| | |
| | | #---玩家上线, 宠物逻辑处理---
|
| | | PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
|
| | |
|
| | | PlayerFamily.FamilyPlayerOnLoginCross(curPlayer)
|
| | | |
| | | PlayerTeam.OnPlayerLoginCrossServer(curPlayer)
|
| | | |
| | | #通知运行成功
|
| | | curPlayer.BalanceServer_PlayerLoginInitOK()
|
| | | return
|
| | |
|
| | | leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
|
| | | if leaveServerSecond > ChConfig.Def_PlayerOfflineProtectTime / 1000:
|
| | | # 离线超过离线保护重置切线临时保存的相关记录值
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PlayChangeLineID, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FuncChangeLineID, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HighChangeLineID, 0)
|
| | | #GameWorld.DebugLog("离线超过10秒重置切线临时保存的相关记录值!leaveServerSecond=%s" % leaveServerSecond, curPlayer.GetPlayerID())
|
| | | # 离线过久恢复为非跨服状态
|
| | | if PlayerControl.GetCrossMapID(curPlayer):
|
| | | PlayerControl.SetCrossMapID(curPlayer, 0)
|
| | | |
| | | SyncGuideState(curPlayer)
|
| | |
|
| | | #上线检查一次装备属性
|
| | |
| | |
|
| | | #通知玩家技能信息
|
| | | __Sync_ClientSkill(curPlayer)
|
| | | |
| | | #替换旧物品
|
| | | ItemControler.LoginCheckChangeOldItem(curPlayer)
|
| | | #清除生产采集Buff
|
| | | #PlayerControl.DelProduceBuff(curPlayer, tick)
|
| | | #清除国家答题Buff
|
| | |
| | | PlayerPrestigeSys.OnLogin(curPlayer)
|
| | | DataRecordPack.DR_PlayerLogin(curPlayer)
|
| | | EventReport.WriteEvent_login(curPlayer)
|
| | | |
| | | |
| | | leaveServerSecond = PlayerControl.GetPlayerLeaveServerSecond(curPlayer)
|
| | | if leaveServerSecond > ChConfig.Def_PlayerOfflineProtectTime / 1000:
|
| | | # 离线超过离线保护重置切线临时保存的相关记录值
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PlayChangeLineID, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FuncChangeLineID, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HighChangeLineID, 0)
|
| | | #GameWorld.DebugLog("离线超过10秒重置切线临时保存的相关记录值!leaveServerSecond=%s" % leaveServerSecond, curPlayer.GetPlayerID())
|
| | | # 离线过久恢复为非跨服状态
|
| | | if PlayerControl.GetCrossMapID(curPlayer):
|
| | | PlayerControl.SetCrossMapID(curPlayer, 0)
|
| | |
|
| | | # 合服首登处理
|
| | | __DoMixServerFirstLogin(curPlayer)
|
| | |
| | | PlayerBossReborn.OnLogin(curPlayer)
|
| | | # 周狂欢活动
|
| | | PlayerWeekParty.OnLogin(curPlayer)
|
| | | # 登录奖励活动
|
| | | PlayerActLogin.OnLogin(curPlayer)
|
| | | # 仙界盛典活动
|
| | | PlayerFairyCeremony.OnLogin(curPlayer)
|
| | | # 分支下载奖励记录通知
|
| | |
| | | #@return 返回值无意义
|
| | | #@remarks 通知玩家技能信息
|
| | | def __Sync_ClientSkill(curPlayer):
|
| | | sendPack = ChPyNetSendPack.tagMCPlayerSkills()
|
| | | sendPack.Clear()
|
| | | sendPack.Skills = []
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | | for i in range(skillManager.GetSkillCount()):
|
| | | curSkill = skillManager.GetSkillByIndex(i)
|
| | | curSkill.Sync_Skill()
|
| | | #curSkill.Sync_Skill()
|
| | | skillInfo = ChPyNetSendPack.tagPlayerSkill()
|
| | | skillInfo.SkillID = curSkill.GetSkillID()
|
| | | skillInfo.RemainTime = curSkill.GetRemainTime()
|
| | | skillInfo.Proficiency = curSkill.GetProficiency()
|
| | | |
| | | sendPack.Skills.append(skillInfo)
|
| | |
|
| | | sendPack.Count = len(sendPack.Skills)
|
| | | NetPackCommon.SendFakePack(curPlayer, sendPack) |
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | |
| | | #刷新玩家的视野
|
| | | if not GameWorld.IsCrossServer() and PlayerControl.GetCrossMapID(curPlayer):
|
| | | GameWorld.DebugLog("===登录本服地图时,处于跨服状态,不刷新视野!", curPlayer.GetPlayerID())
|
| | | curPlayer.SetSight(0)
|
| | | else:
|
| | | PlayerState.ChangePlayerSigh(curPlayer, tick)
|
| | |
|
| | |
| | | #初始化神兽装备背包
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
|
| | | curPack.SetCount(ChConfig.Def_PackCnt_DogzEquip)
|
| | | curPack.Sync_PackCanUseCount()
|
| | | |
| | | #初始化诛仙物品背包
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianItem)
|
| | | curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianItem)
|
| | | curPack.Sync_PackCanUseCount()
|
| | | #初始化诛仙装备背包
|
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptZhuXianEquip)
|
| | | curPack.SetCount(ChConfig.Def_PackCnt_ZhuXianEquip)
|
| | | curPack.Sync_PackCanUseCount()
|
| | |
|
| | | #初始化临时交换背包
|
| | |
| | | # 领取周狂欢积分奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_WeekPartyPoint:
|
| | | PlayerWeekParty.GetWeekPartyPointAward(curPlayer, dataEx, dataExStr)
|
| | | # 领取登录奖励活动奖励
|
| | | elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
|
| | | PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
|
| | |
|
| | | return
|
| | |
|