hch
2019-06-22 666882e6e4f8bfbc698c21229d4bbd3f4a318738
6603 【后端】【2.0】增加新版的sp和被动技能 - 改变技能特效
3个文件已修改
1个文件已添加
75 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/BaseAttack.py
@@ -1379,6 +1379,9 @@
    
    #技能攻击
    skillID = curSkill.GetSkillID()
    changeSkillID = PassiveBuffEffMng.GetPassiveSkillValueByTriggerTypeEx(attacker, None, curSkill, ChConfig.TriggerType_ChangeSkillEff)
    if changeSkillID:
        skillID = changeSkillID
    battleType = AttackCommon.GetBattleType(attacker, curSkill)
    #无目标类技能
    if not defender:
@@ -2757,6 +2760,7 @@
    # ChangeAction(paAttack);
    # m_LastBattleTick = GetGameWorldManager()->GetTick();
    #===========================================================================
    sendPack = ChNetSendPack.tagUseSkillPos()
    sendPack.Clear()
    sendPack.ObjID = attacker.GetID()
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4482,7 +4482,8 @@
TriggerType_SkillSuccessExpend, # 使用技能成功后不触发技能 处理消耗等问题用 87
TriggerType_ThumpSkillValue, # 重击增加技能固定值伤害 88
TriggerType_HitValue, # 记录命中个数 89
) = range(1, 90)
TriggerType_ChangeSkillEff, # 改变技能特效广播 90
) = range(1, 91)
#不可以佩戴翅膀的地图
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4110.py
New file
@@ -0,0 +1,26 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 攻击方的最大生命百分比转化为固定伤害值
#
# @author: Alee
# @date 2019-6-18 下午09:24:04
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import ChConfig
import GameObj
def CheckCanHappen(attacker, defender, effect, curSkill):
    return True
def GetValue(attacker, defender, effect, skillTypeID):
    if effect.GetEffectValue(1):
        return effect.GetEffectValue(1)
    return skillTypeID
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -405,6 +405,7 @@
             4107:ChConfig.TriggerType_SkillValue,   # 增加技能伤害固定值 82
             4108:ChConfig.TriggerType_SkillSuccess,  # 使用技能成功后不触发技能 处理消耗等问题用 87
             4109:ChConfig.TriggerType_SkillValue,   # 增加技能伤害固定值 82
             4110:ChConfig.TriggerType_ChangeSkillEff, # 改变技能特效
             }
    return tdict.get(effectID, -1) 
    #===========================================================================
@@ -1707,3 +1708,44 @@
    return True
# 被动技能改变值  无条件限制 纯取值
def GetPassiveSkillValueByTriggerTypeEx(attacker, defender, connSkill, triggerType):
    attacker = FindRealAttacker(attacker)
    if not attacker:
        return 0
    passiveEff = GetPassiveEffManager().GetPassiveEff(attacker)
    if not passiveEff:
        return 0
    connSkillID = connSkill.GetSkillTypeID() if connSkill else 0
    skills = passiveEff.GetPassiveSkillsByTriggerType(triggerType, connSkill)
    if not skills:
        return 0
    curValue = 0
    for skillTypeID, effectID in skills:
        if connSkillID == skillTypeID:
            continue
        curSkill = attacker.GetSkillManager().FindSkillBySkillTypeID(skillTypeID)
        if not curSkill:
            continue
        effect = SkillCommon.GetSkillEffectByEffectID(curSkill, effectID)
        if not effect:
            continue
        pyName = "PassiveSkill_%s" % effectID
        callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "CheckCanHappen"))
        # 条件不满足
        if callFunc and not callFunc(attacker, defender, effect, curSkill):
            continue
        callFunc = GameWorld.GetExecFunc(PassiveBuff, "%s.%s" % (pyName, "GetValue"))
        if callFunc is None:
            continue
        curValue += callFunc(attacker, defender, effect, skillTypeID)
    return curValue