| | |
| | | import ChConfig
|
| | | import GameWorld
|
| | | import GameObj
|
| | | import PlayerControl
|
| | |
|
| | | import SkillCommon
|
| | | import IPY_GameWorld
|
| | |
|
| | | def CheckCanHappen(attacker, defender, effect, curSkill):
|
| | | if attacker.GetPlayerAction() == IPY_GameWorld.paDie:
|
| | | # 当前已经被处理为死亡,那么就不触发
|
| | | return False
|
| | |
|
| | | zhanshaState = attacker.GetDictByKey(ChConfig.Def_PlayerKey_Zhansha)
|
| | | |
| | | if zhanshaState:
|
| | | # 按位判断,1为斩杀情况下,此技能不可被触发,2为终极斩杀不触发,3为任何斩杀都不触发
|
| | | if (effect.GetEffectValue(2) & pow(2, zhanshaState-1)) != 0:
|
| | | return False
|
| | | |
| | | |
| | | result = GameWorld.CanHappen(effect.GetEffectValue(0))
|
| | | if result:
|
| | | GameObj.SetHP(attacker, 1) # 为了避免生命为0时,屏蔽过多逻辑
|
| | | # 提前触发CD, 不然外层无法触发技能的话就不进入CD, 如和平模式
|
| | | if curSkill.GetCoolDownTime():
|
| | | SkillCommon.SetSkillRemainTime(curSkill, 0, GameWorld.GetGameWorld().GetTick(), attacker)
|
| | | return True
|
| | |
|
| | | if effect.GetEffectValue(1):
|
| | | #不死血量1,但不触发技能
|
| | | if GameWorld.CanHappen(effect.GetEffectValue(1)):
|
| | | GameObj.SetHP(attacker, 1)
|
| | | # 提前触发CD, 不然外层无法触发技能的话就不进入CD, 如和平模式
|
| | | if curSkill.GetCoolDownTime():
|
| | | SkillCommon.SetSkillRemainTime(curSkill, 0, GameWorld.GetGameWorld().GetTick(), attacker)
|
| | | return False
|
| | |
|
| | | return False
|