hxp
2020-01-15 50cabbbc229d1adc0e427df765cab2dc0889cdf1
8369 境界修改(升级境界给技能格式改为json字典)
4个文件已修改
77 ■■■■■ 已修改文件
PySysDB/PySysDBPY.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -48,7 +48,7 @@
    DWORD        BuffID;    //给全服在线玩家增加buff
    DWORD        ExpRate;    //修为池经验速率
    DWORD        ExpLimit;    //修为池经验上限
    list        LearnSkillIDInfo;    //学习技能ID信息 [职业1技能ID,职业2技能ID, ...]
    dict        LearnSkillIDInfo;    //学习技能ID信息 {"职业":[技能ID, ...], ...}
    BYTE        AddFreePoint;    //增加自由属性点
};
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -70,7 +70,7 @@
                        ("DWORD", "BuffID", 0),
                        ("DWORD", "ExpRate", 0),
                        ("DWORD", "ExpLimit", 0),
                        ("list", "LearnSkillIDInfo", 0),
                        ("dict", "LearnSkillIDInfo", 0),
                        ("BYTE", "AddFreePoint", 0),
                        ),
@@ -1644,7 +1644,7 @@
        self.BuffID = 0
        self.ExpRate = 0
        self.ExpLimit = 0
        self.LearnSkillIDInfo = []
        self.LearnSkillIDInfo = {}
        self.AddFreePoint = 0
        return
        
@@ -1659,7 +1659,7 @@
    def GetBuffID(self): return self.BuffID # 给全服在线玩家增加buff
    def GetExpRate(self): return self.ExpRate # 修为池经验速率
    def GetExpLimit(self): return self.ExpLimit # 修为池经验上限
    def GetLearnSkillIDInfo(self): return self.LearnSkillIDInfo # 学习技能ID信息 [职业1技能ID,职业2技能ID, ...]
    def GetLearnSkillIDInfo(self): return self.LearnSkillIDInfo # 学习技能ID信息 {"职业":[技能ID, ...], ...}
    def GetAddFreePoint(self): return self.AddFreePoint # 增加自由属性点
# 神兵表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPrestigeSys.py
@@ -205,7 +205,7 @@
        else:
            PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), curPlayer.GetID(), nextRealmLv])
            
    SkillCommon.GivePlayerSkillByJobSkillList(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
    SkillCommon.GivePlayerSkillByJobSkill(curPlayer, nextRealmIpyData.GetLearnSkillIDInfo())
    
    addFreePoint = nextRealmIpyData.GetAddFreePoint()
    if addFreePoint:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -188,42 +188,61 @@
    return
def GivePlayerSkillByJobSkillList(curPlayer, jobSkillList):
    ## 根据职业技能ID列表给玩家技能
def GivePlayerSkillByJobSkill(curPlayer, jobSkillInfo):
    ## 根据职业技能ID给玩家技能, 支持字典{"job":[skillID, ...], ...} {job:[skillID, ...], ...} 或 列表[skillID, ...]
    if not jobSkillInfo:
        return
    jobSkillList = []
    if isinstance(jobSkillInfo, dict):
        job = curPlayer.GetJob()
        if job in jobSkillInfo:
            jobSkillList = jobSkillInfo[job]
        elif str(job) in jobSkillInfo:
            jobSkillList = jobSkillInfo[str(job)]
    elif isinstance(jobSkillInfo, list) or isinstance(jobSkillInfo, tuple):
        jobSkillList = jobSkillInfo
    jobSkillList = list(jobSkillList)
    
    if not jobSkillList:
        return
    
    skillLV = 1
    giveSkill = None
    skillManager = curPlayer.GetSkillManager()
    playerControl = PlayerControl.PlayerControl(curPlayer)
    GameWorld.DebugLog("给玩家技能: %s" % jobSkillList)
    for skillID in jobSkillList:
        skillData = GameWorld.GetGameData().FindSkillByType(skillID, skillLV)
        skillData = GameWorld.GetGameData().GetSkillBySkillID(skillID)
        if skillData == None:
            continue
        if not CheckSkillJob(curPlayer, skillData):
            continue
        if not SkillShell.CheckLearnSkillCondition(curPlayer, skillData):
            continue
        giveSkill = skillData
        break
    if not giveSkill:
        GameWorld.ErrLog("找不到可以给的技能!jobSkillList=%s" % str(jobSkillList))
        return
    skillTypeID = giveSkill.GetSkillTypeID()
    skillManager = curPlayer.GetSkillManager()
    if skillManager.FindSkillBySkillTypeID(skillTypeID):
        #GameWorld.DebugLog("已经有该技能!")
        return
    skillManager.LVUpSkillBySkillTypeID(skillTypeID)
    GameWorld.DebugLog("    给玩家技能: skillTypeID=%s" % (skillTypeID), curPlayer.GetID())
    if isPassiveSkill(giveSkill):
        PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillTypeID)
        
    DataRecordPack.DR_LearnORUPSkill(curPlayer, skillTypeID, skillLV)
    PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillTypeID, 0)
        if skillManager.FindSkillBySkillID(skillID):
            #GameWorld.DebugLog("已经有该技能!skillID=%s" % skillID)
            continue
        skillLV = skillData.GetSkillLV()
        skillTypeID = skillData.GetSkillTypeID()
        beforeFightPower = 0
        if skillLV > 1:
            befSkill = skillManager.FindSkillBySkillTypeID(skillTypeID)
            beforeFightPower = 0 if not befSkill else befSkill.GetFightPower()
        skillManager.LVUPSkillByID(skillID)
        GameWorld.DebugLog("    给玩家技能: skillTypeID=%s,skillID=%s,skillLV=%s" % (skillTypeID, skillID, skillLV), curPlayer.GetID())
        DataRecordPack.DR_LearnORUPSkill(curPlayer, skillTypeID, skillLV)
        if isPassiveSkill(skillData):
            pass
            #PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillTypeID)
        playerControl.RefreshSkillFightPowerEx(skillID, beforeFightPower, isRefreshState=False)
    playerControl.RefreshPlayerAttrState()
    return
## 玩家登录检查学习技能(上线)