// 방 정보를 얻음 public static JoinRoom GetRoomInfo(int rid, Network.CPacket packet, int payloadSize) { int myslot = packet.ReadInt32(); int ucnt = packet.ReadInt32(); Debug.LogFormat("ucnt : ", ucnt); List <User> others = new List <User>(); int[] slots = new int[4]; int slot; int userCount = payloadSize / 24; for (int i = 0; i < userCount; i++) { string id = packet.ReadString(16); slot = packet.ReadInt32(); int clear = packet.ReadInt32(); others.Add(new User(id, clear, slot)); Debug.Log("CClientInfo - JoinRoom : A Slot is " + slot + " and id " + id); } ThisUser.Slot = myslot; return(new JoinRoom(rid, slots, others, false)); }
// 방 목록 갱신 private void InterpretRenewRoomList(Network.CPacket packet, int payloadSize) { Debug.Log("Renew Room"); DeleteAllRoomToListView(); rooms.Clear(); int roomCount = payloadSize / 24; if (payloadSize % 24 != 0) { Debug.Log("Room Renew Error!"); } Debug.LogFormat("Room Count : {0}", roomCount); for (int i = 0; i < roomCount; i++) { int rid = packet.ReadInt32(); int ucount = packet.ReadInt32(); string hname = packet.ReadString(16); Debug.Log("Room id = " + rid + " " + hname); rooms.Add(new Room(rid, ucount, hname)); } RenewRoomListView(); }
// 인원이 추가된 경우 private void InterpretAddGuest(Network.CPacket packet) { string id = packet.ReadString(16); int slot = packet.ReadInt32(); int clear = packet.ReadInt32(); AddGuest(id, slot, clear); }
private void InterpretRegisterSuccess(Network.CPacket packet) { int uid = packet.ReadInt32(); string id = packet.ReadString(16); int clear = packet.ReadInt32(); CClientInfo.ThisUser = new CClientInfo.User(uid, id, clear); var message = Network.CPacketFactory.CreateLobbyRequest(); _tcpManager.Send(message.data); }
private void PacketInterpret(byte[] data) { // 헤더 읽기 Network.CPacket packet = new Network.CPacket(data); packet.ReadHeader(out byte payloadSize, out short messageType); Debug.LogFormat("ReadyRoom Header : payloadSize = {0}, messageType = {1}", payloadSize, messageType); switch ((int)messageType) { case (int)MessageCode.GameStartAccept: GameStart(packet.ReadInt32()); break; case (int)MessageCode.GuestQuitRoom: QuitRoom(); break; case (int)MessageCode.HostQuitRoom: QuitRoom(); break; case (int)MessageCode.NoticeUserQuit: DeleteQuitUser(packet); break; case (int)MessageCode.NewGuest: InterpretAddGuest(packet); break; default: Debug.Log("오류가 발생했습니다. 개발자에게 문의하세요."); break; } }
private void InterpretPortalTeleport(CPacket packet) { Int32 id; Debug.Log("Get Item"); id = packet.ReadInt32(); }
private void InterpretSetCharacter(CPacket packet) { Int32 MyId = packet.ReadInt32(); _logger.Log($"Set Character : my id - {MyId}"); //Commander playerCommander.SetMyCharacter((int)MyId); }
private void InterpretPortalAccept(CPacket packet) { Int32 id; Int32 accept; Debug.Log("Get Item"); id = packet.ReadInt32(); accept = packet.ReadInt32(); if (accept == 0) { CWaitingForAccept.instance.SetPortalUseSelect(id, CWaitingForAccept.EAccept._accept); } else if (accept == 1) { CWaitingForAccept.instance.SetPortalUseSelect(id, CWaitingForAccept.EAccept._cancle); } }
// 인원이 빠져나감 알림 private void DeleteQuitUser(Network.CPacket packet) { int slotNum = packet.ReadInt32(); CClientInfo.JoinRoom.DeleteUser(slotNum); Debug.Log($"Delete User {slotNum}"); UpdateRoomListView(); }
private void InterpretUsePortal(CPacket packet) { Int32 id; Debug.Log("Use Portal"); id = packet.ReadInt32(); CWaitingForAccept.instance.SetActivePortalPopup(true); //playerCommander.UseSkill((int)id, (int)actionNumber, now, dest); }
private void InterpretGetItem(CPacket packet) { Int32 id; Debug.Log("Get Item"); id = packet.ReadInt32(); GameObject.Destroy(GameObject.FindGameObjectWithTag("ITEM")); //playerCommander.UseSkill((int)id, (int)actionNumber, now, dest); }
private void InterpretMoveStop(CPacket packet) { Int32 id; Vector3 now; id = packet.ReadInt32(); now.x = packet.ReadSingle(); now.y = packet.ReadSingle(); now.z = packet.ReadSingle(); _logger.Log("Move Stop - id{0} ({1},{2})", id, now.x, now.y, now.z); }
private void InterpretActionCommand(CPacket packet) { Int32 id; Int32 actionNumber; Vector3 now, dest; Debug.Log("action Command"); id = packet.ReadInt32(); actionNumber = packet.ReadInt32(); now.x = packet.ReadSingle(); now.y = packet.ReadSingle(); now.z = packet.ReadSingle(); dest.x = packet.ReadSingle(); dest.y = packet.ReadSingle(); dest.z = packet.ReadSingle(); _logger.Log("Action Start - id{0} actionNumber{1} move ({2},{3},{4}) to ({5},{6},{7})", id, actionNumber, now.x, now.y, now.z, dest.x, dest.y, dest.z); playerCommander.UseSkill((int)id, (int)actionNumber, now, dest); }
// 내 방을 만들기 private void InterpretCreateRoom(Network.CPacket packet) { Debug.Log("room Create"); int rid = packet.ReadInt32(); CClientInfo.ThisRoom = new CClientInfo.JoinRoom(rid, new int[4] { 0, -1, -1, -1 }, new List <CClientInfo.User>(), true); CClientInfo.ThisUser.Slot = 0; _tcpManager.DeletePacketInterpret(); SceneManager.LoadScene("Room"); }
private void InterpretMoveCorrection(CPacket packet) { Int32 id; Vector3 now, dest; id = packet.ReadInt32(); now.x = packet.ReadSingle(); now.y = packet.ReadSingle(); now.z = packet.ReadSingle(); dest.x = packet.ReadSingle(); dest.y = packet.ReadSingle(); dest.z = packet.ReadSingle(); _logger.Log("Move Correction - id{0} move ({1},{2},{3}) to ({4},{5},{6})", id, now.x, now.y, now.z, dest.x, dest.y, dest.z); }
private void InterpretMoveStart(CPacket packet) { Int32 id; Vector3 now, dest; id = packet.ReadInt32(); now.x = packet.ReadSingle(); now.y = packet.ReadSingle(); now.z = packet.ReadSingle(); dest.x = packet.ReadSingle(); dest.y = packet.ReadSingle(); dest.z = packet.ReadSingle(); _logger.Log("Move Start - id{0} move ({1},{2},{3}) to ({4},{5},{6})", id, now.x, now.y, now.z, dest.x, dest.y, dest.z); //Commander playerCommander.Move(id, dest); }