// 엑셀 파일 로드 [4/29/2012 JK] public void LoadExcel() { CLoadExcel excelFarser = new CLoadExcel(); excelFarser.LoadExcel("StageDB.xlsx"); excelFarser.ActiveSheet("StageInfo"); int iRow = 0; int iCol; while (true) { iCol = 0; string str = excelFarser.GetData(iCol++, iRow); if (str.Length <= 0) { break; } CStateInfo Info = new CStateInfo(); Info.m_nStageIndex = CConvert.ToInt32(str); // 몇번째 스테이지 인지 for (int i = 0; i < 3; ++i) { Info.m_anCharCode[i] = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 스테이지 별로 나오는 캐릭터 } Info.m_fTermTime = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 보스 나오기 전 텀 시간 Info.m_anCharCode[3] = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); iRow++; if (!m_tmStage.ContainsKey(Info.m_nStageIndex)) { m_tmStage.Add(Info.m_nStageIndex, Info); } else { MessageBox.Show("중복된 인덱스값[" + Convert.ToString(Info.m_nStageIndex) + "]"); break; } } excelFarser.CleanUp(); }
// 엑셀 파일 로드 [4/29/2012 JK] public void LoadExcel() { CLoadExcel excelFarser = new CLoadExcel(); excelFarser.LoadExcel("ItemDB.xlsx"); excelFarser.ActiveSheet("ItemInfo"); int iRow = 0; string strTemp; while (true) { int iCol = 0; string str = excelFarser.GetData(iCol++, iRow); if (str.Length <= 0) { break; ; } CItemInfo info = new CItemInfo(); int nIndex = CConvert.ToInt32(str); info.m_nIndex = nIndex; info.m_strName = excelFarser.GetData(iCol++, iRow); info.m_nMainType = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_nDetailType = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_fDamage = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); info.m_fRange = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); info.m_fAttackSpeed = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); info.m_fAngle = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); info.m_fCharMoveSpeed = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); info.m_nWeaponSkillIndex = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_nUseableLevel = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_nPrice = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_strModel = excelFarser.GetData(iCol++, iRow); info.m_strSound = excelFarser.GetData(iCol++, iRow); info.m_strIcon = excelFarser.GetData(iCol++, iRow); // 아이템 기능 int iTemp = 0, nCharCount = 0; char[] cTemp = new char[128]; strTemp = excelFarser.GetData(iCol++, iRow); while (iTemp < strTemp.Length) { if (strTemp[iTemp] != ';') { cTemp[nCharCount++] = strTemp[iTemp++]; } else { cTemp[nCharCount] = '0'; nCharCount = 0; switch (Convert.ToInt32(cTemp)) { case 1: info.m_nFuntion |= 0x0000000000000001; break; case 2: info.m_nFuntion |= 0x0000000000000001; break; } } } info.m_nHP = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); info.m_nMP = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); iRow++; if (!m_mapItem.ContainsKey(nIndex)) { m_mapItem.Add(nIndex, info); } else { MessageBox.Show("중복된 인덱스값[" + Convert.ToInt32(nIndex) + "]"); m_mapItem.Clear(); break; } } excelFarser.CleanUp(); }
// 엑셀 파일 로드 [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(); }
// 엑셀 파일 로드 [6/302012 JK] public void LoadExcel() { CLoadExcel excelFarser = new CLoadExcel(); excelFarser.LoadExcel("SkillDB.xlsx"); excelFarser.ActiveSheet("SkillInfo"); int iRow = 0; char[] strTemp = new char[1024]; while (true) { int iCol = 0; string str = excelFarser.GetData(iCol++, iRow); if (str.Length <= 0) { break; ; } CSkillInfo Info = new CSkillInfo(); // 스킬 고유 코드 Info.m_nSkillCode = CConvert.ToInt32(str); // 스킬 고유 코드 Info.m_strName = excelFarser.GetData(iCol++, iRow); // 스킬 이름 Info.m_fRange = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 스킬 적용 범위 Info.m_fRange *= 0.01f; Info.m_nDamage = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 스킬 데미지량 Info.m_nHeal = CConvert.ToInt32(excelFarser.GetData(iCol++, iRow)); // 스킬 힐량 Info.m_fContinueTime = CConvert.ToFloat(excelFarser.GetData(iCol++, iRow)); // 스킬 적용되는 시간 Info.m_strPrefab = excelFarser.GetData(iCol++, iRow); // 스킬 사용시 사용할 Prefab iRow++; if (!m_tmSkill.ContainsKey(Info.m_nSkillCode)) { m_tmSkill.Add(Info.m_nSkillCode, Info); } else { MessageBox.Show("중복된 인덱스값[" + Convert.ToInt32(Info.m_nSkillCode) + "]"); m_tmSkill.Clear(); break; } } excelFarser.CleanUp(); }