6603 【后端】【2.0】增加新版的sp和被动技能 - 改变技能特效
| | |
| | |
|
| | | #技能攻击
|
| | | skillID = curSkill.GetSkillID()
|
| | | changeSkillID = PassiveBuffEffMng.GetPassiveSkillValueByTriggerTypeEx(attacker, None, curSkill, ChConfig.TriggerType_ChangeSkillEff)
|
| | | if changeSkillID:
|
| | | skillID = changeSkillID
|
| | | battleType = AttackCommon.GetBattleType(attacker, curSkill)
|
| | | #无目标类技能
|
| | | if not defender:
|
| | |
| | | # ChangeAction(paAttack);
|
| | | # m_LastBattleTick = GetGameWorldManager()->GetTick();
|
| | | #===========================================================================
|
| | | |
| | | sendPack = ChNetSendPack.tagUseSkillPos()
|
| | | sendPack.Clear()
|
| | | sendPack.ObjID = attacker.GetID()
|
| | |
| | | TriggerType_SkillSuccessExpend, # 使用技能成功后不触发技能 处理消耗等问题用 87
|
| | | TriggerType_ThumpSkillValue, # 重击增加技能固定值伤害 88
|
| | | TriggerType_HitValue, # 记录命中个数 89
|
| | | ) = range(1, 90)
|
| | | TriggerType_ChangeSkillEff, # 改变技能特效广播 90
|
| | | ) = range(1, 91)
|
| | |
|
| | |
|
| | | #不可以佩戴翅膀的地图
|
New file |
| | |
| | | #!/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
|
| | |
|
| | |
| | | 4107:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
|
| | | 4108:ChConfig.TriggerType_SkillSuccess, # 使用技能成功后不触发技能 处理消耗等问题用 87
|
| | | 4109:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
|
| | | 4110:ChConfig.TriggerType_ChangeSkillEff, # 改变技能特效
|
| | | }
|
| | | return tdict.get(effectID, -1)
|
| | | #===========================================================================
|
| | |
| | | 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
|