Untuk perpustakaan versi .NET Core, buka di sini. Untuk perpustakaan versi .NET 6, buka di sini.
InSim.NET adalah perpustakaan .NET InSim untuk simulator balap online Live for Speed. Ini memungkinkan Anda untuk terhubung ke game dan berbagi paket data. Paket-paket ini dapat digunakan untuk mengontrol Live for Speed, mengirim perintah, menangani permintaan dan menerima data telemetri mobil.
Perpustakaan telah dirancang agar sederhana, cepat dan fleksibel, dan sedekat mungkin dengan protokol InSim asli, sekaligus menyelamatkan Anda dari seluk beluk pemrograman soket secara langsung.
Situs proyek ini untuk perpustakaan versi 2.0, yang mencakup dukungan penuh InSim, InSim Relay, OutSim dan OutGauge, peningkatan API dan peningkatan efisiensi jaringan.
Mulai InSim.NET 2.1.0 dan seterusnya, perpustakaan memerlukan .NET Framework 4.5 . Biner lama untuk .NET 4.0 dan 3.5 tersedia di bagian rilis.
Untuk menginstal InSimDotNet menggunakan NuGet, jalankan perintah berikut di Package Manager Console.
PM > Install-Package InSimDotNet
Anda sekarang dapat berdonasi menggunakan PayPal untuk membantu mendanai pengembangan InSim.NET. Jumlah berapapun dipersilakan! Cukup klik gambar di bawah ini.
Ini adalah program InSim paling sederhana yang dapat Anda tulis (yang dapat melakukan sesuatu). Kami menginisialisasi InSim dan mengirimkan pesan 'Halo, InSim!' ke obrolan permainan.
InSim insim = new InSim ( ) ;
// Initialize InSim
insim . Initialize ( new InSimSettings {
Host = " 127.0.0.1 " ,
Port = 29999 ,
Admin = String . Empty ,
} ) ;
// Send message to LFS
insim . Send ( " /msg Hello, InSim! " ) ;
Untuk menerima paket, ikat penangan menggunakan metode InSim.Bind()
. Dalam contoh ini kita mengikat sebuah handler untuk kejadian paket IS_MSO
(MeSsage Out).
void RunInSim ( ) {
InSim insim = new InSim ( ) ;
// Bind MSO packet event.
insim . Bind < IS_MSO > ( MessageOut ) ;
// Initialize InSim
insim . Initialize ( new InSimSettings {
Host = " 127.0.0.1 " ,
Port = 29999 ,
Admin = String . Empty ,
} ) ;
}
// Method called when MSO packet is recieved
void MessageOut ( InSim insim , IS_MSO packet ) {
// Print contents of MSO message to the console.
Console . WriteLine ( packet . Msg ) ;
}
Untuk mengirim paket gunakan metode InSim.Send(ISendable)
.
insim . Send ( new IS_TINY {
SubT = TinyType . TINY_NCN
} ) ;
Untuk menghemat bandwidth, kirim beberapa paket dalam satu panggilan menggunakan metode InSim.Send(params ISendable[])
.
insim . Send (
new IS_TINY {
SubT = TinyType . TINY_NCN
} ,
new IS_SMALL {
SubT = SmallType . SMALL_SSP ,
}
) ;
Untuk menjaga program tetap terbuka saat InSim masih terhubung.
while ( insim . IsConnected ) {
Thread . Sleep ( 200 ) ;
}
Ini semuanya.
void RunInSim ( ) {
InSim insim = new InSim ( ) ;
// Bind packet events.
insim . Bind < IS_NCN > ( NewConnection ) ;
insim . Bind < IS_NPL > ( NewPlayer ) ;
// Initialize InSim
insim . Initialize ( new InSimSettings {
Host = " 127.0.0.1 " ,
Port = 29999 ,
Admin = String . Empty ,
} ) ;
// Request all connections and players to be sent.
insim . Send ( new [ ] {
new IS_TINY { SubT = TinyType . TINY_NCN } ,
new IS_TINY { SubT = TinyType . TINY_NPL } ,
} ) ;
// Stop console app from exiting while connection is active.
while ( insim . IsConnected ) {
Thread . Sleep ( 200 ) ;
}
}
// Method called when NCN packet is recieved
void NewConnection ( InSim insim , IS_NCN packet ) {
// Handle new connection.
}
// Method called when NPL packet is recieved
void NewPlayer ( InSim insim , IS_NPL packet ) {
// Handle new player.
}
Untuk menggunakan InSim Relay, masalahnya adalah menyetel properti InSimSettings.IsRelayHost
ke true.
InSim insim = new InSim ( ) ;
// Initialize InSim relay
insim . Initialize ( new InSimSettings {
IsRelayHost = true ,
} ) ;
// Send host select packet
insim . Send ( new IR_SEL { HName = " <insert host name> " } ) ;
Menggunakan OutGauge (atau OutSim) sama sederhananya! Contoh ini mencetak RPM mobil yang sedang dilihat ke konsol.
OutGauge outgauge = new OutGauge ( ) ;
// Attach OutGauge packet event
outgauge . PacketReceived += ( sender , e ) => {
Console . WriteLine ( e . RPM ) ;
} ;
// Start listening for packets
outgauge . Connect ( " 127.0.0.1 " , 30000 ) ;
Anda dapat menemukan lebih banyak contoh dan informasi tentang penggunaan perpustakaan di wiki dokumentasi.