local Attr = require("role.Proto").Attr
local ItemData = require("bag.Proto").ItemData
local RoleBase = require("role.Proto").RoleBase 
-- 技能信息
BuffNet = {
    {"id",1,"int"},         -- buffID
    {"name",1,"string"},    -- buff名字
    {"desc",1,"string"},    -- 效果描述
}

SkillNet = {
	{"id",		1,		"int"},     --id
	{"icon",    1,      "string"},  --图标
	{"name",    1,      "string"},  --名字
	{"type",    1,      "byte"},    --类型
	{"desc",    1,      "string"},  --描述
	{"need",    1,      "byte"},    --条件：品阶xx后获得
	{"lv",      1,      "int"},    --等级
    {"cd",      2,      "byte"},    -- 1为释放回合   2为冷却回合数
    {"buff",    5,      BuffNet},   -- buff
    {"lvUpDesc",1,      "string"},  -- 升级描述
}

-- 英雄通用信息
HeroGeneral = {
    {"cm",1,"int"},             -- 身高
    {"age",1,"int"},            -- 年龄
    {"character",1,"string"},   -- 性格
    {"kg",1,"int"},             -- 体重
    {"cup",1,"string"},            -- CUP
    {"interest",1,"string"},    -- 兴趣
    {"desc",1,"string"},        -- 人物简介
}


-- 英雄基础信息
HeroInfo = {
	{"id",		1,		"int"},
	{"icon",	1,		"int"},
	{"lv",		1,		"int"},
	{"camp",	1,		"byte"},
	{"star",	1,		"byte"},
	{"label",	1,		"string"},
}

-- 升阶后数据预览
HeroUpgadeData = {
	{"id",			  1,	  "int"},	   --id
	{"maxLv",         1,      "short"},	   --下阶的最高等级
	{"zhandouli",     1,      "double"},   --战斗力
	{"attr",          5,      Attr},      --攻击,血量,护甲
	{"needJinbi",	  1,      "int"},      --升到下阶所需金币
	{"needItemCnt",	  1,      "int"},      --升到下阶所需英雄进阶石
}

GemData = {
    {"id",				1,	"int"},     	-- 宝石ID
    {"pos",				1,	"byte"},  		-- 装备部位
    {"lv",				1,	"short"},   	-- 当前等级, 如果是0，表示宝石没升级
	{"maxLv",			1,	"short"},   	-- 最大等级
	{"upcost",			1,	"short"},		-- 升到下一级所需的宝石数量
}

--遗物
relic = {
    {"relicID",   1,   "int"},
	{"star",      1,    "int"}
}
-- 英雄简略信息
HeroSimple = {
	{"id",			1,		"int"},	 	 --id
	{"index",       1,		"short"},    --位置
    {"uuid",        1,      "string"},   --唯一标识
	{"icon",        1,      "int"},   	 --头像
	{"lv",          1,      "short"},	 --等级：初始为1
	{"camp",        1,      "byte"},	 --阵营
	{"job",         1,      "byte"},     --职业
	{"zhandouli",   1,      "double"},   --战斗力
	{"star",        1,      "byte"},     --星级
	{"quality",     1,      "byte"},	 --品阶:初始为0
	{"isget",       1,      "byte"},     --是否拥有图鉴英雄 0否 1是
	{"isLock",      1,      "byte"},     --是否锁定 0否 1是
    {"hp",          1,      "int"},      --血量
	{"hpMax",       1,      "int"},      --最大血量
	{"up",          1,      "byte"},     --能否觉醒
	{"gl",          1,      "byte"},     --是否有攻略  0 无攻略 1 有攻略  2 有攻略且有红点
	{"body",        1,      "int"},   	 --模型
	{"cnt",			1,		"int"},		 --数量，客户端需求暂时加这里。。迟点看看怎么改
    {"weightLv",	1,	  	"byte"},        -- 英雄权重
    {"name",		1,		"string"},	    -- 英雄名
    {"grade",       1,       "byte"},     -- 评分 
    {"jobDesc",     1,       "string"}, -- 职业描述
    {"label",       1,       "string"}, -- 标签
    {"order",       1,       "byte"},   -- 排序用
    {"isGongMing",  1,       "byte"},   -- 是否共鸣 
    {"general",     2,      HeroGeneral},   -- 通用信息 
    {"xLv",        	1,      "int"},   	 --xLv 初始值0
	{"gemData",     6,     GemData},   -- 宝石
	{"relic",       1,      relic}     --遗物
}



-- 英雄详细信息：静态
HeroStatic = {
	{"id",			  1,	  "int"},	    --id
	{"name",		  1,	  "string"},    --名字
	{"body",          1,      "int"},       --模型
	{"job",           1,      "byte"},	    --职业
	{"normalAtkID",   1,      "int"},       --普攻
	{"skillList",     2,      SkillNet},    --主动技能：2个
	{"beSkill",       3,      SkillNet},    --被动技能：最多3个
    {"weightLv",	  1,	  "byte"},
    {"skin",		  1,	  "byte"},	    --0 没皮肤，1 有皮肤
}

HeroSkin = {
	{"name",		  1,	  "string"},   --名字
	{"body",          1,      "int"},   --模型
	{"normalAtkID",   1,      "int"},      --普攻
	{"skillList",     2,      SkillNet},   --主动技能：2个
	{"beSkill",       3,      SkillNet},   --被动技能：最多3个	
}


