hch
2019-05-17 6fcf3513ccde191e067c8dfd8279cccedf95eb77
6603 【后端】【2.0】增加新版的sp和被动技能 - 新版
7个文件已修改
4个文件已添加
163 ■■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Attack/AttackLogic/AttackCommon.py
@@ -2120,7 +2120,8 @@
        elif curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbSkill, ChConfig.Def_SkillFuncType_FbPassiveSkill]:
            atkSkillPer += PlayerControl.GetFabaoHurtPer(atkObj)
            atkSkillValue += PlayerControl.GetFabaoHurt(atkObj)
    atkSkillValue += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_SkillValue)
    #  atkSkillPer 包含普攻,所以不是用技能增强处理
    atkSkillPer += PassiveBuffEffMng.GetPassiveSkillValueByTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
    atkSkillPer += PassiveBuffEffMng.GetValueByPassiveBuffTriggerType(atkObj, defObj, curSkill, ChConfig.TriggerType_AttackAddSkillPer)
@@ -2291,6 +2292,7 @@
        hurtFormula = hurtDist[atkwargs.get('hurtFormulaKey', None)]
    else:
        hurtFormula = hurtDist[hurtFormulaKey]
    hurtValue = int(eval(FormulaControl.GetCompileFormula(hurtFormulaKey, hurtFormula)))
    if hurtType == ChConfig.Def_HurtType_Normal and SuppressValueRealmRate > 10000:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -4485,7 +4485,8 @@
TriggerType_SuperHitSuckBloodPer,   # 暴击百分比吸血, 79
TriggerType_BurnPer,    # 灼烧伤害百分比 80
TriggerType_BurnDisappear,    # 灼烧消失触发 81
) = range(1, 82)
TriggerType_SkillValue,    # 增加技能伤害固定值 82
) = range(1, 83)
#不可以佩戴翅膀的地图
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/GameSkills/SkillCommon.py
@@ -1282,10 +1282,11 @@
        GameObj.SetHP(curObj, remainHP, not view)
    
    AttackCommon.WriteHurtLog(buffOwner, curObj, curSkill, lostValue, hurtType, "持续掉血")
    if view:
        #广播伤血类型
        AttackCommon.ChangeHPView(curObj, buffOwner, skillTypeID, notifyLostValue, hurtType)
        if buffOwner:
            PassiveBuffEffMng.OnPassiveSkillTrigger(buffOwner, curObj, curSkill, ChConfig.TriggerType_AttackOverPassive, tick)
        
    # 濒死状态触发技能
    if GameObj.GetHP(curObj) == 0:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4002.py
@@ -1,30 +1,37 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
# @todo: 目标血量低于XX百分比提高伤害xx
##@package
#
# @todo: 目标处于XX状态提高技能伤害固定值
#
# @author: Alee
# @date 2018-1-9 下午09:39:37
# @date 2019-5-17 下午05:01:22
# @version 1.0
#
# @note: 
#
#---------------------------------------------------------------------
import ChConfig
import GameWorld
import GameObj
# 血量低于XX
def CheckCanHappen(attacker, defender, effect, curSkill):
    if not defender:
        return False
    
    if GameObj.GetHP(defender)*ChConfig.Def_MaxRateValue/GameObj.GetMaxHP(defender) >= effect.GetEffectValue(1):
        return False
    ownerID, ownerType = 0, 0
    if effect.GetEffectValue(2):
        ownerID, ownerType = attacker.GetID(), attacker.GetGameObjType()
    if effect.GetEffectValue(1):
        if not GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
            #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
            return False
    
    return True
def GetValue(attacker, defender, effect):
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4015.py
@@ -25,11 +25,12 @@
    if effect.GetEffectValue(2):
        ownerID, ownerType = attacker.GetID(), attacker.GetGameObjType()
        
    if GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
        #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
        return True
    if effect.GetEffectValue(1):
        if not GameObj.GetPyPlayerState(defender, effect.GetEffectValue(1), ownerID, ownerType):#ChConfig.Def_PlayerState_Stun):
            #GameWorld.DebugLog("状态触发----%s"%effect.GetEffectValue(1))
            return False
    
    return False
    return True
    
def GetValue(attacker, defender, effect):
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4074.py
New file
@@ -0,0 +1,28 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 自身每存在1个增益buff,增加XX%技能伤害,上限增加200%
#
# @author: Alee
# @date 2019-5-17 下午05:25:38
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import ChConfig
import IPY_GameWorld
import AttackCommon
def CheckCanHappen(attacker, defender, effect, curSkill):
    if effect.GetEffectValue(2):
        # 只针对第一目标
        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
            return False
    return True
