2019-03-12 14:05:45 +08:00
|
|
|
|
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 -----------------------------------------
|
2019-03-12 17:01:40 +08:00
|
|
|
|
--for i=1, #resultList do
|
|
|
|
|
-- print("hp:"..resultList[i])
|
|
|
|
|
--end
|
|
|
|
|
--print("最终运行帧数:"..BattleLogic.CurFrame())
|
|
|
|
|
--print("result:"..BattleLogic.Result)
|
2019-03-12 14:05:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
2019-03-12 17:01:40 +08:00
|
|
|
|
|
|
|
|
|
--BattleMain.Execute(932590676, test_fight_data, optionData)
|
2019-03-12 14:05:45 +08:00
|
|
|
|
|
|
|
|
|
return BattleMain
|
|
|
|
|
--> hp:2084
|
|
|
|
|
--> hp:9934
|
|
|
|
|
--> hp:9781
|
|
|
|
|
--> hp:9868
|
|
|
|
|
--> hp:9752
|
|
|
|
|
--> 最终运行帧数:2735
|
|
|
|
|
--> result:1 (1胜,0负,-1战斗异常)
|