Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hampusborgos/sharptibiaclient
A tibia client coded in C# with XNA. Only supports replaying tibia movies (.tmv) currently.
https://github.com/hampusborgos/sharptibiaclient
Last synced: 8 days ago
JSON representation
A tibia client coded in C# with XNA. Only supports replaying tibia movies (.tmv) currently.
- Host: GitHub
- URL: https://github.com/hampusborgos/sharptibiaclient
- Owner: hampusborgos
- Created: 2014-03-27T16:46:19.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-05-26T21:04:53.000Z (over 10 years ago)
- Last Synced: 2023-10-20T20:09:14.355Z (about 1 year ago)
- Language: C#
- Size: 1.51 MB
- Stars: 12
- Watchers: 4
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
#Sharp Tibia Client
This is a protocol 7.4 compatible Tibia client written entirely in C#. This is a mostly abandoned project I did for fun several years ago, as such it is not complete by any measure.#Feature support
Right now, it supports opening Tibia movie files and replaying them pretty much perfectly. With support for chat, animations (except walking), inventory etc. Connecting to a network host is the very simple matter of changing the supplied stream to a network stream instead of a file stream.There is little-to-no support for input yet. But since all the send* functions are there it should a relatively small project to implement.
#Design
The design is very modular, the Protocol/ folder contains parser for the tibia protocol and data files and exposes events for all the actions available.The Client/ folder contains information about the current client state. It hooks into the events supplied by the Protocol and updates it's own internal data structure. This means it's trivial to fast-forward in a protocol stream by feeding it as many packets as you'd like (ClientState offers this functionality).
The GameCanvas class separately hooks into the events provided by the protocol in order to display effects. When fast-forwarding you can connect the Canvas afterwards in order to skip parsing of effects entirely!
#Protocol
It only support client 7.4 right now (mostly because I didn't feel like implementing RSA). It's coded with multi-protocol support in mind though, so if you want to add new protocols what you need to do is edit create a new protocol map XML file, and add new parsing delegates in TibiaGameParserFactory.cs.#Contributors
* Moi, Hampus Nilsson, or Remere for short. :)Hope somebody finds use for this!