9765 【BT8】【后端】神通(切换技能时所有出战神通技能重新进入CD)
2个文件已修改
14 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerShentong.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerShentong.py
@@ -25,6 +25,7 @@
import PlayerGubao
import ItemCommon
import ChConfig
import SkillCommon
def GetShentongLVInfo(curPlayer, shentongID):
    lvInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ShentongLVInfo % shentongID)
@@ -207,12 +208,17 @@
            playerCtl.RefreshSkillFightPowerByDel(skillID)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShentongSkillID % num, 0)
        
    tick = GameWorld.GetGameWorld().GetTick()
    for num in range(ShentongSkillCountMax):
        setSkillID = setSkillIDList[num] 
        if setSkillID:
            skillManager.LearnSkillByID(setSkillID, True)
            playerCtl.RefreshSkillFightPowerEx(setSkillID, 0)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShentongSkillID % num, setSkillID)
            # 重新设置技能强制进入CD
            curSkill = skillManager.FindSkillBySkillID(setSkillID)
            if curSkill:
                SkillCommon.SetSkillRemainTime(curSkill, PlayerControl.GetReduceSkillCDPer(curPlayer), tick, curPlayer, True)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ShentongSkillID % num, setSkillID)
        
    Sync_ShentongSkillInfo(curPlayer)
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -94,7 +94,7 @@
#  @param tick 当前时间
#  @return None
#  @remarks 函数详细说明.
def SetSkillRemainTime(curSkill, reduceSkillCDPer, tick, atkObj=None):
def SetSkillRemainTime(curSkill, reduceSkillCDPer, tick, atkObj=None, forceSync=False):
    #GameWorld.Log(GameWorld.GetScript().OutputTrace())
    curSkill.SetLastUseTick(tick)
    coolDownTime = curSkill.GetCoolDownTime()
@@ -114,6 +114,8 @@
                
        # 被动技能的处理和主动技能区分
        curSkill.SetRemainTime(remainTime)
        if forceSync:
            curSkill.Sync_Skill()
        return
    
    # 减CD固定值
@@ -126,7 +128,7 @@
        remainTime = int(remainTime * max(0, ShareDefine.Def_MaxRateValue - reduceSkillCDPer) / ShareDefine.Def_MaxRateValue)
    
    curSkill.SetRemainTime(remainTime)
    if coolDownTime != remainTime:
    if forceSync or coolDownTime != remainTime:
        curSkill.Sync_Skill()
    
    #GameWorld.Log("技能: %s 剩余时间: %d"%(curSkill.GetSkillName(), curSkill.GetRemainTime()))