//캐릭터 정보 요청
    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 에러");
        }
    }
Exemple #3
0
        public bool Serialize(CharacterIndexData data)
        {
            bool ret = true;

            ret &= Serialize(data.Index);
            return(ret);
        }
Exemple #4
0
    //캐릭터 정보 요청 -> 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);
    }
Exemple #5
0
    //캐릭터 삭제 -> 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);
    }
Exemple #6
0
        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);
        }