<?xml version="1.0" encoding="GBK" standalone="yes" ?>
<metalib name="tcaplus_tb" tagsetversion="1" version="5">

	<macro name="COM_MAX_PLAYER_ONEGAME_LIMIT"                      value="1"      desc="单局中最大参与游戏玩家数5v5[CS,SC,SS,lstFightHistory,lstGuildTeamFightHistroy,tbAcntInfo,tbFightHistory]"/>
	
	<macro name="TCAPLUS_RECORD_LIST_NUM_125" value="125" />
	<macro name="TCAPLUS_RECORD_MAX_LIST_NUM" value="10000" />
	<macro name="VALUE_1KB_SIZE" value="1024" />
	<macro name="VALUE_128KB_SIZE" value="131072" />
	<macro name="VALUE_256KB_SIZE" value="262144" />
	<macro name="VALUE_1M_SIZE" value="1048576" />
	<macro name="VALUE_10M_SIZE" value="10000000" />
	
	<union name="union_type" version="1">
		<entry name="Id"      	type="int32"  id="0" defaultvalue="0"	 desc="id" />
		<entry name="Name"      type="string"  id="1" size="64" defaultvalue="hello" desc="name" />
	</union>

	<struct name="struct_nested" version="2">
		<entry name="uin"			type="int32"  defaultvalue="0"	desc="uin" />
		<entry name="name"          type="string" size="50" desc="name" />  
	</struct>

	<struct name="struct_type" version="1">
		<entry name="x"         type="int32"  defaultvalue="0" 	desc="x" />
		<entry name="y"			type="int32"  defaultvalue="0"	desc="y" />
		<entry name="score"          type="double" defaultvalue="1.11" version="2" />  
		<entry name="rank"          type="uint8" defaultvalue="1" version="3" />  
		<entry name="title"          type="string" size="48" desc="title" />  
		<entry name="level2_struct" type="struct_nested" version="2" />
	</struct>

	<struct name="simple_struct" version="4">
        <entry name="c_int8" type="int8" defaultvalue="-1"/>
        <entry name="c_uint8" type="uint8" defaultvalue="2"/>
        <entry name="c_int16" type="int16" defaultvalue="-3"/>
        <entry name="c_uint16" type="uint16" defaultvalue="4"/>
        <entry name="c_int32" type="int32" defaultvalue="-5"/>
        <entry name="c_uint32" type="uint32" defaultvalue="6"/>
        <entry name="c_int64" type="int64" defaultvalue="-7"/>
        <entry name="c_uint64" type="uint64" defaultvalue="8"/>
    </struct>

	<struct name="TestInfo" version="1" desc="" >
		<entry name="d"          type="uint64" />  
		<entry name="test"       type="uint64" />  
	</struct>
 
	<struct name="TableInfo" version="1" desc="" >
		<entry name="c"          	type="TestInfo" />  
		<entry name="test"          type="uint64" />  
		<entry name="string_array" 	type="string"  size="100" />
		<entry name="binary"       	type="tinyint" />
	</struct>
	
	<struct name="COMDT_CAMP_BATTLEAREA_DETAIL" version="1" desc="[CS,SC,SS,lstFightHistory,lstGuildTeamFightHistroy,tbFightHistory]">
        <entry name="CampNum"           type="uint8"/>
        <entry name="CampBattleAreaID"  type="uint32"   count="5"    refer="CampNum"/>
    </struct>
 
	<!--变更需变更tbFightHistory表-->
    <struct name="COMDT_PLAYER_FIGHT_RECORD" version="1" desc="[CS,SC,SS,lstFightHistory,lstGuildTeamFightHistroy,tbFightHistory]">
        <entry name="GameType"              type="uint8"/>
        <entry name="GameStartTime"         type="uint32"/>
        <entry name="GameTime"              type="uint32"/>
        <entry name="WinCamp"               type="uint8"/>
        <entry name="PlayerCnt"             type="uint8"/>
        <entry name="MapID"                 type="uint32"/>
        <entry name="MapType"               type="uint8"/>
        <entry name="PlayerFightData"       type="uint8"      count="COM_MAX_PLAYER_ONEGAME_LIMIT"    refer="PlayerCnt"/>
        <entry name="DeskID"                type="uint32"                       version="1"/>
        <entry name="DeskSeq"               type="uint32"                       version="1"/>
        <entry name="IsPKAI"                type="uint8"                        version="1"  desc="不是一个bool定义,IsPKAI是一个1 和2 的宏,参照COM_GAMEPK_TYPE,千万谨记"/>
        <entry name="IsWarmBattle"          type="uint8"                        version="1"/>
        <entry name="MultiCampDetail"       type="uint8" version="1"  desc="五军对战排名和得分信息"/>
        <entry name="LegendGradeChange"     type="int32"                        version="1"  desc="传说战力变化 废弃！！！！！"/>
        <entry name="CampBattleAreaDetail"  type="COMDT_CAMP_BATTLEAREA_DETAIL" version="1"  desc="跨国赛队伍战区ID"/>
    </struct>
	
    <struct name="ItemAttri" version="1">
        <entry name="Maker" type="String" size="128" desc="制造者名称"/>
        <entry name="KeyID" type="UInt64" desc="物品唯一ID"/>
    </struct>

    <union name="UnionTest" version="1">
        <entry name="ServerId" type="UInt8" id="0" defaultvalue="2" desc="服务器id"/>
        <entry name="Name" type="String" id="1" size="3" desc="角色名"/>
        <entry name="TestStruct" type="ItemAttri" id="2" desc="TestStruct"/>
    </union>

    <struct name="TestData" version="1" customattr2="TableType=GENERIC;DataProtocolType=PLAIN" primarykey="Id">
        <entry name="Id" type="UInt64" defaultvalue="123456789" desc="角色Id,与Base.Id雷同"/>
        <entry name="buffer" type="string" size="10"/>
        <entry name="DataLen" type="smalluint" defaultvalue="1" desc="数据来源数据长度；长度为0时，忽略来源检查"/>
        <entry name="Data" type="tinyuint" count="4" refer="DataLen" desc="数据"/>
        <entry name="type" type="UInt8" desc="角色Id,与Base.Id雷同"/>
        <entry name="Union" type="UnionTest" select="type" desc="基础属性"/>
        <entry name="EquipNum" type="UInt8" defaultvalue="4" desc="可佩戴物品数量"/>
        <entry name="EquipAttris" type="ItemAttri" refer="EquipNum" count="8" desc="基础属性"/>
    </struct>

    <struct name="UTXO_Address" version="1" primarykey="address,hash,index" splittablekey="address">
        <entry name="address" type="string" size="100" desc="address" notnull="true"/>
        <entry name="hash" type="tinyint" count="32" desc="hash" notnull="true"/>
        <entry name="index" type="int64" desc="index" notnull="true"/>
        <entry name="height" type="int64" desc="height"/>
        <index name="index_address" column="address"/>
    </struct>

    <struct name="table_generic" customattr2="TableType=GENERIC;DataProtocolType=PLAIN" primarykey="uin,name,key3,key4" splittablekey="uin" version="1">
        <entry name="uin" type="uint64" desc="QQ"/>
        <entry name="name" type="string" size="200" desc="Name"/>
        <entry name="key3" type="int32" desc="key3"/>
        <entry name="key4" type="uint8" desc="key4"/>
        <entry name="level" type="int32" defaultvalue="1"/>
        <entry name="count" type="uint8" defaultvalue="0"/>
        <entry name="items" type="uint64" count="10" refer="count"/>
        <entry name="c_int8" type="int8" defaultvalue="-1"/>
        <entry name="c_uint8" type="uint8" defaultvalue="2"/>
        <entry name="c_int16" type="int16" defaultvalue="-3"/>
        <entry name="c_uint16" type="uint16" defaultvalue="4"/>
        <entry name="c_int32" type="int32" defaultvalue="-5"/>
        <entry name="c_uint32" type="uint32" defaultvalue="6"/>
        <entry name="c_int64" type="int64" defaultvalue="-7"/>
        <entry name="c_uint64" type="uint64"/>
        <entry name="c_float" type="float" defaultvalue="1.23456789" version="2"/>
        <entry name="c_double" type="double" defaultvalue="9.87654321" version="3"/>
        <entry name="c_string" type="string" size="200" version="3"/>
        <entry name="c_string_128K" type="string" size="VALUE_128KB_SIZE" defaultvalue="123456789"/>
        <entry name="c_string_256K" type="string" size="VALUE_256KB_SIZE" defaultvalue="123456789"/>
        <entry name="binary_count" type="uint32" defaultvalue="2"/>
        <entry name="c_binary" type="tinyint" count="10" refer="binary_count"/>
        <entry name="c_binary1" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="c_binary2" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="c_binary3" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="c_binary4" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="selector" type="short"/>
        <entry name="single_struct" type="struct_type"/>
        <entry name="simple_struct" type="simple_struct" version="4"/>
        <entry name="single_union_selector" type="int8" defaultvalue="0"/>
        <entry name="single_union" type="union_type" select="single_union_selector"/>
        <entry name="array_count" type="uint32"/>
        <entry name="array" type="TableInfo" count="3" refer="array_count" desc="涓夊眰宓屽struct"/>
        <entry name="c_union" type="union_type" select="selector"/>
        <entry name="union_array" type="union_type" count="3" refer="array_count" select="selector"/>
        <entry name="c_struct" type="struct_type"/>
        <entry name="struct_array" type="struct_type" count="3" refer="array_count"/>

        <index name="index1" column="uin"/>
        <index name="index2" column="uin,name"/>
    </struct>

    <struct name="table_list" version="1" customattr2="TableType=LIST;ListNum=100;DataProtocolType=PLAIN" primarykey="uin,name,key1" splittablekey="uin">
        <entry name="uin" type="uint64" desc="QQ"/>
        <entry name="name" type="string" size="640" desc="Name"/>
        <entry name="key1" type="uint8" desc="key4"/>
        <entry name="level" type="int32" defaultvalue="1"/>
        <entry name="count" type="uint8" defaultvalue="0"/>
        <entry name="array_count" type="uint32" defaultvalue="1"/>
        <entry name="items" type="uint64" count="10" refer="array_count"/>
        <entry name="c_int8" type="int8" defaultvalue="-1"/>
        <entry name="c_uint8" type="uint8" defaultvalue="2"/>
        <entry name="c_int16" type="int16" defaultvalue="-3"/>
        <entry name="c_uint16" type="uint16" defaultvalue="4"/>
        <entry name="c_int32" type="int32" defaultvalue="-5"/>
        <entry name="c_uint32" type="uint32" defaultvalue="6"/>
        <entry name="c_int64" type="int64" defaultvalue="-7"/>
        <entry name="c_uint64" type="uint64"/>
        <entry name="c_float" type="float" defaultvalue="1.23456789" version="2"/>
        <entry name="c_double" type="double" defaultvalue="9.87654321" version="3"/>
        <entry name="c_string" type="string" size="200" version="3"/>
        <entry name="c_string_128K" type="string" size="VALUE_128KB_SIZE" defaultvalue="123456789"/>
        <entry name="c_string_256K" type="string" size="VALUE_256KB_SIZE" defaultvalue="123456789"/>
        <entry name="c_binary" type="tinyint" count="10" refer="array_count"/>
        <entry name="binary" type="tinyint" version="5"/>
        <entry name="selector" type="short"/>
        <entry name="single_struct" type="struct_type"/>
        <entry name="simple_struct" type="simple_struct" version="4"/>
        <entry name="single_union_selector" type="int8" defaultvalue="0"/>
        <entry name="single_union" type="union_type" select="single_union_selector"/>
        <entry name="array" type="TableInfo" count="3" refer="array_count" desc="涓夊眰宓屽struct"/>
        <entry name="c_union" type="union_type" select="selector"/>
        <entry name="union_array" type="union_type" count="3" select="selector" refer="array_count"/>
        <entry name="c_struct" type="struct_type"/>
        <entry name="struct_array" type="struct_type" count="3" refer="array_count"/>
    </struct>

    <struct name="table_generic_xiahuaxian" customattr2="TableType=GENERIC;DataProtocolType=PLAIN" primarykey="_uin,name,_key3,key4" splittablekey="_uin" version="1">
        <entry name="_uin" type="uint64" desc="QQ"/>
        <entry name="name" type="string" size="240" desc="Name"/>
        <entry name="_key3" type="int32" desc="key3"/>
        <entry name="key4" type="uint8" desc="key4"/>
        <entry name="level" type="int32" defaultvalue="1"/>
        <entry name="count" type="uint8" defaultvalue="0"/>
        <entry name="items" type="uint64" count="10" refer="count"/>
        <entry name="c_int8" type="int8" defaultvalue="-1"/>
        <entry name="c_uint8" type="uint8" defaultvalue="2"/>
        <entry name="c_int16" type="int16" defaultvalue="-3"/>
        <entry name="c_uint16" type="uint16" defaultvalue="4"/>
        <entry name="c_int32" type="int32" defaultvalue="-5"/>
        <entry name="c_uint32" type="uint32" defaultvalue="6"/>
        <entry name="c_int64" type="int64" defaultvalue="-7"/>
        <entry name="c_uint64" type="uint64"/>
        <entry name="c_float" type="float" defaultvalue="1.23456789" version="2"/>
        <entry name="c_double" type="double" defaultvalue="9.87654321" version="3"/>
        <entry name="c_string" type="string" size="200" version="3"/>
        <entry name="c_string_128K" type="string" size="VALUE_128KB_SIZE" defaultvalue="123456789"/>
        <entry name="c_string_256K" type="string" size="VALUE_256KB_SIZE" defaultvalue="123456789"/>
        <entry name="binary_count" type="uint32" defaultvalue="2"/>
        <entry name="c_binary" type="tinyint" count="10" refer="binary_count"/>
        <entry name="c_binary1" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="c_binary2" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="c_binary3" type="tinyint" count="5" refer="binary_count" version="5"/>
        <entry name="binary" type="tinyint" version="5"/>
        <entry name="selector" type="short"/>
        <entry name="single_struct" type="struct_type"/>
        <entry name="simple_struct" type="simple_struct" version="4"/>
        <entry name="single_union_selector" type="int8" defaultvalue="0"/>
        <entry name="single_union" type="union_type" select="single_union_selector"/>
        <entry name="array_count" type="uint32"/>
        <entry name="array" type="TableInfo" count="3" refer="array_count" desc="涓夊眰宓屽struct"/>
        <entry name="c_union" type="union_type" select="selector"/>
        <entry name="union_array" type="union_type" count="3" refer="array_count" select="selector"/>
        <entry name="c_struct" type="struct_type"/>
        <entry name="struct_array" type="struct_type" count="3" refer="array_count"/>

        <index name="index1" column="_uin"/>
        <index name="index2" column="_uin,name"/>
        <index name="index3" column="_uin,_key3"/>
    </struct>

    <struct name="test_table" version="1" primarykey="gameid,itemid,name" splittablekey="gameid" >
        <entry name="gameid" type="uint32" notnull="true" />
        <entry name="itemid" type="int32" />
        <entry name="name" type="string" size="64"/>
        <entry name="typeid" type="uint8"  defaultvalue="0" />
        <entry name="Data" type="uint32" defaultvalue="0" />
        <entry name="uname" type="string" size="4096" desc="string" />
        <index name="index1" column="gameid" />
        <index name="index2" column="gameid, itemid" />
    </struct>

    <struct name="table_list_bin" version="1" customattr2="TableType=LIST;ListNum=100;DataProtocolType=PLAIN" primarykey="uin,name" splittablekey="uin">
        <entry name="uin" type="uint64" desc="QQ"/>
        <entry name="name" type="string" size="640" desc="Name"/>
        <entry name="level" type="int32" defaultvalue="1"/>
        <entry name="count" type="uint8" defaultvalue="0"/>
        <entry name="items" type="uint64" count="10" refer="count"/>
        <entry name="name_1" type="string" size="4096" desc="string" />
        <entry name="name_2" type="string" size="4096" desc="string" />
        <entry name="binary_count" type="uint32" defaultvalue="1"/>
        <entry name="binary" type="tinyint" count="10" refer="binary_count"/>
        <entry name="single_struct" type="struct_type"/>
    </struct>
</metalib>