public bool Serialize(RequestDungeonData data)
        {
            bool ret = true;

            ret &= Serialize(data.DungeonId);
            ret &= Serialize(data.DungeonLevel);

            return(ret);
        }
Ejemplo n.º 2
0
    //던전 데이터 요청 -> Server
    public void RequestMonsterStatusData(int dungeonId, int dungeonLevel)
    {
        Debug.Log("던전 데이터 요청");

        RequestDungeonData       requestDungeonData       = new RequestDungeonData((byte)dungeonId, (byte)dungeonLevel);
        RequestDungeonDataPacket requestDungeonDataPacket = new RequestDungeonDataPacket(requestDungeonData);

        requestDungeonDataPacket.SetPacketId((int)ClientPacketId.RequestMonsterStatusData);

        DataPacket packet = new DataPacket(CreatePacket(requestDungeonDataPacket), null);

        sendMsgs.Enqueue(packet);
    }
        public bool Deserialize(ref RequestDungeonData element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되지 않았다.
                return(false);
            }

            bool ret          = true;
            byte dungeonId    = 0;
            byte dungeonLevel = 0;

            ret    &= Deserialize(ref dungeonId);
            ret    &= Deserialize(ref dungeonLevel);
            element = new RequestDungeonData(dungeonId, dungeonLevel);

            return(ret);
        }
Ejemplo n.º 4
0
    //몬스터 스텟 데이터 요청
    public void RequestMonsterStatusData(DataPacket packet)
    {
        Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "몬스터 스텟 데이터 요청");

        RequestDungeonDataPacket requestDungeonDataPacket = new RequestDungeonDataPacket(packet.msg);
        RequestDungeonData       requestDungeonData       = requestDungeonDataPacket.GetData();

        DungeonLevelData dungeonLevelData = dungeonDatabase.GetDungeonBaseData(requestDungeonData.DungeonId).GetLevelData(requestDungeonData.DungeonLevel);

        int monsterNum = dungeonLevelData.GetMonsterNum();

        MonsterBaseData[] monsterBaseData = new MonsterBaseData[monsterNum];
        int dataIndex = 0;

        for (int stageIndex = 0; stageIndex < dungeonLevelData.Stages.Count; stageIndex++)
        {
            for (int monsterIndex = 0; monsterIndex < dungeonLevelData.Stages[stageIndex].MonsterSpawnData.Count; monsterIndex++)
            {
                int monsterId    = dungeonLevelData.Stages[stageIndex].MonsterSpawnData[monsterIndex].MonsterId;
                int monsterLevel = dungeonLevelData.Stages[stageIndex].MonsterSpawnData[monsterIndex].MonsterLevel;

                monsterBaseData[dataIndex] = new MonsterBaseData(monsterDatabase.GetBaseData(monsterId));
                MonsterLevelData monsterLevelData = new MonsterLevelData(monsterDatabase.GetBaseData(monsterId).GetLevelData(monsterLevel));
                monsterBaseData[dataIndex].MonsterLevelData.Clear();
                monsterBaseData[dataIndex].AddLevelData(monsterLevelData);
                dataIndex++;
            }
        }

        MonsterStatusData   monsterStatusData   = new MonsterStatusData((byte)monsterNum, monsterBaseData);
        MonsterStatusPacket monsterStatusPacket = new MonsterStatusPacket(monsterStatusData);

        monsterStatusPacket.SetPacketId((int)ServerPacketId.MonsterStatusData);

        byte[] msg = CreatePacket(monsterStatusPacket);

        packet = new DataPacket(msg, packet.client);

        lock (sendLock)
        {
            sendMsgs.Enqueue(packet);
        }
    }
Ejemplo n.º 5
0
    //몬스터 소환 리스트 요청
    public void RequestMonsterSpawnList(DataPacket packet)
    {
        Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "몬스터 소환 리스트 요청");

        RequestDungeonDataPacket requestDungeonDataPacket = new RequestDungeonDataPacket(packet.msg);
        RequestDungeonData       requestDungeonData       = requestDungeonDataPacket.GetData();

        DungeonLevelData dungeonLevelData = dungeonDatabase.GetDungeonBaseData(requestDungeonData.DungeonId).GetLevelData(requestDungeonData.DungeonLevel);

        MonsterSpawnListPacket monsterSpawnListPacket = new MonsterSpawnListPacket(dungeonLevelData);

        monsterSpawnListPacket.SetPacketId((int)ServerPacketId.MonsterSpawnList);

        byte[] msg = CreatePacket(monsterSpawnListPacket);

        packet = new DataPacket(msg, packet.client);

        lock (sendLock)
        {
            sendMsgs.Enqueue(packet);
        }
    }