public void SetCharBaseInfo(ref DB_CHAR_BASE_INFO info, byte index) { if (index < NET_DEFINE.DB_CHAR_NUMBER) { CharList[index] = info; } }
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); }
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); }
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); }
// 添加一个人物 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); } }