-- 英雄详细信息：动态
HeroDynamic = {
	{"id",			1,		"int"},	 	 --id
    {"uuid",        1,      "string"},   --唯一编号
	{"lv",          1,      "short"},    --等级
	{"head",        1,      "int"},      --头像   
	{"maxLv",       1,      "short"},	 --最高等级
	{"zhandouli",   1,      "double"},   --战斗力
	{"quality",     1,      "byte"},	 --品阶
    {"star",        1,      "byte"},     --星级
	-- lv<maxLv表示升级状态 否则表示进阶状态
	{"upLv",		1,		"byte"},	 --升x级，1-5
	{"upLvJinbi",   1,      "int"},      --升x级需要的金币/进阶需要的金币 0表示满级
	{"upLvSoul",    1,      "int"},      --升x级需要的英魂/进阶需要的进阶石
	{"attrs",       40,     Attr},       --属性
	{"skin",		2,		HeroSkin},
	{"techLv",      1,      "int"},      -- 公会科技等级
    {"maxQuality",  1,      "byte"},	 --最高品阶
    {"skillList",   2,      SkillNet},    --主动技能：2个
	{"beSkill",     3,      SkillNet},    --被动技能：最多3个
}


HeroNiceNet = {
	{"heroSimple",	2,		HeroSimple},
	{"heroStatic",	2,		HeroStatic},		
    {"itemData",	2,		ItemData},
	{"body",		1,      "int"},   	 --模型大于0就是特殊武将
    {"weightLv",	1,	  	"byte"},
    {"isNew",		1,		"byte"},
    {"attrs",		4,		Attr}, 		 --初始属性
    {"attrsMax",	4,		Attr}, 		 --最大属性
    {"bubble",	    1,		"string"},   --气泡
}

-- 符文信息
FuwenMsg = {
    {"pos",1,"byte"},
    {"fuwen",1,ItemData},
}

-- 能力值
HeroStats = {
    {"power",5,"byte"},                         -- 能力值
	{"totalPoint",	1,	"short"},				-- 总分
	{"dingwei",		1,	"string"},				-- 定位
}

HeroManito = {
	{"heroInfo",	1,		HeroInfo},          -- 英雄信息
	{"player",		1,		RoleBase},          -- 玩家名
	{"heroIndex",	1,		"int"},             -- 英雄索引
    {"svrName",		1,		"string"},          -- 服务器名
    {"zhandouli",	1,		"int"},             -- 战斗力
}

SimpleMsg = {
    {"icon",1,"int"},
    {"weightLv",1,"byte"},
    {"name",1,"string"},
}


-- 下发英雄基础头像信息列表
GC_HERO_BAG_LIST = {
	{"list",	30,		HeroSimple},
}

-- 请求英雄详细信息:静态
CG_HERO_BAG_STATIC = {
	{"id",			1,		"int"},
    {"tuJian",		1,		"byte"},
}

GC_HERO_BAG_STATIC = {
	{"heroStatic",      1,     HeroStatic},
}

-- 请求英雄详细信息:动态
CG_HERO_BAG_DYNAMIC = {
	{"id",			1,		"int"},
	{"index",       1,		"short"},
}

GC_HERO_BAG_DYNAMIC = {
	{"index",       1,		"short"},
	{"heroDynamic", 1,      HeroDynamic},	
    {"canLv",       1,      "byte"},
    {"canUp",       1,      "byte"},
    {"canEquip",    1,      "byte"},
    {"canFuwen",    1,      "byte"},
    {"canJueXing",  1,      "byte"},
	{"canBingShu",  1,      "byte"},
	{"canWeapon",   1,      "byte"},
	{"canSeed",   	1,      "byte"},
	{"canTianYuan", 1,      "byte"},
	{"canArtifacts",1,      "byte"},
}

-- 获取配置英雄属性
CG_HERO_BAG_DYNAMIC_BY_ID = {
	{"heroID",       1,		"int"},
	{"star",       1,		"byte"},
}

-- 获取配置英雄属性
GC_HERO_BAG_DYNAMIC_BY_ID = {
    {"heroDynamic",  1,      HeroDynamic},
}

-- 英雄删除
GC_HERO_BAG_DELETE = {
	{"index",		1,		"short"},
}

-- 英雄增加
GC_HERO_BAG_ADD = {
    {"data",	1,		HeroSimple},
}

-- 英雄锁定
CG_HERO_BAG_LOCK = {
	{"type",           1,        "byte"},   -- 0不锁  1锁定
	{"heroID",         1,        "int"},
	{"heroIndex",      1,        "int"},
}

GC_HERO_BAG_LOCK = {
	{"type",           1,        "byte"},  -- 0不锁  1锁定
	{"heroID",         1,        "int"},
	{"heroIndex",      1,        "int"},
}

-- 英雄升级
CG_HERO_LEVEL_UP = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

-- 英雄升级成功
GC_HERO_LEVEL_UP = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

-- 英雄升阶查询
CG_HERO_UPGRADE_QUERY = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

GC_HERO_UPGRADE_QUERY = { 
	{"id",			1,		"int"},
	{"index",		1,		"short"},
	{"data",        1,      HeroUpgadeData},
} 

-- 英雄升阶
CG_HERO_UPGRADE_DO = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

