TaleKit contains a working packet based* system for creating NosTale bot, tools etc...
This project is useless as is since it's just some kind of abstraction of the game.
- TaleKit.Spark (Clientless)
- TaleKit.Storm (Local)
- TaleKit.Phoenix (Local using Phoenix Bot)
You need two major things to create your own implementation
INetwork implementation
public class SampleNetwork : INetwork
{
public event Action<string>? PacketSend;
public event Action<string>? PacketReceived;
public event Action? Disconnected;
public void SendPacket(string packet)
{
throw new NotImplementedException();
}
public void RecvPacket(string packet)
{
throw new NotImplementedException();
}
public void Disconnect()
{
throw new NotImplementedException();
}
}
IActionBridge implementation
public class SampleBridge : IActionBridge
{
public Session? Session { get; set; }
public void Walk(Position position, int speed)
{
throw new NotImplementedException();
}
public void Attack(LivingEntity entity)
{
throw new NotImplementedException();
}
public void Attack(LivingEntity entity, Skill skill)
{
throw new NotImplementedException();
}
public void PickUp(Drop drop)
{
throw new NotImplementedException();
}
}
Session Factory
public static class SampleFactory
{
public static Session CreateSession()
{
// Connect to remote server with clientless, bind to local method to capture packets etc ...
var network = new SampleNetwork();
var bridge = new SampleBridge();
return TaleKitFactory.CreateSession(new SessionConfiguration
{
Network = network,
ActionBridge = bridge
});
}
}