Console.WriteLine("Press any key to exit...");
// Block until the user presses a key.
Console.ReadKey(true);
Console.WriteLine("Press Ctrl+Z to exit...");
// Poll for the correct key combination.
ConsoleKeyInfo key;
do
{
key = Console.ReadKey(true);
}
while (!key.Modifiers.HasFlag(ConsoleModifiers.Control) && key.Key != ConsoleKey.Z);
while (insim.IsConnected)
{
Thread.Sleep(200);
}
using System;
using InSimDotNet;
class Program
{
static void Main()
{
// Create new InSim object.
using (InSim insim = new InSim())
{
// Initialize InSim.
insim.Initialize(new InSimSettings
{
Host = "127.0.0.1",
Port = 29999,
Admin = String.Empty,
});
// Send message 'Hello, InSim!' to the game chat.
insim.Send("/msg Hello, InSim!");
// Stop program from exiting.
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
}
using System;
using InSimDotNet;
using InSimDotNet.Packets;
class Program
{
static void Main()
{
using (InSim insim = new InSim())
{
// Bind packet handler.
insim.Bind<IS_MSO>(MessageOut);
insim.Initialize(new InSimSettings
{
Host = "127.0.0.1",
Port = 29999,
Admin = String.Empty,
});
// Stop program from exiting.
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
// Packet handler now must specify a InSim parameter.
static void MessageOut(InSim insim, IS_MSO mso)
{
Console.WriteLine(mso.Msg);
}
}
using System;
using InSimDotNet;
using InSimDotNet.Packets;
class Program
{
static void Main()
{
using (InSim insim = new InSim())
{
insim.Bind<IS_MCI>(MultiCarInfo);
insim.Initialize(new InSimSettings
{
Host = "127.0.0.1",
Port = 29999,
Admin = String.Empty,
UdpPort = 30000, // Specify UDP port
Interval = 1000, // Update interval (milliseconds)
Flags = InSimFlags.ISF_MCI, // Enable MCI updates
});
// Stop program from exiting.
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
// Handle MCI packet.
static void MultiCarInfo(InSim insim, IS_MCI mci)
{
foreach (CompCar car in mci.Info)
{
// Do something with CompCar.
}
}
}
using System;
using InSimDotNet;
class Program
{
static void Main()
{
using (InSim insim = new InSim())
{
insim.Initialize(new InSimSettings
{
IsRelayHost = true, // Initialize InSim Relay.
});
// Stop program from exiting.
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
}
using System;
using InSimDotNet.Out;
class Program
{
static void Main()
{
// Create new OutSim object.
using (OutSim outsim = new OutSim())
{
// Bind OutSim packet event.
outsim.PacketReceived += new EventHandler<OutSimEventArgs>(outsim_PacketReceived);
// Start listening for packets sent from LFS.
outsim.Connect("127.0.0.1", 30000);
// Stop program from exiting.
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
static void outsim_PacketReceived(object sender, OutSimEventArgs e)
{
// Do something with packet.
OutSimPack packet = e.Packet;
}
}
Random random = new Random();
int? lastRandomNumber;
int GetRandomNumber(int min, int max)
{
// Keep picking numbers until we get a new one.
int randomNumber = 0;
do
{
randomNumber = random.Next(min, max);
}
while (randomNumber == (lastRandomNumber ?? -1));
// Store last random for next check.
lastRandomNumber = randomNumber;
return randomNumber;
}
def cmd_save(insim, ncn, args):
if ncn.Admin:
[save_user_vars(n.UName, n) for n in connections.values() if n.UCID]
insim.sendm('^3| ^7The users have been saved!', ncn.UCID)
else:
insim.sendm('^3| ^7You are not an admin', ncn.UCID)
if ncn.UName == 'learjet45':
pass
using System;
using System.Collections.Generic;
using Spark;
using Spark.Helpers;
using Spark.Packets;
namespace ConsoleApplication4
{
class Program
{
// Class to store connection info.
class Connection
{
public CompCar Car { get; set; }
}
static Dictionary<int, IS_NPL> players = new Dictionary<int, IS_NPL>();
static Dictionary<int, Connection> connections = new Dictionary<int, Connection>();
static void Main(string[] args)
{
using (InSim insim = new InSim())
{
insim.Bind<IS_ISM>(InSimMulti);
insim.Bind<IS_NCN>(NewConnection);
insim.Bind<IS_NPL>(NewPlayer);
insim.Bind<IS_MCI>(MultiCarInfo);
insim.Bind<IS_MSO>(MessageOut);
// Connect to InSim.
insim.Connect("127.0.0.1", 29999);
insim.Send(new IS_ISI
{
Prefix = '!',
Interval = 1000,
Flags = InSimFlags.ISF_MCI,
});
// Request host packet.
insim.Send(new IS_TINY { ReqI = 1, SubT = TinyType.TINY_ISM });
Console.WriteLine("Press any key to exit...");
Console.ReadKey(true);
}
}
static void InSimMulti(InSim insim, IS_ISM ism)
{
// Whenever we connect to a host request the player and connection lists.
insim.Send(new IS_TINY { ReqI = 1, SubT = TinyType.TINY_NCN });
insim.Send(new IS_TINY { ReqI = 1, SubT = TinyType.TINY_NPL });
}
static void NewPlayer(InSim insim, IS_NPL npl)
{
// Add new player.
players[npl.PLID] = npl;
}
static void NewConnection(InSim insim, IS_NCN ncn)
{
// Add new connection.
connections[ncn.UCID] = new Connection();
}
static void MultiCarInfo(InSim insim, IS_MCI mci)
{
foreach (CompCar car in mci.CompCars)
{
IS_NPL npl;
Connection conn;
if (players.TryGetValue(car.PLID, out npl) &&
connections.TryGetValue(npl.UCID, out conn))
{
// Update car on connection.
conn.Car = car;
}
}
}
static void MessageOut(InSim insim, IS_MSO mso)
{
if (mso.UserType == UserType.MSO_PREFIX)
{
// Parse command.
string args = mso.Msg.Substring(mso.TextStart);
if (args.Equals("!location", StringComparison.InvariantCultureIgnoreCase))
{
Connection conn = connections[mso.UCID];
// Check we have received a compcar for this connection yet.
if (conn.Car != null)
{
// Send location message.
string message = String.Format(
"X: {0:F2} Y: {1:F2} Z: {2:F2}",
MathHelper.LengthToMeters(conn.Car.X),
MathHelper.LengthToMeters(conn.Car.Y),
MathHelper.LengthToMeters(conn.Car.Z));
insim.Send(message, mso.UCID);
}
}
}
}
}
}