6603 【后端】【2.0】增加新版的sp和被动技能 - 新版
| | |
| | | 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)
|
| | |
| | | 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:
|
| | |
| | | TriggerType_SuperHitSuckBloodPer, # 暴击百分比吸血, 79
|
| | | TriggerType_BurnPer, # 灼烧伤害百分比 80
|
| | | TriggerType_BurnDisappear, # 灼烧消失触发 81
|
| | | ) = range(1, 82)
|
| | | TriggerType_SkillValue, # 增加技能伤害固定值 82
|
| | | ) = range(1, 83)
|
| | |
|
| | |
|
| | | #不可以佩戴翅膀的地图
|
| | |
| | | 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:
|
| | |
| | | #!/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)
|
| | |
| | | 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):
|
New file |
| | |
| | | #!/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))
|
New file |
| | |
| | | #!/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)
|
| | |
|
New file |
| | |
| | | #!/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)
|
New file |
| | |
| | | #!/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)
|
| | |
| | |
|
| | | 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
|
| | |
| | | 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
|
| | |
| | | 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)
|
| | | #===========================================================================
|
| | |
| | |
|
| | | #技能攻击最大数量
|
| | | hurtCount = SkillCommon.GetSkillArea_Atk_Count(curPlayer, curSkill)
|
| | | if len(hurtList) > hurtCount:
|
| | | # 客户端目标过多
|
| | | return False
|
| | | #===========================================================================
|
| | | # if len(hurtList) > hurtCount:
|
| | | # # 客户端目标过多
|
| | | # return False
|
| | | #===========================================================================
|
| | |
|
| | | # mapType = GameWorld.GetMap().GetMapFBType()
|
| | | # 野外小怪或者其他指定的怪为了更及时的打击感,由客户端计算
|