コード例 #1
0
    public Dictionary <CHARACTER_TYPE, DefaultCharacterInfo> loadDefaultCharacterInfo() // SCV파일로된 캐릭터 타입별 디폴트 스텟정보를 로드해 반환
    {
        Debug.Log("캐릭터 디폴트 정보 불러오기");
        if (m_bloadDefulatCharacterInfoState == false)
        {
            Debug.Log("CSV 파일에서 캐릭터 디폴트 정보 불러오기");
            TextAsset text    = Resources.Load <TextAsset>("Data/DefaultCharacterInfo"); // 리소스 로드를 통해 테이블을 로드한다.
            string    content = text.text;                                               // content안에는 1줄로 데이터가 쭉 나열되어 있다.
            string[]  line    = content.Split('\n');                                     // string을 '\n' 기준으로 분리해서 line배열에 넣는다.
            for (int i = 2; i < line.Length - 1; i++)                                    // 0 ~ 1번 라인은 테이블 타입 구분 용도로 사용한다. 2번째 라인부터 라인 갯수만큼 테이블 생성 (마지막NULL 한칸 제외해서 -1라인)
            {
                string[]             column = line[i].Split(',');                        // 열의 정보값을 ','로 구분해 column배열에 넣는다. SCV파일은 ,로 구분되어 있으므로
                DefaultCharacterInfo table  = new DefaultCharacterInfo();                // SCV순서와 구조체 데이터 형식이 일치하여야 함
                CHARACTER_TYPE       key    = CHARACTER_TYPE.NONE;                       // key값이 될 캐릭터 종류
                int index = 0;                                                           // 0번째 열부터 시작

                key               = (CHARACTER_TYPE)int.Parse(column[index++]);          // 첫번째 값을 정수형으로 받은 후 enum으로 전환해 key에 대입
                table.m_iMaxExp   = int.Parse(column[index++]);
                table.m_iMaxExpUp = int.Parse(column[index++]);
                table.m_iMaxHp    = int.Parse(column[index++]);
                table.m_iMaxHpUp  = int.Parse(column[index++]);
                table.m_iStr      = int.Parse(column[index++]);
                table.m_iStrUp    = int.Parse(column[index++]);
                table.m_iDef      = int.Parse(column[index++]);
                table.m_iDefUp    = int.Parse(column[index++]);
                m_dicDefaultCharacterInfo.Add(key, table);
            }
            m_bloadDefulatCharacterInfoState = true;
        }
        Debug.Log("캐릭터 디폴트 정보 불러오기 완료");
        return(m_dicDefaultCharacterInfo);
    }
コード例 #2
0
    void calculateStatus()                                                                    // 캐릭터 타입과 현재 레벨을 통해 나머지의 능력치를 계산한다.
    {
        DefaultCharacterInfo info = m_dicDefaultCharacterInfo[m_playerInfo.m_eCharacterType]; // 캐릭터 타입에 따른 정보를 분리함

        int level = m_playerInfo.m_iLevel;                                                    // 현재 레벨을 받아와서 계산

        m_playerInfo.m_iMaxHp  = info.m_iMaxHp + level * info.m_iMaxHpUp;                     // 기본 체력 + 레벨당 상승 체력
        m_playerInfo.m_iMaxExp = info.m_iMaxExp + level * info.m_iMaxExpUp;                   // 다음레벨이 되기위한 기본 경험치 + 레벨당 상승 경험치
        m_playerInfo.m_iStr    = info.m_iStr + level * info.m_iStrUp;                         // 기본 공격력 + 레벨당 상승 공격력
        m_playerInfo.m_iDef    = info.m_iDef + level * info.m_iDefUp;                         // 기본 방어력 + 레벨당 상승 방어력
        m_iCurHp  = m_playerInfo.m_iMaxHp;
        m_iCurStr = m_playerInfo.m_iStr + m_playerInfo.m_iWeaponStr;
    }