2025-06-04 05:02:57 +08:00

246 lines
12 KiB
Plaintext

GuildFun = {}
-- 計算公會祈禱所需貢獻
function GuildFun.calcGuildPrayCon(prayid, praylv)
local cfg = Table_Guild_Faith[prayid]
if cfg == nil then
return 0
end
--print("con1 = "..cfg.Contribution1)
--print("con2 = "..cfg.Contribution2)
--print("---------------------------")
if praylv<=10 then
return math.floor(34)
elseif praylv<=20 and praylv>10 then
return math.floor(36)
elseif praylv<=30 and praylv>20 then
return math.floor(42)
elseif praylv<=40 and praylv>30 then
return math.floor(80)
elseif praylv<=50 and praylv>40 then
return math.floor(152)
elseif praylv<=60 and praylv>50 then
return math.floor(284)
elseif praylv<=70 and praylv>60 then
return math.floor(450)
elseif praylv<=80 and praylv>70 then
return math.floor(588)
elseif praylv<=90 and praylv>80 then
return math.floor(728)
else
return math.floor(728)
end
end
-- 計算公會祈禱所需貨幣
function GuildFun.calcGuildPrayMon(prayid, praylv)
local cfg = Table_Guild_Faith[prayid]
if cfg == nil then
return 0
end
--print("mon1 = "..cfg.Money1)
--print("mon2 = "..cfg.Money2)
--print("---------------------------")
local a1 = praylv % 10
local b1=GameConfig.GuildPray.Remainder[a1]
local a2=math.floor(praylv/10)
local b2=GameConfig.GuildPray.Quotient[a2]
local result = GameConfig.GuildPray.BaseCost * b1 * b2
result = result - result % 10
return result
end
---------------------------------------------------------------------------計算公會祈福屬性
function GuildFun.calcGuildPrayAttr(prayid, praylv)
local result = {}
if praylv >= 0 and praylv <= 10 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 10 * praylv
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 0.4 * praylv
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 0.4 * praylv
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 0.2 * praylv
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 0.2 * praylv
end
elseif praylv >= 11 and praylv <= 20 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 18 * (praylv - 10)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 0.7 * (praylv - 10)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 0.7 * (praylv - 10)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 0.4 * (praylv - 10)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 0.4 * (praylv - 10)
end
elseif praylv >= 21 and praylv <= 30 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 28 * (praylv - 20)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 1.1 * (praylv - 20)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 1.1 * (praylv - 20)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 0.5 * (praylv - 20)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 0.5 * (praylv - 20)
end
elseif praylv >= 31 and praylv <= 40 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 38 * (praylv - 30)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 1.5 * (praylv - 30)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 1.5 * (praylv - 30)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 0.7 * (praylv - 30)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 0.7 * (praylv - 30)
end
elseif praylv >= 41 and praylv <= 50 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 45 * (praylv - 40)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 1.8 * (praylv - 40)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 1.8 * (praylv - 40)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 0.9 * (praylv - 40)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 0.9 * (praylv - 40)
end
elseif praylv >= 51 and praylv <= 60 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 55 * (praylv - 50)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 2.2 * (praylv - 50)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 2.2 * (praylv - 50)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 1.1 * (praylv - 50)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 1.1 * (praylv - 50)
end
elseif praylv >= 61 and praylv <= 70 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 63 * (praylv - 60)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 2.5 * (praylv - 60)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 2.5 * (praylv - 60)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 1.3 * (praylv - 60)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 1.3 * (praylv - 60)
end
elseif praylv >= 71 and praylv <= 80 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 73 * (praylv - 70)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 2.9 * (praylv - 70)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 2.9 * (praylv - 70)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 1.5 * (praylv - 70)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 1.5 * (praylv - 70)
end
elseif praylv >= 81 and praylv <= 90 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 83 * (praylv - 80)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 3.3 * (praylv - 80)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 3.3 * (praylv - 80)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 1.6 * (praylv - 80)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 1.6 * (praylv - 80)
end
elseif praylv >= 91 and praylv <= 100 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 90 * (praylv - 90)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 3.6 * (praylv - 90)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 3.6 * (praylv - 90)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 1.8 * (praylv - 90)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 1.8 * (praylv - 90)
end
elseif praylv >= 101 and praylv <= 110 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 900 + 100 * (praylv - 100)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 4 * (praylv - 100)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 4 * (praylv - 100)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 2 * (praylv - 100)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 2 * (praylv - 100)
end
elseif praylv >= 111 and praylv <= 120 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 900 + 1000 + 112 * (praylv - 110)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 4.5 * (praylv - 110)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 4.5 * (praylv - 110)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 2.2 * (praylv - 110)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 2.2 * (praylv - 110)
end
elseif praylv >= 121 and praylv <= 130 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 900 + 1000 + 1120 + 125 * (praylv - 120)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 5 * (praylv - 120)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 5 * (praylv - 120)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 2.5 * (praylv - 120)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 2.5 * (praylv - 120)
end
elseif praylv >= 131 and praylv <= 140 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 900 + 1000 + 1120 + 1250 + 138 * (praylv - 130)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 50 + 5.5 * (praylv - 130)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 50 + 5.5 * (praylv - 130)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 25 + 2.8 * (praylv - 130)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 25 + 2.8 * (praylv - 130)
end
elseif praylv >= 141 and praylv <= 150 then
if prayid == 1 then
result[CommonFun.RoleData.EATTRTYPE_MAXHP] = 100 + 180 + 280 + 380 + 450 + 550 + 630 + 730 + 830 + 900 + 1000 + 1120 + 1250 + 1380 + 150 * (praylv - 140)
elseif prayid == 2 then
result[CommonFun.RoleData.EATTRTYPE_ATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 50 + 55 + 6 * (praylv - 140)
elseif prayid == 3 then
result[CommonFun.RoleData.EATTRTYPE_MATK] = 4 + 7 + 11 + 15 + 18 + 22 + 25 + 29 + 33 + 36 + 40 + 45 + 50 + 55 + 6 * (praylv - 140)
elseif prayid == 4 then
result[CommonFun.RoleData.EATTRTYPE_DEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 25 + 28 + 3 * (praylv - 140)
elseif prayid == 5 then
result[CommonFun.RoleData.EATTRTYPE_MDEF] = 2 + 4 + 5 + 7 + 9 + 11 + 13 + 15 + 16 + 18 + 20 + 22 + 25 + 28 + 3 * (praylv - 140)
end
end
return result
end