dotnet服务器调用说明：

// 构建英雄
private static LuaTable makeHero(int configId, int quality, int level, int spEquip, int spEquipLevel, int artifactCfgId, int artifactLevel, int bufFloors, int saintStoneLevel, LuaTable blessingLevels, LuaTable rewardIDs, LuaTable equips)
{
    dynamic hero = new LuaTable();
    hero.ConfigId = configId;
    hero.Quality = quality;
    hero.Level = level;
    hero.spEquip = spEquip;
    hero.spEquipLevel = spEquipLevel;
    hero.artifactCfgId = artifactCfgId;
    hero.artifactLevel = artifactLevel;
    hero.BufFloors = bufFloors;
    hero.RewardIDs = rewardIDs;
    hero.Equips = equips;
    hero.saintStoneLevel = saintStoneLevel;
    hero.blessingLevels = blessingLevels;
    return hero;
}

// 构建上阵英雄，英雄需要按照孔位传值
private static LuaTable makeHeros(LuaTable hero1, LuaTable hero2, LuaTable hero3, LuaTable hero4, LuaTable hero5)
{
    dynamic heros = new LuaTable();
    if (null != hero1)
    {
        heros[1] = hero1;
    }
    if (null != hero2)
    {
        heros[2] = hero2;
    }
    if (null != hero3)
    {
        heros[3] = hero3;
    }
    if (null != hero4)
    {
        heros[4] = hero4;
    }
    if (null != hero5)
    {
        heros[5] = hero5;
    }
    return heros;
}

// 构建一个装备
private static LuaTable makeEquip(int configId, int level, int race, int quality, int type, int signatureHeroId)
{
    dynamic equip = new LuaTable();
    equip.ConfigId = configId;
    equip.Level = level;
    equip.Race = race;
    equip.Quality = quality;
    equip.Type = type;
    equip.SignatureHeroId = signatureHeroId;
    return equip;
}

// 构建英雄的所有装备,装备需要按照孔位传值
private static LuaTable makeEquips(LuaTable equip1, LuaTable equip2, LuaTable equip3, LuaTable equip4)
{
    dynamic equips = new LuaTable();
    if (null != equip1)
    {
        equips[1] = equip1;
    }
    if (null != equip2)
    {
        equips[2] = equip2;
    }
    if (null != equip3)
    {
        equips[3] = equip3;
    }
    if (null != equip4)
    {
        equips[4] = equip4;
    }
    return equips;
}

// 构建艾雅美德
private static LuaTable makeBlessingLevels(int supportLevel, int mageLevel, int warriorLevel, int tankLevel, int rangerLevel)
{
    dynamic blessingLevels = new LuaTable();
    blessingLevels[1] = supportLevel;
    blessingLevels[2] = mageLevel;
    blessingLevels[3] = warriorLevel;
    blessingLevels[4] = tankLevel;
    blessingLevels[5] = rangerLevel;
    return blessingLevels;
}

// 构建羁绊数据，rewardids为最终加成的效果id，对应配置 historical_archives_conds_rewar RewardID字段
private static LuaTable makeRewardIDs(List<int> ids)
{
    dynamic rewardIDs = new LuaTable();
    for (int i = 0; i < ids.Count; ++i)
    {
        rewardIDs[i + 1] = ids[i];
    }
    return rewardIDs;
}