Пример #1
0
 public void SetCharBaseInfo(ref DB_CHAR_BASE_INFO info, byte index)
 {
     if (index < NET_DEFINE.DB_CHAR_NUMBER)
     {
         CharList[index] = info;
     }
 }
Пример #2
0
        public override int GetPacketMaxSize()
        {
            int size = sizeof(NET_RESULT_DEFINE.ASKCHARLIST_RESULT) +
                       sizeof(byte) +
                       DB_CHAR_BASE_INFO.getMaxSize() * NET_DEFINE.DB_CHAR_NUMBER +
                       sizeof(byte) * NET_DEFINE.MAX_ACCOUNT;

            //LogManager.Log("PacketSize=" + size);
            return(size);
        }
Пример #3
0
    void UpdateRoleList()
    {
        roleCount = GameProcedure.s_ProcCharSel.GetCurRoleCount();

        if (roleCount == 0)
        {
            alreaHaveRole      = false;
            createRoleBtn.Text = "创建角色";
            lblName.Text       = "";
        }
        else
        {
            alreaHaveRole      = true;
            createRoleBtn.Text = "删除角色";
            // 暂时只允许玩家创建一个角色
            DB_CHAR_BASE_INFO roleInfo = GameProcedure.s_ProcCharSel.GetRoleInfo(0);
            string            roleName = EncodeUtility.Instance.GetUnicodeString(roleInfo.m_Name);
            lblName.Text = roleName + " " + roleInfo.m_Level + "级";
            GameProcedure.s_ProcCharSel.SetCurSel(0);
        }
    }
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            LCRetCharList msg = (LCRetCharList)pPacket;

            //LogManager.Log("Receive LCRetCharList" );
            if (msg != null && (msg.Result == NET_RESULT_DEFINE.ASKCHARLIST_RESULT.ASKCHARLIST_SUCCESS))
            {
                int iCharacterCount = msg.CharNumber;
                try
                {
                    GameProcedure.s_ProcCharSel.ClearUIModel();//清除已存在的角色  [8/29/2011 zzy]
                    GameProcedure.s_ProcCharSel.m_bClearUIModel = false;
                    if (iCharacterCount > 0)
                    {
                        DB_CHAR_BASE_INFO pInfo = new DB_CHAR_BASE_INFO();
                        //LogManager.Log("Create DB_CHAR_BASE_INFO");
                        for (int i = 0; i < iCharacterCount; i++)
                        {
                            pInfo = msg.GetCharBaseInfo(i);
                            //LogManager.Log("Get DB_CHAR_BASE_INFO");
                            // 添加一个角色
                            GameProcedure.s_ProcCharSel.AddCharacter(ref pInfo);
                            //LogManager.Log("algin DB_CHAR_BASE_INFO");

                            GameProcedure.s_ProcCharCreate.m_iCamp = pInfo.m_Camp;

                            string name = Encoding.Default.GetString(pInfo.m_Name);

                            //LogManager.Log("name:" + name);
                            //LogManager.Log("name:" + name);
                        }
                    }
                    else
                    {
                        GameProcedure.s_ProcCharCreate.m_iCamp = 0;
                    }
                }
                catch (Exception er)
                {
                    LogManager.Log(er.ToString());
                }
                LogManager.Log("Receive char count: " + iCharacterCount);

                GameProcedure.s_ProcCharSel.resetSel();
                GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_GAMELOGIN_CLOSE_SYSTEM_INFO);
                GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_GAMELOGIN_REFRESH_ROLE_SELECT_CHARACTOR);


                // 转换到人物选择界面。
                if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcCharCreate)
                {
                    if (GameProcedure.s_ProcCharCreate.Status == GamePro_CharCreate.PLAYER_CHAR_CREATE_STATUS.CHAR_CREATE_CREATE_OK)
                    {
                        GameProcedure.s_ProcCharCreate.ChangeToRoleSel();
                    }
                }
            }
            else
            {
                NET_RESULT_DEFINE.ASKCHARLIST_RESULT ListResult;
                ListResult = msg.Result;

                switch (ListResult)
                {
                case NET_RESULT_DEFINE.ASKCHARLIST_RESULT.ASKCHARLIST_OP_FAILS:    //操作失败
                {
                    LogManager.Log("得到角色信息出错");
                    //CGameProcedure::s_pEventSystem->PushEvent( GE_GAMELOGIN_SHOW_SYSTEM_INFO, "得到角色信息出错! ");
                    break;
                }

                case NET_RESULT_DEFINE.ASKCHARLIST_RESULT.ASKCHARLIST_SERVER_BUSY:    //服务器忙,重试
                {
                    LogManager.Log("得到角色信息出错! 服务器繁忙.");
                    //CGameProcedure::s_pEventSystem->PushEvent( GE_GAMELOGIN_SHOW_SYSTEM_INFO, "得到角色信息出错! 服务器繁忙.");
                    break;
                }

                case NET_RESULT_DEFINE.ASKCHARLIST_RESULT.ASKCHARLIST_OP_TIMES:    //操作过于频繁
                {
                    LogManager.Log("得到角色信息出错! 操作过于频繁.");
                    //CGameProcedure::s_pEventSystem->PushEvent( GE_GAMELOGIN_SHOW_SYSTEM_INFO, "得到角色信息出错! 操作过于频繁.");
                    break;
                }

                default:
                {
                    LogManager.Log("未知错误");
                    //CGameProcedure::s_pEventSystem->PushEvent( GE_GAMELOGIN_SHOW_SYSTEM_INFO, "未知错误!");
                    break;
                }
                }
            }
            //LogManager.Log("Receive Char List: Result" + msg.Result);

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
Пример #5
0
        public override bool readFromBuff(ref NetInputBuffer buff)
        {
            int n = -1;

            // LogManager.Log("Read LCRetCharList");

            if (buff.ReadInt(ref n) != 4)
            {
                return(false);
            }
            result = (NET_RESULT_DEFINE.ASKCHARLIST_RESULT)n;

            if (Result == NET_RESULT_DEFINE.ASKCHARLIST_RESULT.ASKCHARLIST_SUCCESS)
            {
                buff.Read(ref szAccount, sizeof(byte) * NET_DEFINE.MAX_ACCOUNT);
                buff.ReadByte(ref uCharNumber);
                if (uCharNumber > NET_DEFINE.DB_CHAR_NUMBER)
                {
                    uCharNumber = (byte)NET_DEFINE.DB_CHAR_NUMBER;
                }
                if (CharList == null)
                {
                    CharList = new DB_CHAR_BASE_INFO[uCharNumber];
                }

                for (int i = 0; i < uCharNumber; i++)
                {
                    //int size = Marshal.SizeOf(typeof(DB_CHAR_BASE_INFO));
                    //byte[] bytes = new byte[size];
                    //buff.Read(ref bytes, size);
                    //CharList[i] = (DB_CHAR_BASE_INFO)NET_DEFINE.BytesToStruct(bytes, typeof(DB_CHAR_BASE_INFO));


                    CharList[i].readFromBuff(ref buff);

                    //CharList[i] = (DB_CHAR_BASE_INFO)buff.ReadStruct(typeof(DB_CHAR_BASE_INFO) );

                    //LogManager.Log("DBINFO size=" + size);

//                    LogManager.Log(" m_GUID:"+BitConverter.ToString( BitConverter.GetBytes(CharList[i].m_GUID) )
//                              +" ,m_Sex:"+BitConverter.ToString( BitConverter.GetBytes(CharList[i].m_Sex) )
//                              );
//
//					string temp = string.Empty;
//					for(int j=0; j< CharList[i].m_Name.Length ;j++ ){
//
//						temp += BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_Name[j] ) );
//					}
                    //					LogManager.Log(" ,name:"+ temp );
                    //                    LogManager.Log("m_Level:"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_Level ) )
                    //					          +",m_Ambit"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_Ambit ) )
                    //					          +",m_HairColor"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_HairColor ) )
                    //					          +",m_FaceColor"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_FaceColor ) )
                    //					          +",m_HairModel"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_HairModel ) )
                    //					          +",m_FaceModel"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_FaceModel ) )
                    //					          +" ,m_StartScene:"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_StartScene ) )
                    //					          +",m_nClientResID"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_nClientResID ) )
                    //					          +",m_Menpai"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_Menpai ) )
                    //					          +",m_HeadID"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_HeadID ) )
                    //                              +" ,m_Camp:"+BitConverter.ToString( BitConverter.GetBytes( CharList[i].m_Camp ) )
                    //					          );
//
                    //LogManager.Log(" m_GUID:" + CharList[i].m_GUID
                    //          + " ,m_Sex:" + CharList[i].m_Sex
                    //          + " ,name:" + Encoding.ASCII.GetString(CharList[i].m_Name)
                    //          );
                    //LogManager.Log("m_Level:" + CharList[i].m_Level
                    //          + ",m_Ambit" + CharList[i].m_Ambit
                    //          + ",m_HairColor" + CharList[i].m_HairColor
                    //          + ",m_FaceColor" + CharList[i].m_FaceColor
                    //          + ",m_HairModel" + CharList[i].m_HairModel
                    //          + ",m_FaceModel" + CharList[i].m_FaceModel
                    //          + " ,m_StartScene:" + CharList[i].m_StartScene
                    //          + ",m_nClientResID" + CharList[i].m_nClientResID
                    //          + ",m_Menpai" + CharList[i].m_Menpai
                    //          + ",m_HeadID" + CharList[i].m_HeadID
                    //          + " ,m_Camp:" + CharList[i].m_Camp
                    //          );
                }
            }

            return(true);
        }
