.NET Core 버전의 라이브러리를 보려면 여기로 이동하세요. .NET 6 버전의 라이브러리를 보려면 여기로 이동하세요.
InSim.NET은 온라인 레이싱 시뮬레이터 Live for Speed용 .NET InSim 라이브러리입니다. 이를 통해 게임에 연결하고 데이터 패킷을 공유할 수 있습니다. 이러한 패킷은 Live for Speed를 제어하고, 명령을 보내고, 요청을 처리하고, 차량 원격 측정 데이터를 수신하는 데 사용될 수 있습니다.
라이브러리는 간단하고 빠르며 유연하도록 설계되었으며 원래 InSim 프로토콜에 최대한 가깝게 유지하면서 소켓 프로그래밍의 핵심에서 직접 벗어날 수 있습니다.
이 프로젝트 사이트는 전체 InSim, InSim Relay, OutSim 및 OutGauge 지원, API 개선 및 향상된 네트워크 효율성을 포함하는 라이브러리 버전 2.0용입니다.
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[])
메서드를 사용하여 단일 호출로 여러 패킷을 보냅니다.
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 ) ;
문서 위키에서 라이브러리 사용에 대한 더 많은 예제와 정보를 찾을 수 있습니다.