2866 【1.5】【1.4.100】护盾清中毒debuff引起报错
| | |
| | | if passiveEff:
|
| | | passiveEff.DelBuffInfo(skillData)
|
| | | return
|
| | |
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## 执行buff消失触发逻辑,不处理buff的功能逻辑,只处理需要的必须状态逻辑
|
| | | # 如不处理buff的 伤害,爆炸等,但必须处理恢复眩晕状态等
|
| | | def DoBuffDisApperEx( curObj, curBuff, tick ):
|
| | | #这个函数里面不能做Buff添加和删除逻辑!!!!!不然指针会错乱
|
| | | curSkill = curBuff.GetSkill()
|
| | |
|
| | | skillData = GameWorld.GetGameData().GetSkillBySkillID(curSkill.GetSkillID())
|
| | | |
| | | #是否是持续性技能
|
| | | isLstSkill = curSkill.GetSkillType() in ChConfig.Def_LstBuff_List
|
| | | |
| | | PassiveBuffEffMng.OnPassiveSkillTrigger(curObj, None, curSkill, ChConfig.TriggerType_BuffDisappear, tick)
|
| | | |
| | | #buff消失的触发
|
| | | for effectIndex in range( 0, curSkill.GetEffectCount() ):
|
| | | curEffect = curSkill.GetEffect( effectIndex )
|
| | | effectID = curEffect.GetEffectID()
|
| | | |
| | | if not effectID:
|
| | | continue
|
| | | |
| | | if isLstSkill:
|
| | | callFunc = GameWorld.GetExecFunc( GameBuffs, "BuffProcess_%d.%s"%( effectID, "OnBuffDisappearEx") )
|
| | | if not callFunc:
|
| | | callFunc = GameWorld.GetExecFunc( GameBuffs, "Buff_%d.%s"%( effectID, "OnBuffDisappearEx") )
|
| | | else: |
| | | callFunc = GameWorld.GetExecFunc( GameBuffs, "Buff_%d.%s"%( effectID, "OnBuffDisappearEx") )
|
| | | |
| | | if not callFunc:
|
| | | continue
|
| | | |
| | | callFunc( curObj, curSkill, curBuff, curEffect, tick )
|
| | | |
| | | passiveEff = PassiveBuffEffMng.GetPassiveEffManager().GetPassiveEff(curObj)
|
| | | if passiveEff:
|
| | | passiveEff.DelBuffInfo(skillData)
|
| | | return
|
| | |
|
| | | #---------------------------------------------------------------------
|
| | | ## buff消失
|
| | | # @param curObj 当前目标
|
| | |
| | | return
|
| | |
|
| | |
|
| | | # 消失前
|
| | | def OnBuffDisappearEx(defender, curSkill, curBuff, curEffect, tick):
|
| | | defender.SetCanAttack(True)
|
| | | return |
| | |
| | | def OnBuffDisappear(defender, curSkill, curBuff, curEffect, tick):
|
| | | defender.SetCanAttack(True)
|
| | | return
|
| | |
|
| | | ## 执行buff消失触发逻辑,不处理buff的功能逻辑,只处理需要的必须状态逻辑
|
| | | # 如不处理buff的 伤害,爆炸等,但必须处理恢复眩晕状态等
|
| | | def OnBuffDisappearEx(defender, curSkill, curBuff, curEffect, tick):
|
| | | defender.SetCanAttack(True)
|
| | | return |
| | |
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal)
|
| | |
|
| | | |
| | | def OnBuffDisappearEx(curObj, curSkill, curBuff, curEffect, tick):
|
| | | #if curObj.GetPKValue() > 0:
|
| | | # curObj.SetPKValue(0)
|
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal)
|
| | | |
| | | |
| | |
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal)
|
| | |
|
| | | |
| | | def OnBuffDisappearEx(curObj, curSkill, curBuff, curEffect, tick):
|
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal) |
| | | |
| | | |
| | |
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal)
|
| | |
|
| | | |
| | | def OnBuffDisappearEx(curObj, curSkill, curBuff, curEffect, tick):
|
| | | curObj.SetPlayerNameColor(IPY_GameWorld.pncNormal)
|
| | | |
| | | |
| | | |
| | | |
| | |
| | | return
|
| | |
|
| | |
|
| | | def OnBuffDisappearEx(curObj, curSkill, curBuff, curEffect, tick):
|
| | |
|
| | | stateType = curEffect.GetEffectValue(0)
|
| | | GameObj.SetPyPlayerState(curObj, stateType, 0)
|
| | | return
|
| | | |
| | | |
| | |
| | | ownerID, ownerType = curBuff.GetOwnerID(), curBuff.GetOwnerType()
|
| | |
|
| | | #删除Buff
|
| | | BuffSkill.DoBuffDisApper(defender, curBuff, tick)
|
| | | BuffSkill.DoBuffDisApperEx(defender, curBuff, tick)
|
| | | buffSkill = curBuff.GetSkill()
|
| | | if not buffSkill:
|
| | | continue
|
| | | skillID = buffSkill.GetSkillID()
|
| | | buffManager.DeleteBuffByTypeID(buffSkill.GetSkillTypeID())
|
| | | SkillShell.ClearBuffEffectBySkillID(defender, skillID, ownerID, ownerType)
|