418 lines
14 KiB
Lua
418 lines
14 KiB
Lua
package.path = package.path ..';luafight\\?.lua';
|
||
|
||
require("Modules.Battle.Logic.Misc.BattleDefine")
|
||
require("Modules.Battle.Logic.Misc.BattleUtil")
|
||
require("Modules.Battle.Logic.Misc.BattleQueue")
|
||
require("Modules.Battle.Logic.Misc.BattleDictionary")
|
||
|
||
require("Modules.Battle.Logic.Base.BattleEvent")
|
||
require("Modules.Battle.Logic.Base.Random")
|
||
require("Modules.Battle.Logic.Base.RoleData")
|
||
require("Modules.Battle.Logic.Base.Buff")
|
||
require("Modules.Battle.Logic.Base.Skill")
|
||
require("Modules.Battle.Logic.Base.Passivity")
|
||
|
||
require("Modules.Battle.Logic.BattleLogic")
|
||
require("Modules.Battle.Logic.RoleLogic")
|
||
|
||
--捕获异常,并输出错误日志
|
||
local function error( err )
|
||
local time = string.format("%d-%d-%d-%d-%d-%d",
|
||
os.date("%Y"),
|
||
os.date("%m"),
|
||
os.date("%d"),
|
||
os.date("%H"),
|
||
os.date("%M"),
|
||
os.date("%S"))
|
||
local file = io.open("LogError/"..time..".txt", "a")
|
||
file:write(debug.traceback(err))
|
||
io.close(file)
|
||
end
|
||
|
||
--测试战斗数据
|
||
local test_fight_data={
|
||
playerData = {
|
||
[1] = {
|
||
--角色id
|
||
roleId = 10001,
|
||
--职业id 0 无职业 1 秘法;2 天罚 3 武卫;4 玄策 5 生花
|
||
professionId = 4,
|
||
--角色类型 1人形 2亡灵 3动物 4魔人
|
||
type = 1,
|
||
--品质 1普通 2精英 3首领 4史诗
|
||
quality = 1,
|
||
--camp 0我方, 1敌方
|
||
camp = 0,
|
||
--skill = {cd, {目标id1, 效果时间, 效果1, 效果2, ...},{目标id2, 效果时间, 效果3, 效果4, ...}, ...}
|
||
--效果 = {效果类型id, 效果参数1, 效果参数2, ...}
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
--同skill
|
||
superSkill = { 0.5, {20011, 0.7, {1, 0.1, 1}}
|
||
},
|
||
--passivity = {被动1, 被动2, ...}
|
||
--被动 = {被动类型id1, 被动参数1, 被动参数2, ...}
|
||
passivity = {},
|
||
--属性 {等级,生命,最大生命,攻击力,护甲,魔抗,速度,伤害加成系数(%,伤害减免系数(%),命中率(%),闪避率(%),暴击率(%),暴击伤害系数(%),治疗加成系数(%)
|
||
-- ,火系伤害加成系数(%),火系伤害减免系数(%),冰系伤害加成系数(%),冰系伤害减免系数(%),雷系伤害加成系数(%),雷系伤害减免系数(%),风系伤害加成系数(%)
|
||
-- ,风系伤害减免系数(%),地系伤害加成系数(%),地系伤害减免系数(%),暗系伤害加成系数(%),暗系伤害减免系数(%)}
|
||
property = {1, 2390, 2390, 169, 271, 95, 176, 0, 0, 0.3, 0.15, 0.3, 1.5, 1, 0.05, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0},
|
||
},
|
||
[2] = {
|
||
roleId = 10001,
|
||
professionId = 4,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 0, --阵营 0我方 1敌方
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
passivity = {
|
||
--{201011, {30, 1, 0.2, 24, 0}},
|
||
--passivity = {被动1, 被动2, ...}
|
||
--被动 = {被动id, 被动参数1, 被动参数2, ...}
|
||
},
|
||
property = {1, 10000, 10000, 169, 271, 95, 176, 0, 0, 0.3, 0.15, 0.3, 1.5, 1, 0.05, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0},
|
||
},
|
||
[3] = {
|
||
roleId = 10001,
|
||
professionId = 4,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 0,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
passivity = {
|
||
--{201011, {30, 1, 0.2, 24, 0}},
|
||
},
|
||
property = {1, 10000, 10000, 169, 271, 95, 176, 0, 0, 0.3, 0.15, 0.3, 1.5, 1, 0.05, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0},
|
||
},
|
||
[4] = {
|
||
roleId = 10001,
|
||
professionId = 4,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 0,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
passivity = {
|
||
--{201011, {30, 1, 0.2, 24, 0}},
|
||
},
|
||
property = {1, 10000, 10000, 169, 271, 95, 176, 0, 0, 0.3, 0.15, 0.3, 1.5, 1, 0.05, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0},
|
||
},
|
||
[5] = {
|
||
roleId = 10001,
|
||
professionId = 4,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 0,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
passivity = {
|
||
--{201011, {30, 1, 0.2, 24, 0}},
|
||
},
|
||
property = {1, 10000, 10000, 169, 271, 95, 176, 0, 0, 0.3, 0.15, 0.3, 1.5, 1, 0.05, 0, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0},
|
||
},
|
||
},
|
||
enemyData = {
|
||
[1] = {
|
||
[1] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {1, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[2] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {9, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[3] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {7, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[4] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {5, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[5] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {3, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
},
|
||
[2] = {
|
||
[1] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {1, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[2] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {9, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[3] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {7, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[4] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {9, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[5] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {7, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
},
|
||
[3] = {
|
||
[1] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {1, 1044, 1044, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[2] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {9, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
[3] = {
|
||
roleId = 1,
|
||
professionId = 2,
|
||
type = 1,
|
||
quality = 1,
|
||
camp = 1,
|
||
skill = { 0.5, {20011, 0.7,{1, 0.1, 1}}
|
||
},
|
||
superSkill = {
|
||
|
||
},
|
||
passivity = {
|
||
--{206021, {1,1}},
|
||
},
|
||
property = {7, 144, 144, 285, 152, 53, 154, 0, 0, 0.7, 0.35, 0.3, 1.5, 1, 0, 0, 0, 0, 0.05, 0, 0, 0, 0, 0, 0.05, 0},
|
||
},
|
||
}
|
||
}
|
||
}
|
||
local optionData = {
|
||
{14,1,0}, --{第几帧,操作类型,操作参数}
|
||
{132,2,3},
|
||
{152,2,5},
|
||
{178,3,2},
|
||
{219,2,4},
|
||
{260,3,1},
|
||
{287,2,2},
|
||
{312,3,5},
|
||
{467,1,1},
|
||
}
|
||
|
||
local BattleMain = {}
|
||
|
||
function BattleMain.Execute(seed, fightData, optionData)
|
||
--该开关用于输出战斗过程中的日志,用于验证前后端是否出现战斗不同步
|
||
--BattleLogic.IsOpenBattleRecord = true
|
||
|
||
Random.SetSeed(seed)
|
||
BattleLogic.Init(fightData, optionData)
|
||
BattleLogic.StartOrder()
|
||
|
||
if xpcall(function ()
|
||
while not BattleLogic.IsEnd do
|
||
BattleLogic.Update()
|
||
end
|
||
end, error) then
|
||
local resultList = {}
|
||
if BattleLogic.Result == 1 then --胜利记录我方剩余血量
|
||
local arr = BattleLogic.Query(function (r) return r.camp == 0 end, true)
|
||
for i=1, #arr do
|
||
resultList[i] = arr[i]:GetRoleData(RoleDataName.Hp)
|
||
end
|
||
elseif BattleLogic.Result == 0 then --失败记录敌方剩余血量
|
||
local arr = BattleLogic.Query(function (r) return r.camp == 1 end, true)
|
||
for i=1, #arr do
|
||
resultList[i] = arr[i]:GetRoleData(RoleDataName.Hp)
|
||
end
|
||
end
|
||
resultList.result = BattleLogic.Result
|
||
|
||
-- print -----------------------------------------
|
||
--for i=1, #resultList do
|
||
-- print("hp:"..resultList[i])
|
||
--end
|
||
--print("最终运行帧数:"..BattleLogic.CurFrame())
|
||
--print("result:"..BattleLogic.Result)
|
||
|
||
|
||
return resultList
|
||
--[[ --TODO:需要导入cjson库
|
||
--local json = require("cjson")
|
||
--local time = string.format("%d-%d-%d-%d-%d-%d",
|
||
-- os.date("%Y"),
|
||
-- os.date("%m"),
|
||
-- os.date("%d"),
|
||
-- os.date("%H"),
|
||
-- os.date("%M"),
|
||
-- os.date("%S"))
|
||
--local file = io.open("BattleRecord/"..time..".txt", "a")
|
||
--file:write(json.encode(test_fight_data))
|
||
--io.close(file)
|
||
]]
|
||
end
|
||
return { result = -1 }
|
||
end
|
||
|
||
--BattleMain.Execute(932590676, test_fight_data, optionData)
|
||
|
||
return BattleMain
|
||
--> hp:2084
|
||
--> hp:9934
|
||
--> hp:9781
|
||
--> hp:9868
|
||
--> hp:9752
|
||
--> 最终运行帧数:2735
|
||
--> result:1 (1胜,0负,-1战斗异常) |