Example #1
0
    public void RegistePlayerSelf(Player player, Int32 uid, Int32 ry, Int32 x, Int32 y)
    {
        if (player == null)
        {
            return;
        }
        m_PlayerSelf = player;

        // 客户端发送register信息
        msgRegister      = new MSG_PLAYER_REGISTER();
        msgtemp_register = new MSG_PLAYER_REGISTER();
        Byte[] temp = new byte[1024];
        using (CodedOutputStream cos = new CodedOutputStream(temp))
        {
            msgRegister.Playerid      = uid;
            msgRegister.Ry            = ry;
            msgRegister.Professsional = 0;
            msgRegister.X             = x;
            msgRegister.Z             = y;
            msgRegister.Speed         = 0;
            msgRegister.WriteTo(cos);
            //data = cos.to.ToArray();
        }
        Buffers.Encode(data, 1008, uid, msgRegister.CalculateSize());
        for (int i = 0; i < msgRegister.CalculateSize(); i++)
        {
            data[sizeof(Int32) * 3 + i] = temp[i];
        }
        net_manager.Send(data, 0, sizeof(Int32) * 3 + msgRegister.CalculateSize(), out se);
    }
Example #2
0
    public void FixedUpdate()
    {
        if (net_manager.Connected())
        {
            net_manager.Receive(buffer_recv, out se);
        }
        //Debug.Log("!!!!!!" + buffer_recv.GetDataSize() + " " + buffer_recv.GetStart() + " " + buffer_recv.GetEnd());
        while (true)
        {
            if (buffer_recv.IsHeaderReadable(3 * sizeof(Int32)) == false)
            {
                break;
            }

            msgInfo = buffer_recv.Decode();

            if (buffer_recv.IsHeaderAndPayloadReadable(3 * sizeof(Int32) + msgInfo.GetPacLen()) == false)
            {
                break;
            }


            buffer_recv.GetPayload(msgInfo);
            switch (msgInfo.GetMsgID())
            {
            case 1006:
                msgtemp = MSG_PLAYER_MOVE.Parser.ParseFrom(msgInfo.GetPayload());
                Debug.LogError("Recv mov: x = " + msgtemp.X + ", z = " + msgtemp.Z + ".    ry = " + msgtemp.Ry);

                update_player(msgtemp.Playerid, ((float)msgtemp.X) / 100000, ((float)msgtemp.Z) / 100000, ((float)msgtemp.Ry) / 100000, msgtemp.State);
                break;

            case 1008:
                msgtemp_register_recv = MSG_PLAYER_REGISTER.Parser.ParseFrom(msgInfo.GetPayload());
                Debug.LogError("Recv reg: x = " + msgtemp_register_recv.X + ", z = " + msgtemp_register_recv.Z + ".    Ry = ");

                update_player(msgtemp_register_recv.Playerid, ((float)msgtemp_register_recv.X) / 100000, ((float)msgtemp_register_recv.Z) / 100000, ((float)msgtemp_register_recv.Ry) / 100000, 0);
                break;
            }
        }



        m_PlayerSelf.FixedUpdate();
    }