-- 英雄升阶成功
GC_HERO_UPGRADE_DO = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

-- 查询背包容量
GC_HERO_CAP_QUERY = {
	{"cap",			1,    "short"}, --当前容量
	{"buyZuanshi",  1,    "int"},   --购买格子需要钻石数量 0表示最大次数 无法继续购买了
}

-- 购买容量
CG_HERO_CAP_BUY = {}

-- 升星条件
UpStarCond = {
	{"type",			  1,	  "byte"},   -- 条件1:英雄id，数量；条件2：阵营，星级，数量
	{"id",                1,      "int"},    -- 英雄id
	{"name",			  1,	  "string"}, --英雄名
	{"icon",              1,      "int"}, -- 头像
	{"camp",              1,      "byte"},   -- 阵营
	{"star",              1,      "byte"},   -- 星级
    {"grade",             1,      "byte"},   -- 品阶
	{"cnt",               1,      "byte"},   -- 数量
}


-- 请求查看觉醒信息
CG_HERO_JUEXING_QUERY = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}
HeroJueXingNet = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},

	{"star",		1,		"byte"},
	{"nextStar",    1,      "byte"},     		-- 下一级星数
	{"maxLv",       1,      "short"},    
	{"nextMaxLv",	1,		"short"},			-- 下一级等级上限
	{"isAllSkillUp",1,		"byte"},			-- 是否所有技能+1
	{"skillUp",		4,		SkillNet},			-- 技能变化 [0]是原有技能信息 [1]是新技能信息 长度0表示没变化
	{"speedUp",		1,		"byte"},			-- 速度提升
	{"atkUpRate",	1,		"byte"},			-- 攻击提升%
	{"hpUpRate",	1,		"byte"},			-- 血量提升%

	{"needItemCnt", 1,      "int"}, 			-- 消耗进阶石数量
	{"needHeros",   4,      UpStarCond}, 		-- 消耗武将材料
	{"needItems",	2,		ItemData},			-- 额外消耗道具	
}
GC_HERO_JUEXING_QUERY = {
	{"data",		1,		HeroJueXingNet},
}

GC_HERO_JUEXING_QUERY_MAX = {
	{"id",			1,		"int"},
	{"index",		1,		"short"},
}

-- 能否一键合成查询
CG_HERO_JUEXIN_ONECLICK_QUERY = {}

GC_HERO_JUEXIN_ONECLICK_QUERY = {
	{"bOneClick",	1,		"byte"},		-- 1 可 0 否
}

-- 请求觉醒 升星 合成
CG_HERO_JUEXING_DO = {
	{"id",				1,		"int"},   -- 英雄id
	{"index",			1,		"short"}, -- 
	{"inputIDList",		12,		"int"},   -- 觉醒耗费的英雄ID
	{"inputIndexList",	12,		"short"}, -- 觉醒耗费的英雄index
}
-- 觉醒成功
HeroJueXingHeroNet = {
	{"dynamicData",		1,		HeroDynamic},
	{"simpleData",		1,		HeroSimple},
	{"zhandouli",		1,		"double"},
	{"atk",				1,		"double"},
	{"hp",				1,		"double"},
	{"def",				1,		"double"},
	{"speed",			1,		"double"},
}
GC_HERO_JUEXING_DO = {
	{"id",				1,		"int"},   			-- 英雄id
	{"index",			1,		"short"}, 
	{"oldData",         1,      HeroJueXingHeroNet},
	{"newData",         1,      HeroJueXingHeroNet},
	{"isAllSkillUp",	1,		"byte"},			-- 是否所有技能+1
	{"skillUp",			4,		SkillNet},			-- 技能变化 [0]是原有技能信息 [1]是新技能信息 长度0表示没变化
	{"itemList", 		20, 	ItemData},			-- 额外返还道具列表
    {"upStarNeedLv",	1,		"short"},           -- 升级所需角色等级
    {"upStarNeedWorldLv", 1,	"short"},           -- 升级所需世界等级
}

tHeroJueXingHeroData = {
	{"id",				1,		"int"},   			-- 英雄id
	{"index",			1,		"short"}, 
	{"oldData",         1,      HeroJueXingHeroNet},
	{"newData",         1,      HeroJueXingHeroNet},
	{"isAllSkillUp",	1,		"byte"},			-- 是否所有技能+1
	{"skillUp",			4,		SkillNet},			-- 技能变化 [0]是原有技能信息 [1]是新技能信息 长度0表示没变化
	{"itemList", 		20, 	ItemData},			-- 额外返还道具列表
}

CG_HERO_JUEXING_ONECLICK_DO = {
	{"tHeroData",	 	125,	 "int"},  	-- 英雄id, 英雄index,长度,觉醒耗费的英雄ID,长度，觉醒耗费的英雄index,
}

GC_HERO_JUEXING_ONECLICK_DO = {
	{"tHeroList",		10,			tHeroJueXingHeroData}
}

HeroBookMsg = {
	{"heros",			1,		HeroSimple},
	{"isDot",			1,		"byte"}, --0,1
}

