public void LobbyChatUpdated(LobbyChatUpdate_t update)
 {
     try {
         EChatMemberStateChange change = (EChatMemberStateChange)update.m_rgfChatMemberStateChange;
         if (change == EChatMemberStateChange.k_EChatMemberStateChangeEntered)
         {
             MultiplayerChat.AddChat(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));
             if (!connectedPlayers.Contains(update.m_ulSteamIDUserChanged))
             {
                 PlayerJoinedManagers(update.m_ulSteamIDUserChanged);
                 connectedPlayers.Add(update.m_ulSteamIDUserChanged);
             }
             if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID)
             {
                 otherPlayers.Add(update.m_ulSteamIDUserChanged);
             }
         }
         else if (change == EChatMemberStateChange.k_EChatMemberStateChangeLeft || change == EChatMemberStateChange.k_EChatMemberStateChangeKicked || change == EChatMemberStateChange.k_EChatMemberStateChangeDisconnected)
         {
             MultiplayerChat.AddChat(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));
             PlayerLeftManagers(update.m_ulSteamIDUserChanged);
             connectedPlayers.Remove(update.m_ulSteamIDUserChanged);
             MultiplayerPlayerList.RemovePlayerLabel(update.m_ulSteamIDUserChanged);
             if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID)
             {
                 otherPlayers.Remove(update.m_ulSteamIDUserChanged);
             }
         }
     } catch (System.Exception e) {
         Debug.LogError(e);
     }
 }
        public void LobbyCreated(LobbyCreated_t result)
        {
            SteamMatchmaking.JoinLobby((CSteamID)result.m_ulSteamIDLobby);
            MultiplayerChat.AddChat("Created Lobby!");

            SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, MANAGER_ID, SteamUser.GetSteamID().ToString());
        }
