//캐릭터 정보 요청 public void RequestCharacterStatus(DataPacket packet) { Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "캐릭터 정보 요청"); CharacterIndexPacket characterIndexPacket = new CharacterIndexPacket(packet.msg); CharacterIndexData characterIndexData = characterIndexPacket.GetData(); string id = loginUser[packet.client]; int character = characterIndexData.Index; userState[id].characterId = character; HeroData heroData = database.GetHeroData(id, character); CharacterStatusData characterStatusData = new CharacterStatusData(heroData); CharacterStatusPacket characterStatusPacket = new CharacterStatusPacket(characterStatusData); characterStatusPacket.SetPacketId((int)ServerPacketId.CharacterStatus); Console.WriteLine(characterStatusData.HClass + ", " + characterStatusData.Gender); byte[] msg = CreatePacket(characterStatusPacket); packet = new DataPacket(msg, packet.client); lock (sendLock) { sendMsgs.Enqueue(packet); } }
//캐릭터 선택 public void SelectCharacter(DataPacket packet) { Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "캐릭터 선택"); CharacterIndexPacket characterIndexPacket = new CharacterIndexPacket(packet.msg); CharacterIndexData characterIndexData = characterIndexPacket.GetData(); string id = ""; try { id = loginUser[packet.client]; } catch { Console.WriteLine("Datahandler::SelectCharacter.loginUser 에러"); } UserData userData = database.GetUserData(id); try { userState[id].characterId = characterIndexData.Index; } catch { Console.WriteLine("DataHandler::SelectCharacter.userState 에러"); } }
public bool Serialize(CharacterIndexData data) { bool ret = true; ret &= Serialize(data.Index); return(ret); }
//캐릭터 정보 요청 -> Server public void RequestCharacterStatus() { Debug.Log("캐릭터 정보 요청"); CharacterIndexData characterIndexData = new CharacterIndexData((byte)UIManager.Instance.SelectUIManager.CurrentCharacterIndex); CharacterIndexPacket characterIndexPacket = new CharacterIndexPacket(characterIndexData); characterIndexPacket.SetPacketId((int)ClientPacketId.RequestCharacterStatus); DataPacket packet = new DataPacket(CreatePacket(characterIndexPacket), null); sendMsgs.Enqueue(packet); }
//캐릭터 삭제 -> Server public void DeleteCharacter(int index) { Debug.Log("캐릭터 삭제"); CharacterIndexData characterIndexData = new CharacterIndexData((byte)index); CharacterIndexPacket characterIndexPacket = new CharacterIndexPacket(characterIndexData); characterIndexPacket.SetPacketId((int)ClientPacketId.DeleteCharacter); DataPacket packet = new DataPacket(CreatePacket(characterIndexPacket), null); sendMsgs.Enqueue(packet); }
public bool Deserialize(ref CharacterIndexData element) { if (GetDataSize() == 0) { // 데이터가 설정되지 않았다. return(false); } bool ret = true; byte index = 0; ret &= Deserialize(ref index); element = new CharacterIndexData(index); return(ret); }