CG_HERO_BOOK_QUERY_CS = {    --长沙这边特珠需求
	{"camp",			1,		"byte"}, -- 阵营
}
HeroBookOtherMsg = {
    {"id",			1,		"int"},	 	 --id
    {"rewardState",		1,		"byte"}, --0,不可领取 1,可领取 2,已领取
    {"nextStar",		1,		"byte"}, --下一阶段星级
}
GC_HERO_BOOK_QUERY_CS = {    --长沙这边特珠需求 同一father只取一个
	{"camp",			1,		"byte"}, -- 阵营
    {"list",			30,		HeroBookMsg}, 
    {"dot",			    10,		"byte"}, 
}

-- 查询所有激活的图鉴英雄
CG_ALL_HERO_BOOK_QUERY = {}
GC_ALL_HERO_BOOK_QUERY = {
	{"list",			20,		HeroSimple},
	{"isEnd",			1,		"byte"},	-- 发完标识, 0-否, 1-是
}

-- 图鉴英雄列传
CG_HERO_BOOK_LIEZHUAN_QUERY = {
	{"id",				1,		"int"},   -- 英雄id
}
GC_HERO_BOOK_LIEZHUAN_QUERY = {
	{"id",				1,		"int"},   -- 英雄id
	{"data",			1,      HeroDynamic},
	{"lieZhuanDesc",	1,		"string"}, --列传描述
	{"lieZhuanReward",	1,		ItemData}, --列传奖励
	{"rewardState",		1,		"byte"}, --0,不可领取 1,可领取 2,已领取
    {"curStar",		    1,		"byte"}, --当前阶段星级
    {"nextStar",		1,		"byte"}, --下一阶段星级
}

-- 图鉴英雄列传 领取奖励
CG_HERO_BOOK_LIEZHUAN_GET = {
	{"id",				1,		"int"},   -- 英雄id
}

-- 一键领取 图鉴奖励
CG_HERO_BOOK_ONECLIEK_GET = {}

-- 根据单个英雄星级，查询图鉴信息
CG_HERO_BOOK_SINGLE_QUERY = {
    {"heroID",1,"int"},             -- 英雄id
    {"star",1,"byte"},              -- 英雄星级
}

GC_HERO_BOOK_SINGLE_QUERY = {
	{"hero",			1,		HeroSimple},
}
-- 请求英雄装备信息
CG_HERO_EQUIP_QUERY = {
	{"id",				1,		"int"},   -- 英雄id
	{"index",			1,		"short"}, -- 英雄index
}

GC_HERO_EQUIP_QUERY = {
	{"id",				1,		"int"},   -- 英雄id
	{"index",			1,		"short"}, -- 英雄index
	{"equips",			6,		ItemData},
    {"equipDot",		6,		"int"},  
	{"fuwens",			2,		FuwenMsg},
    {"fuwenDot",		6,		"byte"},   
	{"fuwenGrid",		2,		"byte"},
}

-- 穿装备
CG_HERO_EQUIP_PUTON = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"bagIndex",	    1,		"int"},   -- 背包中的装备索引
}

GC_HERO_EQUIP_PUTON = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"equip",			1,		ItemData}, 
}

-- 装备PUT穿戴
CG_HERO_EQUIP_PUTON_ON_PUT = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
    {"putHeroID",		1,		"int"},   -- 目标英雄id
	{"putHeroIndex",	1,		"short"}, -- 目标英雄背包索引
    {"putHeroPos",	    1,		"short"}, -- 目标英雄部位
}

-- 脱装备
CG_HERO_EQUIP_PUTOFF = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"pos",				1,		"byte"},  -- 装备部位
}

GC_HERO_EQUIP_PUTOFF = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"pos",				1,		"byte"}, 
}

-- 一键穿装
CG_HERO_EQUIP_PUTON_QUICK = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"equipID1",		1,		"int"}, -- 部位1   
	{"equipID2",		1,		"int"}, -- 部位2
	{"equipID3",		1,		"int"}, -- 部位3  
	{"equipID4",		1,		"int"}, -- 部位4
	{"equipID5",		1,		"int"},	-- 部位5, 戒指
	{"equipID6",		1,		"int"}, -- 部位6, 护符
}

-- 一键脱装
CG_HERO_EQUIP_PUTOFF_QUICK = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

-- 水晶激活
CG_SHUIJING_JIHUO = {
	{"heroID",			1,		"int"},   -- 英雄id
    {"heroIndex",		1,		"short"}, -- 英雄index
}

-- 水晶转换查询
CG_SHUIJING_TRANS_QUERY = {
	{"heroID",       1,    "int"},
	{"heroIndex",    1,    "short"},
}

GC_SHUIJING_TRANS_QUERY = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"needJinbi",	  1,      "int"},      --消耗金币
	{"needItemCnt",	  1,      "int"},      --消耗魔法之尘
}

-- 水晶转换请求
CG_SHUIJING_TRANS_DO = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
}

GC_SHUIJING_TRANS_DO = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"equip",		  1,      ItemData},   --新的水晶信息
}

-- 水晶转换保存
CG_SHUIJING_TRANS_SAVE = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
}

GC_SHUIJING_TRANS_SAVE = {}


-- 水晶升级的信息查询
CG_SHUIJING_UPLV_QUERY = {
    {"type",         1,    "byte"},   --1升级到未知水晶  2锁定为原有水晶
	{"heroID",       1,    "int"},
	{"heroIndex",    1,    "short"},
}

