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 }); } }