Merge branch 'master' of 60.1.1.230:backend/jieling_server

back_recharge
wangyuan 2019-03-26 15:55:58 +08:00
commit 41e7d9ce30
16 changed files with 211 additions and 151 deletions

View File

@ -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

View File

@ -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

View File

@ -4,8 +4,7 @@ Aura = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值
function Aura:SetData(...)
--log("Aura:SetData")
local args = {...}
self.action = args[1]
self.action = ...
end
--初始化后调用一次

View File

@ -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

View File

@ -4,8 +4,7 @@ Control = Buff:New()
--初始化Buff通过传入一些自定义参数控制成长相关的数值
function Control:SetData(...)
--log("Control:SetData")
local args = {...}
self.ctrlType = args[1]
self.ctrlType = ...
end
--初始化后调用一次

View File

@ -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

View File

@ -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

View File

@ -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
--初始化后调用一次

View File

@ -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

View File

@ -89,6 +89,7 @@ BuffName = {
Aura = "Aura",
Brand = "Brand",
Shield = "Shield",
Immune = "Immune",
}

View File

@ -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

View File

@ -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

View File

@ -10,19 +10,19 @@ public class CrossMapCell {
// missionId 存在某个地图的任务
private Set<Integer> missionIds = new HashSet<>();
// 每日刷新
private Set<Integer> dayRefreshs = new HashSet<>();
private Map<Integer, Integer> dayRefreshs = new ConcurrentHashMap<>();
// 一次性事件
private Set<Integer> permanents = new HashSet<>();
private Map<Integer, Integer> permanents = new ConcurrentHashMap<>();
public Set<Integer> getMissionIds() {
return missionIds;
}
public Set<Integer> getDayRefreshs() {
public Map<Integer, Integer> getDayRefreshs() {
return dayRefreshs;
}
public Set<Integer> getPermanents() {
public Map<Integer, Integer> getPermanents() {
return permanents;
}
}

View File

@ -193,11 +193,22 @@ public class MapLogic {
LOGGER.info("====initMap()====mapPointConfig == null======>{}", scMap1.getEvent());
continue;
}
if (crossMapCell != null && crossMapCell.getDayRefreshs().contains(mapPointConfig.getId())) {
continue;
int initialEventId = mapPointConfig.getInitialEventId();
if (crossMapCell != null && crossMapCell.getDayRefreshs().containsKey(mapPointConfig.getId())) {
int eventId = crossMapCell.getDayRefreshs().get(mapPointConfig.getId());
if (eventId == -1) {
continue;
} else {
initialEventId = eventId;
}
}
if (crossMapCell != null && crossMapCell.getPermanents().contains(mapPointConfig.getId())) {
continue;
if (crossMapCell != null && crossMapCell.getPermanents().containsKey(mapPointConfig.getId())) {
int eventId = crossMapCell.getPermanents().get(mapPointConfig.getId());
if (eventId == -1) {
continue;
} else {
initialEventId = eventId;
}
}
for (Mission mission : missions) {
if (mission.getMapPoints().containsKey(mapPointConfig.getId())) {
@ -209,7 +220,7 @@ public class MapLogic {
break;
}
}
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
Cell cellValue = new Cell(xy, initialEventId, mapPointConfig.getId());
if (mapPointConfig.getStyle() == EventType.enter) {
mapManager.setCurXY(xy);
}
@ -466,10 +477,37 @@ public class MapLogic {
}
// LOGGER.info("updateEvent =====>success<====== xy=>{}, getPointId=>{} eventId={}, mission=>{}, nextEventId=>{}, eventBehaviorCommon=>{}", mapManager.getCurXY(), cell == null ? 0 : cell.getPointId(),
// cell == null ? 0 : cell.getEventId(), eventUpdateResponse.getMissionList(), nextEventId, eventBehaviorCommon);
saveRefreshInfo(optionId, mapManager, mapPointConfig, nextEventId);
updateMapMission(mapManager,EventType.updateEvent,eventId,0);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), eventUpdateResponse.build(), true);
}
public void saveRefreshInfo(int optionId, MapManager mapManager, MapPointConfig mapPointConfig, int nextEventId) throws Exception {
CrossMapCell crossMapCell = mapManager.getCrossMapInfos().get(mapManager.getCurMapId());
if (crossMapCell == null) {
crossMapCell = new CrossMapCell();
}
if (mapPointConfig.getRefresh() == 1) {
if (crossMapCell.getDayRefreshs().containsKey(optionId)) {
int saveEventId = crossMapCell.getDayRefreshs().get(optionId);
if (saveEventId == -1) {
return;
}
}
crossMapCell.getDayRefreshs().put(optionId, nextEventId);
}
if (mapPointConfig.getRefresh() == 3) {
if (crossMapCell.getPermanents().containsKey(optionId)) {
int saveEventId = crossMapCell.getPermanents().get(optionId);
if (saveEventId == -1) {
return;
}
}
crossMapCell.getPermanents().put(optionId, nextEventId);
}
mapManager.updateCrossMapInfos(mapManager.getCurMapId(), crossMapCell);
}
private int getNextPoint(User user, MapManager mapManager, int[][] jumpTypeValues, SOptionAddCondition sOptionAddConditions) {
int nextEventId = 0;
switch (sOptionAddConditions.getType()) {

View File

@ -1,9 +1,7 @@
package com.ljsd.jieling.handler.map.behavior;
import com.google.gson.Gson;
import com.googlecode.protobuf.format.JsonFormat;
import com.ljsd.jieling.config.MapPointConfig;
import com.ljsd.jieling.core.GlobalsDef;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.handler.map.Cell;
@ -13,19 +11,14 @@ import com.ljsd.jieling.handler.map.MapManager;
import com.ljsd.jieling.handler.mission.CheckMissionReturn;
import com.ljsd.jieling.handler.mission.Mission;
import com.ljsd.jieling.handler.mission.MissionLogic;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.FightInfoProto;
import com.ljsd.jieling.protocols.MapInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.util.CBean2Proto;
import com.ljsd.jieling.util.MonsterUtil;
import org.json.JSONArray;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -66,10 +59,10 @@ public class BehaviorUtil {
crossMapCell = new CrossMapCell();
}
if (mapPointConfig.getRefresh() == 1) {
crossMapCell.getDayRefreshs().add(needDistoryPointId);
crossMapCell.getDayRefreshs().put(needDistoryPointId, -1);
}
if (mapPointConfig.getRefresh() == 3) {
crossMapCell.getPermanents().add(needDistoryPointId);
crossMapCell.getPermanents().put(needDistoryPointId, -1);
}
mapManager.updateCrossMapInfos(mapManager.getCurMapId(), crossMapCell);
}

View File

@ -16,7 +16,7 @@ public class FightAndDestroyPointBehavior extends BaseBehavior {
public boolean process(User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
BehaviorUtil.updateMission(user, behaviorTypeValues[0][0], eventUpdateResponse);
BehaviorUtil.fightReady(user.getId(), behaviorTypeValues[0][1]);
BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][2]);
// BehaviorUtil.distoryPoint(user, behaviorTypeValues[0][2]);
return true;
}
}