GC_SHUIJING_UPLV_QUERY = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"needJinbi",	  1,      "int"},      --消耗金币
	{"needItemCnt",	  1,      "int"},      --消耗魔法之尘
	{"equip",		  2,      ItemData},   --新的水晶信息
	{"needZuanshi",   1,      "int"},      --锁定属性需要的钻石
}

-- 水晶升级请求
CG_SHUIJING_UPLV_DO = {
	{"type",          1,      "byte"},      -- 1升级到未知水晶   2锁定到原有水晶
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
}

GC_SHUIJING_UPLV_DO = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"equip",		  1,      ItemData},   --新的水晶信息
}

-- 神器升级查询
CG_SHENQI_UPLV_QUERY = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
}

GC_SHENQI_UPLV_QUERY = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"needExp",       1,      "int"},
	{"equip",         1,      ItemData},
}

-- 神器升级
CG_SHENQI_UPLV_DO = {
	{"heroID",            1,      "int"},
	{"heroIndex",         1,      "short"},
	{"equipIDList",       4,      "int"},
	{"equipCntList",      4,      "int"},
}

GC_SHENQI_UPLV_DO = {
	{"heroID",        1,      "int"},
	{"heroIndex",     1,      "short"},
	{"equip",         2,      ItemData},
}


-- 查看分享英雄信息
CG_HERO_SHARE_DATA = {
	{"uuid",           1,         "string"},
	{"heroIndex",      1,         "int"},
	{"nChatType",		1,			"int"},
	{"nServerIndex",	1,			"int"},
}

HeroShareData = {
	{"uuid",           		1,      "string"},
	{"heroIndex",      		1,      "int"},
	{"heroSimple",         1,       HeroSimple},
	{"heroStatic",         1,      	HeroStatic},
	{"heroDynamic",        1,       HeroDynamic},
	{"equips",			   6,		ItemData},
    {"fuWens",			   2,		FuwenMsg},  	
}
GC_HERO_SHARE_DATA = {
	{"data",				1,		HeroShareData},
}


-- 请求查看重生信息
CG_HERO_CHONGSHENG_QUERY = {
	{"id",				1,		"int"},		-- 英雄id
	{"index",			1,		"short"},	-- 英雄index
}

GC_HERO_CHONGSHENG_QUERY = {
	{"id",				1,		"int"},		-- 英雄id
	{"index",			1,		"short"},	-- 英雄index
    {"needItemCnt",		1,		"int"},		-- 消耗道具数量
	{"bentiSuipian",	1,      ItemData},	-- 返回本体碎片
	{"otherSuipian",	1,		ItemData},	-- 随机英雄碎片
	{"gemVec",			1,		ItemData},	-- 返回宝石数量
}

-- 请求重生
CG_HERO_CHONGSHENG_DO = {
	{"id",				1,		"int"},   -- 英雄id
	{"index",			1,		"short"}, -- 英雄index
}
-- 重生成功
GC_HERO_CHONGSHENG_DO = {
	{"list",            21, 	ItemData},  -- 在原来基础上增加了宝石返还，长度由 20 ——> 21
}


-- 英雄回退
CG_HERO_HUITUI_QUERY = {
	{"heroID",		1,		"int"}, -- 英雄id
	{"heroIndex",	1,		"int"},	-- 英雄index
}
GC_HERO_HUITUI_QUERY = {
	{"heroID",		1,		"int"},-- 英雄id
	{"heroIndex",	1,		"int"},-- 英雄index
	{"oldSimple",	1,		HeroSimple},	-- 原有英雄信息
	{"newSimple",	1,		HeroSimple},	-- 新英雄信息
	{"needItem",	1,		ItemData},		-- 消耗道具
	{"returnItems",	24,		ItemData},		-- 返还道具列表
	{"returnHeros",	20,		HeroSimple},	-- 返还英雄列表
}

CG_HERO_HUITUI = {
	{"heroID",		1,		"int"},-- 英雄id
	{"heroIndex",	1,		"int"},-- 英雄index		
}
GC_HERO_HUITUI = {
	{"heroID",		1,		"int"},-- 英雄id
	{"heroIndex",	1,		"int"},-- 英雄index	
	{"newSimple",	1,		HeroSimple},	-- 新英雄信息
	{"returnItems",	14,		ItemData},		-- 返还道具列表, 增加专属武器材料返还, 长度由10->14
	{"returnHeros",	20,		HeroSimple},	-- 返还英雄列表
}

-- 英雄点赞
CG_HERO_LIKE = {
}

-- 英雄攻略系统
CG_HERO_STRATEGY_QUERY = {
	{"heroID",1,"int"},									-- 英雄ID
}

GC_HERO_STRATEGY_QUERY = {
    {"simpleMsg",		1,			SimpleMsg},
	{"stats",			1,			HeroStats},			-- 英雄雷达图
	{"manito",			3,			HeroManito},        -- 大神推荐
    {"strategy",		1,			"string"},          -- 详细攻略
    {"last",			1,			"int"},             -- 上一页英雄fatherID
    {"next",			1,			"int"},             -- 下一页英雄fatherID
    {"heroSimple",		1,			HeroSimple},   	    -- 英雄信息
    {"heroDynamic",		1,			HeroDynamic},       -- 英雄信息
    {"heroStatic",		1,			HeroStatic},        -- 英雄信息
}

-- 获取英雄信息
CG_HERO_DETAIL_MSG_QUERY = {
    {"heroID",1,"int"},
    {"heroIndex",1,"int"},
    {"uuid",1,"string"},
    {"type",1,"byte"},
}

