From 5e541238dea327df1cc6341354bff91c490eda94 Mon Sep 17 00:00:00 2001 From: wangzhenxing Date: Fri, 22 Oct 2021 17:34:15 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=88=98=E6=96=97]=3D=3D=3D=3D=3D=3D=3D=3D=3D?= =?UTF-8?q?=3D=3D=3D=3D128=20129=20130=20=20131=20=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=80=E5=A4=A7=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/Modules/Battle/Logic/Base/Effect.lua | 80 ++++++++++++++++--- .../~Lua/Modules/Battle/Logic/BattleLogic.lua | 14 ++++ .../~Lua/Modules/Battle/Logic/Buff/HOT.lua | 3 + .../Battle/Logic/Misc/BattleDefine.lua | 2 + .../Practice/PracticeSkillInfoPanel.lua | 2 +- 5 files changed, 91 insertions(+), 10 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua index 0dba8b90ba..5f36831ded 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Base/Effect.lua @@ -2400,25 +2400,59 @@ local effectList = { end) end, - --造成主角战斗力[a]%+[b]的伤害 - --a[float],b[int] + --造成主角战斗力[a]%+[b]的伤害, pvp最高只造成目标[c][d]%的伤害 (c不填默认12 d:不填默认0.5 ) + --a[float],b[int],c[int],d[float] [128] = function(caster, target, args, interval, skill) local pro = args[1] local round = args[2] - BattleLogic.WaitForTrigger(interval, function () - --LogError("teamdamage=="..caster.teamDamage.." pro=="..pro.." round=="..round) + local pro2 = args[3] + local v1 =args[4] + if pro2==nil then + pro2=12 + end + if v1==nil then + v1=0.5 + end + BattleLogic.WaitForTrigger(interval, function () local damage=floor(caster.teamDamage*pro)+round + if BattleLogic.GetIsPvP() then + local maxDamage = floor(target:GetRoleData(BattlePropList[pro2]) * v1) + if damage>maxDamage then + damage=maxDamage + end + end + BattleUtil.FinalDamageCountShield(nil,caster, target,damage) end) end, - --回复目标主角战斗力[a]%+[b]的生命值,溢出部分转换为等量御甲值 - --a[float],b[int] + --回复目标主角战斗力[a]%+[b]的生命值,溢出部分转换为等量御甲值 pvp最高只造成目标[c][d]%的治疗(c不填默认12 d:不填默认0.5 ) + --a[float],b[int],c[int],d[float] [129] = function(caster, target, args, interval, skill) local pro = args[1] local round = args[2] + local pro2 = args[3] + local v1 =args[4] + if pro2==nil then + pro2=12 + end + if v1==nil then + v1=0.5 + end BattleLogic.WaitForTrigger(interval, function () local damage=floor(caster.teamDamage*pro)+round + if BattleLogic.GetIsPvP() then + local maxDamage = floor(target:GetRoleData(BattlePropList[pro2]) * v1) + --LogError("生命 maxdamage=="..maxDamage) + if damage>maxDamage then + damage=maxDamage + end + end local value=target:GetRoleData(RoleDataName.MaxHp)-target:GetRoleData(RoleDataName.Hp) + --如果应该加的血< 单位失去的血量值,就加应该加的血量 + if damage0 then BattleUtil.FinalTreat(caster, target,value,1,skill) @@ -2435,27 +2469,55 @@ local effectList = { end) end, - --对目标造成流血状态,造成主角战斗力[a]%+[b]的间接伤害,持续[c]回合 - --a[float],b[int],c[int] + --对目标造成流血状态,造成主角战斗力[a]%+[b]的间接伤害,持续[c]回合 pvp最高只造成目标[d][e]%的治疗(d不填默认12 e:不填默认0.5 ) + --a[float],b[int],c[int],d[int],e[float] [130] = function(caster, target, args, interval, skill) local f1 = args[1] local v1 = args[2] local round = args[3] + local pro2 = args[4] + local v2 =args[5] + if pro2==nil then + pro2=12 + end + if v2==nil then + v2=0.5 + end BattleLogic.WaitForTrigger(interval, function () local damage=floor(caster.teamDamage*f1)+v1 + if BattleLogic.GetIsPvP() then + local maxDamage = floor(target:GetRoleData(BattlePropList[pro2]) * v2) + if damage>maxDamage then + damage=maxDamage + end + end local buff=Buff.Create(caster, BuffName.DOT,round, 1,3,damage) buff.isRealDamage=true target:AddBuff(buff) end) end, - --对目标造成神佑状态,造成主角战斗力[a]%+[b]的血量,持续[c]回合,溢出部分转化为御甲 + --对目标造成神佑状态,造成主角战斗力[a]%+[b]的血量,持续[c]回合,溢出部分转化为御甲 pvp最高只造成目标[d][e]%的治疗(d不填默认12 e:不填默认0.5 ) --a[float],b[int],c[int] [131] = function(caster, target, args, interval, skill) local f1 = args[1] local v1 = args[2] local round = args[3] + local pro2 = args[4] + local v2 =args[5] + if pro2==nil then + pro2=12 + end + if v2==nil then + v2=0.5 + end BattleLogic.WaitForTrigger(interval, function () local damage=floor(caster.teamDamage*f1)+v1 + if BattleLogic.GetIsPvP() then + local maxDamage = floor(target:GetRoleData(BattlePropList[pro2]) * v2) + if damage>maxDamage then + damage=maxDamage + end + end local buff=Buff.Create(caster, BuffName.HOT,round,1,damage) buff.hotType=2 target:AddBuff(buff) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/BattleLogic.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/BattleLogic.lua index 0cbed82875..bb18331034 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/BattleLogic.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/BattleLogic.lua @@ -100,6 +100,20 @@ function BattleLogic.Init(data, _userData, maxRound) end +--获取是否为pvp战斗 +function BattleLogic.GetIsPvP() + if BattleLogic.Type== BATTLE_SERVER_TYPE.TOPFight or + BattleLogic.Type== BATTLE_SERVER_TYPE.Firend or + BattleLogic.Type== BATTLE_SERVER_TYPE.ArenaFight or + BattleLogic.Type== BATTLE_SERVER_TYPE.CarPersonFight or + BattleLogic.Type== BATTLE_SERVER_TYPE.CrossYuxuLunDaoFight or + BattleLogic.Type== BATTLE_SERVER_TYPE.NewArenaFight then + return true + end + return false +end + + -- 获取双方所有血量 function BattleLogic.GetAllDamage() return allHeroDamage, allEnemyDamage diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/HOT.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/HOT.lua index 1fb3e144b2..af0c034770 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/HOT.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Buff/HOT.lua @@ -30,6 +30,9 @@ function HOT:OnTrigger() if not self.target.ctrl_noheal or self.target:IsDead() then --禁疗和死亡无法加血 if self.hotType==2 then local value=self.target:GetRoleData(RoleDataName.MaxHp)-self.target:GetRoleData(RoleDataName.Hp) + if self.healValue0 then BattleUtil.FinalTreat(self.caster, self.target,value,1,nil) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua index af8db45bbb..2625950348 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -6,6 +6,7 @@ end BATTLE_SERVER_TYPE = { + NewArenaFight = 0, --本地测试竞技场值 StoryFight = 1, --故事副本 MapExploreFight = 2, -- 地图探索 ArenaFight = 3, --竞技场 @@ -24,6 +25,7 @@ BATTLE_SERVER_TYPE = { TenDespairArray = 16,--十绝阵 Firend = 17,--好友 SenLuoHuanJing = 18,-- 森罗环境 + CrossYuxuLunDaoFight = 24,--玉虚论道 } BattleEventName = { diff --git a/Assets/ManagedResources/~Lua/Modules/Practice/PracticeSkillInfoPanel.lua b/Assets/ManagedResources/~Lua/Modules/Practice/PracticeSkillInfoPanel.lua index 15452f68f1..8b5ff5cb41 100644 --- a/Assets/ManagedResources/~Lua/Modules/Practice/PracticeSkillInfoPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Practice/PracticeSkillInfoPanel.lua @@ -77,7 +77,7 @@ function PracticeSkillInfoPanel:RefreshShow(id,lv) local currData=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.PlayerSkill,"SkillID",id,"Level",currLv) nextData=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.PlayerSkill,"SkillID",id,"Level",currLv+1) self.currInfo.text="本级效果:"..currData.Desc - self.skillIcon.sprite=self.spLoader:LoadSprite(GetResourcePath(currData.Icon)) + self.skillIcon.sprite=self.spLoader:LoadSprite(GetResourcePath(SkillBaseConfig[id].Icon)) self.titleTxt.text=SkillBaseConfig[id].Name self.skillLv.text=currLv self.skillLv.gameObject:SetActive(true)