Пример #6
0
    // 添加一个人物
    public int AddCharacter(ref DB_CHAR_BASE_INFO CharacterInfo)
    {
        if (m_iCharacterCount < MAX_SHOW_IN_UI)
        {
            m_CharacterInfo[m_iCharacterCount].m_Ambit        = CharacterInfo.m_Ambit;
            m_CharacterInfo[m_iCharacterCount].m_Camp         = CharacterInfo.m_Camp;
            m_CharacterInfo[m_iCharacterCount].m_FaceColor    = CharacterInfo.m_FaceColor;
            m_CharacterInfo[m_iCharacterCount].m_FaceModel    = CharacterInfo.m_FaceModel;
            m_CharacterInfo[m_iCharacterCount].m_GUID         = CharacterInfo.m_GUID;
            m_CharacterInfo[m_iCharacterCount].m_HairColor    = CharacterInfo.m_HairColor;
            m_CharacterInfo[m_iCharacterCount].m_HairModel    = CharacterInfo.m_HairModel;
            m_CharacterInfo[m_iCharacterCount].m_HeadID       = CharacterInfo.m_HeadID;
            m_CharacterInfo[m_iCharacterCount].m_Level        = CharacterInfo.m_Level;
            m_CharacterInfo[m_iCharacterCount].m_Menpai       = CharacterInfo.m_Menpai;
            m_CharacterInfo[m_iCharacterCount].m_Name         = CharacterInfo.m_Name;
            m_CharacterInfo[m_iCharacterCount].m_nClientResID = CharacterInfo.m_nClientResID;
            m_CharacterInfo[m_iCharacterCount].m_Sex          = CharacterInfo.m_Sex;
            m_CharacterInfo[m_iCharacterCount].m_StartScene   = CharacterInfo.m_StartScene;

            if (m_CharacterInfo[m_iCharacterCount].m_EquipList == null)
            {
                m_CharacterInfo[m_iCharacterCount].m_EquipList = new uint[(int)HUMAN_EQUIP.HEQUIP_NUMBER];
            }
            m_CharacterInfo[m_iCharacterCount].m_EquipList = CharacterInfo.m_EquipList;

            m_Character[m_iCharacterCount].CreateNewUIModel();
            int        iRaceId     = m_CharacterInfo[m_iCharacterCount].m_Sex;
            int        iFaceMeshId = m_CharacterInfo[m_iCharacterCount].m_FaceModel;
            int        iFaceHairId = m_CharacterInfo[m_iCharacterCount].m_HairModel;
            uint       iHairColor  = m_CharacterInfo[m_iCharacterCount].m_HairColor;
            int        iMenPai     = m_CharacterInfo[m_iCharacterCount].m_Menpai;
            _CAMP_DATA TempCampData;
            TempCampData.m_nPKModeID      = (byte)PK_MODE.PK_MODE_PEACE;
            TempCampData.m_uActiveFlags   = 0;
            TempCampData.m_uRelationFlags = 0;
            TempCampData.m_nCampID        = m_CharacterInfo[m_iCharacterCount].m_Camp;

            //门派,五行
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_MenPai(iMenPai);

            // 设置性别
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_RaceID(iRaceId);

            // 设置脸的模型
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_FaceMesh(iFaceMeshId);

            // 设置发型的模型.
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_HairMesh(iFaceHairId);

            //头发颜色
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_HairColor(iHairColor);

            //阵营
            m_Character[m_iCharacterCount].m_pAvatar.GetCharacterData().Set_CampData(TempCampData);

            //设置默认朝向为0 正对屏幕
            m_Character[m_iCharacterCount].m_pAvatar.SetFaceDir(0);
            m_Character[m_iCharacterCount].m_pAvatar.SetPosition(new UnityEngine.Vector3(0, 0, 0));
            setLoginPlayerTransform(m_Character[m_iCharacterCount].m_pAvatar);
            uint[] equipInfo = m_CharacterInfo[m_iCharacterCount].m_EquipList;
            for (int i = (int)HUMAN_EQUIP.HEQUIP_WEAPON; i < (int)HUMAN_EQUIP.HEQUIP_NUMBER; i++)
            {
                m_Character[m_iCharacterCount].SetUIModelInfo((HUMAN_EQUIP)i, (int)equipInfo[i]);
            }
            m_Character[m_iCharacterCount].m_pAvatar.Disalbe((uint)ObjectStatusFlags.OSF_VISIABLE);
            m_iCharacterCount++;
            return(0);
        }
        else
        {
            return(-1);
        }
    }