An open source alternate client for Tibia.
C++ Python C Objective-C Shell Makefile M4
Clone or download
Latest commit ba63140 Dec 29, 2017
Permalink
Failed to load latest commit information.
English.lproj * nativeguierror on mac using NSRunAlertPanel() Jan 10, 2010
cli yatc_cli: g_frameTime and g_frameDiff are actually unsigned int. Dec 18, 2017
debian-data * data unload fix Aug 6, 2008
debian Backed out from bad commit 6038, which was related to a different pro… Nov 10, 2011
gamecontent bazel/mac: Include missing dependency on stdinttypes to gamecontent v… Dec 30, 2017
mac Cleanup of obvious bugs detected by static analysis, and cleanup of b… Jan 31, 2016
net msvc: Correctly pass header search path to MSVC related to tommath. Dec 18, 2017
tools sprtool: Add Bazel build rule. Dec 18, 2017
translations Fixes for building on Bazel on macOS 10.12+. May 10, 2017
ui msvc: Use min/max from <algorithm>, use stdint on MSVS2017+, don't de… Dec 18, 2017
vendor/github.com bazel/mac: Use new bazel rules for sdl12. Still needs X11 path adjust… Dec 30, 2017
yatc.vc9 Updates to VC projects that add net/enum and net/protocolconfig. Dec 6, 2016
yatc.xcodeproj Bitrot cleanup: Add standalone X11 into header search path due to SDL… Jan 31, 2016
.gitignore Extend gitignore to cover autotools generated files, binaries, et al. May 9, 2017
.gitmodules Move to rules_libsdl12. Nov 18, 2017
AUTHORS * added adelae to list of contributors Feb 15, 2010
BUGS * Fixed 2/3: http://otfans.net/project.php?issueid=431 May 9, 2009
BUILD bazel/mac: Fix typo in libsdl12-main rule. Dec 30, 2017
BUILD.libsdlgfx Fixes for building on Bazel on macOS 10.12+. May 10, 2017
COPYING * ChangeLog (adding): Added changelog file (as suggested by AutoBook.) Oct 13, 2007
ChangeLog * ui/charlist.h: Support for "Gratis Premium Account" Oct 16, 2007
INSTALL Basic notes on building under OS X. Jan 31, 2016
Info.plist * bumped version to 0.3.3SVN Feb 18, 2010
Makefile.am protocolconfig.* was split during bazel work, and needs to be added t… May 9, 2017
README.PicReplacement * some info on pic replacement Nov 18, 2008
README.md Added markdown to readme. Dec 26, 2015
ROADMAP * Moved some unfinished stuff from 0.3 release to 0.4 in ROADMAP Jun 16, 2009
WORKSPACE bazel: Build tommath on Windows with MSVC. Dec 18, 2017
YATC.sln * building under msvc 2008 express (project adequately upgraded) Sep 8, 2009
YATC.vcproj Updates to VC projects that add net/enum and net/protocolconfig. Dec 6, 2016
YATCce.vcproj * building under msvc 2008 express (project adequately upgraded) Sep 8, 2009
autogen.sh * ChangeLog (adding): Added changelog file (as suggested by AutoBook.) Oct 13, 2007
automap.cpp * All calls to oRGBA fixed to use 255 instead of 1. Feb 26, 2010
automap.h * loading of grpahical buttons in the skin May 8, 2009
autorelease.sh Build fixes. Nov 10, 2011
bigint.cpp * Protocol 841 support, though, it doesn't connect to the gameworld yet Mar 19, 2009
bigint.h * console now has a background (a temporary solution; it also needs a… Dec 5, 2008
choicegrid.cpp * Choicegrid now updates its appearance appropriately for a change. May 16, 2009
choicegrid.h * Choicegrid now updates its appearance appropriately for a change. May 16, 2009
clipboard.cpp Bitrot cleanup: Include stdlib.h for free(). Jan 31, 2016
clipboard.h * fixed a blunder with lights not stretching. Feb 16, 2010
codeguide.txt * Added ProtocolGame80 Oct 16, 2007
confighandler.cpp Add hacky rtrim to processing of yatc.cfg. Dec 7, 2016
confighandler.h * Text hotkeys! Saved and loaded and everything. Wasn't too fun. May 10, 2009
configure.ac * bumped version to 0.3.3SVN Feb 18, 2010
console.cpp Cleanup of obvious bugs detected by static analysis, and cleanup of b… Jan 31, 2016
console.h * Added readable/writeable window for items. Feb 17, 2010
creatureui.cpp * util: yatc_makedirs now globally available Mar 7, 2010
creatureui.h * Now loading the rendered size of creatures from tibia.dat Mar 4, 2010
debugprint.cpp * patched with fike's vc9 patch Mar 30, 2009
debugprint.h * fixed debugprints Sep 18, 2008
defines.h * Moved makeLightColor to mapui.cpp (makes more sense, plus I was sic… Feb 17, 2010
distanceui.cpp Correctly include math.h: it's a system header. May 9, 2017
distanceui.h * ran 'svn ps svn:eol-style native [file]' Sep 19, 2008
effectui.cpp * removed unnecessary output in sprdata Nov 2, 2008
effectui.h * Moved makeLightColor to mapui.cpp (makes more sense, plus I was sic… Feb 17, 2010
engine.cpp msvc: Use min/max from <algorithm>, use stdint on MSVS2017+, don't de… Dec 18, 2017
engine.h * fixed a blunder with lights not stretching. Feb 16, 2010
enginegl.cpp * fixed a blunder with lights not stretching. Feb 16, 2010
enginegl.h * fixed a blunder with lights not stretching. Feb 16, 2010
enginesdl.cpp Bitrot fixes: be specific about downcasting into SDL_Rect. May 10, 2017
enginesdl.h Bitrot fixes: be specific about downcasting into SDL_Rect. May 10, 2017
exchndl.dll Remove executable flag from files that are not intended to be executa… Dec 6, 2016
exchndl2.cxx Remove executable flag from files that are not intended to be executa… Dec 6, 2016
fassert.h * Removed some commented code. May 30, 2009
fix-nativeline.sh * fixed nativelines - sorry for messing up svn history (if this does … May 11, 2009
font.cpp * corrected bug with colorization of sprites and fonts Sep 20, 2009
font.h * renamed Font class into YATCFont... May 16, 2009
font2.xcf * some info on pic replacement Nov 18, 2008
gamemode.cpp * Added untested clipboard code for OS X. May 12, 2009
gamemode.h * a basic vip list without user interaction Jul 21, 2009
gm_debug.cpp Bitrot cleanup: 'delete' GM_Debug::map in a way that doesn't make the… Jan 31, 2016
gm_debug.h * some mac fixes May 17, 2009
gm_gameworld.cpp * Perspective fixed!!! Now you'll see floors right as you see in the … Mar 3, 2010
gm_gameworld.h * Separated Event messages (such as Warnings and Advanced) from Info … Feb 20, 2010
gm_mainmenu.cpp * added adelae to list of contributors Feb 15, 2010
gm_mainmenu.h * message of the day is no longer obligatory at login (so we can have… Jul 21, 2009
inv.bmp * ChangeLog (adding): Added changelog file (as suggested by AutoBook.) Oct 13, 2007
itemui.cpp * fixed items with offset when stretching the game window Jul 3, 2009
itemui.h * added console command to reload gfx (type @reloadgfx) -- this will … Jul 24, 2008
macclipboard.m Cleanup of obvious bugs detected by static analysis, and cleanup of b… Jan 31, 2016
macutil.h * nativeguierror on mac using NSRunAlertPanel() Jan 10, 2010
macutil.m Cleanup of obvious bugs detected by static analysis, and cleanup of b… Jan 31, 2016
main.cpp Translated UI when built with Bazel. Dec 7, 2016
mapui.cpp * Perspective fixed!!! Now you'll see floors right as you see in the … Mar 3, 2010
mapui.h * Perspective fixed!!! Now you'll see floors right as you see in the … Mar 3, 2010
mingwbuild.sh * changes for 0.2~rc1 May 7, 2008
notifications.cpp * nativeguierror on mac using NSRunAlertPanel() Jan 10, 2010
notifications.h * a basic vip list without user interaction Jul 21, 2009
objects.cpp Replaced inclusion of net/connection.h with inclusion of net/protocol… Dec 6, 2016
objects.h * Now loading the rendered size of creatures from tibia.dat Mar 4, 2010
options.cpp * Now properly loads lighting options Feb 16, 2010
options.h Replaced inclusion of net/connection.h with inclusion of net/enum.h. Dec 6, 2016
popup.cpp * popup is now resized if a label is too long. Jul 21, 2009
popup.h * warnings cleanup Jul 21, 2009
product.h * bumped version to 0.3.3SVN Feb 18, 2010
release.sh Made dependency on bash a bit more specific in release scripts Nov 10, 2011
replay.binary * added replay capability! included one replay file. documented in ac… Jul 21, 2009
replay.binary.txt * message of the day is no longer obligatory at login (so we can have… Jul 21, 2009
resources.rc * Added roadmap Dec 17, 2007
skin.cpp * First of hopefully many commits where we come much closer to replic… Mar 3, 2010
skin.h * First of hopefully many commits where we come much closer to replic… Mar 3, 2010
sprdata.c * Removed really long commented code. Feb 15, 2010
sprdata.h * tons of Visual Studio related fixes Jan 27, 2008
sprite.cpp Bitrot fixes: be specific about downcasting into SDL_Rect. May 10, 2017
sprite.h * You can now optionally use glSDL (reimplementation of SDL surfaces … Feb 13, 2010
spritegl.cpp * util: yatc_makedirs now globally available Mar 7, 2010
spritegl.h * Recoded minimap Feb 17, 2009
spritesdl.cpp Bitrot fixes: be specific about downcasting into SDL_Rect. May 10, 2017
spritesdl.h * Added option to use smooth stretching of sprites with SDL engine (G… Jul 12, 2009
stackpanel.cpp * Removed a piece of code I forgot to remove from a failed attempt at… Feb 5, 2010
stackpanel.h * Removed a piece of code I forgot to remove from a failed attempt at… Feb 5, 2010
statusmsg.cpp * Separated Event messages (such as Warnings and Advanced) from Info … Feb 20, 2010
statusmsg.h * Separated Event messages (such as Warnings and Advanced) from Info … Feb 20, 2010
stdinttypes.h msvc: Use min/max from <algorithm>, use stdint on MSVS2017+, don't de… Dec 18, 2017
thingui.cpp * Fix paint for tiles without ground Nov 10, 2007
thingui.h * grouped loads of Tibia.pic subimage 3 into one load in g_engine Aug 12, 2008
ui.xcf * removed unnecessary output in sprdata Nov 2, 2008
util.cpp bazel: Support searching through MANIFEST file on Win32. Dec 18, 2017
util.h Utility function to obtain path to executable (most probably relative… Dec 7, 2016
wincebuild.sh * I HAPPILY ANNOUNCE THAT WE NOW FULLY RUN ON WINCE ;) but we must wo… Nov 30, 2007
winmain.c * patched with fike's vc9 patch Mar 30, 2009
yatc-dmg-icon.xcf * yatc dmg icon Feb 15, 2010
yatc.cbp Split parts of net/connection into net/enum and net/protocolconfig. Dec 6, 2016
yatc.icns * new icon file Feb 15, 2010
yatc.ico Remove executable flag from files that are not intended to be executa… Dec 6, 2016
yatc.png * removed unnecessary output in sprdata Nov 2, 2008
yatc.xcf * added adelae to list of contributors Feb 15, 2010
yatc_Prefix.pch * some mac fixes May 17, 2009

README.md

YATC -- Yet Another Tibia Client

Copyright (C) 2007-2010 Authors

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

Project is inactive

This project has not been developed since 2010. Last minimal fixes have been applied in 2011. Any help provided will be minimal.

Programming

Authors mentioned in no particular order.

  • Ivan Vucica - Khaos
  • Nate Fries - nfries88
  • Alexandre Severino - Kilouco
  • mips

Contributors

  • mrauter
  • Mariusz Gliwinski - shd
  • Vindeamatrix510
  • FightingElf
  • Magnus K.L. - Smygflik
  • Alexandru Pitis - Ormin
  • Adelae

What is YATC?

YATC is a client for any game that uses Tibia-compatible protocol. It is being developed as a part of the OpenTibia project. We have chosen the name YATC since name OpenTibia Client was already taken by a project by another author.

The code has taken shape, but it is still in early development. We develop support for SDL and OpenGL based drawing engines. GLICT is the current user interface library. For now we can connect to the login server, display character list, connect to game world, display basic map, and we can move around.

This is readme for version 0.3.3SVN.

Do you plan to package our software? If so, make sure you contact yatc-contact@vucica.net

Please visit our site: http://yatc.vucica.net/

To report bugs, please visit the GitHub project: https://github.com/opentibia/yatc

To see previously reported bugs, see the archive of our project management system at OtFans: http://web.archive.org/web/otfans.net/project.php?projectid=3

Quick logon

If you need compile instructions, please read INSTALL. If you have already compiled, or you have downloaded a binary, please read on.

Copy Tibia.spr, Tibia.dat and Tibia.pic from another client into YATC. We currently cannot provide these files due to copyright issues, and we have not created our own files. Then, start YATC. Go to Options->Network, and enter the server address. Then go to Enter Game and log on using your account number and password.

We currently support protocols 8.0 to 8.54. Autodetection will see from which version of the client you have copied the files and will use the appropriate protocol. You can manually switch protocol in Options->Network.

Under GNU/Linux, do not forget that caps matter. Tibia.spr is not the same as tibia.spr.

We have gettext() l10n support but only if you compile from sources. We are currently unable to provide a consistent UI for all platforms.

User interface

Main menu

  • Enter Game - Displays login window.
  • Options - Shows a window offering General, Graphics, Console, Hotkeys and Network options, as well as MOTD display.
  • Info - Shows info about program.
  • Exit Game - Exits the program.

Enter Game

  • Account Number - Enter your assigned account number here.
  • Password - Enter the password you have set.
  • Create Account - Unused.

Character list

Click on the character you want to log on with. Then click Ok. If there's more characters than fits in the list, use the arrows to find the character you want.

Game

On the top right you'll find the inventory. Right of it is the map. On the top right you will find the traffic meter. It measures the amount of bytes transmitted (TX), received (RX) and total (++). It also measures the same numbers per hour (in bytes per hour, kibibytes per hour, and mibibytes per hour).

On the bottom you will find a text box which you can use to chat. Pressing any letter or number focuses on the textbox automatically.

  • Use arrow keys to move.
  • Ctrl+click to "Use" item.
  • Shift+click to "Look at" item.
  • Alt+click to "Attack" creature.

Configuration file

After you first launch YATC and close it, a file named 'yatc.cfg' will be generated in the working directory. There are some options that are inaccessible from the user interface so here's documentation. The options are as follows:

(Some options may be undocumented.)

[window]

  • engine - This can be either 0 or 1. 0 sets the SDL rendering engine (default), 1 sets the OpenGL rendering engine.
  • os_cursor - Unused; due to be removed.

[login]

  • account - Specifies your account number that will be entered by default.
  • password - Specifies your password that will be entered by default.
  • saveaccount - Should the account data be saved.

[client]

  • skin - Unused.
  • motdnum - Last number of MOTD that server sent.
  • motdtext - Last text of MOTD that server sent.
  • ui_compat - Change the UI compatibility settings. If set to 0, UI is maximally compatible with Tibia. If set to 1, UI is enhanced a bit.
  • lang - gettext-style language code. Overrides standard language detected from environment.

[general]

  • classiccontrol - Unused. An option under Options->General
  • autochase - Unused. An option under Options->General
  • showhints - Unused. An option under Options->General
  • shownames - Should names be shown?
  • showtexteffects - Should texts be shown?

[graphics]

  • fullscreen - When restarted, YATC will go to fullscreen if this is turned on.
  • width - Width part of resolution, or width of window.
  • height - Height part of resolution, or height of window.
  • bpp - Display color depth. Valid are 8, 16 and 32. 8 gives grayscale.
  • maxfps - Limits the maximum framerate. 0 for unlimited.
  • stretchgame - Should the game area be strateched or not? 0 or 1.
  • smoothstretch - When stretching, should it be smoothed or performed linearly? 0 or 1.
  • lighteffects - Type of light effects. 0, 1, 2 or 3 (none, simple, solid, best).

[console]

  • infomsgs - Should informational messages appear? 0 or 1.
  • eventmsgs - Should event messages appear? 0 or 1.
  • statusmsgs - Should status messages appear? 0 or 1.
  • timestamps - Should timestamps be prefixed to messages in console? 0 or 1.
  • levels - Should speaker levels be prefixed to messages in console? 0 or 1.
  • privatemsgs - Should private messages appear? 0 or 1.

[network]

  • server - Address of server to connect to.
  • port - Port of server to connect to.
  • otkey - If we're connecting to an OpenTibia server, set to 1, otherwise 0.
  • protocol - Protocol version. Valid are 800, 810, 811, 820, 821, 822, 830, 831, 840, 841, 842, 850, 853, and 854.
  • overrideversion - Version to represent to server although another protocol is used. Server uses same protocol that's specified under 'protocol', but requires a different version sent. (Data files must also have appropriate signatures.)

[hotkeys]

  • ?

[game]

  • battlemode - What battle mode should the game enter with?
  • chasemode - What chase mode should the game enter with?
  • safemode - Should player be safe against attacking unskulled players? 0 or 1

[gui]

  • inventory_collapsed - Should inventory be collapsed?
  • skillsh - Height of skill window. -1 if closed
  • battleh - Height of battle window. -1 if closed
  • viph - Height of vip window. -1 if closed.
  • consoleh - Height of console panel.
  • hideofflinevips - Should offline VIPs be visible? 0 or 1.

Observed issues

  • Odd freezes may occur.
  • Moving items may fail.
  • Linux does not have clipboard support.

Reporting bugs

Visit our GitHub project: http://github.com/opentibia/yatc

Please include debugrecord.rec. Location:

  • Windows: YATC folder
  • Linux: ~/.yatc
  • Mac OS X: ~/Library/Application Support/OpenTibia/YATC