Example #3
0
        public void LobbyEntered(LobbyEnter_t enterLobby)
        {
            connectedPlayers.Clear();
            otherPlayers.Clear();
            ResetManagers();
            {
                if (!(RainWorldHK.mainRW.processManager.currentMainLoop is SteamMultiplayerMenu))
                {
                    ProcessManagerHK.ImmediateSwitchCustom(RainWorldHK.mainRW.processManager, new SteamMultiplayerMenu(RainWorldHK.mainRW.processManager));
                }
            }

            joining = false;
            lobbyID = (CSteamID)enterLobby.m_ulSteamIDLobby;
            int playerCount = SteamMatchmaking.GetNumLobbyMembers((CSteamID)enterLobby.m_ulSteamIDLobby);

            MultiplayerChat.AddChat("Entered Lobby!");

            //Send packets to all players, to establish P2P connections with them
            if (playerCount > 1)
            {
                for (int i = 0; i < playerCount; i++)
                {
                    CSteamID lobbyMember = SteamMatchmaking.GetLobbyMemberByIndex(lobbyID, i);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 0);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 1);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 2);
                    if (!connectedPlayers.Contains(lobbyMember.m_SteamID))
                    {
                        connectedPlayers.Add(lobbyMember.m_SteamID);
                        PlayerJoinedManagers(lobbyMember.m_SteamID);
                    }
                    if (lobbyMember != SteamUser.GetSteamID())
                    {
                        otherPlayers.Add(lobbyMember.m_SteamID);
                    }
                }
            }

            //Set up network data
            NetworkGameManager.managerID = ulong.Parse(SteamMatchmaking.GetLobbyData(lobbyID, MANAGER_ID));
            NetworkGameManager.playerID  = SteamUser.GetSteamID().m_SteamID;
            if (NetworkGameManager.managerID != NetworkGameManager.playerID)
            {
                lobbyInfo = new LobbyInfo((CSteamID)enterLobby.m_ulSteamIDLobby);
                lobbyInfo.UpdateLobbyInfo((CSteamID)enterLobby.m_ulSteamIDLobby);
                lobbyInfo.owner = new CSteamID(NetworkGameManager.managerID);
            }

            if (!connectedPlayers.Contains(SteamUser.GetSteamID().m_SteamID))
            {
                connectedPlayers.Add(SteamUser.GetSteamID().m_SteamID);
                PlayerJoinedManagers(SteamUser.GetSteamID().m_SteamID);
            }

            MultiplayerChat.AddChat("This game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
            isInGame = true;
            Log("Entered Lobby! \nThis game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
        }
        public void LobbyChatUpdated(LobbyChatUpdate_t update)
        {
            try {
                EChatMemberStateChange change = (EChatMemberStateChange)update.m_rgfChatMemberStateChange;
                if (change == EChatMemberStateChange.k_EChatMemberStateChangeEntered)
                {
                    MultiplayerChat.AddChat(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));
                    Log(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));

                    if (!connectedPlayers.Contains(update.m_ulSteamIDUserChanged))
                    {
                        PlayerJoinedManagers(update.m_ulSteamIDUserChanged);
                        connectedPlayers.Add(update.m_ulSteamIDUserChanged);
                    }
                    if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID)
                    {
                        otherPlayers.Add(update.m_ulSteamIDUserChanged);
                    }
                }
                else if (change == EChatMemberStateChange.k_EChatMemberStateChangeLeft || change == EChatMemberStateChange.k_EChatMemberStateChangeKicked || change == EChatMemberStateChange.k_EChatMemberStateChangeDisconnected)
                {
                    MultiplayerChat.AddChat(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));
                    Log(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged))));
                    PlayerLeftManagers(update.m_ulSteamIDUserChanged);
                    connectedPlayers.Remove(update.m_ulSteamIDUserChanged);
                    MultiplayerPlayerList.RemovePlayerLabel(update.m_ulSteamIDUserChanged);
                    if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID)
                    {
                        otherPlayers.Remove(update.m_ulSteamIDUserChanged);
                    }
                    if (update.m_ulSteamIDUserChanged == NetworkGameManager.managerID)
                    {
                        patch_ProcessManager patchPM = ((patch_ProcessManager)Patches.patch_Rainworld.mainRW.processManager);
                        //if ((patchPM.currentMainLoop is MultiplayerSleepAndDeathScreen) || (patchPM.currentMainLoop is SteamMultiplayerMenu)
                        if (patchPM.musicPlayer != null)
                        {
                            patchPM.musicPlayer.FadeOutAllSongs(5f);
                            patchPM.musicPlayer.MenuRequestsSong("RW_8 - Sundown", 1.4f, 2f);
                        }
                        if (patchPM.currentMainLoop is RainWorldGame)
                        {
                            (patchPM.currentMainLoop as RainWorldGame).ExitToMenu();
                        }
                        else
                        {
                            patchPM.RequestMainProcessSwitch(ProcessManager.ProcessID.MainMenu);
                        }
                        if (monklandUI != null)
                        {
                            monklandUI.ClearSprites();
                            monklandUI = null;
                        }
                        this.OnGameExit();
                    }
                }
            } catch (System.Exception e) {
                Debug.LogError(e);
            }
        }
        public void LobbyEntered(LobbyEnter_t enterLobby)
        {
            connectedPlayers.Clear();
            otherPlayers.Clear();
            ResetManagers();

            lobbyID = (CSteamID)enterLobby.m_ulSteamIDLobby;
            int playerCount = SteamMatchmaking.GetNumLobbyMembers(lobbyID);

            MultiplayerChat.AddChat("Entered Lobby!");


            //Send packets to all players, to establish P2P connections with them
            if (playerCount > 1)
            {
                for (int i = 0; i < playerCount; i++)
                {
                    CSteamID lobbyMember = SteamMatchmaking.GetLobbyMemberByIndex(lobbyID, i);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 0);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 1);
                    SteamNetworking.SendP2PPacket(lobbyMember, new byte[] { 255 }, 1, EP2PSend.k_EP2PSendReliable, 2);
                    if (!connectedPlayers.Contains(lobbyMember.m_SteamID))
                    {
                        connectedPlayers.Add(lobbyMember.m_SteamID);
                        PlayerJoinedManagers(lobbyMember.m_SteamID);
                    }
                    if (lobbyMember != SteamUser.GetSteamID())
                    {
                        otherPlayers.Add(lobbyMember.m_SteamID);
                    }
                }
            }

            //Set up network data
            NetworkGameManager.managerID = ulong.Parse(SteamMatchmaking.GetLobbyData(lobbyID, MANAGER_ID));
            NetworkGameManager.playerID  = SteamUser.GetSteamID().m_SteamID;

            if (!connectedPlayers.Contains(SteamUser.GetSteamID().m_SteamID))
            {
                connectedPlayers.Add(SteamUser.GetSteamID().m_SteamID);
                PlayerJoinedManagers(SteamUser.GetSteamID().m_SteamID);
            }


            MultiplayerChat.AddChat("This game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
            isInGame = true;
            Log("Entered Lobby! \nThis game's manager is " + SteamFriends.GetFriendPersonaName((CSteamID)NetworkGameManager.managerID));
        }
