diff --git a/conf/server/SkillLogicConfig.txt b/conf/server/SkillLogicConfig.txt index 90a47db7d..23ff120e5 100644 --- a/conf/server/SkillLogicConfig.txt +++ b/conf/server/SkillLogicConfig.txt @@ -662,93 +662,93 @@ int mut,float#float,2 mut,int#int,2 mut,float#float,2 float 500108 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 500109 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 500110 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 1.0 -500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2 -500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3 -500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4 -500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5 -500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6 -500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7 -500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8 -500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9 -501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 -501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10 +500201 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500202 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500203 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500204 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500205 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500206 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500207 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500208 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500209 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500210 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 2.0 +500301 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500302 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500303 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500304 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500305 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500306 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500307 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500308 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500309 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500310 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 3.0 +500401 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500402 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500403 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500404 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500405 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500406 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500407 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500408 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500409 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500410 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 4.0 +500501 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500502 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500503 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500504 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500505 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500506 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500507 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500508 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500509 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500510 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 5.0 +500601 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500602 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500603 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500604 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500605 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500606 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500607 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500608 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500609 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500610 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 6.0 +500701 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500702 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500703 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500704 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500705 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500706 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500707 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500708 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500709 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500710 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 7.0 +500801 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500802 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500803 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500804 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500805 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500806 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500807 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500808 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500809 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500810 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 8.0 +500901 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500902 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500903 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500904 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500905 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500906 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500907 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500908 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500909 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +500910 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 9.0 +501001 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501002 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501003 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501004 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501005 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501006 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501007 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501008 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501009 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 +501010 20012#0.7|10014#0.7 26#27|25 600|100#4|2#0.1#4 10.0 diff --git a/luafight/Modules/Battle/Logic/Base/Effect.lua b/luafight/Modules/Battle/Logic/Base/Effect.lua index 2ab5587a9..7bdd2c496 100644 --- a/luafight/Modules/Battle/Logic/Base/Effect.lua +++ b/luafight/Modules/Battle/Logic/Base/Effect.lua @@ -513,6 +513,37 @@ local effectList = { end) end end, + --造成[a]%的[b]伤害,若为[c],则无视敌人[d]%的防御 + --a[float],b[伤害类型,]c[控制状态],d[float] + [30] = function(caster, target, args, interval) + local f1 = args[1] + local dt = args[2] + local ct = args[3] + local f2 = args[4] + caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval) + if caster.camp == 0 and target.camp == 1 then + BattleLogic.Event:DispatchEvent(BattleEventName.ZoomChange, target, interval) + end + BattleLogic.WaitForTrigger(interval, function () + if target.BuffMgr:HasBuff(BuffName.Control, function (buff) return ct == 0 or buff.ctrlType == ct end) then + BattleUtil.CalDamage(caster, target, dt, f1, f2) + else + BattleUtil.CalDamage(caster, target, dt, f1) + end + end) + end, + --[a]%概率[b],持续[c]秒 + --a[float],b[免疫buff],c[int] + [31] = function(caster, target, args, interval) + local f1 = args[1] * (1 + caster:GetRoleData(RoleDataName.Hit) / (1 + target:GetRoleData(RoleDataName.Dodge))) + local ib1 = args[2] + local f2 = args[3] + BattleLogic.WaitForTrigger(interval, function () + BattleUtil.RandomAction(f1, function () + target:AddBuff(Buff.Create(caster, BuffName.Immune, f2, ib1)) + end) + end) + end, } return effectList \ No newline at end of file diff --git a/luafight/Modules/Battle/Logic/Buff/Aura.lua b/luafight/Modules/Battle/Logic/Buff/Aura.lua index 7f86d2f16..a378d35bc 100644 --- a/luafight/Modules/Battle/Logic/Buff/Aura.lua +++ b/luafight/Modules/Battle/Logic/Buff/Aura.lua @@ -4,8 +4,7 @@ Aura = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function Aura:SetData(...) --log("Aura:SetData") - local args = {...} - self.action = args[1] + self.action = ... end --初始化后调用一次 diff --git a/luafight/Modules/Battle/Logic/Buff/Brand.lua b/luafight/Modules/Battle/Logic/Buff/Brand.lua index 677866728..09b1e6a22 100644 --- a/luafight/Modules/Battle/Logic/Buff/Brand.lua +++ b/luafight/Modules/Battle/Logic/Buff/Brand.lua @@ -4,8 +4,7 @@ Brand = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function Brand:SetData(...) --log("Brand:SetData") - local args = {...} - self.flag = args[1] + self.flag = ... self.cover = true self.layer = 1 end diff --git a/luafight/Modules/Battle/Logic/Buff/Control.lua b/luafight/Modules/Battle/Logic/Buff/Control.lua index cb771d844..361054f36 100644 --- a/luafight/Modules/Battle/Logic/Buff/Control.lua +++ b/luafight/Modules/Battle/Logic/Buff/Control.lua @@ -4,8 +4,7 @@ Control = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function Control:SetData(...) --log("Control:SetData") - local args = {...} - self.ctrlType = args[1] + self.ctrlType = ... end --初始化后调用一次 diff --git a/luafight/Modules/Battle/Logic/Buff/DOT.lua b/luafight/Modules/Battle/Logic/Buff/DOT.lua index 9edb6d293..4b91309ec 100644 --- a/luafight/Modules/Battle/Logic/Buff/DOT.lua +++ b/luafight/Modules/Battle/Logic/Buff/DOT.lua @@ -4,11 +4,10 @@ DOT = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function DOT:SetData(...) --log("DOT:SetData") - local args = {...} - self.interval = args[1] - self.damageType = args[2] --1 燃烧 2 中毒 3 流血 - self.damagePro = args[3] --1 物理 2 魔法 - self.damageFactor = args[4] --伤害系数 + self.interval, + self.damageType, --1 燃烧 2 中毒 3 流血 + self.damagePro, --1 物理 2 魔法 + self.damageFactor = ... --伤害系数 self.isDeBuff = true end diff --git a/luafight/Modules/Battle/Logic/Buff/HOT.lua b/luafight/Modules/Battle/Logic/Buff/HOT.lua index 34a56b74e..d9aeb1c8c 100644 --- a/luafight/Modules/Battle/Logic/Buff/HOT.lua +++ b/luafight/Modules/Battle/Logic/Buff/HOT.lua @@ -4,9 +4,8 @@ HOT = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function HOT:SetData(...) --log("HOT:SetData") - local args = {...} - self.interval = args[1] - self.healValue = args[2] + self.interval, + self.healValue = ... self.isBuff = true end diff --git a/luafight/Modules/Battle/Logic/Buff/PropertyChange.lua b/luafight/Modules/Battle/Logic/Buff/PropertyChange.lua index 807f0d2c1..941092081 100644 --- a/luafight/Modules/Battle/Logic/Buff/PropertyChange.lua +++ b/luafight/Modules/Battle/Logic/Buff/PropertyChange.lua @@ -4,10 +4,9 @@ PropertyChange = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function PropertyChange:SetData(...) --log("PropertyChange:SetData") - local args = {...} - self.propertyName = args[1] - self.Value = args[2] - self.changeType = args[3] + self.propertyName, + self.Value, + self.changeType = ... end --初始化后调用一次 diff --git a/luafight/Modules/Battle/Logic/Buff/Shield.lua b/luafight/Modules/Battle/Logic/Buff/Shield.lua index 9a94f8471..5d96a8708 100644 --- a/luafight/Modules/Battle/Logic/Buff/Shield.lua +++ b/luafight/Modules/Battle/Logic/Buff/Shield.lua @@ -4,9 +4,8 @@ Shield = Buff:New() --初始化Buff,通过传入一些自定义参数控制成长相关的数值 function Shield:SetData(...) --log("Shield:SetData") - local args = {...} - self.shieldValue = args[1] --护盾值 - self.dmgReboundFactor = args[2] --伤害反弹系数 + self.shieldValue, --护盾值 + self.dmgReboundFactor = ... --伤害反弹系数 self.damageSum = 0 --记录承受的伤害 end diff --git a/luafight/Modules/Battle/Logic/Misc/BattleDefine.lua b/luafight/Modules/Battle/Logic/Misc/BattleDefine.lua index 706f7a370..a623f4bf0 100644 --- a/luafight/Modules/Battle/Logic/Misc/BattleDefine.lua +++ b/luafight/Modules/Battle/Logic/Misc/BattleDefine.lua @@ -89,6 +89,7 @@ BuffName = { Aura = "Aura", Brand = "Brand", Shield = "Shield", + Immune = "Immune", } diff --git a/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua b/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua index 53252c1ee..c50f56b13 100644 --- a/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -27,22 +27,6 @@ function BattleUtil.CreateBuffId(skill, index) return id end -function BattleUtil.CalBaseDamage(atkRole, defRole, baseDamage, baseFactor) - local atkData, defData = atkRole.data, defRole.data - if not baseFactor then baseFactor = 1 end - - --伤害 =(基础伤害*(1+己伤害加成-目标伤害减免)*(1+己方属性伤害加成-目标属性伤害减免),10%*己攻) - local damage = baseDamage * baseFactor * - (1 + atkData:GetData(RoleDataName.DamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DamageReduceFactor)) * - (1 + atkData:GetData(RoleDataName.FireDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.FireDamageReduceFactor)) * --火系 - (1 + atkData:GetData(RoleDataName.WindDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.WindDamageReduceFactor)) * --风系 - (1 + atkData:GetData(RoleDataName.IceDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.IceDamageReduceFactor)) * --冰系 - (1 + atkData:GetData(RoleDataName.LandDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LandDamageReduceFactor)) * --地系 - (1 + atkData:GetData(RoleDataName.LightDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LightDamageReduceFactor)) * --光系 - (1 + atkData:GetData(RoleDataName.DarkDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DarkDamageReduceFactor)) --暗系 - return damage -end - function BattleUtil.CalHit(atkRole, defRole) --命中率 = clamp(自身命中率-敌方闪避率,0,1) local hit = atkRole:GetRoleData(RoleDataName.Hit) @@ -106,12 +90,14 @@ function BattleUtil.ApplyDamage(atkRole, defRole, damage, bCrit) end --执行完整的命中,伤害,暴击计算,返回命中,暴击 -function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor) +function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDef) if atkRole.isTeam and not defRole.isDead then return BattleUtil.ApplyDamage(atkRole, defRole, damageType), false end local bCrit = false local baseDamage + baseFactor = baseFactor or 1 + ignoreDef = 1 - (ignoreDef or 0) bCrit = BattleUtil.CalCrit(atkRole, defRole) local defence = 0 if damageType == 1 then --1 物理 2 魔法 @@ -128,11 +114,20 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor) --计算暴击 if bCrit or defRole.isFlagCrit then local critDamageFactor = atkRole:GetRoleData(RoleDataName.CritDamageFactor) - baseDamage = attack * critDamageFactor - 0.5 * defence + baseDamage = max(attack * critDamageFactor - 0.5 * defence * ignoreDef, 0) else - baseDamage = attack - 0.5 * defence + baseDamage = max(attack - 0.5 * defence * ignoreDef, 0) end - baseDamage = BattleUtil.CalBaseDamage(atkRole, defRole, baseDamage, baseFactor) + local atkData, defData = atkRole.data, defRole.data + --伤害 =(基础伤害*(1+己伤害加成-目标伤害减免)*(1+己方属性伤害加成-目标属性伤害减免),10%*己攻) + baseDamage = baseDamage * baseFactor * + (1 + atkData:GetData(RoleDataName.DamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DamageReduceFactor)) * + (1 + atkData:GetData(RoleDataName.FireDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.FireDamageReduceFactor)) * --火系 + (1 + atkData:GetData(RoleDataName.WindDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.WindDamageReduceFactor)) * --风系 + (1 + atkData:GetData(RoleDataName.IceDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.IceDamageReduceFactor)) * --冰系 + (1 + atkData:GetData(RoleDataName.LandDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LandDamageReduceFactor)) * --地系 + (1 + atkData:GetData(RoleDataName.LightDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.LightDamageReduceFactor)) * --光系 + (1 + atkData:GetData(RoleDataName.DarkDamageBocusFactor)) * (1 - defData:GetData(RoleDataName.DarkDamageReduceFactor)) --暗系 baseDamage = max(baseDamage, 0.1 * attack) local func diff --git a/luafight/Modules/Battle/Logic/RoleLogic.lua b/luafight/Modules/Battle/Logic/RoleLogic.lua index ef549287f..448e97992 100644 --- a/luafight/Modules/Battle/Logic/RoleLogic.lua +++ b/luafight/Modules/Battle/Logic/RoleLogic.lua @@ -13,7 +13,10 @@ local skillPool = BattleObjectPool.New(function () end) function RoleLogic.New() - local instance = {uid=0,roleData=0,data=RoleData.New(),camp=0,name=0,roleType=0,shield=BattleList.New(),exCalDmgList=BattleList.New(), + local instance = {uid=0,roleData=0,data=RoleData.New(),camp=0,name=0,roleType=0, + shield=BattleList.New(), + exCalDmgList=BattleList.New(), + buffFilter=BattleList.New(), BuffMgr=BuffManager.New(),Event=BattleEvent:New(),passiveList=0,isDead=false,Auto=false,IsDebug=false,enable=false} setmetatable(instance, RoleLogic) return instance @@ -31,6 +34,7 @@ function RoleLogic:Init(uid, data) self.shield:Clear() --护盾列表 self.exCalDmgList:Clear() --额外计算伤害列表 + self.buffFilter:Clear() --buff屏蔽列表 self.BuffMgr:Init(self) self.Event:ClearEvent() @@ -67,6 +71,11 @@ function RoleLogic:GetRoleData(property) end function RoleLogic:AddBuff(buff) + for i=1, self.buffFilter.size do + if self.buffFilter.buffer[i](buff) then + return + end + end self.BuffMgr:AddBuff(buff) end diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java index cb9dd0c60..f031b5c6d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AdventureManager.java @@ -51,7 +51,7 @@ public class AdventureManager extends MongoBase { } public void setUpdateTime(long updateTime) { - updateString("updateTime.",updateTime); + updateString("updateTime",updateTime); this.updateTime = updateTime; }