ライブラリの .NET Core バージョンについては、ここにアクセスしてください。ライブラリの .NET 6 バージョンについては、ここにアクセスしてください。
InSim.NET は、オンライン レーシング シミュレーター Live for Speed 用の .NET InSim ライブラリです。ゲームに接続してデータのパケットを共有できるようになります。これらのパケットは、Live for Speed の制御、コマンドの送信、リクエストの処理、および車両テレメトリ データの受信に使用できます。
このライブラリは、シンプル、高速、柔軟になるように設計されており、オリジナルの InSim プロトコルに可能な限り近いままでありながら、ソケット プログラミングの核心部分から直接ユーザーを解放します。
このプロジェクト サイトはライブラリのバージョン 2.0 用であり、InSim、InSim Relay、OutSim、OutGauge の完全なサポート、API の改善、ネットワーク効率の向上が含まれています。
InSim.NET 2.1.0 以降、ライブラリには.NET Framework 4.5が必要です。 .NET 4.0 および 3.5 の古いバイナリは、リリース セクションで入手できます。
NuGet を使用して InSimDotNet をインストールするには、パッケージ マネージャー コンソールで次のコマンドを実行します。
PM > Install-Package InSimDotNet
PayPal を使用して寄付して、InSim.NET の開発資金を支援できるようになりました。いくらでも大歓迎です!下の画像をクリックしてください。
これは、作成できる (何かを実行する) 最も単純な InSim プログラムです。 InSim を初期化し、「Hello, InSim!」というメッセージを送信します。ゲームのチャットへ。
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! " ) ;
パケットを受信するには、 InSim.Bind()
メソッドを使用してハンドラーをバインドします。この例では、 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 ) ;
}
パケットを送信するにはInSim.Send(ISendable)
メソッドを使用します。
insim . Send ( new IS_TINY {
SubT = TinyType . TINY_NCN
} ) ;
帯域幅を節約するには、 InSim.Send(params ISendable[])
メソッドを使用して 1 回の呼び出しで複数のパケットを送信します。
insim . Send (
new IS_TINY {
SubT = TinyType . TINY_NCN
} ,
new IS_SMALL {
SubT = SmallType . SMALL_SSP ,
}
) ;
InSim が接続されている間、プログラムを開いたままにするため。
while ( insim . IsConnected ) {
Thread . Sleep ( 200 ) ;
}
ここにすべてがまとめられています。
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.
}
InSim Relay を使用するには、 InSimSettings.IsRelayHost
プロパティを 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> " } ) ;
OutGauge (または OutSim) の使用も同様に簡単です。この例では、現在表示されている車の RPM をコンソールに出力します。
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 ) ;
ライブラリの使用方法については、ドキュメント Wiki でさらに多くの例と情報を見つけることができます。