منصوبے کے بارے میں

# Facepunch.Steamworks ایک اور C# Steamworks نفاذ، جو Steamworks API کے ارد گرد ایک جدید، استعمال میں آسان ریپر بننے کے لیے ڈیزائن کیا گیا ہے۔ اس کا مقصد ایک واحد C# DLL ہونا ہے جس میں Steam کے علاوہ کوئی مقامی انحصار نہ ہو، Windows، Linux اور MacOS کو سپورٹ کرتا ہو، بشمول Unity اور IL2CPP۔ ## خصوصیات - کراس پلیٹ فارم: Windows، Linux، MacOS - Unity سپورٹ، بشمول IL2CPP - غیر ہم آہنگ کال بیکس (Steam callresults) اور ایونٹس (Steam callbacks) - واحد C# DLL، کوئی تیسرے فریق کا مقامی DLL نہیں - MIT لائسنس کے تحت اوپن سورس - 32 بٹ آپریٹنگ سسٹمز کو سپورٹ کرتا ہے ## یہ لائبریری کیوں مصنف نے موجودہ C# Steamworks نفاذات میں کمی پائی: وہ حقیقی C# کے مطابق نہیں تھے، پرانے تھے، مقامی DLL کی ضرورت تھی، Unity میں اسٹینڈ اکیلے DLL میں مرتب نہیں ہو سکتے تھے، مفت نہیں تھے، یا ان کے پاس محدود لائسنس تھے۔ اس لائبریری کا مقصد Steamworks API کو اس طرح لپیٹنا ہے جس سے اسے استعمال کرنا آسان ہو۔ ## استعمال کی مثالیں ### صارف کی معلومات حاصل کریں ```csharp SteamClient.SteamId // آپ کا SteamId SteamClient.Name // آپ کا نام ``` ### دوستوں کی فہرست ```csharp foreach ( var friend in SteamFriends.GetFriends() ) { Console.WriteLine( $"{friend.Id}: {friend.Name}" ); Console.WriteLine( $"{friend.IsOnline} / {friend.SteamLevel}" ); friend.SendMessage( "ہیلو دوست" ); } ``` ### ایپ کی معلومات ```csharp Console.WriteLine( SteamApps.GameLanguage ); var installDir = SteamApps.AppInstallDir( 4000 ); var fileinfo = await SteamApps.GetFileDetailsAsync( "hl2.exe" ); ``` ### اوتار ```csharp var image = await SteamFriends.GetLargeAvatarAsync( steamid ); if ( !image.HasValue ) return DefaultImage; return MakeTextureFromRGBA( image.Value.Data, image.Value.Width, image.Value.Height ); ``` ### سرور کی فہرست ```csharp using ( var list = new ServerList.Internet() ) { list.AddFilter( "map", "de_dust" ); await list.RunQueryAsync(); foreach ( var server in list.Responsive ) { Console.WriteLine( $"{server.Address} {server.Name}" ); } } ``` ### اچیومنٹس اچیومنٹس کی فہرست بنائیں اور غیر مقفل کریں: ```csharp foreach ( var a in SteamUserStats.Achievements ) { Console.WriteLine( $"{a.Name} ({a.State})" ); } var ach = new Achievement( "GM_PLAYED_WITH_GARRY" ); ach.Trigger(); ``` ### آواز ```csharp SteamUser.VoiceRecord = KeyDown( "V" ); if ( SteamUser.HasVoiceData ) { var bytesrwritten = SteamUser.ReadVoiceData( stream ); } ``` ### تصدیق کلائنٹ اور سرور کی تصدیق: ```csharp var ticket = SteamUser.GetAuthSessionTicket(); SteamServer.OnValidateAuthTicketResponse += ( steamid, ownerid, rsponse ) => { if ( rsponse == AuthResponse.OK ) TellUserTheyCanBeOnServer( steamid ); else KickUser( steamid ); }; if ( !SteamServer.BeginAuthSession( ticketData, clientSteamId ) ) { KickUser( clientSteamId ); } ticket.Cancel(); ``` ### یوٹیلیٹیز ```csharp SteamUtils.SecondsSinceAppActive; SteamUtils.SecondsSinceComputerActive; SteamUtils.IpCountry; SteamUtils.UsingBatteryPower; SteamUtils.CurrentBatteryPower; SteamUtils.AppId; SteamUtils.IsOverlayEnabled; SteamUtils.IsSteamRunningInVR; SteamUtils.IsSteamInBigPictureMode; ``` ### ورکشاپ ورکشاپ آئٹمز ڈاؤن لوڈ، استفسار اور شائع کریں: ```csharp SteamUGC.Download( 1717844711 ); var itemInfo = await Ugc.Item.Get( 1720164672 ); var q = Ugc.Query.All .WithTag( "Fun" ) .WithTag( "Movie" ) .MatchAllTags(); var result = await q.GetPageAsync( 1 ); var q = Ugc.UserQuery.All.CreatedByFriends(); var q = Ugc.UserQuery.All.FromSelf(); var result = await Ugc.Editor.NewCommunityFile .WithTitle( "میری نئی فائل" ) .WithDescription( "یہ ایک تفصیل ہے" ) .WithContent( "c:/folder/addon/location" ) .WithTag( "زبردست" ) .WithTag( "چھوٹی" ) .SubmitAsync( iProgressBar ); ``` ### اسٹیم کلاؤڈ ```csharp SteamRemoteStorage.FileWrite( "file.txt", fileContents ); var fileContents = SteamRemoteStorage.FileRead( "file.txt" ); foreach ( var file in SteamRemoteStorage.Files ) { Console.WriteLine( $"{file} ({SteamRemoteStorage.FileSize(file)} {SteamRemoteStorage.FileTime( file )})" ); } ``` ### اسٹیم انوینٹری ```csharp foreach ( InventoryDef def in SteamInventory.Definitions ) { Console.WriteLine( $"{def.Name}" ); } var defs = await SteamInventory.GetDefinitionsWithPricesAsync(); var result = await SteamInventory.GetItems(); using ( result ) { var items = result?.GetItems( bWithProperties ); foreach ( InventoryItem item in items ) { Console.WriteLine( $"{item.Id} / {item.Quantity} / {item.Def.Name} " ); } } ``` ## شروع کرنا ### کلائنٹ کی ابتدا ```csharp using Steamworks; try { SteamClient.Init( 4000 ); } catch ( System.Exception e ) { // کسی وجہ سے ابتدا نہیں ہو سکی (اسٹیم بند ہے وغیرہ) } // جب کام ہو جائے: SteamClient.Shutdown(); ``` ### سرور کی ابتدا ```csharp var serverInit = new SteamServerInit( "gmod", "گیری موڈ" ) { GamePort = 28015, Secure = true, QueryPort = 28016 }; try { Steamworks.SteamServer.Init( 4000, serverInit ); } catch ( System.Exception ) { // کسی وجہ سے ابتدا نہیں ہو سکی (dll غلطیاں، بلاک شدہ پورٹس) } ``` ## مدد اور تعاون پل ریکویسٹس اور بگ رپورٹس کے ذریعے تعاون کا خیرمقدم ہے۔ مدد اور بحث کے لیے [اسٹیم ورکس تھریڈ](http://steamcommunity.com/groups/steamworks/discussions/0/1319961618833314524/) ملاحظہ کریں۔ مثالوں اور مشورے کے ساتھ ایک [وکی](https://wiki.facepunch.com/steamworks/) بھی ہے۔ ## لائسنس MIT - جو چاہیں کریں۔