From c67a2d59e881e3d1df1a4142983e76e8fb5db24a Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 28 十二月 2018 21:26:28 +0800 Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(匹配规则优化,优先匹配同段位的,同段位不足两个人的支持按段位区间匹配) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py | 32 +++++++++++++++++++++----------- 1 files changed, 21 insertions(+), 11 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py index fdd6126..ab1c352 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/PassiveBuff/PassiveBuff_4508.py @@ -19,16 +19,30 @@ import IPY_GameWorld def CheckCanHappen(attacker, defender, passiveEffect, skillID, **skillkwargs): + # 先判断概率 + rate = passiveEffect.GetEffectValue(0) + if rate and not GameWorld.CanHappen(rate): + return False + + # 关联技能 + checkSkillID = passiveEffect.GetEffectValue(2) + if checkSkillID: + useSkill = skillkwargs.get("useSkill", None) + if not useSkill: + return False + if useSkill.GetSkillTypeID() != checkSkillID: + return False + curSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID) if not curSkill: return False - + buffType = SkillCommon.GetBuffType(curSkill) buffTuple = SkillCommon.GetBuffManagerByBuffType(attacker, buffType) #通过类型获取目标的buff管理器为空,则跳出 if buffTuple == (): return False - + buffManager = buffTuple[0] buff = buffManager.FindBuff(curSkill.GetSkillTypeID()) if not buff: @@ -36,23 +50,19 @@ if buff.GetLayer() <= 0: return False - - rate = passiveEffect.GetEffectValue(0) - if rate and not GameWorld.CanHappen(rate): - return False + triggerSkillID = passiveEffect.GetEffectValue(1) BuffSkill.SetBuffLayer(attacker, buff, buff.GetLayer()-1, skillTypeID=curSkill.GetSkillTypeID()) - triggerSkillID = passiveEffect.GetEffectValue(1) if triggerSkillID and attacker.GetGameObjType() == IPY_GameWorld.gotPlayer: skillManager = attacker.GetSkillManager() #获得技能 - curSkill = skillManager.FindSkillBySkillTypeID(triggerSkillID) - if curSkill: + triggerSkill = skillManager.FindSkillBySkillTypeID(triggerSkillID) + if triggerSkill: #玩家技能会升级 - SkillShell.UsePassiveTriggerSkill(attacker, curSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True) + SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True) else: - triggerSkill = GameWorld.GetGameData().GetSkillBySkillID(skillID) + triggerSkill = GameWorld.GetGameData().GetSkillBySkillID(triggerSkillID) if triggerSkill: SkillShell.UsePassiveTriggerSkill(attacker, triggerSkill, defender, GameWorld.GetGameWorld().GetTick(), isEnhanceSkill = True) return True -- Gitblit v1.8.0