-
Notifications
You must be signed in to change notification settings - Fork 54
MY Recount Data Structure
Emil Zhai edited this page Jun 1, 2020
·
1 revision
local DK = {
UUID = 1, -- 战斗唯一标识
BOSSNAME = 2, -- 日志名字
VERSION = 3, -- 数据版本号
TIME_BEGIN = 4, -- 战斗开始时间
TICK_BEGIN = 5, -- 战斗开始毫秒时间
TIME_DURING = 6, -- 战斗持续时间
TICK_DURING = 7, -- 战斗持续毫秒时间
AWAYTIME = 8, -- 死亡/掉线时间节点
NAME_LIST = 9, -- 名称缓存
FORCE_LIST = 10, -- 势力缓存
EFFECT_LIST = 11, -- 效果信息缓存
DAMAGE = 12, -- 输出统计
HEAL = 13, -- 治疗统计
BE_HEAL = 14, -- 承疗统计
BE_DAMAGE = 15, -- 承伤统计
EVERYTHING = 16, -- 战斗复盘
ABSORB = 17, -- 化解统计
PLAYER_LIST = 18, -- 玩家信息缓存
SERVER = 19, -- 所在服务器
MAP = 20, -- 所在地图
}
DK.DAMAGE, DK.HEAL, DK.BE_HEAL, DK.BE_DAMAGE, DK.ABSORB
local DK_REC = {
TIME_DURING = 1,
TOTAL = 2,
TOTAL_EFFECT = 3,
STAT = 4,
}
DK_REC.STAT
local DK_REC_STAT = {
TOTAL = 1,
TOTAL_EFFECT = 2,
DETAIL = 3,
SKILL = 4,
TARGET = 5,
}
DK_REC_STAT.DETAIL
local DK_REC_STAT_DETAIL = {
COUNT = 1, -- 命中记录数量(假设nSkillResult是命中)
NZ_COUNT = 2, -- 非零值命中记录数量
MAX = 3, -- 单次命中最大值
MAX_EFFECT = 4, -- 单次命中最大有效值
MIN = 5, -- 单次命中最小值
NZ_MIN = 6, -- 单次非零值命中最小值
MIN_EFFECT = 7, -- 单次命中最小有效值
NZ_MIN_EFFECT = 8, -- 单次非零值命中最小有效值
TOTAL = 9, -- 所有命中总伤害
TOTAL_EFFECT = 10, -- 所有命中总有效伤害
AVG = 11, -- 所有命中平均伤害
NZ_AVG = 12, -- 所有非零值命中平均伤害
AVG_EFFECT = 13, -- 所有命中平均有效伤害
NZ_AVG_EFFECT = 14, -- 所有非零值命中平均有效伤害
}
DK_REC_STAT.SKILL
local DK_REC_STAT_SKILL = {
COUNT = 1, -- 该玩家四象轮回释放次数(假设szEffectName是四象轮回)
NZ_COUNT = 2, -- 该玩家非零值四象轮回释放次数
MAX = 3, -- 该玩家四象轮回最大输出量
MAX_EFFECT = 4, -- 该玩家四象轮回最大有效输出量
TOTAL = 5, -- 该玩家四象轮回输出量总和
TOTAL_EFFECT = 6, -- 该玩家四象轮回有效输出量总和
AVG = 7, -- 该玩家所有四象轮回平均伤害
NZ_AVG = 8, -- 该玩家所有非零值四象轮回平均伤害
AVG_EFFECT = 9, -- 该玩家所有四象轮回平均有效伤害
NZ_AVG_EFFECT = 10, -- 该玩家所有非零值四象轮回平均有效伤害
DETAIL = 11, -- 该玩家四象轮回输出结果分类统计
TARGET = 12, -- 该玩家四象轮回承受者统计
}
DK_REC_STAT_SKILL.DETAIL
local DK_REC_STAT_SKILL_DETAIL = {
COUNT = 1, -- 命中记录数量
NZ_COUNT = 2, -- 非零值命中记录数量
MAX = 3, -- 单次命中最大值
MAX_EFFECT = 4, -- 单次命中最大有效值
MIN = 5, -- 单次命中最小值
NZ_MIN = 6, -- 单次非零值命中最小值
MIN_EFFECT = 7, -- 单次命中最小有效值
NZ_MIN_EFFECT = 8, -- 单次非零值命中最小有效值
TOTAL = 9, -- 所以命中总伤害
TOTAL_EFFECT = 10, -- 所有命中总有效伤害
AVG = 11, -- 所有命中平均伤害
NZ_AVG = 12, -- 所有非零值命中平均伤害
AVG_EFFECT = 13, -- 所有命中平均有效伤害
NZ_AVG_EFFECT = 14, -- 所有非零值命中平均有效伤害
}
DK_REC_STAT_SKILL.TARGET
local DK_REC_STAT_SKILL_TARGET = {
MAX = 1, -- 该玩家四象轮回击中的这个玩家最大伤害
MAX_EFFECT = 2, -- 该玩家四象轮回击中的这个玩家最大有效伤害
TOTAL = 3, -- 该玩家四象轮回击中的这个玩家伤害总和
TOTAL_EFFECT = 4, -- 该玩家四象轮回击中的这个玩家有效伤害总和
COUNT = 5, -- 该玩家四象轮回击中的这个玩家结果统计
NZ_COUNT = 6, -- 该玩家非零值四象轮回击中的这个玩家结果统计
}
DK_REC_STAT.TARGET
local DK_REC_STAT_TARGET = {
COUNT = 1, -- 该玩家对idTarget的技能释放次数
NZ_COUNT = 2, -- 该玩家对idTarget的非零值技能释放次数
MAX = 3, -- 该玩家对idTarget的技能最大输出量
MAX_EFFECT = 4, -- 该玩家对idTarget的技能最大有效输出量
TOTAL = 5, -- 该玩家对idTarget的技能输出量总和
TOTAL_EFFECT = 6, -- 该玩家对idTarget的技能有效输出量总和
AVG = 7, -- 该玩家对idTarget的技能平均输出量
NZ_AVG = 8, -- 该玩家对idTarget的非零值技能平均输出量
AVG_EFFECT = 9, -- 该玩家对idTarget的技能平均有效输出量
NZ_AVG_EFFECT = 10, -- 该玩家对idTarget的非零值技能平均有效输出量
DETAIL = 11, -- 该玩家对idTarget的技能输出结果分类统计
SKILL = 12, -- 该玩家对idTarget的技能具体分别统计
}
DK_REC_STAT_TARGET.DETAIL
local DK_REC_STAT_TARGET_DETAIL = {
COUNT = 1, -- 命中记录数量(假设nSkillResult是命中)
NZ_COUNT = 2, -- 非零值命中记录数量
MAX = 3, -- 单次命中最大值
MAX_EFFECT = 4, -- 单次命中最大有效值
MIN = 5, -- 单次命中最小值
NZ_MIN = 6, -- 单次非零值命中最小值
MIN_EFFECT = 7, -- 单次命中最小有效值
NZ_MIN_EFFECT = 8, -- 单次非零值命中最小有效值
TOTAL = 9, -- 所以命中总伤害
TOTAL_EFFECT = 10, -- 所有命中总有效伤害
AVG = 11, -- 所有命中平均伤害
NZ_AVG = 12, -- 所有非零值命中平均伤害
AVG_EFFECT = 13, -- 所有命中平均有效伤害
NZ_AVG_EFFECT = 14, -- 所有非零值命中平均有效伤害
}
DK_REC_STAT_TARGET.SKILL
local DK_REC_STAT_TARGET_SKILL = {
MAX = 1, -- 该玩家击中这个玩家的四象轮回最大伤害
MAX_EFFECT = 2, -- 该玩家击中这个玩家的四象轮回最大有效伤害
TOTAL = 3, -- 该玩家击中这个玩家的四象轮回伤害总和
TOTAL_EFFECT = 4, -- 该玩家击中这个玩家的四象轮回有效伤害总和
COUNT = 5, -- 该玩家击中这个玩家的四象轮回结果统计
NZ_COUNT = 6, -- 该玩家非零值击中这个玩家的四象轮回结果统计
}
local SKILL_RESULT = {
HIT = 0, -- 命中
BLOCK = 1, -- 格挡
SHIELD = 2, -- 无效
MISS = 3, -- 偏离
DODGE = 4, -- 闪避
CRITICAL= 5, -- 会心
INSIGHT = 6, -- 识破
}
local NZ_SKILL_RESULT = {
[SKILL_RESULT.BLOCK ] = true,
[SKILL_RESULT.SHIELD] = true,
[SKILL_RESULT.MISS ] = true,
[SKILL_RESULT.DODGE ] = true,
}
local AWAYTIME_TYPE = {
DEATH = 0,
OFFLINE = 1,
HALFWAY_JOINED = 2,
}
local EVERYTHING_TYPE = {
SKILL_EFFECT = 1,
FIGHT_TIME = 2,
DEATH = 3,
ONLINE = 4,
BUFF_UPDATE = 5,
ENTER_LEAVE_SCENE = 6,
SYS_MSG = 7,
PLAYER_SAY = 8,
WARNING_MESSAGE = 9,
FIGHT_HINT = 10,
}
每一条都是独立的复盘记录,其中前四位数据固定格式,第五位为不同类型枚举,根据第五位类型继续解析后续不定长度数据,具体结构如下:
-- 通用部分
nLFC, nTime, nTick, szName
-- 技能效果
EVERYTHING_TYPE.SKILL_EFFECT, dwCaster, dwTarget,
nEffectType, dwEffectID, dwEffectLevel, szEffectID,
nSkillResult, nTherapy, nEffectTherapy, nDamage, nEffectDamage,
tResult
-- 战斗状态
EVERYTHING_TYPE.FIGHT_TIME, bFighting, szUUID, nDuring
-- 角色死亡
EVERYTHING_TYPE.DEATH, dwID, dwKiller, szName, szKillerName
-- 角色在线状态改变
EVERYTHING_TYPE.ONLINE, dwID, bOnline, szName
-- 气劲获得、消失
EVERYTHING_TYPE.BUFF_UPDATE,
dwCaster, dwTarget, dwBuffID, dwBuffLevel, szEffectID, bDelete, nStackNum, nEndFrame, bCanCancel)
-- 角色进入、离开场景
-- nEnter = 0 | 1
-- dwType = TARGET.NPC | TARGET.PLAYER
EVERYTHING_TYPE.ENTER_LEAVE_SCENE, nEnter
dwType, dwID, szName, dwTemplateID,
nCurrentLife, nMaxLife, nCurrentMana, nMaxMana
-- 系统消息
EVERYTHING_TYPE.SYS_MSG, szMsg
-- 系统角色聊天发言
EVERYTHING_TYPE.PLAYER_SAY, szContent, dwNpcID, szNpcName, dwNpcTemplateID
-- 系统警告框
EVERYTHING_TYPE.WARNING_MESSAGE, szContent
-- 战斗状态改变
EVERYTHING_TYPE.FIGHT_HINT,
dwType, dwID, bFight,
szName, dwTemplateID,
nCurrentLife, nMaxLife, nCurrentMana, nMaxMana