hxp
2020-01-16 f724b8e55ee83824c3231bd955785b839f88be63
8369 境界修改(法宝被动技能改为激活即生效,不需要再设置)
4个文件已修改
309 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 298 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -650,7 +650,7 @@
    # 商店物品购买次数登录通知
    FunctionNPCCommon.ShopItemOnLogin(curPlayer)
    # 通知设置的被动功法
    PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
    #PassiveBuffEffMng.OnLoginGFPassive(curPlayer)
    #我要太极
    PlayerDiceEx.DiceExOnLogin(curPlayer)
    # 剧情任务完成状态
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -28,6 +28,7 @@
import PlayerSuccess
import ChEquip
import PlayerBillboard
import PassiveBuffEffMng
import EventShell
import DataRecordPack
import SkillCommon
@@ -205,7 +206,8 @@
        else:
            PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv])
            
    SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
    if SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo()):
        PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEffSet(curPlayer)
    
    addFreePoint = nextRealmIpyData.GetAddFreePoint()
    if addFreePoint:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -208,6 +208,7 @@
    if not jobSkillList:
        return
    
    isLearnNew = False
    skillManager = curPlayer.GetSkillManager()
    playerControl = PlayerControl.PlayerControl(curPlayer)
    GameWorld.DebugLog("给玩家技能: %s" % jobSkillList)
@@ -224,6 +225,7 @@
            #GameWorld.DebugLog("已经有该技能!skillID=%s" % skillID)
            continue
        
        isLearnNew = True
        skillLV = skillData.GetSkillLV()
        skillTypeID = skillData.GetSkillTypeID()
        beforeFightPower = 0
@@ -242,8 +244,9 @@
            
        playerControl.RefreshSkillFightPowerEx(skillID, beforeFightPower, isRefreshState=False)
        
    if isLearnNew:
    playerControl.RefreshPlayerAttrState()
    return
    return isLearnNew
