Open Phoenixx19 opened 1 year ago
This is definitely not a problem in my code since I tried on your Steamworks.NET Standalone project as well returning the same issue.
using System; using System.Threading; using Steamworks; namespace SteamworksNET_StandaloneTest { class Program { static CallResultm_NumberOfCurrentPlayers; static CallResult m_callResultFindLeaderboard; static Callback m_PersonaStateChange; static Callback m_UserStatsReceived; static CallResult m_WorkshopEULAStatus; static void InitializeCallbacks() { m_NumberOfCurrentPlayers = CallResult .Create(OnNumberOfCurrentPlayers); m_callResultFindLeaderboard = CallResult .Create(OnFindLeaderboard); m_PersonaStateChange = Callback .Create(OnPersonaStateChange); m_WorkshopEULAStatus = CallResult .Create(OnEulaStatus); m_UserStatsReceived = Callback .Create( (pCallback) => { Console.WriteLine("[" + UserStatsReceived_t.k_iCallback + " - UserStatsReceived] - " + pCallback.m_eResult + " -- " + pCallback.m_nGameID + " -- " + pCallback.m_steamIDUser); }); } static void Main(string[] args) { try { if (!SteamAPI.Init()) { Console.WriteLine("SteamAPI.Init() failed!"); return; } } catch (DllNotFoundException e) { // We check this here as it will be the first instance of it. Console.WriteLine(e); return; } if (!Packsize.Test()) { Console.WriteLine("You're using the wrong Steamworks.NET Assembly for this platform!"); return; } if (!DllCheck.Test()) { Console.WriteLine("You're using the wrong dlls for this platform!"); return; } InitializeCallbacks(); // We do this after SteamAPI.Init() has occured Console.WriteLine("Requesting Current Stats - " + SteamUserStats.RequestCurrentStats()); Console.WriteLine("CurrentGameLanguage: " + SteamApps.GetCurrentGameLanguage()); Console.WriteLine("PersonaName: " + SteamFriends.GetPersonaName()); { string folder; uint length = SteamApps.GetAppInstallDir(SteamUtils.GetAppID(), out folder, 260); Console.WriteLine("AppInstallDir: " + length + " " + folder); } m_NumberOfCurrentPlayers.Set(SteamUserStats.GetNumberOfCurrentPlayers()); Console.WriteLine("Requesting Number of Current Players"); { SteamAPICall_t hSteamAPICall = SteamUserStats.FindLeaderboard("Quickest Win"); m_callResultFindLeaderboard.Set(hSteamAPICall); Console.WriteLine("Requesting Leaderboard"); } m_WorkshopEULAStatus.Set(SteamUGC.GetWorkshopEULAStatus()); Console.WriteLine("Request EULA Status"); while (true) { // Must be called from the primary thread. SteamAPI.RunCallbacks(); if (Console.KeyAvailable) { ConsoleKeyInfo info = Console.ReadKey(true); if (info.Key == ConsoleKey.Escape) { break; } else if (info.Key == ConsoleKey.Spacebar) { SteamUserStats.RequestCurrentStats(); Console.WriteLine("Requesting Current Stats"); } else if (info.Key == ConsoleKey.D1) { SteamAPICall_t hSteamAPICall = SteamUserStats.FindLeaderboard("Quickest Win"); m_callResultFindLeaderboard.Set(hSteamAPICall); Console.WriteLine("FindLeaderboard() - " + hSteamAPICall); } else if (info.Key == ConsoleKey.D2) { SteamAPICall_t hSteamAPICall = SteamUserStats.GetNumberOfCurrentPlayers(); m_NumberOfCurrentPlayers.Set(hSteamAPICall); Console.WriteLine("GetNumberOfCurrentPlayers() - " + hSteamAPICall); } } Thread.Sleep(50); } SteamAPI.Shutdown(); } static void OnEulaStatus(WorkshopEULAStatus_t pCallback, bool bIOFailure) { Console.WriteLine("[" + WorkshopEULAStatus_t.k_iCallback + " - WorkshopEULAStatus] - " + pCallback.m_eResult + " -- " + pCallback.m_nAppID + " -- " + pCallback.m_unVersion + " -- " + pCallback.m_rtAction + " -- " + pCallback.m_bAccepted + " -- " + pCallback.m_bNeedsAction); } static void OnNumberOfCurrentPlayers(NumberOfCurrentPlayers_t pCallback, bool bIOFailure) { Console.WriteLine("[" + NumberOfCurrentPlayers_t.k_iCallback + " - NumberOfCurrentPlayers] - " + pCallback.m_bSuccess + " -- " + pCallback.m_cPlayers); } static void OnFindLeaderboard(LeaderboardFindResult_t pCallback, bool bIOFailure) { Console.WriteLine("[" + LeaderboardFindResult_t.k_iCallback + " - LeaderboardFindResult] - " + pCallback.m_bLeaderboardFound + " -- " + pCallback.m_hSteamLeaderboard); } static void OnPersonaStateChange(PersonaStateChange_t pCallback) { Console.WriteLine("[" + PersonaStateChange_t.k_iCallback + " - PersonaStateChange] - " + pCallback.m_ulSteamID + " -- " + pCallback.m_nChangeFlags); } } }
Following side by side the Test example and the Steamworks Documentation, I was trying to prompt the user to enable their EULA status (if they haven't already). That being said, the callback always gives me
k_EResultInvalidParam
as result, I've left the code snippets below even though I've tested the test example snippets too and it still returns the same issue.I'm using:
20.1.0
,Initialization
Variable creation and callback
Let me know if I messed up something. Thanks for your time!