منصوبے کے بارے میں
# 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 - جو چاہیں کریں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.