예제 #1
0
    void AcceptInvite(GameLobbyJoinRequested_t cb)
    {
        Client.LeaveCurrentLobby();
        FindObjectOfType <MenuMgr>().ReturnToSelection();
        SteamAPICall_t request = SteamMatchmaking.JoinLobby((CSteamID)cb.m_steamIDLobby);

        SteamCallbackReceiver.Set <LobbyEnter_t>(request);
    }
예제 #2
0
    public void SearchLobby()
    {
        if (!enterLobby)
        {
            enterLobby = true;

            SteamAPICall_t requestLobbyList = SteamMatchmaking.RequestLobbyList();
            SteamCallbackReceiver.Set <LobbyMatchList_t>(requestLobbyList);
        }
    }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(this.gameObject);
            return;
        }

        //DontDestroyOnLoad(this.gameObject);

        SteamCallbackReceiver.Init();

        Lobby           = lobby;
        MaxNumOfPlayers = NumOfPlayers;

        SteamCallbackReceiver.LobbyEnterEvent  += EnterLobby;
        SteamCallbackReceiver.LobbyCreateEvent += CreateLobby;
        SteamCallbackReceiver.ChatUpdateEvent  += UpdateUsers;
        SteamCallbackReceiver.AcceptP2PEvent   += AcceptP2P;
        SteamCallbackReceiver.P2PFailEvent     += P2PStatus;

        MyID = SteamUser.GetSteamID();

        Packet = new BytePacket(4096);

        Commands = new Command[Enum.GetNames(typeof(PacketType)).Length];
        AddCommands(PacketType.LeaveLobby, LeaveLobbyCommand);
        AddCommands(PacketType.Latency, LatencyResponse);

        StartCoroutine(LatencyTest());

        waitForSeconds = new WaitForSeconds(0.1f);

        if (OnClientInitialized)
        {
            OnClientInitialized.Raise();
        }
    }
예제 #4
0
    void Awake()
    {
        self = SteamUser.GetSteamID();
        Callback <P2PSessionRequest_t> .Create((cb) =>
        {
            if (others.ContainsKey(cb.m_steamIDRemote.m_SteamID))
            {
                SteamNetworking.AcceptP2PSessionWithUser(cb.m_steamIDRemote);
            }
        });

        temp1024 = GamePacket.CreatePacket(1024);
        temp768  = GamePacket.CreatePacket(768);
        temp512  = GamePacket.CreatePacket(512);
        temp256  = GamePacket.CreatePacket(256);

        SteamCallbackReceiver.Init();

        SteamCallbackReceiver.ChatUpdateEvent += OnLobbyChatUpdate;
        SteamCallbackReceiver.LobbyEnterEvent += OnLobbyEnter;
    }
예제 #5
0
    void CreateLobby(ELobbyType type)
    {
        SteamAPICall_t requestCreate = SteamMatchmaking.CreateLobby(type, Client.MaxNumOfPlayers);

        SteamCallbackReceiver.Set <LobbyCreated_t>(requestCreate);
    }
예제 #6
0
    void JoinLobby(CSteamID lobbyID)
    {
        SteamAPICall_t requestEnter = SteamMatchmaking.JoinLobby(lobbyID);

        SteamCallbackReceiver.Set <LobbyEnter_t>(requestEnter);
    }