public void RequireAddRow(NFGUID objectID, string strRecordName, int nRow)
{
NFMsg.ObjectRecordAddRow xData = new NFMsg.ObjectRecordAddRow();
xData.PlayerId = mHelpModule.NFToPB(objectID);
xData.RecordName = ByteString.CopyFromUtf8(strRecordName);
NFMsg.RecordAddRowStruct xRecordAddRowStruct = new NFMsg.RecordAddRowStruct();
xData.RowData.Add(xRecordAddRowStruct);
xRecordAddRowStruct.Row = nRow;
NFIObject xObject = mKernelModule.GetObject(objectID);
NFIRecord xRecord = xObject.GetRecordManager().GetRecord(strRecordName);
NFDataList xRowData = xRecord.QueryRow(nRow);
for (int i = 0; i < xRowData.Count(); i++)
{
switch (xRowData.GetType(i))
{
case NFDataList.VARIANT_TYPE.VTYPE_INT:
{
NFMsg.RecordInt xRecordInt = new NFMsg.RecordInt();
xRecordInt.Row = nRow;
xRecordInt.Col = i;
xRecordInt.Data = xRowData.IntVal(i);
xRecordAddRowStruct.RecordIntList.Add(xRecordInt);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_FLOAT:
{
NFMsg.RecordFloat xRecordFloat = new NFMsg.RecordFloat();
xRecordFloat.Row = nRow;
xRecordFloat.Col = i;
xRecordFloat.Data = (float)xRowData.FloatVal(i);
xRecordAddRowStruct.RecordFloatList.Add(xRecordFloat);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_STRING:
{
NFMsg.RecordString xRecordString = new NFMsg.RecordString();
xRecordString.Row = nRow;
xRecordString.Col = i;
xRecordString.Data = ByteString.CopyFromUtf8(xRowData.StringVal(i));
xRecordAddRowStruct.RecordStringList.Add(xRecordString);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_OBJECT:
{
NFMsg.RecordObject xRecordObject = new NFMsg.RecordObject();
xRecordObject.Row = nRow;
xRecordObject.Col = i;
xRecordObject.Data = mHelpModule.NFToPB(xRowData.ObjectVal(i));
xRecordAddRowStruct.RecordObjectList.Add(xRecordObject);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_VECTOR2:
{
NFMsg.RecordVector2 xRecordVector = new NFMsg.RecordVector2();
xRecordVector.Row = nRow;
xRecordVector.Col = i;
xRecordVector.Data = mHelpModule.NFToPB(xRowData.Vector2Val(i));
xRecordAddRowStruct.RecordVector2List.Add(xRecordVector);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_VECTOR3:
{
NFMsg.RecordVector3 xRecordVector = new NFMsg.RecordVector3();
xRecordVector.Row = nRow;
xRecordVector.Col = i;
xRecordVector.Data = mHelpModule.NFToPB(xRowData.Vector3Val(i));
xRecordAddRowStruct.RecordVector3List.Add(xRecordVector);
}
break;
}
}
mxBody.SetLength(0);
xData.WriteTo(mxBody);
Debug.Log("send upload record addRow");
SendMsg((int)NFMsg.EGameMsgID.AckAddRow, mxBody);
}