// 바이너리 로드 public void Load() { FileStream fs = new FileStream("CharDB.bin", FileMode.Open); BinaryReader br = new BinaryReader(fs); // *주의 // 바이너리 세이브 순서와 로드 순서가 같아야된다. [5/13/2012 JK] // 바이너리 리드 int iCount = br.ReadInt32(); // 갯수 읽기 for (int i = 0; i < iCount; ++i ) { CCharInfo charInfo = new CCharInfo(); charInfo.m_nCode = br.ReadInt32(); // 캐릭터 코드 charInfo.m_strName = br.ReadString(); // 캐릭터 이름 charInfo.m_strPrefab = br.ReadString(); // Assets 안에 있는 Prefab 텍스트명 charInfo.m_nCharType = br.ReadInt32(); // 캐릭터 타입 0:플레이어 1:몬스터 charInfo.m_nNowHP = br.ReadInt32(); // 현재 체력 charInfo.m_nMaxHP = br.ReadInt32(); // 최대 체력 charInfo.m_nCharWidth = br.ReadInt32(); // 캐릭터 넓이 charInfo.m_fMoveSpeed = br.ReadSingle(); // 이동 속도(s) 목표지점까지 몇초만에 도착하는지 charInfo.m_nAttackDamage = br.ReadInt32(); // 공격 데미지 charInfo.m_nAttackRange = br.ReadInt32(); // 캐릭터 기본 사거리 charInfo.m_fAttackSpeed = br.ReadSingle(); // 캐릭터 공격 속도 1: 1초에 한번 charInfo.m_nExp = br.ReadInt32(); // 캐릭터가 죽었을시 제공되는 경험치 charInfo.m_fAfterAttackIdleTermTime = br.ReadSingle(); // 공격후 Idle 유지 시간 charInfo.m_nPay = br.ReadInt32(); // 보상(돈) m_mapCharacter.Add(charInfo.m_nCode, charInfo); } fs.Close(); br.Close(); }
// 엑셀 파일 로드 [4/29/2012 JK] public void LoadExcel() { CLoadExcel excelFarser = new CLoadExcel(); excelFarser.LoadExcel("CharacterDB.xlsx"); excelFarser.ActiveSheet("CharInfo"); int iRow = 0; int iCol; while (true) { iCol = 0; string str = excelFarser.GetData(iCol++, iRow); if (str.Length <= 0) { break; } CCharInfo charInfo = new CCharInfo(); charInfo.m_nCode = CConvert.ToInt32(str); // 캐릭터 코드 charInfo.m_strName = excelFarser.GetData(iCol++, iRow); // 캐릭터 이름 charInfo.m_strPrefab = excelFarser.GetData(iCol++, iRow); // Assets 안에 있는 Prefab 텍스트명 charInfo.m_nCharType = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 캐릭터 타입 0:플레이어 1:몬스터 charInfo.m_nMaxHP = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 최대 체력 charInfo.m_nNowHP = charInfo.m_nMaxHP; // 현재 체력 charInfo.m_nCharWidth = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 캐릭터 넓이 charInfo.m_fMoveSpeed = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 이동 속도(s) 목표지점까지 몇초만에 도착하는지 charInfo.m_nAttackDamage = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 공격 데미지 charInfo.m_nAttackRange = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 캐릭터 기본 사거리 charInfo.m_fAttackSpeed = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 캐릭터 공격 속도 1: 1초에 한번 charInfo.m_nExp = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 캐릭터가 죽었을시 제공되는 경험치 charInfo.m_fAfterAttackIdleTermTime = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 공격후 Idle 유지 시간 charInfo.m_nPay = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 보상 (돈) iRow++; if (!m_mapCharacter.ContainsKey(charInfo.m_nCode)) { m_mapCharacter.Add(charInfo.m_nCode, charInfo); } else { MessageBox.Show("중복된 인덱스값[" + Convert.ToString(charInfo.m_nCode) + "]"); m_mapCharacter.Clear(); break; } } excelFarser.CleanUp(); }