Exemplo n.º 1
0
 public void AddDropGroup(int dropgroup, table_drop_rewardField droupRewarField)
 {
     if (_Drop_Group.ContainsKey(dropgroup))
     {
         _Drop_Group[dropgroup].Add(droupRewarField);
     }
     else
     {
         _Drop_Group.Add(dropgroup, new List <table_drop_rewardField> {
             droupRewarField
         });
     }
 }
Exemplo n.º 2
0
    public static void AnalyzeDroupGroup(TableInfo table, out string errorString)
    {
        errorString = null;

        Table_drop_reward table_drop_reward = new Table_drop_reward();
        StringBuilder     errorStringBuild  = new StringBuilder();

        table_drop_reward.name = table.TableName;

        string table_drop = table.TableName.Substring(0, table.TableName.Length - 7);
        //数据表的行数
        int rowCount = table.GetKeyColumnFieldInfo().Data.Count;

        try
        {
            for (int row = 0; row < rowCount; ++row)
            {
                table_drop_rewardField table_drop_rewardfield = new table_drop_rewardField();

                int    itemtype = (int)table.GetFieldInfoByFieldName(table_drop_reward.itemtype).Data[row];
                object item_id  = table.GetFieldInfoByFieldName(table_drop_reward.item_id).Data[row];
                int    num      = (int)table.GetFieldInfoByFieldName(table_drop_reward.num).Data[row];

                table_drop_rewardfield.row      = row + AppValues.DATA_FIELD_DATA_START_INDEX + 1;
                table_drop_rewardfield.id       = (int)table.GetFieldInfoByFieldName(table_drop_reward.id).Data[row];
                table_drop_rewardfield.prob     = (int)table.GetFieldInfoByFieldName(table_drop_reward.prob).Data[row];
                table_drop_rewardfield.item_id  = (int)item_id;
                table_drop_rewardfield.itemtype = itemtype;
                table_drop_rewardfield.num      = num;


                object dropid = table.GetFieldInfoByFieldName(table_drop_reward.drop_group).Data[row];
                table_drop_reward.AddDropGroup((int)dropid, table_drop_rewardfield);

                if (!GetItemNameByID(itemtype, item_id))
                {
                    errorStringBuild.AppendFormat("第{0}行数据错误,道具类型与ID不匹配,道具类型为{1},道具ID为{2}\n", row + AppValues.DATA_FIELD_DATA_START_INDEX + 1, itemtype, (int)item_id);
                }
                bool b = false;
                b = AppValues.TableInfo[table_drop].GetFieldInfoByFieldName("drop_group").Data.Contains(dropid);
                if (b == false)
                {
                    errorStringBuild.AppendFormat("第{0}行{1}列数据:{2}错误,未在{3}表中{4}字段找到对应值\n", row + AppValues.DATA_FIELD_DATA_START_INDEX + 1, Utils.GetExcelColumnName(table.GetFieldInfoByFieldName(table_drop_reward.drop_group).ColumnSeq + 1), dropid, table_drop, "drop_group");
                }

                if (num <= 0)
                {
                    errorStringBuild.AppendFormat("第{0}行{1}列数据不符合要求,应该大于零,填入值为:{2}\n", row + AppValues.DATA_FIELD_DATA_START_INDEX + 1, Utils.GetExcelColumnName(table.GetFieldInfoByFieldName(table_drop_reward.drop_group).ColumnSeq + 1));
                }
            }
        }
        catch
        {
            errorStringBuild.Append("未知的错误!!!请确保其中有关联的表格都已选中,或者去勾选不对表格进行检查(慎重)");
        }
        if (errorStringBuild.Length != 0)
        {
            errorString = errorStringBuild.ToString();
        }

        AppValues.TableDropRewardInfo.Add(table_drop_reward.name, table_drop_reward);
    }