xdh
2019-01-22 ccaefa2a93fb82d0db5fc7e74832a292fb860984
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -79,6 +79,7 @@
import GameLogic_FamilyWar
import PlayerBossReborn
import PlayerWeekParty
import PlayerActLogin
import Operate_EquipWash
import PlayerTreasure
import GameLogic_GodArea
@@ -235,6 +236,10 @@
    
    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)
@@ -243,6 +248,8 @@
    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):
@@ -402,10 +409,25 @@
        #---玩家上线, 宠物逻辑处理---
        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)
    
    #上线检查一次装备属性
@@ -424,7 +446,8 @@
    
    #通知玩家技能信息
    __Sync_ClientSkill(curPlayer)
    #替换旧物品
    ItemControler.LoginCheckChangeOldItem(curPlayer)
    #清除生产采集Buff
    #PlayerControl.DelProduceBuff(curPlayer, tick)
    #清除国家答题Buff
@@ -448,18 +471,6 @@
    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)
@@ -695,6 +706,8 @@
    PlayerBossReborn.OnLogin(curPlayer)
    # 周狂欢活动
    PlayerWeekParty.OnLogin(curPlayer)
    # 登录奖励活动
    PlayerActLogin.OnLogin(curPlayer)
    # 仙界盛典活动
    PlayerFairyCeremony.OnLogin(curPlayer)
    # 分支下载奖励记录通知
@@ -911,11 +924,22 @@
#@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
 
#---------------------------------------------------------------------
@@ -1010,6 +1034,7 @@
    #刷新玩家的视野
    if not GameWorld.IsCrossServer() and PlayerControl.GetCrossMapID(curPlayer):
        GameWorld.DebugLog("===登录本服地图时,处于跨服状态,不刷新视野!", curPlayer.GetPlayerID())
        curPlayer.SetSight(0)
    else:
        PlayerState.ChangePlayerSigh(curPlayer, tick)
    
@@ -1236,6 +1261,15 @@
    #初始化神兽装备背包
    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()
    
    #初始化临时交换背包
@@ -5303,6 +5337,9 @@
    # 领取周狂欢积分奖励
    elif rewardType == ChConfig.Def_RewardType_WeekPartyPoint:
        PlayerWeekParty.GetWeekPartyPointAward(curPlayer, dataEx, dataExStr)
    # 领取登录奖励活动奖励
    elif rewardType == ChConfig.Def_RewardType_ActLoginAwardAct:
        PlayerActLogin.GetLoginAwardActionAward(curPlayer, dataEx, dataExStr)
    
    return