## 玩家登录检查学习技能(上线)
#  @param curPlayer 当前玩家
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -68,73 +68,75 @@
# };
#===============================================================================
def OnPassiveSet(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    findSkill = None
    if clientData.SkillID != 0:
        findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
        if not findSkill:
    #改为都生效,不需要设置
            return
        if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
            return
    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
    if clientData.Index >= holeCnt:
        # 超出孔数
        return
    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
    if clientData.Page >= pageCnt:
        # 超出页数
        return
    tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
    # 剩余VIP时间
    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
    strIndex = str(clientData.Index)
    if strIndex in tmpDict:
        # 判断条件
        for key, value in tmpDict[strIndex].items():
            if key == "level" and curPlayer.GetLV() < value:
                return
            if key == "vipLv":
                if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
                    return
            if key == "MountLv":
                if PlayerHorse.GetHorseSumLV(curPlayer) < value:
                    return
            # 多加一种任务判断
            if key == "OpenSkillSlots":
                # 主线任务完成时会设置标志可进地图标志
                mission_1 = QuestCommon.GetCommonMission(curPlayer)
                if not mission_1:
                    return
                if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
                    return
    PlayerControl.NomalDictSetProperty(curPlayer,
                                       ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
                                       clientData.SkillID,
                                       ChConfig.Def_PDictType_GFPassive)
    # 通知客户端设置成功
    sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
    sendPack.Page = clientData.Page
    sendPack.Index = clientData.Index
    sendPack.SkillID = clientData.SkillID
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    # 刷被动效果和属性
    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
    if clientData.Page == page:
        GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
    EventShell.EventRespons_PassiveSet(curPlayer)
    return
#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
#    findSkill = None
#    if clientData.SkillID != 0:
#        findSkill = curPlayer.GetSkillManager().FindSkillBySkillID(clientData.SkillID)
#        if not findSkill:
#            return
#
#        if findSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
#            return
#
#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
#    if clientData.Index >= holeCnt:
#        # 超出孔数
#        return
#
#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
#    if clientData.Page >= pageCnt:
#        # 超出页数
#        return
#
#    tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
#    # 剩余VIP时间
#    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
#    strIndex = str(clientData.Index)
#    if strIndex in tmpDict:
#        # 判断条件
#        for key, value in tmpDict[strIndex].items():
#            if key == "level" and curPlayer.GetLV() < value:
#                return
#            if key == "vipLv":
#                if curPlayer.GetVIPLv() < value:# or haveVipTime <=0:
#                    return
#            if key == "MountLv":
#                if PlayerHorse.GetHorseSumLV(curPlayer) < value:
#                    return
#
#
#            # 多加一种任务判断
#            if key == "OpenSkillSlots":
#                # 主线任务完成时会设置标志可进地图标志
#                mission_1 = QuestCommon.GetCommonMission(curPlayer)
#                if not mission_1:
#                    return
#
#                if (pow(2, int(strIndex)) & mission_1.GetProperty("OpenSkillSlots")) == 0:
#                    return
#
#    PlayerControl.NomalDictSetProperty(curPlayer,
#                                       ChConfig.Def_PDict_GFPassiveIndex%(clientData.Page, clientData.Index),
#                                       clientData.SkillID,
#                                       ChConfig.Def_PDictType_GFPassive)
#
#    # 通知客户端设置成功
#    sendPack = ChPyNetSendPack.tagMCPassiveSetAnswer()
#    sendPack.Page = clientData.Page
#    sendPack.Index = clientData.Index
#    sendPack.SkillID = clientData.SkillID
#    NetPackCommon.SendFakePack(curPlayer, sendPack)
#
#    # 刷被动效果和属性
#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
#    if clientData.Page == page:
#        GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
#        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
#
#    EventShell.EventRespons_PassiveSet(curPlayer)
#    return
#===============================================================================
@@ -148,40 +150,44 @@
#===============================================================================
def OnPassivePage(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
    if clientData.Page >= pageCnt:
        # 超出页数
    #改为都生效,不需要设置
        return
    PlayerControl.NomalDictSetProperty(curPlayer,
                                       ChConfig.Def_PDict_GFPassivePage,
                                       clientData.Page,
                                       ChConfig.Def_PDictType_GFPassive)
    # 通知客户端设置成功
    sendPack = ChPyNetSendPack.tagMCPassivePage()
    sendPack.Page = clientData.Page
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    # 刷被动效果和属性
    GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
    return
#    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
#    if clientData.Page >= pageCnt:
#        # 超出页数
#        return
#
#
#    PlayerControl.NomalDictSetProperty(curPlayer,
#                                       ChConfig.Def_PDict_GFPassivePage,
#                                       clientData.Page,
#                                       ChConfig.Def_PDictType_GFPassive)
#
#    # 通知客户端设置成功
#    sendPack = ChPyNetSendPack.tagMCPassivePage()
#    sendPack.Page = clientData.Page
#    NetPackCommon.SendFakePack(curPlayer, sendPack)
#
#    # 刷被动效果和属性
#    GetPassiveEffManager().RegistPassiveEffSet(curPlayer, True)
#    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
#    return
# 检查是否当前正在使用的被动技能
def FindUsePassiveSkills(curPlayer):
    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
    skills = []
    for i in xrange(holeCnt):
        findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0,
                                                     ChConfig.Def_PDictType_GFPassive)
        if findSkillID == 0:
    skillManager = curPlayer.GetSkillManager()
    for i in xrange(skillManager.GetSkillCount()):
        curSkill = skillManager.GetSkillByIndex(i)
        if not curSkill:
            continue
        
        if curSkill.GetFuncType() != ChConfig.Def_SkillFuncType_FbPassiveSkill:
            continue
        findSkillID = curSkill.GetSkillID()
        passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
        if passiveEff:
            findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
@@ -190,53 +196,73 @@
        
    return skills
#改为都生效,不需要设置
#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
#    skills = []
#    for i in xrange(holeCnt):
#        findSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(page, i), 0,
#                                                     ChConfig.Def_PDictType_GFPassive)
#        if findSkillID == 0:
#            continue
#
#        passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
#        if passiveEff:
#            findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
#
#        skills.append(findSkillID)
#
#    return skills
# 登录通知,并过滤过期VIP孔
def OnLoginGFPassive(curPlayer):
    # ---通知每页数据---
    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
    sendPack = ChPyNetSendPack.tagMCPassiveSet()
    sendPack.PageCnt = pageCnt
    sendPack.PassiveSkills = []
    #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
    # 剩余VIP时间
    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
    for i in xrange(pageCnt):
        skills = ChPyNetSendPack.tagMCPassiveSkills()
        skills.Count = holeCnt
        skills.SkillIDList = []
        for j in xrange(holeCnt):
            #===================================================================
            # # 判断VIP过期的情况
            # for key, value in tmpDict.get(j, {}).items():
            #    if key == "vipLv":
            #        if curPlayer.GetVIPLv() < value or haveVipTime <=0:
            #            PlayerControl.NomalDictSetProperty(curPlayer,
            #                                               ChConfig.Def_PDict_GFPassiveIndex%(i, j),
            #                                               0,
            #                                               ChConfig.Def_PDictType_GFPassive)
            #===================================================================
            skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
                                                     ChConfig.Def_PDictType_GFPassive)
            skills.SkillIDList.append(skillID)
        sendPack.PassiveSkills.append(skills)
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    # ---通知激活页---
    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
    sendPack = ChPyNetSendPack.tagMCPassivePage()
    sendPack.Page = page
    NetPackCommon.SendFakePack(curPlayer, sendPack)
    #改为都生效,不需要设置
    return
