示例#1
0
    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;
            }
        }
    }
示例#2
0
文件: Packet.cs 项目: wyuurla/006772
        //
        public bool Serialize(MovingRoom packet)
        {
            bool ret = true;

            ret &= Serialize(packet.keyId, MovingRoom.keyNameLength);

            return(ret);
        }
示例#3
0
    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
    }
示例#4
0
    // ================================================================ //
    // 방 이동 알림 패킷 수신 함수.

    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);
    }
示例#5
0
文件: Packet.cs 项目: wyuurla/006772
        //
        public bool Deserialize(ref MovingRoom element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되어 있지 않습니다.
                return(false);
            }

            bool ret = true;

            ret &= Deserialize(ref element.keyId, MovingRoom.keyNameLength);

            return(ret);
        }
示例#6
0
	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;
			}
		}
	}