def GetValue(attacker, defender, effect):
    return min(effect.GetEffectValue(0)*attacker.GetBuffState().GetBuffCount(), effect.GetEffectValue(1))
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4075.py
New file
@@ -0,0 +1,29 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 重击造成每点(攻速-100)*1%重击伤害
#
# @author: Alee
# @date 2019-5-17 下午03:19:44
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import PlayerControl
import AttackCommon
def CheckCanHappen(attacker, defender, effect, curSkill):
    if effect.GetEffectValue(1):
        # 只针对第一目标
        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
            return False
    return True
def GetValue(attacker, defender, effect):
    return max(PlayerControl.GetAtkSpeed(attacker) - 100, 0)*effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4102.py
New file
@@ -0,0 +1,29 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 消耗固定印记数量增加技能伤害固定值
#
# @author: Alee
# @date 2019-4-26 下午07:46:07
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import ChConfig
import PlayerControl
def CheckCanHappen(attacker, defender, effect, curSkill):
    if PlayerControl.GetYinjiCnt(attacker) < effect.GetEffectValue(1):
        return False
    # 4092 处理消耗
    #PlayerYinji.SubYinji(attacker, effect.GetEffectValue(1))
    return True
def GetValue(attacker, defender, effect):
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveSkill_4103.py
New file
@@ -0,0 +1,26 @@
#!/usr/bin/python
# -*- coding: GBK -*-
#
##@package
#
# @todo: 重击回血
#
# @author: Alee
# @date 2019-5-17 下午03:27:34
# @version 1.0
#
# @note:
#
#---------------------------------------------------------------------
import AttackCommon
def CheckCanHappen(attacker, defender, effect, curSkill):
    if effect.GetEffectValue(1):
        # 只针对第一目标
        if AttackCommon.GetFirstDefenderID(attacker) != defender.GetID():
            return False
    return True
def GetValue(attacker, defender, effect):
    return effect.GetEffectValue(0)
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuffEffMng.py
@@ -289,6 +289,7 @@
             
             4000:ChConfig.TriggerType_BuffState,   # 进入4012的某个状态触发技能 2
             4001:ChConfig.TriggerType_TagBuffState,   # 目标进入4012的某个状态触发技能 2
             4002:ChConfig.TriggerType_SkillValue,  # 增加技能伤害固定值 82
             4003:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
             4004:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
             4005:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
@@ -358,6 +359,8 @@
             4071:ChConfig.TriggerType_Buff_SuckBloodPer,   # 攻击 百分比吸血
             4072:ChConfig.TriggerType_SuperHitSkipCD, # 暴击无冷却 68
             4073:ChConfig.TriggerType_BuffHurtCnt, # 当持续buff伤害第X次时触发技能 69
             4074:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4075:ChConfig.TriggerType_AddThumpHitPer, # 增加重击伤害百分比
             4076:ChConfig.TriggerType_dFinalHurtReducePer, # 防守方的最终伤害减少百分比 71 
             4077:ChConfig.TriggerType_AttackAddFinalPer, # 增加最终伤害百分比 59
             4078:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
@@ -384,6 +387,8 @@
             4099:ChConfig.TriggerType_WillDead,   # 进入濒死状态时触发技能 25
             4100:ChConfig.TriggerType_AttackOver,  # 攻击(对敌技能)后被动技能被触发 4
             4101:ChConfig.TriggerType_AttackAddSkillPer,  # 所有攻击伤害(SkillPer)增加,含普攻,计算时 5
             4102:ChConfig.TriggerType_SkillValue,  # 增加技能伤害固定值 82
             4103:ChConfig.TriggerType_Buff_SuckBloodPer,   # 攻击 百分比吸血
             }
    return tdict.get(effectID, -1) 
    #===========================================================================
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -126,9 +126,11 @@
    
    #技能攻击最大数量
    hurtCount = SkillCommon.GetSkillArea_Atk_Count(curPlayer, curSkill)
    if len(hurtList) > hurtCount:
        # 客户端目标过多
        return False
    #===========================================================================
    # if len(hurtList) > hurtCount:
    #    # 客户端目标过多
    #    return False
    #===========================================================================
    
#    mapType = GameWorld.GetMap().GetMapFBType()
    # 野外小怪或者其他指定的怪为了更及时的打击感,由客户端计算