-- 英雄攻略红点查询
CG_HERO_GL_DOT_QUERY = {
}

GC_HERO_GL_DOT_QUERY = {
    {"isDot",1,"byte"},                      -- 是否有红点
}

-- 背包红点 只返回远征出战英雄的红点信息
HeroBagDotNet = {
	{"bagIndex",	1,		"int"},			 -- 英雄背包索引
	{"isDot",		1,		"byte"}, 		 -- 是否显示红点
}
CG_HERO_BAG_DOTS = {}
GC_HERO_BAG_DOTS = {
	{"list",		6,		HeroBagDotNet},
    {"bookDot",		1,		"byte"},
}

-- 英雄重置
CG_HERO_RESET_QUERY = {
	{"heroID",		1,		"int"},
	{"heroIndex",	1,		"int"},
}
GC_HERO_RESET_QUERY = {
	{"heroID",		1,		"int"},
	{"heroIndex",	1,		"int"},	
	{"needZuanshi",	1,		"int"},		-- 需要元宝
	{"maxFreeCnt",	1,		"byte"},	-- 每日重置次数
	{"leftFreeCnt",	1,		"byte"},	-- 剩余重置次数
	{"items",		20,		ItemData},	-- 返还材料预览
}
CG_HERO_RESET = {
	{"heroID",		1,		"int"},
	{"heroIndex",	1,		"int"},	
}
GC_HERO_RESET = {
	{"heroID",		1,		"int"},
	{"heroIndex",	1,		"int"},		
	{"items",		20,		ItemData},	-- 返还材料
}

-- 十星英雄置换 神将置换
CG_HERO_TEN_ZHIHUAN_QUERY = {}
GC_HERO_TEN_ZHIHUAN_QUERY = {
	{"needItem",        	1, 		ItemData}, 		-- 道具材料
	{"canHeroId",       	100,	"int"},			-- 背包中可作为材料2的id列表
	{"material1Star",		1,		"byte"},		-- 材料1需要x星以上（包含x星）
	{"material2Star",		1,		"byte"},		-- 材料2仅需要x星
	{"needItemCnts",		5,		"byte"},		-- 10~13星对应需要的道具材料数量
	{"needMaterial2Cnts",	5,		"byte"},		-- 10~13星对应需要的材料2数量
}

CG_HERO_TEN_ZHIHUAN = {
	{"fiveId",              1, "int"},
	{"heroIndexList",       20,  "int"},           --用来合成的英雄下标
}
GC_HERO_TEN_ZHIHUAN = {
	{"heroSimple",         1, HeroSimple},    
}


--------------------------------------------------宝石---------------------------

CG_HERO_GEM_LEVELUP_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"pos",				1,		"byte"},  -- 部位
}

GC_HERO_GEM_LEVELUP_QUERY = {
	{"list",			1,		ItemData}, 
}

--宝石升级
CG_HERO_GEM_UPGRADEGEM = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"pos",				1,		"byte"},  -- 部位
}

GC_HERO_GEM_UPGRADEGEM = {
	{"gemData",			1,		GemData},

}


--------------------------------------------------专属武器---------------------------

SPECIAL_EFFECT_INFO = {
	{"desc",			1,		"string"},   -- 效果描述
	{"isActivate",		1,		"byte"},     -- 是否激活, 0-未激活, 1-已激活
}

--查询
CG_HERO_EXCLUSIVE_WEAPON_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

--查询Response
GC_HERO_EXCLUSIVE_WEAPON_QUERY = {
	{"name",			1,		"string"},   			-- 武器名字
	{"level",			1,		"byte"},   				-- 武器等级
	{"icon",			1,		"int"},   				-- Icon
	{"costInfo",		4,		ItemData}, 				-- 升到下一级消耗数据
	{"normalAttrs",		4,	  	Attr},					-- 普通属性加成
	{"specEffect",  	5,	  	SPECIAL_EFFECT_INFO},	-- 特殊效果描述
}


--升级
CG_HERO_EXCLUSIVE_WEAPON_UPGRADE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}


--图鉴查询
CG_HERO_EXCLUSIVE_WEAPON_BOOK_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
}


GC_HERO_EXCLUSIVE_WEAPON_BOOK_QUERY = {
	{"name",			1,		"string"},   			-- 武器名字
	{"icon",			1,		"int"},   				-- Icon
	{"normalAttrs",		4,	  	Attr},					-- 普通属性加成
	{"specEffect",  	5,	  	SPECIAL_EFFECT_INFO},	-- 特殊效果描述
}

------------------------------------------------------------------------------------


---------------------------------------英雄酒馆-------------------------------------
PUB_HERO_INFO = {
	{"heroId",			1,		"int"},     	-- 英雄id
	{"heroName",		1,		"string"},  	-- 英雄名字
	{"heroStar",		1,		"int"},   		-- 英雄星级
	{"heroCamp",		1,		"byte"},   		-- 英雄种族
	{"heroBody",		1,		"int"},   		-- 英雄立绘
	{"heroGrade",		1,		"byte"},   		-- 英雄品质, 4-SSR, 5-UR
}

