static public XPARTY_USER_LIST GetPartyUserList(XDevkit.IXboxConsole xbc) { ((XDevkit.IXboxConsole)xbc).CallSysFunction(xbc.abcdresfunctxrpc("xam.xex", 0xaff), 1, Addresses.g_freememory + 0x80); byte[] data = ((XDevkit.IXboxConsole)xbc).getMemory(Addresses.g_freememory + 0x80, 2024); IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(data, 0); XPARTY_USER_LIST user = (XPARTY_USER_LIST)Marshal.PtrToStructure(ptr, typeof(XPARTY_USER_LIST)); return(user); }
static public void GetPartyMembers(XDevkit.IXboxConsole xbc) { XPARTY_USER_LIST partyUserList = GetPartyUserList(xbc); int Count = pUtil.Bitswap32(partyUserList.dwUserCount); if (Count > 8) { return; } PartyUsersCount = Count; for (int i = 0; i < Count; i++) { byte[] destinationArray = new byte[120]; Array.Copy(partyUserList.Users, i * 120, destinationArray, 0, destinationArray.Length); XPARTY_USER_INFO xparty_user_info = new XPARTY_USER_INFO(); XDRPCStructArgumentInfo <XPARTY_USER_INFO> info2 = new XDRPCStructArgumentInfo <XPARTY_USER_INFO>(xparty_user_info, ArgumentType.Out); info2.UnpackBufferData(destinationArray); ListGamerTags[i] = info2.Value.GamerTag; ListSXuid[i] = info2.Value.Xuid.ToString("X16"); ListLXuid[i] = info2.Value.Xuid; } }