#    # ---通知每页数据---
#    holeCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 2)
#    pageCnt = IpyGameDataPY.GetFuncCfg('PassSkillEquipLimit', 3)
#
#    sendPack = ChPyNetSendPack.tagMCPassiveSet()
#    sendPack.PageCnt = pageCnt
#    sendPack.PassiveSkills = []
#
#
#    #tmpDict = IpyGameDataPY.GetFuncEvalCfg('PassSkillEquipLimit', 1)
#
#    # 剩余VIP时间
#    #haveVipTime = PlayerVip.GetCurVIPTime(curPlayer)
#
#    for i in xrange(pageCnt):
#        skills = ChPyNetSendPack.tagMCPassiveSkills()
#        skills.Count = holeCnt
#        skills.SkillIDList = []
#        for j in xrange(holeCnt):
#
#            #===================================================================
#            # # 判断VIP过期的情况
#            # for key, value in tmpDict.get(j, {}).items():
#            #    if key == "vipLv":
#            #        if curPlayer.GetVIPLv() < value or haveVipTime <=0:
#            #            PlayerControl.NomalDictSetProperty(curPlayer,
#            #                                               ChConfig.Def_PDict_GFPassiveIndex%(i, j),
#            #                                               0,
#            #                                               ChConfig.Def_PDictType_GFPassive)
#            #===================================================================
#
#            skillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassiveIndex%(i, j), 0,
#                                                     ChConfig.Def_PDictType_GFPassive)
#            skills.SkillIDList.append(skillID)
#
#        sendPack.PassiveSkills.append(skills)
#
#    NetPackCommon.SendFakePack(curPlayer, sendPack)
#
#    # ---通知激活页---
#    page = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GFPassivePage, 0, ChConfig.Def_PDictType_GFPassive)
#    sendPack = ChPyNetSendPack.tagMCPassivePage()
#    sendPack.Page = page
#    NetPackCommon.SendFakePack(curPlayer, sendPack)
#    return
# 切换地图
def OnLoadMapGFPassive(curPlayer):