private void checkDoorOpen() { Dictionary <string, int> doors = new Dictionary <string, int>(m_doors); foreach (string keyId in doors.Keys) { // 수신한 패킷 데이터에서 캐릭터의 ID와 열쇠의 소유 상태를 보존. int doorFlag = m_doors[keyId]; int mask = ((1 << KEY_MASK) | m_currentPartyMask); doorFlag &= mask; if (doorFlag == mask) { // 열쇠를 가지고 전우너 도넛에 올라탔으므로 방 이동 알림. MovingRoom room = new MovingRoom(); room.keyId = keyId; string log = "[SERVER] Room move Packet " + "keyId:" + room.keyId; Debug.Log(log); RoomPacket roomPacket = new RoomPacket(room); if (network_ != null) { network_.SendReliableToAll <MovingRoom>(roomPacket); } // 사용이 끝났으므로 클리어. m_doors[keyId] = 0; } } }
// public bool Serialize(MovingRoom packet) { bool ret = true; ret &= Serialize(packet.keyId, MovingRoom.keyNameLength); return(ret); }
public void OnReceiveMovingRoomPacket(int node, PacketId id, byte[] data) { #if false RoomPacket packet = new RoomPacket(data); MovingRoom room = packet.GetPacket(); // 방 이동 커맨드 발행. PartyControl.getInstance().cmdMoveRoom(room.keyId); #endif }
// ================================================================ // // 방 이동 알림 패킷 수신 함수. public void OnReceiveMovingRoomPacket(int node, PacketId id, byte[] data) { RoomPacket packet = new RoomPacket(data); MovingRoom room = packet.GetPacket(); string log = "[CLIENT] Receive moving room packet: " + room.keyId; Debug.Log(log); // 방 이동 명령 발행. cmdMoveRoom(room.keyId); }
// public bool Deserialize(ref MovingRoom element) { if (GetDataSize() == 0) { // 데이터가 설정되어 있지 않습니다. return(false); } bool ret = true; ret &= Deserialize(ref element.keyId, MovingRoom.keyNameLength); return(ret); }
private void checkDoorOpen() { Dictionary<string, int> doors = new Dictionary<string, int>(m_doors); foreach (string keyId in doors.Keys) { // 수신한 패킷 데이터에서 캐릭터의 ID와 열쇠의 소유 상태를 보존. int doorFlag = m_doors[keyId]; int mask = ((1 << KEY_MASK) | m_currentPartyMask); doorFlag &= mask; if (doorFlag == mask) { // 열쇠를 가지고 전우너 도넛에 올라탔으므로 방 이동 알림. MovingRoom room = new MovingRoom(); room.keyId = keyId; string log = "[SERVER] Room move Packet " + "keyId:" + room.keyId; Debug.Log(log); RoomPacket roomPacket = new RoomPacket(room); if (network_ != null) { network_.SendReliableToAll<MovingRoom>(roomPacket); } // 사용이 끝났으므로 클리어. m_doors[keyId] = 0; } } }