private void OnMatchingUpdatedSession(Messages.PluginMessage msg) { Matching.GetSessionInformationPtr(); OnScreenLog.Add("Session info updated..."); Matching.Session session = Matching.GetSession(); DumpSessionInfo(session); if (!InitializeHostAndSelf(session)) { OnScreenLog.Add("ERROR: Expected members not found!"); } if (Matching.IsHost) { return; } Matching.SessionMemberInfo?sessionMemberInfo = connected; if (sessionMemberInfo.HasValue) { return; } Matching.SessionMemberInfo value = host.Value; if (value.addr == 0) { OnScreenLog.Add("Unable to retrieve host IP address"); ErrorHandler(Matching.LeaveSession()); return; } Matching.SessionMemberInfo value2 = host.Value; string text = IntIPToIPString(value2.addr); object[] obj = new object[6] { "Connecting to ", text, ":", serverPort, " using signalling port:", null }; Matching.SessionMemberInfo value3 = host.Value; obj[5] = value3.port; OnScreenLog.Add(string.Concat(obj)); NetworkConnectionError networkConnectionError = Network.Connect(text, serverPort); if (networkConnectionError != 0) { OnScreenLog.Add("Connection failed: " + networkConnectionError); return; } OnScreenLog.Add("Connected to host " + text + " : " + serverPort); connected = host; }
private void OnMatchingUpdatedSession(Messages.PluginMessage msg) { IntPtr sessionInformationPtr = Matching.GetSessionInformationPtr(); OnScreenLog.Add("Session info updated..."); Matching.Session session = Matching.GetSession(); this.DumpSessionInfo(session); if (!this.InitializeHostAndSelf(session)) { OnScreenLog.Add("ERROR: Expected members not found!"); } if (!Matching.get_IsHost()) { Matching.SessionMemberInfo?sessionMemberInfo = this.connected; if (!sessionMemberInfo.get_HasValue()) { if (this.host.get_Value().addr == 0) { OnScreenLog.Add("Unable to retrieve host IP address"); this.ErrorHandler(Matching.LeaveSession()); return; } string text = this.IntIPToIPString(this.host.get_Value().addr); OnScreenLog.Add(string.Concat(new object[] { "Connecting to ", text, ":", this.serverPort, " using signalling port:", this.host.get_Value().port })); NetworkConnectionError networkConnectionError = Network.Connect(text, this.serverPort); if (networkConnectionError != null) { OnScreenLog.Add("Connection failed: " + networkConnectionError); } else { OnScreenLog.Add(string.Concat(new object[] { "Connected to host ", text, " : ", this.serverPort })); this.connected = this.host; } } } }
private IEnumerator DoJoinSessionFromInvite() { if (Matching.InSession) { OnScreenLog.Add("Leaving current session..."); Matching.LeaveSession(); while (Matching.SessionIsBusy) { yield return(null); } } OnScreenLog.Add("Setting invited member attributes..."); Matching.ClearSessionAttributes(); Matching.AddSessionAttribute(new Matching.SessionAttribute { name = "CAR_TYPE", binValue = "CATMOB" }); OnScreenLog.Add("Joining invited session..."); if (Matching.GetSessionInviteSessionAttribute("PASSWORD", out Matching.SessionAttributeInfo passAttribute) == ErrorCode.NP_OK) { OnScreenLog.Add("Found PASSWORD attribute ..." + passAttribute.attributeBinValue); if (passAttribute.attributeBinValue == "YES") { OnScreenLog.Add("Session requires password..."); Matching.JoinInvitedSession(sessions.sessionPassword); } else { OnScreenLog.Add("No password required..."); Matching.JoinInvitedSession(); } } else { Matching.JoinInvitedSession(); } menuStack.SetMenu(menuMain); menuStack.PushMenu(sessions.GetMenu()); }
public void MenuInSession(MenuStack menuStack) { bool isSignedInPSN = User.IsSignedInPSN; bool inSession = Matching.InSession; bool sessionIsBusy = Matching.SessionIsBusy; bool isHost = Matching.IsHost; MenuLayout menuLayout = (!isHost) ? menuInSessionClient : menuInSessionHosting; menuLayout.Update(); if (isHost && menuLayout.AddItem("Modify Session", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Modifying session..."); Matching.ClearModifySessionAttributes(); gameDetails += 100; Matching.ModifySessionAttribute modifySessionAttribute = new Matching.ModifySessionAttribute(); modifySessionAttribute.name = "GAME_DETAILS"; modifySessionAttribute.intValue = gameDetails; Matching.AddModifySessionAttribute(modifySessionAttribute); ErrorHandler(Matching.ModifySession(Matching.EnumAttributeType.SESSION_INTERNAL_ATTRIBUTE)); } if (menuLayout.AddItem("Modify Member Attribute", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Modifying Member Attribute..."); Matching.ClearModifySessionAttributes(); Matching.ModifySessionAttribute modifySessionAttribute2 = new Matching.ModifySessionAttribute(); modifySessionAttribute2.name = "CAR_TYPE"; cartype++; if (cartype > 3) { cartype = 0; } switch (cartype) { case 0: modifySessionAttribute2.binValue = "CATMOB"; break; case 1: modifySessionAttribute2.binValue = "CARTYPE1"; break; case 2: modifySessionAttribute2.binValue = "CARTYPE2"; break; case 3: modifySessionAttribute2.binValue = "CARTYPE3"; break; } modifySessionAttribute2.intValue = gameDetails; Matching.AddModifySessionAttribute(modifySessionAttribute2); ErrorHandler(Matching.ModifySession(Matching.EnumAttributeType.SESSION_MEMBER_ATTRIBUTE)); } if (!sendingData) { if (menuLayout.AddItem("Start Sending Data", isSignedInPSN && inSession && !sessionIsBusy)) { sendingData = true; } } else if (menuLayout.AddItem("Stop Sending Data", isSignedInPSN && inSession && !sessionIsBusy)) { sendingData = false; } if (menuLayout.AddItem("Leave Session", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Leaving session..."); ErrorHandler(Matching.LeaveSession()); } if (menuLayout.AddItem("List session members", isSignedInPSN && inSession && !sessionIsBusy)) { Matching.Session session = Matching.GetSession(); Matching.SessionMemberInfo[] members = session.members; for (int i = 0; i < members.Length; i++) { Matching.SessionMemberInfo sessionMemberInfo = members[i]; string msg = i + "/memberId:" + sessionMemberInfo.memberId + "/memberFlag:" + sessionMemberInfo.memberFlag + "/addr:" + sessionMemberInfo.addr + "/natType:" + sessionMemberInfo.natType + "/port:" + sessionMemberInfo.port; OnScreenLog.Add(msg); } } if (menuLayout.AddItem("Invite Friend", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Invite Friend..."); ErrorHandler(Matching.InviteToSession("Invite Test", 8)); } if (menuLayout.AddBackIndex("Back")) { menuStack.PopMenu(); } if (Matching.IsHost) { NetworkPlayer[] connections = Network.connections; GUI.Label(new Rect(Screen.width - 200, Screen.height - 200, 200f, 64f), connections.Length.ToString()); } }
public void MenuInSession(MenuStack menuStack) { bool isSignedInPSN = User.get_IsSignedInPSN(); bool inSession = Matching.get_InSession(); bool sessionIsBusy = Matching.get_SessionIsBusy(); bool isHost = Matching.get_IsHost(); MenuLayout menuLayout = (!isHost) ? this.menuInSessionClient : this.menuInSessionHosting; menuLayout.Update(); if (isHost && menuLayout.AddItem("Modify Session", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Modifying session..."); Matching.ClearModifySessionAttributes(); this.gameDetails += 100; Matching.ModifySessionAttribute modifySessionAttribute = new Matching.ModifySessionAttribute(); modifySessionAttribute.set_name("GAME_DETAILS"); modifySessionAttribute.intValue = this.gameDetails; Matching.AddModifySessionAttribute(modifySessionAttribute); this.ErrorHandler(Matching.ModifySession(8)); } if (menuLayout.AddItem("Modify Member Attribute", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Modifying Member Attribute..."); Matching.ClearModifySessionAttributes(); Matching.ModifySessionAttribute modifySessionAttribute2 = new Matching.ModifySessionAttribute(); modifySessionAttribute2.set_name("CAR_TYPE"); this.cartype++; if (this.cartype > 3) { this.cartype = 0; } switch (this.cartype) { case 0: modifySessionAttribute2.set_binValue("CATMOB"); break; case 1: modifySessionAttribute2.set_binValue("CARTYPE1"); break; case 2: modifySessionAttribute2.set_binValue("CARTYPE2"); break; case 3: modifySessionAttribute2.set_binValue("CARTYPE3"); break; } modifySessionAttribute2.intValue = this.gameDetails; Matching.AddModifySessionAttribute(modifySessionAttribute2); this.ErrorHandler(Matching.ModifySession(16)); } if (!this.sendingData) { if (menuLayout.AddItem("Start Sending Data", isSignedInPSN && inSession && !sessionIsBusy)) { this.sendingData = true; } } else if (menuLayout.AddItem("Stop Sending Data", isSignedInPSN && inSession && !sessionIsBusy)) { this.sendingData = false; } if (menuLayout.AddItem("Leave Session", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Leaving session..."); this.ErrorHandler(Matching.LeaveSession()); } if (menuLayout.AddItem("List session members", isSignedInPSN && inSession && !sessionIsBusy)) { Matching.SessionMemberInfo[] members = Matching.GetSession().members; for (int i = 0; i < members.Length; i++) { Matching.SessionMemberInfo sessionMemberInfo = members[i]; string msg = string.Concat(new object[] { i, "/memberId:", sessionMemberInfo.memberId, "/memberFlag:", sessionMemberInfo.memberFlag, "/addr:", sessionMemberInfo.addr, "/natType:", sessionMemberInfo.natType, "/port:", sessionMemberInfo.port }); OnScreenLog.Add(msg); } } if (menuLayout.AddItem("Invite Friend", isSignedInPSN && inSession && !sessionIsBusy)) { OnScreenLog.Add("Invite Friend..."); this.ErrorHandler(Matching.InviteToSession("Invite Test", 8)); } if (menuLayout.AddBackIndex("Back", true)) { menuStack.PopMenu(); } if (Matching.get_IsHost()) { NetworkPlayer[] connections = Network.get_connections(); GUI.Label(new Rect((float)(Screen.get_width() - 200), (float)(Screen.get_height() - 200), 200f, 64f), connections.Length.ToString()); } }