diff --git a/.gitignore b/.gitignore index 657dde36..71a99ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -23,8 +23,11 @@ CMakeLists.txt.user* *.otbm *.log *.bak -/modules/myconfig.otml -/modules/myotclientrc.lua +*.swp +config.otml +/modules/otclientrc.lua !.gitignore otclient.map otclient.layout +TODO +LOCALTODO diff --git a/AUTHORS b/AUTHORS index aa63909b..d80bd9ce 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,3 +1 @@ -edubart - leader developer (project creator) -andrefaramir - scripting (implemented a lot of modules like battle, hotkeys, npctrade, chat) -baxnie - implemented first game functionality +See https://github.com/edubart/otclient/graphs/contributors diff --git a/BUGS b/BUGS index 379e87e2..f8a930bb 100644 --- a/BUGS +++ b/BUGS @@ -1,32 +1 @@ -== CRASHS -modules recursivity makes client crash, it should generate a warning -boost::asio makes the client crash in rarely conditions when trying to connect but internet is offline - -== P1 BUGS (affects game play) -in some situations creatures may disappears while walking -sometimes minimap desync Z pos -follow and autowalk doesn't cancel when walking via hotkeys -when reading invalid spr/dat the client crashs - -when walking on a tile with too many creatures, the following errors occurrs: -ERROR: [ProtocolGame::parseCreatureHealth] could not get greature -ERROR: [ProtocolGame::parseCreatureHealth] could not get greature -ERROR: [Map::setCentralPosition] invalid creature -ERROR: [Map::setCentralPosition] invalid creature -ERROR: [Map::setCentralPosition] invalid creature -ERROR: [Map::setCentralPosition] invalid creature - - -== P2 BUGS -battle sometimes doesn't clear attacked/followed creatures when they go out of range -when looking from floor 5 in floor 7, sometimes a tile have 2 invisible grounds in floor 6 that should be ignored -invisible creatures name offset is incorrect -walk does not work properly when a creature is paralyzed - -== P3 BUGS -widgets may have been destroyed when adding event in onSetup (UIResizeBorder), generating invalid events -too many talk messages in game map make the messages boxes disappear -hotkeys works while windows are locked, it shouldn't -skulls is rendering outside map bounds -party options does not work when re-logging inside a party -sometimes we can still view hits from above/bottom floors from a fight that is not visible +See https://github.com/edubart/otclient/issues diff --git a/README.md b/README.md index fd2d8052..6840aa1b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -### What is OTClient? +### What is otclient? Otclient is an alternative Tibia client for usage with otserv. It aims to be complete and flexible, for that it uses LUA scripting for all game interface functionality and configurations files with a syntax @@ -20,53 +20,53 @@ client, instead otclient was designed to be a combination of a framework and tib ### Download Daily snapshots of otclient master branch compiled for Windows and protocol 860 is available -in the {downloads section}[https://github.com/edubart/otclient/downloads] of the project's github page. +in the [downloads section](https://github.com/edubart/otclient/downloads) of the project's github page. For any other platform or protocol you will need to compile the source code. Currently Linux/Windows -platforms and protocols 860/861/862 are supported. +platforms and protocols 8.6x are supported. ### Compiling In short, if you need to compile OTClient, follow these tutorials: -* [Compiling on Windows](http://otclient.info/index.php?app=ccs&module=pages§ion=pages&id=2&record=9) -* [Compiling on Ubuntu](http://otclient.info/index.php?app=ccs&module=pages§ion=pages&id=2&record=12) +* [Compiling on Windows](http://otclient.info/tutorials/compiling_on_windows.html) +* [Compiling on Linux](http://otclient.info/tutorials/compiling_on_linux.html) ### Need help? Checkout our website at for tutorials and more information. If you have any questions or are looking for more information, please feel free to ask on our official -forum at or talk with us at #otclient irc.freenode.net +forum at or talk with us at #otclient irc.freenode.net ### Bugs -Have found a bug? Please create an issue in our [bug tracker](http://otclient.info/tracker) +Have found a bug? Please create an issue in our [bug tracker](https://github.com/edubart/otclient/issues) ### Contributing -We encourage you to contribute to OTClient! Please check out +We encourage you to contribute to otclient! Please check out [our website](http://otclient.info/) for guidelines about how to proceed. Join us! We are currently needing help in the following areas: * Designing new UI themes or improving the current one * Translating the client to other languages -* Documenting lua APIs and creating tutorials -* Scripting with lua new modules or improving the current ones +* Documenting and creating tutorials +* Scripting new modules or improving the current ones * Porting otclient to other otserv protocols (8.54, 8.7, 9.x, etc) * Spreading otclient project over the web and bring it to new possible contributors * Testing the client itself to report bugs and missing features in our bug tracker ### Contact -You have 3 options, use the forum at http://otclient.info , talk directly with us at #otclient irc.freenode.net +You have 3 options, use the [forum](http://forum.otclient.info/), talk directly with us at #otclient irc.freenode.net or send an email directly to the project leader edub4rt@gmail.com ### License -OTClient is made available under the MIT License, thus this means that you are free +Otclient is made available under the MIT License, thus this means that you are free to do whatever you want, commercial, non-commercial, closed or open. ### Donate -OTClient needs your support, if you really like and use it, please donate. Anyone can donate +Otclient needs your support, if you really like and use it, please donate. Anyone can donate by clicking the Donate button in otclient website. We might prioritize features requests from who donate, in this case you can send an email to the project leader. diff --git a/TODO b/TODO deleted file mode 100644 index 0a208716..00000000 --- a/TODO +++ /dev/null @@ -1,83 +0,0 @@ -== MODULES -game_shaders (with shader manager) -game_map (with save/load/options) -game_minimap (with all tibia functionality) - -== NOTABLE FEATURES -make left panel optional -must close last container when opening a new containers -move chat tabs -save/load mini windows states/location when restarting the client -load modules from zip files -manual autoload setting in module manager -complete a smarter miniwindow moving/resizing -make miniwindow borderless on double click - -== BEFORE RELEASE -polish interface skin -new optional skin -send otclient/system information to a third party server - -== LATER FEATURES -reload spr/dat while ingame -create and bind new game events -text selection -login queue -port to MacOs and iphone -allow multiple Map and Game instances ? - -== MINOR FEATURES -display exit box when exiting from game -load modules from zip packages -move up/down in lineedits -select characters in lineedits -scrolling multiline edit -mouse wheel lineedits -onMapKnown event -save different account/pasword/server for each otclient protocol version -dont store textures upsidedown - -== OPTIMIZATIONS AND REWORKS -* game -do not redraw in MapView far zoom -map zoom rendering could be optimized using framebuffer caches -multisample option in map view -move rendering of creatures names, skulls, etc to UI and scripts -clean sprites cache periodically -handle corrupt errors in dat/spr -throw exceptions when fail to read a file -fix C++ exceptions messages inside onExtendedOpcode -rework outfit masks drawing -complete rework on autowalk - -* framework -rework Settings/g_configs -platform cursor cache -replace onKey events with Hotkeys.bind -add -no-sound option -rework lua/c++ logger - -* ui -rework hover => onWidgetVisibilityChange onWidgetEnableChange onWidgetMove onAppear onDisappear -reset dragging widget on destruction/visibility change/enable change -cancel layout changes on non visible widgets (acts like it doesn't exist) -add more anchors warnings to make creation of OTUIs easier -review UI/style loader and make more error prone with more warnings -change Align/Anchors lua API from enum to text -review widgets rendering order, consider adding z-index -reapply anchor styles when adding new childs -style inheritance using a style translator -find a way to add new widgets without focusing them -make set of background/icon/image width alone work -make api to enable/disable capture of events like mouseMove to avoid massive event processing -move layout proprieties to widget style -terminate rework of ui events propagation (for Key events) - -* lua engine -make possible to bind non LuaObject derived classes on lua engine (for usage with Point,Rect,Color,Size) -review usage of x,y/width,height in lua instead of point/size - -* modules system -use one isolated environment for each module - -