PUB_ATTR_INFO = {
	{"attrInfo",		2,		Attr},   		-- 加成属性
	{"isActivate",		1,		"byte"},     	-- 是否激活, 0-未激活, 1-已激活
	{"activateStar",	1,		"short"},     	-- 激活需要星级
	{"index",			1,		"int"},     	-- 真实索引
}

PUB_REWAR_INFO = {
	{"state",			1,		"byte"},     	-- 状态，0-不可领, 1-可领， 2-已领取
	{"reallyIdx",		1,		"int"},     	-- 真实索引
	{"condStar",		1,		"short"},     	-- 领取需要星级
	{"itemArray",		4,		ItemData}, 		-- 奖励
}



--查询
CG_HEROPUB_QUERY = {}

--英雄数据
GC_HEROPUB_HERO_QUERY = {
	{"start",			1,		"byte"},     		-- 分段时，第段次是1，后面是0
	{"heroList",		20,		PUB_HERO_INFO}, 	-- 英雄列表
	{"isEnd",			1,		"byte"},     		-- 分段协发完标识,0-未发完, 1-已发完
}

-- 属性加成数据
GC_HEROPUB_ATTR_QUERY = {
	{"start",			1,		"byte"},     		-- 分段时，第段次是1，后面是0
	{"star",			1,		"int"},				--当前总星级
	{"attrList",		20,		PUB_ATTR_INFO}, 	-- 属性列表
	{"isEnd",			1,		"byte"},     		-- 分段协发完标识,0-未发完, 1-已发完
}

-- 当星级有更新时
GC_HEROPUB_UPDATE_HERO = {
	{"updateHeroInfo",		1,		PUB_HERO_INFO}, 	-- 星级有更新的英雄(包括新增英雄), heroID有值，其他为0，表示删除
}



--激活
CG_HEROPUB_ACTIVATE = {
	{"index",			1,		"byte"},			-- 激活属性索引
}

GC_HEROPUB_ACTIVATE = {
	{"index",			1,		"byte"}, 			-- 当前激活的索引
}

--奖励查询
CG_HEROPUB_REWARD_QUERY = {
}

GC_HEROPUB_REWARD_QUERY = {
	{"start",			1,		"byte"},     		-- 分段时，第段次是1，后面是0
	{"isEnd",			1,		"byte"},     		-- 分段协发完标识,0-未发完, 1-已发完
	{"nowStar",			1,		"int"},				-- 当前总星级
	{"rewardList",		10,		PUB_REWAR_INFO}, 	-- 奖励列表
}

-- 领奖
CG_HEROPUB_REWARD_GET = {
}

-- 宝箱红点
GC_HEROPUB_BOX_REDDOT = {
	{"redDotState",			1,		"byte"},     		-- 0- 没有红点, 1-有红点
}
------------------------------------------------------------------------------------


------------------------------------英雄种子-----------------------------------------

SEED_SIMPLE_INFO = {
	{"seedIdx",			1,		"byte"},   -- 种子索引
	{"seedIcon",		1,		"int"},   -- 种子Icon
	{"seedLv",			1,		"int"},   -- 种子等级
	{"seedName",		1,		"string"},   -- 种子名字
	{"redDotTag",		1,		"byte"},   -- 0-没有红点, 1-有红点
}


--查询英雄所有种子的简略信息
CG_HEROSEED_QUERY_ALL = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

GC_HEROSEED_QUERY_ALL = {
	{"seedArr",			8,		SEED_SIMPLE_INFO},   -- 所有种子数据
}


--查询英雄单个种子的详细信息
CG_HEROSEED_QUERY_SINGLE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"seedIdx",			1,		"byte"},   -- 种子索引
}

GC_HEROSEED_QUERY_SINGLE = {
	{"seedIdx",			1,		"byte"},   	-- 种子索引
	{"seedIcon",		1,		"int"},   	-- 种子Icon
	{"seedLv",			1,		"int"},   	-- 种子等级
	{"seedMaxLv",     	1,      "int"},		-- 种子最大等级
	{"seedName",		1,		"string"},   -- 种子名字
	{"seedLvAttr",     	2,      Attr},		-- 种子每级加成属性
	{"seedUpGradeCost", 1,     ItemData},	-- 种子升到下一级消耗道具
}

-- 种子升级
CG_HEROSEED_UPGRADE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"seedIdx",			1,		"byte"},   -- 种子索引
	{"opType",			1,		"byte"},   -- 升级类型, 1-升一级, 2-一键升级
}


------------------------------------------------------------------------------------


-----------------------------------英雄天元系统---------------------------------------

-- 查询英雄天元信息
CG_HEROTY_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

GC_HEROTY_QUERY = {
	{"pointIdx",	1,		"short"}, 	-- 当前已点亮的天元点索引
	{"stageIdx",	1,		"short"}, 	-- 当前已突破的重数
	{"stageMax",	1,		"short"}, 	-- 最大可突破重数
	{"attrs",		8,		Attr}, 		-- 总加成属性
	{"cost", 		1,     ItemData},	-- 点亮/突破消耗的道具,没法升级后数量为0
	{"maxPoint",	1,		"short"}, 	-- 最大可点亮天元点数量
	{"nextAttrs",	8,		Attr}, 		-- 下一次提升的属性
}

-- 点亮天元
CG_HEROTY_POINT_UPGRADE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}


-- 突破天元
CG_HEROTY_STAGE_UPGRADE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

-------------------------------------------------------------------------------------

