| | |
| | | ChConfig.Def_PDictType_GFPassive)
|
| | | if findSkillID == 0:
|
| | | continue
|
| | | |
| | | passiveEff = GetPassiveEffManager().GetPassiveEff(curPlayer)
|
| | | if passiveEff:
|
| | | findSkillID = passiveEff.ChangeSkillTypeID(findSkillID)
|
| | | |
| | | skills.append(findSkillID)
|
| | |
|
| | | return skills
|
| | |
| | | 4106:ChConfig.TriggerType_AddHP, # 技能回血 84
|
| | | 4107:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
|
| | | 4108:ChConfig.TriggerType_SkillSuccess, # 使用技能成功后不触发技能 处理消耗等问题用 87
|
| | | 4109:ChConfig.TriggerType_SkillValue, # 增加技能伤害固定值 82
|
| | | }
|
| | | return tdict.get(effectID, -1)
|
| | | #===========================================================================
|
| | |
| | | self.AffectDogzSkillDict = {} # 神兽助战技能
|
| | | self.AffectSuperEquipSkillDict = {} # 特殊装备持有技能,相同技能不重复,数值增长性衰减, 触发使用
|
| | | self.AffectSuperEquipEffectCntDict = {} # 特殊装备技能效果对应的已计算后的数值,直接调用
|
| | | |
| | | self.ChangeSkill = {} # 改变释放的技能ID,方便处理特效动作表现等问题 {原SkillTypeID: 改变后的SkillTypeID}
|
| | | self.IsChangeSkill = False # 当前是否刷新技能替换
|
| | |
|
| | | #记录会影响其他技能或者被动触发释放技能的BUFF
|
| | | def AddBuffInfoByEffect(self, effect, skillID, onwerID, onwerType):
|
| | |
| | |
|
| | | return self.AffectPassiveSkillSetDict
|
| | |
|
| | | # 改变技能ID的处理, 先存储释放的时候替换, 并且不登记到被动触发
|
| | | def ChangeSkillTypeIDDict(self, curSkill):
|
| | | hasEffect = SkillCommon.GetSkillEffectByEffectID(curSkill, ChConfig.Def_Skill_Effect_ChangeSkillTypeID)
|
| | | if not hasEffect:
|
| | | return
|
| | | self.ChangeSkill[hasEffect.GetEffectValue(0)] = curSkill.GetSkillTypeID()
|
| | | |
| | | self.IsChangeSkill = True
|
| | | GameWorld.DebugLog("self.ChangeSkill --- %s"%self.ChangeSkill)
|
| | | return True
|
| | | |
| | | # 真实替换技能ID
|
| | | def ChangeSkillTypeID(self, skillID):
|
| | | return self.ChangeSkill.get(skillID, skillID)
|
| | | |
| | |
|
| | | # 重刷被动型技能(含sp,天赋,不含被动技能功能)存储
|
| | | def RefreshPassiveSkill(self):
|
| | | self.AffectSkillDict = {}
|
| | | self.ChangeSkill = {}
|
| | | skillManager = self.gameObj.GetSkillManager()
|
| | | for i in range(0 , skillManager.GetSkillCount()):
|
| | | curSkill = skillManager.GetSkillByIndex(i)
|
| | |
| | | if curSkill.GetFuncType() in [ChConfig.Def_SkillFuncType_FbPassiveSkill,
|
| | | ChConfig.Def_SkillFuncType_Dogz]:
|
| | | # 被动技能和神兽需设置才有效
|
| | | continue
|
| | | |
| | | # 改变技能ID的处理
|
| | | if self.ChangeSkillTypeIDDict(curSkill):
|
| | | continue
|
| | |
|
| | | skillTypeID = curSkill.GetSkillTypeID()
|
| | |
| | | return
|
| | | self.AddPassiveEff(gameObj, passiveEff)
|
| | | elif skillID:
|
| | | curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID)
|
| | | if curSkill and passiveEff.ChangeSkillTypeIDDict(curSkill):
|
| | | # 替换技能不添加
|
| | | return
|
| | | |
| | | # 单个添加被动技能
|
| | | passiveEff.AddPassiveSkill(skillID)
|
| | |
|
| | | |
| | | if passiveEff.IsChangeSkill:
|
| | | GameWorld.DebugLog("刷被动----")
|
| | | # 存在替换技能 目前需要刷新镶嵌的被动技能,存在多刷现象
|
| | | self.RegistPassiveEffSet(gameObj)
|
| | | return True
|
| | | return
|
| | |
|
| | | # 人物需同步注册被动技能
|
| | |
| | | # 如灼烧是被动技能 但可以被不断的强化
|
| | | if useSkill.GetSkillType() != ChConfig.Def_SkillType_PassiveLstDepBuff:
|
| | | return False
|
| | | |
| | | if useSkill.GetFuncType() == ChConfig.Def_SkillFuncType_PassiveSkillWithSP:
|
| | | # 有专精的被动技能,可以再次触发被动效果
|
| | | return False
|
| | | return True
|
| | |
|
| | |
|