Example #6
0
    // Use this for initialization
    void Start()
    {
        transform.GetChild(0).gameObject.camera.farClipPlane = 1;
        //Connect to Photon Cloud

        /*if(!PhotonNetwork.connected)
         *      PhotonNetwork.ConnectUsingSettings("v1.0");*/

        allRooms    = PhotonNetwork.GetRoomList();
        newRoomName = "Room Name " + Random.Range(111, 999);
        playerName  = "Player " + Random.Range(111, 999);
        pmn         = GetComponent <RoomMultiplayerMenu>();
        mc          = GetComponent <MultiplayerChat>();
        pmn.enabled = false;
        mc.enabled  = false;
    }
Example #7
0
        public void LobbyCreated(LobbyCreated_t result)
        {
            SteamMatchmaking.JoinLobby((CSteamID)result.m_ulSteamIDLobby);
            lobbyID   = (CSteamID)result.m_ulSteamIDLobby;
            lobbyInfo = new LobbyInfo((CSteamID)result.m_ulSteamIDLobby);
            MultiplayerChat.AddChat("Created Lobby!");
            joining = false;

            SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, MANAGER_ID, SteamUser.GetSteamID().ToString());
            lobbyInfo.owner = SteamUser.GetSteamID();
            SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, "AllowDebug", (debugAllowed ? "True" : "False"));
            lobbyInfo.debugAllowed = debugAllowed;
            SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, "SpearsHit", (spearsHit ? "True" : "False"));
            lobbyInfo.spearsHit = spearsHit;
            //SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, "OtherStart", (otherStart ? "True" : "False"));
            //lobbyInfo.otherStart = otherStart;
            lobbyInfo.memberLimit = lobbyMax;
            lobbyInfo.memberNum   = 1;
            SteamMatchmaking.SetLobbyData((CSteamID)result.m_ulSteamIDLobby, "Version", Monkland.VERSION);
            lobbyInfo.version = Monkland.VERSION;
        }
Example #8
0
 private void ReadyChat(CSteamID sentPlayer)
 {
     MultiplayerChat.AddChat(string.Format("User {0} is now: " + (readiedPlayers.Contains(sentPlayer.m_SteamID) ? "Ready!" : "Not Ready."), SteamFriends.GetFriendPersonaName(sentPlayer)));
     //MultiplayerChat.chatStrings.Add(string.Format("User {0} changed their color to: " + playerColors[MonklandSteamManager.connectedPlayers.IndexOf(sentPlayer.m_SteamID)].r + ", " + playerColors[MonklandSteamManager.connectedPlayers.IndexOf(sentPlayer.m_SteamID)].g + ", " + playerColors[MonklandSteamManager.connectedPlayers.IndexOf(sentPlayer.m_SteamID)].b, SteamFriends.GetFriendPersonaName(sentPlayer)));
 }
Example #9
0
 void Awake()
 {
     SP = this;
 }
Example #10
0
 void Awake()
 {
     SP  = this;
     rmm = gameObject.GetComponent <RoomMultiplayerMenu>();
 }