-----------------------------------英雄天赋系统---------------------------------------
-- 灵装信息
HEROARTIFACTS_EFFECT_DETAILEDINFO = {
	{"idx",				1,		"byte"},   -- idx, 用于洗练相关操作
	{"name",			1,		"string"}, -- 名字
	{"desc",			1,		"string"}, -- 描述
	{"isLock",			1,		"byte"},   -- 是否锁定, 0-否, 1-是
	{"isActivate",		1,		"byte"},   -- 是否激活, 0-否, 1-是
	{"activateStarCond",1,		"byte"},   -- 激活需要星级
	{"level",			1,		"byte"},   -- 等级
}

-- 查询英雄神威灵装信息
CG_HEROARTIFACTS_BASE_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}
GC_HEROARTIFACTS_BASE_QUERY = {
	{"artifactsLv",		1,		"short"}, 	-- 灵装当前等级
	{"artifactsStar",	1,		"byte"}, 	-- 灵装当前星级
	{"nowLevelAttrs",	4,		Attr}, 		-- 当前灵装等级的总加成
	{"nowStarAttrs",	4,		Attr}, 		-- 当前灵装星级的总加成
	{"effectArr",		5,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 特效
	{"beSkillArr",		7,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 被动技能
	{"isActivate",		1,		"byte"},   -- 是否激活, 0-否, 1-是
	{"ActivateCost", 	1,     ItemData},	-- 激活消耗的道具
	{"redDotArr",		2,		"byte"}, 	-- 灵装升级，升星红点状态列表，0-没有红点, 1-有红点
}

-- 激活灵装
CG_HEROARTIFACTS_ACTIVATE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}



-- 查询英雄神威灵装升级信息
CG_HEROARTIFACTS_LV_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}
GC_HEROARTIFACTS_LV_QUERY = {
	{"artifactsLv",		1,		"short"}, 	-- 灵装当前等级
	{"artifactsLvMax",	1,		"short"}, 	-- 灵装最高等级
	{"nowLevelAttrs",	4,		Attr}, 		-- 当前灵装等级的总加成
	{"nextLevelAttrs",	4,		Attr}, 		-- 下一级增加的加成
	{"cost", 			1,     ItemData},	-- 升级消耗的道具,没法升级后数量为0
}
-- 英雄神威灵装升级
CG_HEROARTIFACTS_UPGRADE_LV = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}



-- 查询英雄神威灵装升星信息
CG_HEROARTIFACTS_STAR_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}
GC_HEROARTIFACTS_STAR_QUERY = {
	{"artifactsStar",		1,		"byte"}, 	-- 灵装当前星级
	{"artifactsStarMax",	1,		"byte"}, 	-- 灵装最高星级
	{"nowStarAttrs",		4,		Attr}, 		-- 当前灵装星级的总加成
	{"nextStarAttrs",		4,		Attr}, 		-- 下一星级增加的属性
	{"cost", 				1,      ItemData},	-- 升星消耗的道具,没法升星后数量为0
	{"effectArr",			5,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 特效
	{"beSkillArr",			7,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 被动技能
}
-- 英雄神威灵装升星
CG_HEROARTIFACTS_UPGRADE_STAR = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}



-- 查询英雄神威灵装特效洗练查询
CG_HEROARTIFACTS_EFFECT_REFINE_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}
GC_HEROARTIFACTS_EFFECT_REFINE_QUERY = {
	{"effectArr",		5,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 特效
	{"effectArrTemp",	5,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 新洗练出的特效(右边)
	{"cost", 			3,      ItemData},	-- 洗练消耗的道具
}

-- 锁定特效
CG_HEROARTIFACTS_EFFECT_LOCK = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"effectIdxArr",	4,		"byte"},   -- 要锁定的特效Idx数组
}

-- 特效洗练
CG_HEROARTIFACTS_EFFECT_REFINE_DO = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

-- 处理洗练出的特效
CG_HEROARTIFACTS_EFFECTREFINE_UPDATE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"opType",			1,		"byte"},  -- 操作类型,0-放弃洗练出的特效, 1-保存洗练出的特效
}



-- 查询英雄神威灵装被动技能洗练查询
CG_HEROARTIFACTS_BESKILL_REFINE_QUERY = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}
GC_HEROARTIFACTS_BESKILL_REFINE_QUERY = {
	{"beSkillArr",		7,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 被动技能
	{"beSkillArrTemp",	7,		HEROARTIFACTS_EFFECT_DETAILEDINFO}, -- 新洗练出的被动技能(右边)
	{"cost", 			3,      ItemData},	-- 洗练消耗的道具
}

-- 锁定被动技能
CG_HEROARTIFACTS_BESKILL_LOCK = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"beSkillIdxArr",	6,		"byte"},   -- 要锁定的被动技能Idx数组
}

-- 洗练被动技能
CG_HEROARTIFACTS_BESKILL_REFINE_DO = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
}

-- 处理洗练出的被动技能
CG_HEROARTIFACTS_BESKILLREFINE_UPDATE = {
	{"heroID",			1,		"int"},   -- 英雄id
	{"heroIndex",		1,		"short"}, -- 英雄index
	{"opType",			1,		"byte"},   -- 操作类型,0-放弃洗练出的被动技能, 1-保存洗练出的被动技能
}


-------------------------------------------------------------------------------------