syntax = "proto3";
package Fantasy.Network.Message;

/// 角色基础信息
message RoleBaseInfo
{
	string NickName = 1;        //昵称
    string Head = 2;            //头像
    string Country = 3;         //国家
    int32 Level = 4;            //等级 
    int32 Exp = 5;              //当前等级
    VipInfo VipInfo = 6;        //vip信息
}



message KeyValueInt64
{
    int32 Key = 1;             //键
    int64 Value = 2;           // 值
}


/// 角色信息
message RoleInfo
{
    RoleBaseInfo BaseInfo = 1;
    int64 RoleId = 2;                       //账号id
    repeated ItemInfo Items = 3;            //身上物品
    repeated ItemBindInfo ItemBinds = 4;    //物品绑定信息
    repeated FishInfo Fishs = 5;            //鱼护
    repeated ActivityInfo Activities = 6;   //活动信息
    repeated KeyValueInt64 Currency = 7;    //货币信息
    repeated KeyValueInt64 Slots = 8;       //插槽使用情况
    repeated SkillInfo Skills = 9;          //技能信息
    int32 MapId = 10;                       //当前所在地图
}

/// 角色信息
message RoleSimpleInfo
{
    int64 RoleId = 1;
    string NickName = 2;        //昵称
    string Head = 3;            //头像
    string Country = 4;         //国家
    int32 Level = 5;            //等级 
    int32 Vip = 6;               //vip级别
    int32 MapId = 7;            //当前所在地图
}

/// VIP信息
message VipInfo
{
    int32 Level = 1;             //VIP信息
    int64 OpenTime = 2;          //开通时间
    int64 ExpirationTime = 3;    //到期时间
}


///奖励信息
message AwardInfo
{
    int64 ConfigId = 1;                //奖励id
    int32 Count = 2;                //数量
}

///玩家当前使用钓组信息
message ItemBindInfo
{
    int64 Item = 1;                     //主物品
    repeated int64 BindItems = 2;       //绑定物品
}
///物品信息
message ItemInfo
{
    int32 ConfigId = 1;         //配置id
    int64 Id = 2;               //物品id
    int32 Count = 3;            //数量
    int64 ExpirationTime = 4;   //失效时间
    int64 GetTime = 5;          //获得时间
    int32 Abrasion = 6;         //耐久度
}

///fish信息
message FishInfo
{
    int32 ConfigId = 1;         //配置id
    int64 Id = 2;               //物品id
    int32 Weight =3;            //重量
    int64 GetTime = 4;          //获得时间
    int64 ExpirationTime = 5;   //失效时间
}

//活动信息
message ActivityInfo
{
    int64 Id = 1;                       //活动id
    int64 StartTime = 2;                //开始时间
    int64 EndTime = 3;                  //结束时间
    repeated KeyValueInt64 Data = 4;     //活动数据
}

///技能情况
message SkillInfo
{
    int32 ConfigId = 1;         //技能配置id
    int32 Level = 2;            //技能等级
    int32 Exp = 3;              //技能经验
}