https://wiki.themanaworld.org/api.php?action=feedcontributions&user=4144&feedformat=atomThe Mana World - User contributions [en]2024-03-28T11:15:05ZUser contributionsMediaWiki 1.37.2https://wiki.themanaworld.org/index.php?title=Development:Git_repository&diff=40609Development:Git repository2016-08-11T01:38:51Z<p>4144: remove outdated branding link</p>
<hr />
<div><br />
==Git==<br />
<br />
'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.<br />
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. <br />
At some point we moved the content repositories from gitorious to github and later to gitlab. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)<br />
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to participate in the development or to create your own fork. <br />
<br />
See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.<br />
<br />
In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:<br />
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. <br />
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written to make it the entry point of the wiki development part.<br />
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.<br />
<br />
== The primary repository ==<br />
<br />
=== Initial setup ===<br />
<br />
<br />
With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new <code>svn checkout</code>).<br />
<br />
We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.<br />
<br />
{|border="1" cellspacing="0" cellpadding="5"<br />
! Project<br />
! Read-only URL<br />
! Atom feed<br />
|-<br />
|colspan=4| <span style="color:White; background:Sienna">TMW, TMW eAthena</span><br />
|-<br />
|colspan=4|This repository contains the branding files to turn Mana into TMW.<br />
|-<br />
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''<br />
| git://github.com/themanaworld/tmwa.git<br />
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains our hacked up eAthena.<br />
|-<br />
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''<br />
| git://github.com/themanaworld/tmwa-server-data.git<br />
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. <br />
|-<br />
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''<br />
| git://github.com/themanaworld/tmwa-client-data.git<br />
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .<br />
|-<br />
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''<br />
| git://github.com/themanaworld/tmw-art.git<br />
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains some sources for our artwork.<br />
|-<br />
| '''[https://github.com/themanaworld/tmw-music TMW music]'''<br />
| git://github.com/themanaworld/tmw-music.git<br />
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. <br />
|-<br />
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''<br />
| git://github.com/themanaworld/themanaworld-website.git<br />
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the website of The Mana World. <br />
|-<br />
|colspan=4|<span style="color:White; background:Sienna">Official client: ManaPlus.</span><br />
|-<br />
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''<br />
| https://gitlab.com/manaplus/manaplus.git <br />
| [https://gitlab.com/manaplus/manaplus.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the ManaPlus client sources.<br />
|}<br />
<br />
For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.<br />
<br />
Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:<br />
<br />
# Signed up to github.com<br />
# Generated a private/public ssh keypair (if you haven't got this already)<br />
# Filled in your public key in your account details on GitHub<br />
# Been added with commit rights to the repository<br />
# Followed the directions in the [How to Develop] page<br />
<br />
== Working with git ==<br />
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] <br />
<br />
:::'''[[Working With Git]]'''<br />
<br />
You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]<br />
<br />
* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with <code>--all</code> to have it show all branches, otherwise it will just show stuff relevant to your current branch.<br />
* '''tig''': A textual interface, rather similar to an email reader.<br />
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.<br />
* '''Giggle'''<br />
* '''qgit'''<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'<br />
<br />
=== git on Windows ===<br />
<br />
When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable <code>core.autocrlf</code> using <code>git config core.autocrlf false</code>. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.<br />
GitHub works uses the same tools as Git.<br />
:'''GUIs'''<br />
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]<br />
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]<br />
=== git on MacOS X ===<br />
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]<br />
:'''GUIs'''<br />
* '''GitHub for Mac''' github <br />
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.<br />
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]<br />
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]<br />
<br />
===Glossary===<br />
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.<br />
<br />
* Branch<br />
* Clone<br />
* Commit<br />
* Fork<br />
* Mainline <br />
* Master<br />
* Merge<br />
* Origin<br />
* Patch<br />
* Pull<br />
* Push<br />
* Stash<br />
* Tree<br />
<br />
[[Category:Development]]</div>4144https://wiki.themanaworld.org/index.php?title=Downloads&diff=40408Downloads2016-03-15T09:45:34Z<p>4144: replace old manaplus site to new</p>
<hr />
<div>{{Meta}}{{I18n}}<br />
<br />
==ManaPlus client==<br />
[[Image:manaplus.png|left]]<br />
<br />
'''ManaPlus''' is a sister project of The Mana World and the official game client.<br />
<br />
In order to play TMW you need to register a game account and download, install and run ManaPlus.<br />
<br />
- '''[http://manaplus.org/ Download ManaPlus]''' -<br />
<br />
- '''[[Special:GameAccount|Game Account Registration]]''' -<br />
<br />
<br />
<br />
<br />
'''Note:''' If you have problems while registrating or troubles to get Manaplus running please contact us by posting in our [https://forums.themanaworld.org/ Forum] or contact us live on [https://webchat.freenode.net/?channels=#themanaworld IRC (chat)]. Please be patient, we will help you as soon as possible!<br />
<br />
<br />
===The Manaplus packages===<br />
<br />
The Mana World packages are available for many platforms. These are based on the ManaPlus client, but have a different default skin and will show up as "Manaplus" in the application menu.<br />
<br />
* [[Image:ico-win.png]] [http://download.evolonline.org/manaplus/tmw/tmw-win32.exe Windows installer (ManaPlus)]<br />
* [[IMage:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-lion.dmg ManaPlus MacOS X package (lion)]<br />
* [[Image:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-snowleopard.dmg ManaPlus MacOS X package (snow leopard)]<br />
* [[Image:ico-deb.png]] [http://packages.debian.org/manaplus Debian package]<br />
* [[Image:ico-ubuntu.png]] [http://packages.ubuntu.com/manaplus Ubuntu package]<br />
* [[Image:ico-fedora.png]] [https://apps.fedoraproject.org/packages/manaplus Fedora package]<br />
* [[Image:ico-android.png]] [https://play.google.com/store/apps/details?id=org.evolonline.beta.manaplus Android App (ManaPlus)]<br />
* [[Image:ico-gentoo.png]] [http://packages.gentoo.org/package/games-rpg/manaplus Gentoo eBuild (outdated)]<br />
* [[Image:ico-openbsd.png]] [http://openports.se/games/manaplus OpenBSD port]<br />
* [[Image:ico-freebsd.png]] [http://www.freshports.org/games/manaplus/ FreeBSD port]<br />
* [[Image:ico-chrome.png]] [https://chrome.google.com/webstore/detail/manaplus/fgdcjlfkdeadkbplfhkbjjccagjepodj Chrome App]<br />
<br />
<br />
===Music===<br />
<br />
We no longer recommend music be installed directly, as it easily becomes out-of-date. To enable music in the client, make sure that "Download Music" is checked in the Audio tab of the Setup window.<br />
<br />
<br />
===Development versions===<br />
<br />
The latest version of the ManaPlus client is developed as part of the [http://manaplus.evolonline.org/ ManaPlus project] and is available from the [https://github.com/ManaPlus/ManaPlus Git repositories on GitHub]. For checking out the latest development version of the client you can use the command:<br />
<br />
<code><br />
git clone git://github.com/ManaPlus/ManaPlus.git<br />
</code><br />
<br />
For more instructions and information about other projects like the server and the dynamic data, please check our<br />
[[Git_repository| Git wiki page]].</div>4144https://wiki.themanaworld.org/index.php?title=Downloads&diff=31991Downloads2015-01-03T09:58:40Z<p>4144: /* The Manaplus packages */</p>
<hr />
<div><br />
<b>Notice:</b> For the registration of new accounts please use the [[Special:GameAccount|Registration]] web form. The registration from within the client is disabled.<br />
<br />
=ManaPlus client=<br />
The recommended client is available on the [http://manaplus.evolonline.org/ ManaPlus website].<br />
<br />
==The Manaplus packages==<br />
<br />
The Mana World packages are available for many platforms. These are based on the ManaPlus client, but have a different default skin and will show up as "Manaplus" in the application menu.<br />
<br />
* [[Image:ico-win.png]] [http://download.evolonline.org/manaplus/tmw/tmw-win32.exe <b>Windows installer (ManaPlus)</b>]<br />
* [[IMage:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-lion.dmg <b>ManaPlus MacOS X package (lion)</b>]<br />
* [[Image:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-snowleopard.dmg <b>ManaPlus MacOS X package (snow leopard)</b>]<br />
* [[Image:ico-deb.png]] [http://packages.debian.org/manaplus <b>Debian package</b>]<br />
* [[Image:ico-ubuntu.png]] [http://packages.ubuntu.com/manaplus <b>Ubuntu package</b>]<br />
* [[Image:ico-fedora.png]] [https://apps.fedoraproject.org/packages/manaplus <b>Fedora package</b>]<br />
* [[Image:ico-android.png]] [https://play.google.com/store/apps/details?id=org.evolonline.beta.manaplus <b>Android App (ManaPlus)</b>]<br />
* [[Image:ico-gentoo.png]] [http://packages.gentoo.org/package/games-rpg/manaplus <b>Gentoo eBuild (outdated)</b>]<br />
* [[Image:ico-openbsd.png]] [http://openports.se/games/manaplus <b>OpenBSD port</b>]<br />
* [[Image:ico-freebsd.png]] [http://www.freshports.org/games/manaplus/ <b>FreeBSD port</b>]<br />
<br />
==Music==<br />
<br />
We no longer recommend music be installed directly, as it easily becomes out-of-date. To enable music in the client, make sure that "Download Music" is checked in the Audio tab of the Setup window.<br />
<br />
==Development versions==<br />
<br />
The latest version of the ManaPlus client is developed as part of the [http://manaplus.evolonline.org/ ManaPlus project] and is available from the [https://gitorious.org/manaplus/manaplus/ Git repositories on gitorious]. For checking out the latest development version of the client you can use the command:<br />
<br />
<code><br />
git clone git://gitorious.org/manaplus/manaplus.git<br />
</code><br />
<br />
For more instructions and information about other projects like the server and the dynamic data, please check our<br />
[[Git_repository| Git wiki page]].</div>4144https://wiki.themanaworld.org/index.php?title=Downloads&diff=31990Downloads2015-01-03T09:55:56Z<p>4144: Branding outdated and not support for some years already. Actualy branding exists inside manaplus sources</p>
<hr />
<div><br />
<b>Notice:</b> For the registration of new accounts please use the [[Special:GameAccount|Registration]] web form. The registration from within the client is disabled.<br />
<br />
=ManaPlus client=<br />
The recommended client is available on the [http://manaplus.evolonline.org/ ManaPlus website].<br />
<br />
==The Manaplus packages==<br />
<br />
The Mana World packages are available for many platforms. These are based on the ManaPlus client, but have a different default skin and will show up as "Manaplus" in the application menu.<br />
<br />
* [[Image:ico-win.png]] [http://download.evolonline.org/manaplus/tmw/tmw-win32.exe <b>Windows installer (ManaPlus)</b>]<br />
* [[IMage:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-lion.dmg <b>ManaPlus MacOS X package (lion)</b>]<br />
* [[Image:ico-osx.png]] [http://download3.evolonline.org/manaplus/macosx/manaplus-snowleopard.dmg <b>ManaPlus MacOS X package (snow leopard)</b>]<br />
* [[Image:ico-deb.png]] [http://packages.debian.org/manaplus <b>Debian package</b>]<br />
* [[Image:ico-ubuntu.png]] [http://packages.ubuntu.com/manaplus <b>Ubuntu package</b>]<br />
* [[Image:ico-fedora.png]] [https://apps.fedoraproject.org/packages/manaplus <b>Fedora package</b>]<br />
* [[Image:ico-android.png]] [https://play.google.com/store/apps/details?id=org.evolonline.beta.manaplus <b>Android App (ManaPlus)</b>]<br />
* [[Image:ico-gentoo.png]] [http://packages.gentoo.org/package/games-rpg/manaplus <b>Gentoo eBuild</b>]<br />
* [[Image:ico-openbsd.png]] [http://openports.se/games/manaplus <b>OpenBSD port</b>]<br />
* [[Image:ico-freebsd.png]] [http://www.freshports.org/games/manaplus/ <b>FreeBSD port</b>]<br />
<br />
==Music==<br />
<br />
We no longer recommend music be installed directly, as it easily becomes out-of-date. To enable music in the client, make sure that "Download Music" is checked in the Audio tab of the Setup window.<br />
<br />
==Development versions==<br />
<br />
The latest version of the ManaPlus client is developed as part of the [http://manaplus.evolonline.org/ ManaPlus project] and is available from the [https://gitorious.org/manaplus/manaplus/ Git repositories on gitorious]. For checking out the latest development version of the client you can use the command:<br />
<br />
<code><br />
git clone git://gitorious.org/manaplus/manaplus.git<br />
</code><br />
<br />
For more instructions and information about other projects like the server and the dynamic data, please check our<br />
[[Git_repository| Git wiki page]].</div>4144https://wiki.themanaworld.org/index.php?title=Forks&diff=29880Forks2014-03-19T20:48:02Z<p>4144: Undo revision 29457 by Yourfunworld (talk)</p>
<hr />
<div><!--<br />
<br />
Prerequisite for being listed on this page is having a server which is/was publicly playable, but incompatible with the original TMW client (compatible servers are listed on the "Servers" page) and releasing a modified version of the TMW client software under the terms of the GNU GPL (this means making the source code available!).<br />
<br />
--><br />
The open source nature of The Mana World (TMW) allows anyone to use it as a base for creating their own game. A lot of teams have made use of this opportunity to develop their own games. Projects listed on this page '''do not''' work with the official client. Projects that '''work''' with the official client are listed in the [[Servers]].<br />
<br />
==Active forks==<br />
These are projects which are still in active development.<br />
<br />
===Evol Online===<br />
Evol Online is a free and open source 2D MMORPG set inside a fantasy world. <br />
The main purpose of the games developers is to make the game evolve by adding new content regularly and making the game more complex and more enjoyable for the players.<br />
<br />
* http://www.evolonline.org/<br />
<br />
==Inactive forks==<br />
These are projects which are unfortunately, not in active development anymore.<br />
<br />
===Aethyra===<br />
A fork of TMW based on the eAthena branch with most of its contents from the original TMW, and plenty of custom content.<br />
<br />
* http://www.aethyraproject.org<br />
===Sirus Online===<br />
An eAthena-based branch formed by people frustrated with the management of Endless Online. It had a good start until most of its players and some developers prefer to play and develop the original TMW.<br />
<br />
===Damasca===<br />
A project very similar in scope to TMW, although programmed in C# instead of C++. When the development slowed down due to insufficient manpower, developers attempted to rescue the project by using TMWserv and the TMW client, which were already too developed. Unfortunately, it did not turn out so well.<br />
<br />
* http://www.damasca.net<br />
<br />
===Mundo Dos Dragões ( World of Dragons )===<br />
A Brazilian fork of TMW based on the eAthena branch with a completely new game world made from RPGMaker tiles.<br />
<br />
* http://www.mundodosdragoes.org<br />
<br />
===My Path Online===<br />
A fork of Mana based on the Manaserv branch with a completely redesigned world using both TMW tiles and many other custom tiles around the world.<br />
<br />
* http://www.mypathonline.com<br />
<br />
[[Category:Forks]]</div>4144https://wiki.themanaworld.org/index.php?title=Translators&diff=29845Translators2014-03-16T14:19:01Z<p>4144: /* Translation Work */</p>
<hr />
<div>= Translators =<br />
* TMW Translators help Dev, Admins, GMs & Players communicate across the various language barriers. <br />
<br />
== How-to Become a Translator ==<br />
* Create a wiki account<br />
* Enter you information in a new row [[Translators#List_of_Translators|Here]]<br />
* Done.<br />
<br />
== Translation Work ==<br />
* In-game to help Player to Player (trade, talk, guild, etc.) <br />
* In-game to help GM to Player<br />
* Wiki pages<br />
* Forum posts<br />
* Client gui translation<br />
* Social Media Posts<br />
<br />
== Using Translators ==<br />
* PM or Whisper the player; The language from->to & text.<br />
* Please be patient.<br />
* Please stop bugging them if they say stop.<br />
* This is a service people offer voluntarily, DON'T ABUSE IT.<br />
<br />
== List of Translators ==<br />
{| border="1" cellspacing="0" cellpadding="2" width="100%" align="center"<br />
! style="background:#efdead;" | Forum Name<br />
! style="background:#efdead;" | In-Game Character Names<br />
! style="background:#efdead;" | Primary Languages<br />
! style="background:#efdead;" | Secondary Languages<br />
! style="background:#efdead;" | Timezone<br />
|-<br />
| <br />
| <br />
| <br />
| <br />
| <br />
|-</div>4144https://wiki.themanaworld.org/index.php?title=Development:Particle_engine&diff=28133Development:Particle engine2013-08-25T11:11:57Z<p>4144: /* Current problems and limitations */</p>
<hr />
<div>{{Category_programming}}<br />
{{Category_art}}<br />
{{status_green}}<br />
<br />
==What is the particle engine?==<br />
<br />
The particle engine is a system that allows to create beautiful dynamic special effects based on creating and managing a large number of small, independent, moving sprites. For more information about particle engines see [http://en.wikipedia.org/wiki/Particle_system the Wikipedia article about particle systems].<br />
<br />
The particle engine allows us to create a large variety of beautiful special effects with minimal effort that could outclass those of most other sprite based rpgs. The areas where particle effects could be used include but are not limited to:<br />
* Environmental effects like waterfalls, fires, fountains or smoke comming out of chimneys<br />
* Visualisation of mystical phenomenons like teleporters or other points of interest<br />
* Graphic effects for spells<br />
* Visualisation of status effects<br />
<br />
== The effect definition file ==<br />
Particle effects are described in xml documents. They describe one or more single particles or particle emitters.<br />
<br />
=== <effect> ===<br />
Is the root element of the XML document.<br />
<br />
=== <particle> ===<br />
Every effect is based on at least one particle. Often but not always these root particles function only as emitters that spawn new particles and have no appearance of their own. They have the following three required properties:<br />
;position-x: (initial) position on map relative to the position where the effect is created (pixel-based)<br />
;position-y: (initial) position on map relative to the position where the effect is created (pixel-based)<br />
;position-z: (initial) position on map relative to the position where the effect is created (pixel-based)<br />
The following properties are optional:<br />
;lifetime: Lifetime in game-ticks. (default: unlimited)<br />
In addition they can have any number of emitters and a visual representation in form of an <animation> or an <image>.<br />
<br />
=== <image> ===<br />
Root particles can have an <image> childtag that contains the path to an image in its content. In that case this image is used as the visual representation of the root particle.<br />
<br />
=== <emitter> ===<br />
Emitters are always child-elements of a particle or another emitter. They create new particles themself which can also include emitters and so on. They also include a number of <property> child elements that define the initial properties of the created particles. When one of the following propertiy elements is missing the default value is used. The property elements must have either ''name'' and ''value'' or ''name'', ''min'' and ''max''. In addition they can also have some change-''X'' options which control their change over time.<br />
<br />
They can also have any number of <emitter> childtags (when these exist all child-particles will be equipped with these emitters) and an <animation> childtag that replaces the image with an animation.<br />
<br />
==== <property> ====<br />
:;name: The property controlled by this tag<br />
:;value: (fixed property value ) Value assigned to the created particles<br />
:;min, max: (randomized property value) Range of random values assigned to the created particles<br />
:;change-function: shape of the change-over-time function. Possible values are: "sinus", "saw", "triangle" and "square"<br />
:;change-period: Time in ticks until the function is repeated<br />
:;change-amplitude: Maximum change applied to min and max<br />
:;change-phase: Phase offset of the function in ticks<br />
<br />
====Property types====<br />
<br />
:;position-x: (initial) position on map relative to the parent particle (pixel-based) (default: 0)<br />
:;position-y: (initial) position on map relative to the parent particle (pixel-based) (default: 0)<br />
:;position-z: (initial) position on map relative to the parent particle (pixel-based) (default: 0)<br />
:;image: path to the image that should be drawn at the position of the particles (default: no image)<br />
:;horizontal-angle: clockwise angle of initial vector on horizontal plane in degree. 0° means straight right. (default: 0)<br />
:;vertical-angle: angle between ground and initial vector in degree. 0° means parallel to the ground. Positive values are upwards, negative downwards. (default: 0 = parallel to ground)<br />
:;power: Initial speed of the particles in pixels/ game-tick (default: 0)<br />
:;gravity: Downward acceleration of particles in pixels/game-tick² (default: 0)<br />
:;randomness: Random changes in the X, Y and Z vector. The unit is maximum pixels/game-tick/1000. (only integers, default: 0)<br />
:;lifetime: lifetime in game ticks (only integers, default: -1 = unlimited)<br />
:;fade-out: Number of game ticks of lifetime left when the particle starts to disappear by fading into alpha. (only integers, default: 0 = disabled)<br />
:;fade-in: Number of game ticks while the particles fade in to their full opacity. (only integers, default: 0 = spawned with full opacity)<br />
:;alpha: Opacity of the created particles after fade-in and before fade-out. (default: 1 = full opacity)<br />
:;output: Numbers of particles created per output (only integers, default: 1)<br />
:;output-pause: Pause in ticks between two particle outputs (only integers, default: 0)<br />
:;acceleration: acceleration of particles towards the target in pixels/game-tick² (default: 0)<br />
:;momentum: Momentum of the particles. Before adding the acceleration the old vectors are multiplied by this. A momentum of 1 creates a perfect newtonian object. A slightly lower momentum gives the impression that the particles are breaked. A higher momentum makes the particles accelerate forward. This looks rather weird but could be useful for some effects. A negative momentum looks really ugly. (default: 1)<br />
:;die-distance: Only used together with acceleration. Distance in pixels to the target that causes the destruction of the particles when reached. (Default: 0 = not destroyed on contact)<br />
:;bounce: When higher than 0 particles don't disappear when they touch the ground. Instead they bounce off with a vector equal to their old vector multiplied with this property. It is recommended to add a limited lifetime to bouncing particles because otherwise they are immortal. (Default: 0)<br />
:;follow-parent: When this property is there the particles are moved when the parent particle is moved. This is especially useful for avoiding distortion of being-based particle effects when the being moves. This property has no value - its existence alone creates this behavior.<br />
<br />
=== <animation> ===<br />
The animation tag can be used as a childtag of the <particle> tag to make the root particle appear as an animated image or it can be used as a childtag for an emitter. In that case the emitter spawns animated particles instead of a static ones.<br />
<br />
The usage is similar like the animation tag described in [[Animations#.3Canimation.3E]]. You can use the same child elements with the same syntax. The only difference are the properties of the animation tag itself. There is no direction property. Instead the used imageset is described in the animation tag with the properties ''imageset'', ''width'' and ''height''. All three properties are required.<br />
<br />
== Particle engine related config setting ==<br />
===particleFastPhysics===<br />
Replaces the cpu intense squareroot calculations for calculating the vectors of target-based particles by less intense but less accurate calculations. 0 uses the slow but accurate and reliable function from the C standard library. Setting it to 1 uses a squareroot approximation function that is much faster while being only slightly less accurate but doesn't work on some architectures. 2 is an even faster method that shouldn't have any portability problems but it is very inaccurate.<br />
'''Default: 0'''<br />
<br />
===particleMaxCount===<br />
Maximum number of particles in the game world. When this limit is reached no new particles will be spawned by emitters until some particles disappeared. This limit is only respected by emitters and not when spawning new effects to make sure that they are spawned when the particle limit is maxed out. <br />
<br />
When the limit is maxed out the result is a quite unregular output of the particle emitters that looks quite ugly. So this situation should be avoided. The main reason this setting exists is to encourage the particle effect creators to keep the particle output of their emitters on a reasonable level and to keep the game playable in unusual particle-intense situations by accepting a glitchy appearance of the particle effects in this cases. <br />
<br />
Please note that a few very large particles can reduce the framerate more than a lot of very small particles.<br />
<br />
'''Default: 3000'''<br />
<br />
===particleEmitterSkip===<br />
The number of game ticks each emitter is inactive between two particle spawns. Setting this to a higher value keeps the numbers of particles down by reducing the output of the emitters.<br />
<br />
This is a more useful way for the user to reduce the particle count than reducing particleMaxCount because it doesn't change the look of particle effects that much.<br />
<br />
'''Default: 0'''<br />
<br />
==Putting particle effects on maps==<br />
An important application of particle effects are map-based effects. For that reason particle effects can be placed on maps in form of map objects. The current version of our map editor Tiled does only support map objects partially. So the best way to place particle effects on maps is by editing the map files with a text editor.<br />
<br />
This is done by adding an <objectgroup> tag as a child tag of the <map> tag (when the map has't got an objectgroup tag yet). Then you add an <object> childtag for each particle effect you want to add to the map. The object tag has 4 properties:<br />
;type: Must be "PARTICLE_EFFECT"<br />
;name: The filename of the effect definition file of the effect.<br />
;x: Distance from the left border of the map in pixels.<br />
;y: Distance from the upper border of the map in pixels.<br />
<br />
As an example here the objectgroup block from the bat cave:<br />
<syntaxhighlight lang="xml"><br />
<objectgroup name="Object Group 1" width="0" height="0"><br />
<object name="graphics/particles/flame.particle.xml" type="PARTICLE_EFFECT" x="928" y="960" width="32" height="32"><br />
<properties/><br />
</object><br />
<object name="graphics/particles/flame.particle.xml" type="PARTICLE_EFFECT" x="992" y="960" width="32" height="32"><br />
<properties/><br />
</object><br />
</objectgroup><br />
</syntaxhighlight><br />
Note that this example includes a lot of unnecessary meta-information added by Tiled. The minimal version that can be parsed by the TMW client would be the following:<br />
<syntaxhighlight lang="xml"><br />
<objectgroup><br />
<object name="graphics/particles/flame.particle.xml" type="PARTICLE_EFFECT" x="928" y="960" /><br />
<object name="graphics/particles/flame.particle.xml" type="PARTICLE_EFFECT" x="992" y="960" /><br />
</objectgroup><br />
</syntaxhighlight><br />
Map-based particle effects are initialized when the player enters the map and are also calculated when the effect isn't on the screen of the player. For that reason you should not put too many effects with a lot of particles on one map. Otherwise you could hit the particleMaxCount limit.<br />
<br />
==Using the particle engine for programmers==<br />
The basic element of the particle engine is a special particle named "particleEngine". It maintains a tree of particle effects. Each particle has a position in three dimensional space (in this case the two dimensional game world is treated as a flat plane in a three dimensional space). Based on the type of particle it might or might not have:<br />
* Movement based on physical properties<br />
* A visual representation (a single image or an animation)<br />
* A list of emitters that create additional particles.<br />
<br />
The Particles are derived class from the "Sprite" class so that they can be added to the maps sprite list to be drawn together with the other sprites by the "map" class. <br />
<br />
=== Creation of effects ===<br />
Effects are created by calling particleEngine->addEffect(). The arguments are a particle effect definition file, the map coordinates (pixel-based) and the map on which the effect should be created. This creates a host particle that can have any number of emitters. The host particle is returned so it can be manipulated further. It is possible to create multiple host particles in one particle effect file. In that case only the last particle is returned.<br />
<br />
=== Effects that follow beings ===<br />
Beings can gain control of a particle. This happens by calling the controlParticle() member function of the Being class.<br />
<br />
The usual method to create a particle that follows a being is by calling particleEngine->addEffect() and pass the returned particle to controlParticle().<br />
<br />
Note that when a Being takes control of a particle it disables the automatic deletion of the particle. The being is now responsible for requesting the deletion of the particle by calling Particle::kill(). When it does the particle will be deleted after its next update.<br />
<br />
=== Homing particles ===<br />
A particle will be attracted by another particle when its acceleration is greater than 0. When a particle is created by an emitter the attracting particle is the host particle of the effect but it can be changed by calling Particle::setDestination(). I would always recommend to use a parent particle of the particle as a target because a segfault will occur when the target particle is deleted.<br />
<br />
==Possible Additions==<br />
<br />
Below is a list of proposed additions to the Particle System.<br />
===Delayed effects===<br />
In composite effects, it is often desirable to start a certain effect only after a certian amount of time has passed; for example, we might want to fade in a circle and only then suddenly flash a pentagram in its centre. This could be accomplished by an `on-death' emitter that is spawned when its parent particle dies.<br />
===Random animation===<br />
Random animation entry points/cel choices Right now, animation cels are looped through sequentially. For some effects, randomly picking one element each interval, or at least starting out at a random entry, may be preferable.<br />
===Orbiting particle improvement ===<br />
Orbitting particles need a reference point; right now this is fixed to be the `base' particle. We need an option to choose the parent, grandparent, ... instead.<br />
<br />
==In client particles testing==<br />
In ManaPlus possible to attach particle to player.<br />
For this can be used command:<br />
<br />
<code>/testparticle path/to/particle.xml</code><br />
<br />
For stop particle testing need run command:<br />
<br />
<code>/testparticle</code><br />
<br />
<br />
Client can automatically reload particle if it was changed.<br />
<br />
==Current problems and limitations==<br />
[[Image:Particle-engine-problem.png|thumb|250px]]<br />
<br />
Crush, I see the particles surrounding the player got across the wall because those tiles aren't marked as above the player. This happens in every map, I think. The solution would be to put the problematic a level up. This is not a limitation on the engine actually, but something that has to be fixed before committing to trunk. Unless you had something better in mind.<br />
<br />
: This can't be fixed that easily. The particles have to be drawn on the object layer so that they can be sorted with the other objects. Also note that it is usually the desired behavior that objects on the over layer are drawn over particles on the sprite layer. As a workaround i would suggest to use more thorough mapping in the future. That means to fill "empty" areas with black tiles on layer 2 instead of black tiles on the ground layer and to map cliffs that are clearly on the upper layer on layer 2.--[[User:Crush|Crush]] 21:58, 9 February 2007 (CET)<br />
<br />
I know. But it's still a problem. My intention was to bring it to light before the engine is merged to trunk and used extensively. --[[User:Pajarico|Pajarico]] 13:23, 10 February 2007 (CET)</div>4144https://wiki.themanaworld.org/index.php?title=Development:Git_repository&diff=26187Development:Git repository2013-04-16T19:23:17Z<p>4144: /* Initial setup */</p>
<hr />
<div>{{status_construction}}<br />
==Git==<br />
<br />
'''git''' is the name of the program intended to allow a team to work on a set of program sources, keep versions synchrone and make members team work easily known from others.<br />
[https://gitorious.org/about Gitorious] and [https://github.com/ github] are websites that provide free hosting of public git repositories. <br />
At some point we moved the content repositories from gitorious to github. See this forum topic [http://forums.themanaworld.org/viewtopic.php?p=121526#p121526] for reference. (Note server code was transferred to github since it was written)<br />
We are using the version control system Git as our main collaboration tool. You can use it to obtain all the sourcecode and content files you need to participate in the development or to create your own fork. <br />
<br />
See [http://en.wikipedia.org/wiki/Git_(software) the wikipedia article about Git] and [http://git-scm.com/ the Git homepage] for details about Git.<br />
<br />
In TMW wiki, information about Git is still located in several places where you may find contradictory information. We do apologize for that and work hard to let you have a clear information:<br />
* '''This page''': The actual links to various repositories should be up to date but some information about how to work with it is not.It still contains useful information and GUI's information should be correct. <br />
* '''[[How to Develop]]''' also duplicates some info which you can find else where. It will be completely re-written to make it the entry point of the wiki development part.<br />
* '''[[Working With Git]]''' contains the most up to date information to use Git with the command line. ''It is the actual reference that you should follow''. It is important to read it even if you plan to use a graphical user interface.<br />
== The primary repository ==<br />
<br />
=== Initial setup ===<br />
<br />
<br />
With Git, we'll have one repository for each project. The central repositories through which we cooperate are hosted on '''[https://github.com/ github.com]'''. '''github''' is a friendly website. On '''github''' the main repository for each project is called ''master''. Once you click to the master repository, you can see several ways to clone it (the new <code>svn checkout</code>).<br />
<br />
We've categorized all projects related to The Mana World, so you can easily see the complete [https://github.com/themanaworld list of The Mana World projects] on '''github'''. The projects have different forks (clone) URLs for browsing, read-only or developer access. The URL for developer access is called the "push URL", since it allows you to push commits into the repository via ssh. The list below is for your convenience.<br />
<br />
{|border="1" cellspacing="0" cellpadding="5"<br />
! Project<br />
! Read-only URL<br />
! Atom feed<br />
|-<br />
|colspan=4| <span style="color:White; background:Sienna">TMW, TMW eAthena</span><br />
|-<br />
| '''[https://github.com/themanaworld/tmw-branding TMW branding]'''<br />
| git://github.com/themanaworld/tmw-branding.git<br />
| [https://github.com/themanaworld/tmw-branding/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the branding files to turn Mana into TMW.<br />
|-<br />
| '''[https://github.com/themanaworld/tmwa.git eAthena server]'''<br />
| git://github.com/themanaworld/tmwa.git<br />
| [https://github.com/themanaworld/tmwa/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains our hacked up eAthena.<br />
|-<br />
| '''[https://github.com/themanaworld/tmwa-server-data tmwAthena Server data]'''<br />
| git://github.com/themanaworld/tmwa-server-data.git<br />
| [https://github.com/themanaworld/tmwa-server-data/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the server data developed for the tmwAthena server and used by The Mana World. <br />
|-<br />
| '''[https://github.com/themanaworld/tmwa-client-data TMW tmwAthena client data]'''<br />
| git://github.com/themanaworld/tmwa-client-data.git<br />
| [https://github.com/themanaworld/tmwa-client-data/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the data used by The Mana World clients for the tmwAthena server. .<br />
|-<br />
| '''[https://github.com/themanaworld/tmw-art TMW Art]'''<br />
| git://github.com/themanaworld/tmw-art.git<br />
| [https://github.com/themanaworld/tmw-art/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains some sources for our artwork.<br />
|-<br />
| '''[https://github.com/themanaworld/tmw-music TMW music]'''<br />
| git://github.com/themanaworld/tmw-music.git<br />
| [https://github.com/themanaworld/tmw-music/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the music used by The Mana World clients for the tmwAthena server. <br />
|-<br />
| '''[https://github.com/themanaworld/themanaworld-website TMW website]'''<br />
| git://github.com/themanaworld/themanaworld-website.git<br />
| [https://github.com/themanaworld/themanaworld-website/commits/master.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the website of The Mana World. <br />
|-<br />
|colspan=4|<span style="color:White; background:Sienna">Official client: ManaPlus.</span><br />
|-<br />
| '''[https://gitorious.org/manaplus/manaplus/ ManaPlus client]'''<br />
| git://gitorious.org/manaplus/manaplus.git <br />
| [https://gitorious.org/manaplus/manaplus.atom Atom]<br />
|-<br />
|colspan=4|This repository contains the ManaPlus client sources.<br />
|}<br />
<br />
For the Mana (the client) and Manaserv, look at http://doc.manasource.org/git_repository.<br />
<br />
Git uses ssh's private/public key authentication for identifying committers. For development purposes just clone the read-only URL, it will automatically switch to the push URL if you have:<br />
<br />
# Signed up to github.com<br />
# Generated a private/public ssh keypair (if you haven't got this already)<br />
# Filled in your public key in your account details on GitHub<br />
# Been added with commit rights to the repository<br />
# Followed the directions in the [How to Develop] page<br />
<br />
=== Cloning ===<br />
<br />
If you simply <code>git clone</code> the URL without any additional arguments, it will create the repository in a directory called "mainline". This is generally not what you want. Hence, after the clone url, you should pass the name of the directory you want to have created (just like with Subversion):<br />
<br />
$ git clone <clone_url> project<br />
<br />
If you want to have all projects in one place, you probably want to do something like this:<br />
<br />
$ mkdir tmw<br />
$ cd tmw<br />
$ git clone git@gitorious.org:tmw/mainline.git tmw<br />
$ git clone git@gitorious.org:tmw-eathena-data/mainline.git eathena-data<br />
etc.<br />
or for all of them in one go (after the cd tmw step):<br />
$ for repo in tmw tmwdata tmw-eathena tmw-eathena-data ; do git clone git://gitorious.org/${repo}/mainline.git $repo ; done<br />
<br />
The way Gitorious works, we can't have one top-level "tmw" project under which we put all these repositories, since they're really separate projects. Gitorious allows multiple repositories for each project, but they are clones of each other (you can only create new ones by cloning existing ones). This allows anybody (not just the development team) to make clones and start hacking on them. Changes can easily be merged from one one repository to another. So instead of all the inconvenience with TMW forks we had in the past, now comes the time to encourage people to clone!<br />
<br />
==== Shallow cloning for non-developers ====<br />
<br />
One of our repositories, tmwdata, has grown quite large cause of its long history filled with relatively large binary files. If you are only interested in getting the latest version, and have no need to be able to push back changes, then you can make a shallow clone:<br />
<br />
$ git clone --depth 1 git://gitorious.org/tmwdata/mainline.git tmwdata<br />
<br />
== Working with git ==<br />
=== Warning===<br />
All TMW specific repositories have been now moved to github:[https://github.com/themanaworld https://github.com/themanaworld] <br />
While the information included here is not false, a more up to date page has been written with the latest information:<br />
<br />
:::'''[[Working With Git]]'''<br />
<br />
You may also have a look to the original documentation at [http://git-scm.com/documentation http://git-scm.com/documentation]<br />
<br />
=== Commit ===<br />
<br />
From now on, a commit is something you do locally. Others won't see your change on Gitorious unless you push it there. You'll notice committing is very fast, and you can commit multiple times before you decide to push. You can also make corrections to your last commit.<br />
<br />
Before you start committing, it is important to identify yourself to git, so that it can include the correct authorship information with your commit. You are no longer identified with a username, as was the case with Subversion. You can read exactly how to do this, as well as other useful information geared towards people switching from Subversion, on this page:<br />
<br />
* '''Git - SVN Crash Course:''' http://git.or.cz/course/svn.html<br />
<br />
Sample commit message:<br />
This is the title. Keep this line short.<br />
<br />
This is a longer description of the commit, if needed. Keep these<br />
lines short too. A sample list:<br />
<nowiki>* Item 1</nowiki><br />
<nowiki>* Item 2</nowiki><br />
<nowiki>* Item 3</nowiki><br />
<br />
Another paragraph in the commit description. Blah blah blah.<br />
<br />
=== Pushing ===<br />
<br />
Once you have committed some stuff, you can push these to the repository on '''github''' using <code>git push</code>. This works since by default the push command pushes to a ''remote'' called ''origin'', and this remote is automatically set up when you clone. However, the push will fail if there have been new commits on the remote repository. In that case, you'll first have to pull in these changes (just like with Subversion, however Subversion allowed this as long as the same files weren't touched, git doesn't).<br />
<br />
=== Pulling ===<br />
<br />
When you want to get the latest changes from the repository on Gitorious, you generally use <code>git pull</code>. However, note that this command does not work when you have local changes. Also, when you have local commits, the pull command will generate a merge commit (and before that you may have to resolve some conflicts).<br />
<br />
If you don't want to create merge commits, but would rather stack your local commits on top of any incoming commits, you should use <code>git pull --rebase</code>. This ''rebases'' your local commits on top of the incoming ones. You should never do this when you have pushed these commits elsewhere, so only do it when you are sure the commits are only on your machine.<br />
<br />
If you have local changes and want to update your checkout, then there are several options:<br />
<br />
* You commit your local changes, and do a pull, optionally with --rebase.<br />
* Or you use <code>git stash</code> to place your local changes on a "hidden" stash. Then, after pulling, you apply your changes again with <code>git stash apply</code>.<br />
* Or you create a patch of your local changes that you apply again after the pull. This approach sometimes makes sense, but I would say in general it's the more clumsy way to go. There are git commands that help you with this though.<br />
<br />
=== Resolving conflicts ===<br />
<br />
Rather similar to Subversion. When there are conflicts, a merge or a rebase will add conflict markers into files. Use <code>git status</code> to see which files remain in conflict and use <code>git add</code> on files to mark them as resolved. When you did a merge and you have resolved all conflicts, you commit. When you were doing a rebase of several commits, you do <code>git rebase --continue</code> instead.<br />
<br />
=== Patch making ===<br />
<br />
Git has an easy way to send patches to other people to review and commit for you. After you have made a commit, <code>git format-patch</code> will make a patch out of it. The patch includes your author information the commit message you gave, and all the changes to be done. The recipient can just <code>git am [patch file]</code> to apply the commit. After it has been pushed, you'll need to remove the patch from your local repository, <code>git reset --hard HEAD^</code> will do that. If you don't do that, you'll get a conflict when your patch is pulled from the central repository.<br />
<br />
=== Good to know ===<br />
<br />
Git has several useful commands to figure out the current state of your repository, your files and what recently changed. Below is a non-exhaustive list of commands that are useful to know:<br />
<br />
* '''git branch''': Without any parameters, this command lists your local branches, and indicates which branch you're currently on.<br />
* '''git whatchanged''': This shows a list of all commits on the current branch similar to <code>git log</code>, but with a list of the files that have been touched in each commit as well.<br />
* '''git status''': This shows all kind of things about your current checkout: which files changed, untracked (unknown) files, added or removed files, files that have conflicts (during merge), etc. It also shows the status of your index, which is what git will commit once you do <code>git commit</code>. If you're new to git I would recommend to wait a bit with learning how to use the index, but not to avoid it forever.<br />
<br />
There are also additional applications that help you with using git:<br />
<br />
* '''gitk''': A simple but effective tool that visualizes the history and some of your current state. Run with <code>--all</code> to have it show all branches, otherwise it will just show stuff relevant to your current branch.<br />
* '''tig''': A textual interface, rather similar to an email reader.<br />
* '''git gui''': A gui tool like gitk which helps you prepare and perform your commits. Also makes it easier to understand the index concept.<br />
* '''Giggle'''<br />
* '''qgit'''<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]'<br />
<br />
=== git on Windows ===<br />
<br />
When using git on Windows you might use [http://msysgit.github.com/ msysgit]. If you notice that some files seem to have changed after doing a fresh clone, you may want to disable <code>core.autocrlf</code> using <code>git config core.autocrlf false</code>. However, this is not recommended for contributors since the setting makes sure you don't commit Windows style newlines into the repository. When encountering this problem it is usually best to consult other developers about the affected files.<br />
GitHub works uses the same tools as Git.<br />
:'''GUIs'''<br />
* '''GitHub for Windows''' : [http://windows.github.com/ http://windows.github.com/]<br />
* '''Git Extensions''' : [http://code.google.com/p/gitextensions/ http://code.google.com/p/gitextensions/]<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]<br />
=== git on MacOS X ===<br />
MacOSX is an unix system, BSD derived. Git works there mostly as on Linux systems. Go to the [http://git-scm.com/downloads official download site: http://git-scm.com/downloads] and choose the OS X link, download and install. You also may prefer [http://code.google.com/p/git-osx-installer/ http://code.google.com/p/git-osx-installer/] and add a graphical user interface later (links are on the same pages). Xcode and X11 are required if you want to install from sources. French users may also like: [https://gist.github.com/656299 https://gist.github.com/656299]<br />
:'''GUIs'''<br />
* '''GitHub for Mac''' github <br />
has it's own application that you can find at [http://mac.github.com/ http://mac.github.com/]. Among others, it has a very nice feature to be able to pull and push in one operation.<br />
* '''GitX''' : [http://gitx.laullon.com/ http://gitx.laullon.com/]<br />
* '''SourceTree''' : [http://www.sourcetreeapp.com/ http://www.sourcetreeapp.com/]<br />
* '''git-cola''' : [http://git-cola.github.com/ http://git-cola.github.com/]<br />
* '''SmartGit''' : [http://www.syntevo.com/smartgit/index.html http://www.syntevo.com/smartgit/index.html]<br />
<br />
===Glossary===<br />
You may like this very nice interactive memo: '''[http://ndpsoftware.com/git-cheatsheet.html git-cheatsheet]''' by [https://github.com/ndp Andrew Patterson] from NDP software.<br />
<br />
* Branch<br />
* Clone<br />
* Commit<br />
* Fork<br />
* Mainline <br />
* Master<br />
* Merge<br />
* Origin<br />
* Patch<br />
* Pull<br />
* Push<br />
* Stash<br />
* Tree<br />
<br />
[[Category:Reference]]</div>4144https://wiki.themanaworld.org/index.php?title=Development:Joining_the_project&diff=26185Development:Joining the project2013-04-16T19:15:58Z<p>4144: </p>
<hr />
<div>{{Status_outdated}}<br />
__NOTOC__ __NOEDITSECTION__<br />
{| cellspacing="3" cellpadding="3" width="100%"<br />
| colspan="2" style="border: 1px solid lightgrey;" |<br />
{| cellspacing="0" cellpadding="0"<br />
| style="vertical-align: center; text-align: center; padding: 0px 20px 0px 20px; font-style: italic;" |<br />
<br />
'What TMW is' is not an explicit definition anymore. In the future we'll be having 2 unrelated servers with different server technologies and different gameworlds.<br />
<br />
|}<br />
|-<br />
| style="border: 1px solid #e0c8b8; color: #000; background-color: #faeee6" valign="top" |<br />
==TMW-eA (current game)==<br />
<br />
So you want to help this project, but you have little or no idea how to get into it? The Mana World eA development team is not a closed circle like many other projects. You don't need to apply to anyone or ask for "being taken into the team". You don't have to ask for permission to work on something or wait for someone to assign a task to you. A team member is basically anyone who volunteers to do something for the game. For further information and assistance, you should contact Jaxad0127 either on the forums or in IRC.<br />
<br />
===Technical aspects===<br />
The technical aspects of development of TMW-eA include tweaking our residential TMW-eA server and server-sided software. The server is done in C and scripts are done in the eA scripting language. Notably TMW-eA is an SVN snapshot from [http://eathena.ws/ eAthena] (a [http://en.wikipedia.org/wiki/Ragnarok_Online Ragnarok Online] game server emulator software) in early 2004. We've extensively hacked it over the years (it was at the moment of taking the snapshot in transition from the basis of an old hacky [http://en.wikipedia.org/wiki/MUD MUD] server to the current eAthena codebase). The technical aspects of the TMW-eA project also include packaging data updates for the client.<br />
<br />
{| class="wikitable" border="1"<br />
| Client development is being done by the [http://manaplus.evolonline.org/ ManaPlus project].<br/> The client is done in C++.<br />
| ManaPlus issue tracker: [http://bugs.evolonline.org http://bugs.evolonline.org]<br />
|}<br />
<br />
<br />
<br />
===Content===<br />
Content means: new monsters, new equipment, new maps, new NPCs, new quests, new anything into the game.<br />
<br />
Content does not mean: GFX, SFX.<br />
<br />
Before anything can get into the game, it should be designed. After that it should be implemented server-sided. Then GFX and potentially also SFX can be requested for it and it can go into the game once they're done. Currently visioning ideas is a collective process anyone can take part in and the people doing scripting are cherry-picking whatever ideas they want to get into the game. Scripting stuff is also a free for all process. Once there is a good idea to expand the world, in general new maps can be requested. Reading the forums thoroughly and asking publicly usually gets you answers rather well.<br />
<br />
[http://forums.themanaworld.org/viewforum.php?f=13 TMW-eA content development forum]<br />
<br />
===Graphics===<br />
Graphics development could currently (May 2010) use a few pixel artists going about and retouching old mistakes in tilesets and monstersets. Also if the content development crowd picks up and starts to provide concepts which would require new GFX work to be done, then there is going to be a demand for new equipmentwork, tilesets and monstersets. Please remember to pay attention to our [[guidelines]].<br />
<br />
Also do hunt for unfulfilled REQ topics on the forums if you're looking for something to do. Newbie pixel artists or people doing their first pixel art piece ever are also very welcome. The community can be pretty harsh at times, but there are also people around who actually do know what they're talking about. It is up to you to distinguish between these two.<br />
<br />
[http://forums.themanaworld.org/viewforum.php?f=8 TMW-eA GFX development forum]<br />
<br />
===SFX / Music===<br />
The SFX and music development scheme for TMW-eA is currently not really all that active and occasionally some things are discussed over at content development.<br />
<br />
| rowspan="2" style="width: 50%; border: 1px solid #c9c9ff; color: #000; background-color: #f3f3ff" valign="top" |<br />
<br />
==TMW (the future dream, currently doing CR1)==<br />
<br />
This paragraph has been moved to [[Joining the project/CR1]] as Manaserv and CR1 which is related are not really active at the moment. The only Manaserv active project is Source of Tales: http://www.sourceoftales.org/<br />
<br />
<br />
<br />
<br />
|}<br />
<br />
{| cellspacing="3" cellpadding="3" width="100%"<br />
| colspan="2" style="border: 1px solid lightgreen;" |<br />
{| cellspacing="0" cellpadding="0"</div>4144https://wiki.themanaworld.org/index.php?title=Reporting_Bugs&diff=26184Reporting Bugs2013-04-16T19:07:54Z<p>4144: /* Bug Tracker */</p>
<hr />
<div>==Check that your problem hasn't been reported already==<br />
<br />
The only supported client is the '''official client'''. If you have an issue which involve your client switch first to the official client and check if the problem persists before reporting.<br />
<br />
First use the '''Search''' feature on the forum to check if the issue you are experiencing was not posted before.: http://forums.themanaworld.org/search.php <br />
<br />
For server and content bugs, check the '''mantis''' Bug Tracker, maybe someone already posted same issue and it is being worked on: https://github.com/themanaworld/ in issues section, and for bugs concerning the official client: http://bugs.evolonline.org/<br />
<br />
Optionally, check the repositories:<br />
<br />
*server-code: https://github.com/themanaworld/tmwa<br />
<br />
*server-data: https://github.com/themanaworld/tmwa-server-data<br />
<br />
*client-data: https://github.com/themanaworld/tmwa-client-data<br />
<br />
*client-code: https://gitorious.org/manaplus/manaplus/<br />
<br />
==Where to report?==<br />
<br />
===Forum===<br />
If you are not sure that your problem is a bug or you are not sure that you can report it correctly, forum moderators, developers and players will help you or do it for you; report in: <br />
''Board index » Community » Player talk'': http://forums.themanaworld.org/viewforum.php?f=12<br />
<br />
You have strong reasons to suspect the content, the server or the client; report in the appropriate forum:<br />
''Board index » Support'': http://forums.themanaworld.org/viewforum.php?f=19<br />
<br />
be sure to read: ''Board index » Support » General support » Read Me First: How To Report Bugs'': http://forums.themanaworld.org/viewtopic.php?f=3&t=1178<br />
<br />
===IRC===<br />
You are not sure that your problem is a bug:<br />
IRC #support channel : [http://irc.themanaworld.org#tmw-support irc.themanaworld.org#tmw-support]<br />
<br />
You are almost sure that your problem is a bug:<br />
IRC #development channel : [http://irc.themanaworld.org#tmw-dev irc.themanaworld.org#tmw-dev]<br />
<br />
Your problem concerns the Manaplus Client:<br />
IRC #ManaPlus channel: [http://irc.freenode.org#manaplus irc.freenode.org#manaplus]<br />
<br />
===Bug Tracker===<br />
Bug tracker is a powerful tool, users need to be a bit aware of the way game works. Anonymous log-in is possible.<br />
<br />
*Content and server: https://github.com/themanaworld/<br />
<br />
*Official Client: ManaPlus: https://gitorious.org/manaplus/manaplus/<br />
<br />
*If you issue involves the Manasource client, report to http://bugs.manasource.org/<br />
<br />
==How to report?==<br />
<br />
Here again the information that the developers need to solve the problem must be as complete and precise as possible.<br />
<br />
In Client issues, specify your system name, version and architecture, and client version. It is very good idea to include the name of your OS in the topic title, for example: Windows XP: Game is crashing when...<br />
Be verbose, post backtrace, strace, content of tmw.log, versions of dependent software etc. Make sure that all [[Dependencies]] are installed and have correct versions.<br />
<br />
Respect the time of developers and helpers - use descriptive topic titles, subjects like "OMFG game isn't working", "WTF HELP!", "GOT PROBLEM!" are not acceptable, and usually indicates that the author is a person not to be treated seriously. Good topic title is eg.: Linux: Can't load map file - unknown error. Posts which contains rude remarks, foul language or are duplicated will be closed without any notice. <br />
<br />
Note that in order to fix a bug, a programmer needs an exact way to reproduce the circumstances which lead to it:<br />
"I had Item X and later I hadn't had it anymore" isn't enough information to pinpoint an issue. On the other hand "when you do X and Y while W and Z, and then you take a towel our of storage, you always get an orange instead" would be a bug description a programmer can actually use.<br />
<br />
If you have a patch, post in Technical Development or Content Development:http://forums.themanaworld.org/viewforum.php?f=18 (Content and Server) and http://forums.themanaworld.org/viewforum.php?f=19 for client.<br />
<br />
When you use a pastebin, make sure to check the longest possible expiration setting.<br />
<br />
'''WIKI errors:'''<br />
Errors on the '''wiki''' should be fixed by the one who notices them - that's the point of a wiki. When the documentation is wrong, you should make it correct.<br />
<br />
==Testing==<br />
<br />
Before developers release game content onto the official server, they'd like feedback from other developers and playtesters.<br />
If you are interested in content testing watch the [[Testing Server]] page in this wiki.</div>4144https://wiki.themanaworld.org/index.php?title=Reporting_Bugs&diff=26183Reporting Bugs2013-04-16T19:05:24Z<p>4144: /* Check that your problem hasn't been reported already */</p>
<hr />
<div>==Check that your problem hasn't been reported already==<br />
<br />
The only supported client is the '''official client'''. If you have an issue which involve your client switch first to the official client and check if the problem persists before reporting.<br />
<br />
First use the '''Search''' feature on the forum to check if the issue you are experiencing was not posted before.: http://forums.themanaworld.org/search.php <br />
<br />
For server and content bugs, check the '''mantis''' Bug Tracker, maybe someone already posted same issue and it is being worked on: https://github.com/themanaworld/ in issues section, and for bugs concerning the official client: http://bugs.evolonline.org/<br />
<br />
Optionally, check the repositories:<br />
<br />
*server-code: https://github.com/themanaworld/tmwa<br />
<br />
*server-data: https://github.com/themanaworld/tmwa-server-data<br />
<br />
*client-data: https://github.com/themanaworld/tmwa-client-data<br />
<br />
*client-code: https://gitorious.org/manaplus/manaplus/<br />
<br />
==Where to report?==<br />
<br />
===Forum===<br />
If you are not sure that your problem is a bug or you are not sure that you can report it correctly, forum moderators, developers and players will help you or do it for you; report in: <br />
''Board index » Community » Player talk'': http://forums.themanaworld.org/viewforum.php?f=12<br />
<br />
You have strong reasons to suspect the content, the server or the client; report in the appropriate forum:<br />
''Board index » Support'': http://forums.themanaworld.org/viewforum.php?f=19<br />
<br />
be sure to read: ''Board index » Support » General support » Read Me First: How To Report Bugs'': http://forums.themanaworld.org/viewtopic.php?f=3&t=1178<br />
<br />
===IRC===<br />
You are not sure that your problem is a bug:<br />
IRC #support channel : [http://irc.themanaworld.org#tmw-support irc.themanaworld.org#tmw-support]<br />
<br />
You are almost sure that your problem is a bug:<br />
IRC #development channel : [http://irc.themanaworld.org#tmw-dev irc.themanaworld.org#tmw-dev]<br />
<br />
Your problem concerns the Manaplus Client:<br />
IRC #ManaPlus channel: [http://irc.freenode.org#manaplus irc.freenode.org#manaplus]<br />
<br />
===Bug Tracker===<br />
Bug tracker is a powerful tool, users need to be a bit aware of the way game works. Anonymous log-in is possible.<br />
<br />
*Content and server: Mantis: http://mantis.themanaworld.org/<br />
<br />
*Official Client: Manasource: http://bugs.manasource.org/<br />
<br />
*If you issue involves the Manaplus Client, report to http://bugs.evolonline.org/<br />
<br />
==How to report?==<br />
<br />
Here again the information that the developers need to solve the problem must be as complete and precise as possible.<br />
<br />
In Client issues, specify your system name, version and architecture, and client version. It is very good idea to include the name of your OS in the topic title, for example: Windows XP: Game is crashing when...<br />
Be verbose, post backtrace, strace, content of tmw.log, versions of dependent software etc. Make sure that all [[Dependencies]] are installed and have correct versions.<br />
<br />
Respect the time of developers and helpers - use descriptive topic titles, subjects like "OMFG game isn't working", "WTF HELP!", "GOT PROBLEM!" are not acceptable, and usually indicates that the author is a person not to be treated seriously. Good topic title is eg.: Linux: Can't load map file - unknown error. Posts which contains rude remarks, foul language or are duplicated will be closed without any notice. <br />
<br />
Note that in order to fix a bug, a programmer needs an exact way to reproduce the circumstances which lead to it:<br />
"I had Item X and later I hadn't had it anymore" isn't enough information to pinpoint an issue. On the other hand "when you do X and Y while W and Z, and then you take a towel our of storage, you always get an orange instead" would be a bug description a programmer can actually use.<br />
<br />
If you have a patch, post in Technical Development or Content Development:http://forums.themanaworld.org/viewforum.php?f=18 (Content and Server) and http://forums.themanaworld.org/viewforum.php?f=19 for client.<br />
<br />
When you use a pastebin, make sure to check the longest possible expiration setting.<br />
<br />
'''WIKI errors:'''<br />
Errors on the '''wiki''' should be fixed by the one who notices them - that's the point of a wiki. When the documentation is wrong, you should make it correct.<br />
<br />
==Testing==<br />
<br />
Before developers release game content onto the official server, they'd like feedback from other developers and playtesters.<br />
If you are interested in content testing watch the [[Testing Server]] page in this wiki.</div>4144https://wiki.themanaworld.org/index.php?title=Net:0x0212&diff=25631Net:0x02122013-02-14T21:20:03Z<p>4144: </p>
<hr />
<div>{{packet<br />
|nicename=Npc commands<br />
|id=0x0212<br />
|mode={{{mode}}}<br />
|length=16<br />
|define=SMSG_NPC_COMMAND<br />
|sent=Not in TMWA yet<br />
|parsed={{ManaPlus location|src/net/tmwa/npchandler.cpp}}<br />
<br />
|fields=<br />
{{packet field | 0 | 2 | packet id }}<br />
{{packet field | 0 | 4 | npc id }}<br />
{{packet field | 0 | 2 | command }}<br />
{{packet field | 0 | 4 | id }}<br />
{{packet field | 0 | 2 | x }}<br />
{{packet field | 0 | 2 | y }}<br />
<br />
|description=<br />
<br />
different command from npc to client<br />
<br />
}}<br />
<br />
{| class="wikitable"<br />
! command || id || x || y || description<br />
|-<br />
| 0 || || || || request language from client<br />
|-<br />
| 1 || || || || move camera to npcid position<br />
|-<br />
| 2 || + || + || + || If id = 0 it move camera to pixel position x,y<br />
If id != 0, it move camera to npcid with pixel offset x,y<br />
|-<br />
| 3 || || || || Return camera to normal position<br />
|-<br />
| 4 || || + || + || Move camera relative to x,y pixels<br />
|-<br />
| 5 || || || || Close npc dialog<br />
|-<br />
| 6 || + || || || Show npc avatar with ID<br />
|-<br />
| 7 || + || || || Set avatar direction to ID<br />
|-<br />
| 8 || + || || || Set avatar action to ID<br />
|-<br />
| 9 || || || || Clear npc dialog from text<br />
|}</div>4144https://wiki.themanaworld.org/index.php?title=Net:0x0212&diff=25630Net:0x02122013-02-14T20:50:47Z<p>4144: </p>
<hr />
<div>{{packet<br />
|nicename=Npc commands<br />
|id=0x0212<br />
|mode={{{mode}}}<br />
|length=16<br />
|define=SMSG_NPC_COMMAND<br />
|sent=Not in TMWA yet<br />
|parsed={{ManaPlus location|src/net/tmwa/npchandler.cpp}}<br />
<br />
|fields=<br />
{{packet field | 0 | 2 | packet id }}<br />
{{packet field | 0 | 4 | npc id }}<br />
{{packet field | 0 | 2 | cmd }}<br />
{{packet field | 0 | 4 | id }}<br />
{{packet field | 0 | 2 | x }}<br />
{{packet field | 0 | 2 | y }}<br />
<br />
|description=<br />
<br />
different command from npc to client<br />
<br />
}}</div>4144https://wiki.themanaworld.org/index.php?title=Net:0x0212&diff=25629Net:0x02122013-02-14T20:35:16Z<p>4144: </p>
<hr />
<div>{{packet<br />
|nicename=Put Name Here<br />
|id=0x0212<br />
|mode={{{mode}}}<br />
|length=16<br />
|define=SMSG_NPC_COMMAND<br />
|sent=Not in TMWA yet<br />
|parsed={{ManaPlus location|src/net/tmwa/npchandler.cpp}}<br />
<br />
|fields=<br />
{{packet field | 0 | 2 | packet id }}<br />
{{packet field | 0 | 4 | npc id }}<br />
{{packet field | 0 | 2 | cmd }}<br />
{{packet field | 0 | 4 | id }}<br />
{{packet field | 0 | 2 | x }}<br />
{{packet field | 0 | 2 | y }}<br />
<br />
|description=<br />
<br />
different command from npc to client<br />
<br />
}}</div>4144https://wiki.themanaworld.org/index.php?title=Net:0x0212&diff=25628Net:0x02122013-02-14T20:29:30Z<p>4144: </p>
<hr />
<div>{{packet<br />
|nicename=Put Name Here<br />
|id=0x0212<br />
|mode={{{mode}}}<br />
|length=16<br />
|define=SMSG_NPC_COMMAND<br />
|sent=Not in TMWA yet<br />
|parsed={{ManaPlus location|src/net/tmwa/npchandler.cpp}}<br />
<br />
|fields=<br />
{{packet field | 0 | 2 | packet id }}<br />
{{packet field | 0 | 4 | npc id }}<br />
{{packet field | 0 | 2 | cmd }}<br />
{{packet field | 0 | 4 | id }}<br />
{{packet field | 0 | 2 | x }}<br />
{{packet field | 0 | 2 | y }}<br />
<br />
<br />
|description=<br />
<br />
Put long text here<br />
<br />
}}</div>4144https://wiki.themanaworld.org/index.php?title=Net:0x0212&diff=25627Net:0x02122013-02-14T20:23:01Z<p>4144: </p>
<hr />
<div>{{packet<br />
|nicename=Put Name Here<br />
|id=0x0212<br />
|mode={{{mode}}}<br />
|length=16<br />
|define=SMSG_NPC_COMMAND<br />
|sent=Not in TMWA yet<br />
|parsed={{ManaPlus location|src/net/tmwa/npchandler.cpp}}<br />
<br />
|fields=<br />
{{packet field | 0 | 2 | packet ID }}<br />
<br />
<br />
|description=<br />
<br />
Put long text here<br />
<br />
}}</div>4144https://wiki.themanaworld.org/index.php?title=Archive:TmwAthena_Packets&diff=25012Archive:TmwAthena Packets2012-11-26T18:55:37Z<p>4144: /* Free Packets */</p>
<hr />
<div>== Packets ==<br />
This is a new table that steal information from individual packet pages.<br />
<br />
<table border="1" cellspacing="0" cellpadding="3" class="wikitable sortable"><br />
<tr valign="top"><br />
<th>packet</th> <th>len</th> <th>client define</th> <th>sent location(s)</th> <th>parse location</th><br />
</tr><br />
<br />
{{:Packet:0x0061|mode=row}}<br />
{{:Packet:0x0062|mode=row}}<br />
{{:Packet:0x0063|mode=row}}<br />
{{:Packet:0x0064|mode=row}}<br />
{{:Packet:0x0065|mode=row}}<br />
{{:Packet:0x0066|mode=row}}<br />
{{:Packet:0x0067|mode=row}}<br />
{{:Packet:0x0068|mode=row}}<br />
{{:Packet:0x0069|mode=row}}<br />
{{:Packet:0x006A|mode=row}}<br />
{{:Packet:0x006B|mode=row}}<br />
{{:Packet:0x006C|mode=row}}<br />
{{:Packet:0x006D|mode=row}}<br />
{{:Packet:0x006E|mode=row}}<br />
{{:Packet:0x006F|mode=row}}<br />
<br />
{{:Packet:0x0070|mode=row}}<br />
{{:Packet:0x0071|mode=row}}<br />
{{:Packet:0x0072|mode=row}}<br />
{{:Packet:0x0073|mode=row}}<br />
{{:Packet:0x0078|mode=row}}<br />
{{:Packet:0x007B|mode=row}}<br />
{{:Packet:0x007C|mode=row}}<br />
{{:Packet:0x007D|mode=row}}<br />
{{:Packet:0x007E|mode=row}}<br />
{{:Packet:0x007F|mode=row}}<br />
<br />
{{:Packet:0x0080|mode=row}}<br />
{{:Packet:0x0081|mode=row}}<br />
{{:Packet:0x0085|mode=row}}<br />
{{:Packet:0x0086|mode=row}}<br />
{{:Packet:0x0087|mode=row}}<br />
{{:Packet:0x0088|mode=row}}<br />
{{:Packet:0x0089|mode=row}}<br />
{{:Packet:0x008A|mode=row}}<br />
{{:Packet:0x008C|mode=row}}<br />
{{:Packet:0x008D|mode=row}}<br />
{{:Packet:0x008E|mode=row}}<br />
<br />
{{:Packet:0x0090|mode=row}}<br />
{{:Packet:0x0091|mode=row}}<br />
{{:Packet:0x0092|mode=row}}<br />
{{:Packet:0x0094|mode=row}}<br />
{{:Packet:0x0095|mode=row}}<br />
{{:Packet:0x0096|mode=row}}<br />
{{:Packet:0x0097|mode=row}}<br />
{{:Packet:0x0098|mode=row}}<br />
{{:Packet:0x0099|mode=row}}<br />
{{:Packet:0x009A|mode=row}}<br />
{{:Packet:0x009B|mode=row}}<br />
{{:Packet:0x009C|mode=row}}<br />
{{:Packet:0x009D|mode=row}}<br />
{{:Packet:0x009E|mode=row}}<br />
{{:Packet:0x009F|mode=row}}<br />
<br />
{{:Packet:0x00A0|mode=row}}<br />
{{:Packet:0x00A1|mode=row}}<br />
{{:Packet:0x00A2|mode=row}}<br />
{{:Packet:0x00A4|mode=row}}<br />
{{:Packet:0x00A6|mode=row}}<br />
{{:Packet:0x00A7|mode=row}}<br />
{{:Packet:0x00A8|mode=row}}<br />
{{:Packet:0x00A9|mode=row}}<br />
{{:Packet:0x00AA|mode=row}}<br />
{{:Packet:0x00AB|mode=row}}<br />
{{:Packet:0x00AC|mode=row}}<br />
{{:Packet:0x00AF|mode=row}}<br />
<br />
{{:Packet:0x00B0|mode=row}}<br />
{{:Packet:0x00B1|mode=row}}<br />
{{:Packet:0x00B2|mode=row}}<br />
{{:Packet:0x00B3|mode=row}}<br />
{{:Packet:0x00B4|mode=row}}<br />
{{:Packet:0x00B5|mode=row}}<br />
{{:Packet:0x00B6|mode=row}}<br />
{{:Packet:0x00B7|mode=row}}<br />
{{:Packet:0x00B8|mode=row}}<br />
{{:Packet:0x00B9|mode=row}}<br />
{{:Packet:0x00BB|mode=row}}<br />
{{:Packet:0x00BC|mode=row}}<br />
{{:Packet:0x00BD|mode=row}}<br />
{{:Packet:0x00BE|mode=row}}<br />
{{:Packet:0x00BF|mode=row}}<br />
<br />
{{:Packet:0x00C0|mode=row}}<br />
{{:Packet:0x00C1|mode=row}}<br />
{{:Packet:0x00C2|mode=row}}<br />
{{:Packet:0x00C3|mode=row}}<br />
{{:Packet:0x00C4|mode=row}}<br />
{{:Packet:0x00C5|mode=row}}<br />
{{:Packet:0x00C6|mode=row}}<br />
{{:Packet:0x00C7|mode=row}}<br />
{{:Packet:0x00C8|mode=row}}<br />
{{:Packet:0x00C9|mode=row}}<br />
{{:Packet:0x00CA|mode=row}}<br />
{{:Packet:0x00CB|mode=row}}<br />
{{:Packet:0x00CC|mode=row}}<br />
{{:Packet:0x00CD|mode=row}}<br />
<br />
<br />
{{:Packet:0x00E4|mode=row}}<br />
{{:Packet:0x00E5|mode=row}}<br />
{{:Packet:0x00E6|mode=row}}<br />
{{:Packet:0x00E7|mode=row}}<br />
{{:Packet:0x00E8|mode=row}}<br />
{{:Packet:0x00E9|mode=row}}<br />
{{:Packet:0x00EB|mode=row}}<br />
{{:Packet:0x00EC|mode=row}}<br />
{{:Packet:0x00ED|mode=row}}<br />
{{:Packet:0x00EE|mode=row}}<br />
{{:Packet:0x00EF|mode=row}}<br />
<br />
{{:Packet:0x00F0|mode=row}}<br />
{{:Packet:0x00F2|mode=row}}<br />
{{:Packet:0x00F3|mode=row}}<br />
{{:Packet:0x00F4|mode=row}}<br />
{{:Packet:0x00F5|mode=row}}<br />
{{:Packet:0x00F6|mode=row}}<br />
{{:Packet:0x00F7|mode=row}}<br />
{{:Packet:0x00F8|mode=row}}<br />
{{:Packet:0x00F9|mode=row}}<br />
{{:Packet:0x00FA|mode=row}}<br />
{{:Packet:0x00FB|mode=row}}<br />
{{:Packet:0x00FC|mode=row}}<br />
{{:Packet:0x00FD|mode=row}}<br />
{{:Packet:0x00FE|mode=row}}<br />
{{:Packet:0x00FF|mode=row}}<br />
<br />
{{:Packet:0x0100|mode=row}}<br />
{{:Packet:0x0101|mode=row}}<br />
{{:Packet:0x0102|mode=row}}<br />
{{:Packet:0x0103|mode=row}}<br />
{{:Packet:0x0104|mode=row}}<br />
{{:Packet:0x0105|mode=row}}<br />
{{:Packet:0x0106|mode=row}}<br />
{{:Packet:0x0107|mode=row}}<br />
{{:Packet:0x0108|mode=row}}<br />
{{:Packet:0x0109|mode=row}}<br />
{{:Packet:0x010C|mode=row}}<br />
{{:Packet:0x010E|mode=row}}<br />
{{:Packet:0x010F|mode=row}}<br />
<br />
{{:Packet:0x0110|mode=row}}<br />
{{:Packet:0x0112|mode=row}}<br />
{{:Packet:0x0113|mode=row}}<br />
{{:Packet:0x0116|mode=row}}<br />
{{:Packet:0x0119|mode=row}}<br />
{{:Packet:0x011B|mode=row}}<br />
<br />
<br />
{{:Packet:0x0139|mode=row}}<br />
{{:Packet:0x013A|mode=row}}<br />
{{:Packet:0x013B|mode=row}}<br />
{{:Packet:0x013C|mode=row}}<br />
<br />
{{:Packet:0x0141|mode=row}}<br />
{{:Packet:0x0142|mode=row}}<br />
{{:Packet:0x0143|mode=row}}<br />
{{:Packet:0x0146|mode=row}}<br />
{{:Packet:0x0148|mode=row}}<br />
{{:Packet:0x0149|mode=row}}<br />
{{:Packet:0x014C|mode=row}}<br />
{{:Packet:0x014D|mode=row}}<br />
{{:Packet:0x014E|mode=row}}<br />
{{:Packet:0x014F|mode=row}}<br />
<br />
{{:Packet:0x0151|mode=row}}<br />
{{:Packet:0x0152|mode=row}}<br />
{{:Packet:0x0153|mode=row}}<br />
{{:Packet:0x0154|mode=row}}<br />
{{:Packet:0x0155|mode=row}}<br />
{{:Packet:0x0156|mode=row}}<br />
{{:Packet:0x0159|mode=row}}<br />
{{:Packet:0x015A|mode=row}}<br />
{{:Packet:0x015B|mode=row}}<br />
{{:Packet:0x015C|mode=row}}<br />
{{:Packet:0x015D|mode=row}}<br />
{{:Packet:0x015E|mode=row}}<br />
<br />
{{:Packet:0x0160|mode=row}}<br />
{{:Packet:0x0161|mode=row}}<br />
{{:Packet:0x0162|mode=row}}<br />
{{:Packet:0x0163|mode=row}}<br />
{{:Packet:0x0165|mode=row}}<br />
{{:Packet:0x0166|mode=row}}<br />
{{:Packet:0x0167|mode=row}}<br />
{{:Packet:0x0168|mode=row}}<br />
{{:Packet:0x0169|mode=row}}<br />
{{:Packet:0x016A|mode=row}}<br />
{{:Packet:0x016B|mode=row}}<br />
{{:Packet:0x016C|mode=row}}<br />
{{:Packet:0x016D|mode=row}}<br />
{{:Packet:0x016E|mode=row}}<br />
{{:Packet:0x016F|mode=row}}<br />
<br />
{{:Packet:0x0170|mode=row}}<br />
{{:Packet:0x0171|mode=row}}<br />
{{:Packet:0x0172|mode=row}}<br />
{{:Packet:0x0173|mode=row}}<br />
{{:Packet:0x0174|mode=row}}<br />
{{:Packet:0x017E|mode=row}}<br />
{{:Packet:0x017F|mode=row}}<br />
<br />
{{:Packet:0x0180|mode=row}}<br />
{{:Packet:0x0181|mode=row}}<br />
{{:Packet:0x0183|mode=row}}<br />
{{:Packet:0x0184|mode=row}}<br />
{{:Packet:0x018A|mode=row}}<br />
{{:Packet:0x018B|mode=row}}<br />
<br />
{{:Packet:0x0190|mode=row}}<br />
{{:Packet:0x0195|mode=row}}<br />
{{:Packet:0x0196|mode=row}}<br />
{{:Packet:0x019B|mode=row}}<br />
{{:Packet:0x019C|mode=row}}<br />
{{:Packet:0x019D|mode=row}}<br />
<br />
<br />
{{:Packet:0x01B1|mode=row}}<br />
{{:Packet:0x01B6|mode=row}}<br />
<br />
{{:Packet:0x01C8|mode=row}}<br />
<br />
{{:Packet:0x01D4|mode=row}}<br />
{{:Packet:0x01D5|mode=row}}<br />
{{:Packet:0x01D7|mode=row}}<br />
{{:Packet:0x01D8|mode=row}}<br />
{{:Packet:0x01D9|mode=row}}<br />
{{:Packet:0x01DA|mode=row}}<br />
{{:Packet:0x01DE|mode=row}}<br />
<br />
{{:Packet:0x01EE|mode=row}}<br />
<br />
{{:Packet:0x01F0|mode=row}}<br />
<br />
{{:Packet:0x020C|mode=row}}<br />
<br />
<!-- Internal packets not documented. --><br />
<br />
{{:Packet:0x7530|mode=row}}<br />
{{:Packet:0x7531|mode=row}}<br />
<br />
</table><br />
<br />
== Used packets ==<br />
{| border="1" cellspacing="0" cellpadding="3"<br />
|-valign="top"<br />
!packet !! len !! client define !! sent location(s) !! parse location<br />
|-valign="top"<br />
|0x0061 || 50 || CMSG_CHAR_PASSWORD_CHANGE || src/net/tmwa/loginhandler.cpp:264 || src/char/char.c:3036<br />
|-valign="top"<br />
|0x0062 || 3 || SMSG_CHAR_PASSWORD_RESPONSE || src/char/char.c:2368 || src/net/tmwa/loginhandler.cpp:71<br />
|-valign="top"<br />
|0x0063 || -1 || SMSG_UPDATE_HOST || src/login/login.c:3732 || src/net/tmwa/loginhandler.cpp:103<br />
|-valign="top"<br />
|0x0064 || 55 || (hard-coded) || src/net/tmwa/loginhandler.cpp:298 || src/login/login.c:3644<br />
|-valign="top"<br />
|0x0065 || 17 || CMSG_CHAR_SERVER_CONNECT || src/net/tmwa/charserverhandler.cpp:340 || src/char/char.c:3049<br />
|-valign="top"<br />
|0x0066 || 3 || CMSG_CHAR_SELECT || src/net/tmwa/charserverhandler.cpp:283<br>src/char/char.c:3424 || src/char/char.c:3142<br />
|-valign="top"<br />
|0x0067 || 37 || CMSG_CHAR_CREATE || src/net/tmwa/charserverhandler.cpp:291 || src/char/char.c:3312<br />
|-valign="top"<br />
|0x0068 || 46 || CMSG_CHAR_DELETE || src/net/tmwa/charserverhandler.cpp:306 || src/char/char.c:3387<br />
|-valign="top"<br />
|0x0069 || -1 || SMSG_LOGIN_DATA || src/login/login.c:3795 || src/net/tmwa/loginhandler.cpp:114<br />
|-valign="top"<br />
|0x006A || 23 || SMSG_LOGIN_ERROR || src/login/login.c:3683<br>src/login/login.c:3833 || src/net/tmwa/loginhandler.cpp:149<br />
|-valign="top"<br />
|0x006B || -1 || SMSG_CHAR_LOGIN || src/char/char.c:1660 || src/net/tmwa/charserverhandler.cpp:101<br />
|-valign="top"<br />
|0x006C || 3 || SMSG_CHAR_LOGIN_ERROR || src/char/char.c:1948<br>src/char/char.c:1970<br>src/char/char.c:3110<br>src/char/char.c:3133 || src/net/tmwa/charserverhandler.cpp:75<br />
|-valign="top"<br />
|0x006D || 108 || SMSG_CHAR_CREATE_SUCCEEDED || src/char/char.c:3325 || src/net/tmwa/charserverhandler.cpp:118<br />
|-valign="top"<br />
|0x006E || 3 || SMSG_CHAR_CREATE_FAILED || src/char/char.c:3318 || src/net/tmwa/charserverhandler.cpp:137<br />
|-valign="top"<br />
|0x006F || 2 || SMSG_CHAR_DELETE_SUCCEEDED || src/char/char.c:3496 || src/net/tmwa/charserverhandler.cpp:144<br />
|-valign="top"<br />
|0x0070 || 3 || SMSG_CHAR_DELETE_FAILED || src/char/char.c:3156<br>src/char/char.c:3401<br>src/char/char.c:3432<br>src/char/char.c:3504 || src/net/tmwa/charserverhandler.cpp:153<br />
|-valign="top"<br />
|0x0071 || 28 || SMSG_CHAR_MAP_INFO || src/char/char.c:3272 || src/net/tmwa/charserverhandler.cpp:158<br />
|-valign="top"<br />
|0x0072 || 19 || CMSG_MAP_SERVER_CONNECT || src/net/tmwa/gamehandler.cpp:124 || src/map/clif.c:6729<br />
|-valign="top"<br />
|0x0073 || 11 || SMSG_MAP_LOGIN_SUCCESS || src/map/clif.c:609 || src/net/tmwa/gamehandler.cpp:67<br />
|-valign="top"<br />
|0x0078 || 54 || SMSG_BEING_VISIBLE || src/map/clif.c:823<br>src/map/clif.c:1060<br>src/map/clif.c:1185<br>src/map/clif.c:1382 || src/net/tmwa/beinghandler.cpp:121<br />
|-valign="top"<br />
|0x007B || 60 || SMSG_BEING_MOVE || src/map/clif.c:912<br>src/map/clif.c:1122 || src/net/tmwa/beinghandler.cpp:122<br />
|-valign="top"<br />
|0x007C || 41 || SMSG_BEING_SPAWN || src/map/clif.c:1279<br>src/map/clif.c:1347<br>src/map/clif.c:1372<br>src/map/clif.c:1414 || src/net/tmwa/beinghandler.cpp:239<br />
|-valign="top"<br />
|0x007D || 2 || CMSG_MAP_LOADED || src/net/tmwa/gamehandler.cpp:152 || src/map/clif.c:6786<br />
|-valign="top"<br />
|0x007E || 6 || CMSG_CLIENT_PING || src/net/tmwa/gamehandler.cpp:166 || src/map/clif.c:6942<br />
|-valign="top"<br />
|0x007F || 6 || SMSG_SERVER_PING || src/map/clif.c:1445 || src/net/tmwa/gamehandler.cpp:81<br />
|-valign="top"<br />
|0x0080 || 7 || SMSG_BEING_REMOVE || src/map/clif.c:65<br>src/map/clif.c:791 || src/net/tmwa/beinghandler.cpp:273<br />
|-valign="top"<br />
|0x0081 || 3 || SMSG_CONNECTION_PROBLEM || src/login/login.c:3700<br>src/login/login.c:3824<br>src/char/char.c:3264<br>src/map/clif.c:628 || src/net/tmwa/generalhandler.cpp:122<br />
|-valign="top"<br />
|0x0085 || 5 || CMSG_PLAYER_CHANGE_DEST || src/net/tmwa/playerhandler.cpp:621 || src/map/clif.c:6955<br />
|-valign="top"<br />
|0x0086 || 16 || SMSG_BEING_MOVE2 || || src/net/tmwa/beinghandler.cpp:246<br />
|-valign="top"<br />
|0x0087 || 12 || SMSG_WALK_RESPONSE || src/map/clif.c:1463 || src/net/tmwa/playerhandler.cpp:177<br />
|-valign="top"<br />
|0x0088 || 10 || SMSG_PLAYER_STOP || src/map/clif.c:1590 || src/net/tmwa/beinghandler.cpp:630<br />
|-valign="top"<br />
|0x0089 || 7 || CMSG_PLAYER_CHANGE_ACT<br>CMSG_PLAYER_ATTACK || src/net/tmwa/playerhandler.cpp:635<br>src/net/tmwa/playerhandler.cpp:566 || src/map/clif.c:7341<br />
|-valign="top"<br />
|0x008A || 29 || SMSG_BEING_ACTION || src/map/clif.c:3761<br>src/map/clif.c:6563 || src/net/tmwa/beinghandler.cpp:328<br />
|-valign="top"<br />
|0x008C || -1 || CMSG_CHAT_MESSAGE || src/net/tmwa/chathandler.cpp:199 || src/map/clif.c:7173<br />
|-valign="top"<br />
|0x008D || -1 || SMSG_BEING_CHAT || src/map/clif.c:7209<br>src/map/clif.c:7236 || src/net/tmwa/chathandler.cpp:113<br />
|-valign="top"<br />
|0x008E || -1 || SMSG_PLAYER_CHAT || src/map/clif.c:4603<br>src/map/clif.c:7219 || src/net/tmwa/chathandler.cpp:158<br />
|-valign="top"<br />
|0x0090 || 7 || CMSG_NPC_TALK || src/net/tmwa/npchandler.cpp:133 || src/map/clif.c:7738<br />
|-valign="top"<br />
|0x0091 || 22 || SMSG_PLAYER_WARP || src/map/clif.c:1545 || src/net/tmwa/playerhandler.cpp:185<br />
|-valign="top"<br />
|0x0092 || 28 || SMSG_CHANGE_MAP_SERVER || src/map/clif.c:1569 || src/net/tmwa/charserverhandler.cpp:179<br />
|-valign="top"<br />
|0x0094 || 6 || (hard-coded) || src/net/tmwa/beinghandler.cpp:92 || src/map/clif.c:7047<br />
|-valign="top"<br />
|0x0095 || 30 || SMSG_BEING_NAME_RESPONSE || src/map/clif.c:7057 || src/net/tmwa/beinghandler.cpp:484<br />
|-valign="top"<br />
|0x0096 || -1 || CMSG_CHAT_WHISPER || src/net/tmwa/chathandler.cpp:215 || src/map/clif.c:7459<br />
|-valign="top"<br />
|0x0097 || -1 || SMSG_WHISPER || src/map/clif.c:4771 || src/net/tmwa/chathandler.cpp:91<br />
|-valign="top"<br />
|0x0098 || 3 || SMSG_WHISPER_RESPONSE || src/map/clif.c:4785 || src/net/tmwa/chathandler.cpp:72<br />
|-valign="top"<br />
|0x0099 || -1 || CMSG_ADMIN_ANNOUNCE<br>CMSG_CHAT_ANNOUNCE || src/net/tmwa/adminhandler.cpp:84 || src/map/clif.c:7549<br />
|-valign="top"<br />
|0x009A || -1 || SMSG_GM_CHAT || src/map/clif.c:4623<br>src/map/clif.c:8359 || src/net/tmwa/chathandler.cpp:159<br />
|-valign="top"<br />
|0x009B || 5 || CMSG_PLAYER_CHANGE_DIR || src/net/tmwa/playerhandler.cpp:614 || src/map/clif.c:7278<br />
|-valign="top"<br />
|0x009C || 9 || SMSG_BEING_CHANGE_DIRECTION || src/map/clif.c:7293 || src/net/tmwa/beinghandler.cpp:499<br />
|-valign="top"<br />
|0x009D || 17 || SMSG_ITEM_VISIBLE || src/map/clif.c:3815 || src/net/tmwa/itemhandler.cpp:47<br />
|-valign="top"<br />
|0x009E || 17 || SMSG_ITEM_DROPPED || src/map/clif.c:671 || src/net/tmwa/itemhandler.cpp:48<br />
|-valign="top"<br />
|0x009F || 6 || CMSG_ITEM_PICKUP || src/net/tmwa/playerhandler.cpp:607 || src/map/clif.c:7573<br />
|-valign="top"<br />
|0x00A0 || 23 || SMSG_PLAYER_INVENTORY_ADD || src/map/clif.c:1855<br>src/map/clif.c:1876 || src/net/tmwa/inventoryhandler.cpp:218<br />
|-valign="top"<br />
|0x00A1 || 6 || SMSG_ITEM_REMOVE || src/map/clif.c:715 || src/net/tmwa/itemhandler.cpp:61<br />
|-valign="top"<br />
|0x00A2 || 6 || CMSG_PLAYER_INVENTORY_DROP || src/net/tmwa/inventoryhandler.cpp:473 || src/map/clif.c:7613<br />
|-valign="top"<br />
|0x00A4 || -1 || SMSG_PLAYER_EQUIPMENT || src/map/clif.c:2017 || src/net/tmwa/inventoryhandler.cpp:376<br />
|-valign="top"<br />
|0x00A6 || -1 || SMSG_PLAYER_STORAGE_EQUIP || src/map/clif.c:2144<br>src/map/clif.c:2273 || src/net/tmwa/inventoryhandler.cpp:187<br />
|-valign="top"<br />
|0x00A7 || 8 || CMSG_PLAYER_INVENTORY_USE || src/net/tmwa/inventoryhandler.cpp:465 || src/map/clif.c:7640<br />
|-valign="top"<br />
|0x00A8 || 7 || SMSG_ITEM_USE_RESPONSE || src/map/clif.c:2935 || src/net/tmwa/inventoryhandler.cpp:284<br />
|-valign="top"<br />
|0x00A9 || 6 || CMSG_PLAYER_EQUIP || src/net/tmwa/inventoryhandler.cpp:446 || src/map/clif.c:7666<br />
|-valign="top"<br />
|0x00AA || 7 || SMSG_PLAYER_EQUIP || src/map/clif.c:2819 || src/net/tmwa/inventoryhandler.cpp:401<br />
|-valign="top"<br />
|0x00AB || 4 || CMSG_PLAYER_UNEQUIP || src/net/tmwa/inventoryhandler.cpp:456 || src/map/clif.c:7706<br />
|-valign="top"<br />
|0x00AC || 7 || SMSG_PLAYER_UNEQUIP || src/map/clif.c:2839 || src/net/tmwa/inventoryhandler.cpp:412<br />
|-valign="top"<br />
|0x00AF || 6 || SMSG_PLAYER_INVENTORY_REMOVE || src/map/clif.c:1943 || src/net/tmwa/inventoryhandler.cpp:253<br />
|-valign="top"<br />
|0x00B0 || 8 || SMSG_PLAYER_STAT_UPDATE_1 || src/map/clif.c:2350<br>src/map/clif.c:2357 || src/net/tmwa/playerhandler.cpp:234<br />
|-valign="top"<br />
|0x00B1 || 8 || SMSG_PLAYER_STAT_UPDATE_2 || src/map/clif.c:2437<br>src/map/clif.c:2443<br>src/map/clif.c:2447<br>src/map/clif.c:2451<br>src/map/clif.c:2455 || src/net/tmwa/playerhandler.cpp:333<br />
|-valign="top"<br />
|0x00B2 || 3 || CMSG_PLAYER_RESTART || src/net/tmwa/charserverhandler.cpp:314<br>src/net/tmwa/playerhandler.cpp:642 || src/map/clif.c:7411<br />
|-valign="top"<br />
|0x00B3 || 3 || SMSG_CHAR_SWITCH_RESPONSE || src/map/clif.c:653 || src/net/tmwa/gamehandler.cpp:91<br />
|-valign="top"<br />
|0x00B4 || -1 || SMSG_NPC_MESSAGE || src/map/clif.c:1696 || src/net/tmwa/npchandler.cpp:102<br />
|-valign="top"<br />
|0x00B5 || 6 || SMSG_NPC_NEXT || src/map/clif.c:1716 || src/net/tmwa/npchandler.cpp:111<br />
|-valign="top"<br />
|0x00B6 || 6 || SMSG_NPC_CLOSE || src/map/clif.c:1734 || src/net/tmwa/npchandler.cpp:106<br />
|-valign="top"<br />
|0x00B7 || -1 || SMSG_NPC_CHOICE || src/map/clif.c:1752 || src/net/tmwa/npchandler.cpp:97<br />
|-valign="top"<br />
|0x00B8 || 7 || CMSG_NPC_LIST_CHOICE || src/net/tmwa/npchandler.cpp:159 || src/map/clif.c:8194<br />
|-valign="top"<br />
|0x00B9 || 6 || CMSG_NPC_NEXT_REQUEST || src/net/tmwa/npchandler.cpp:140 || src/map/clif.c:8206<br />
|-valign="top"<br />
|0x00BB || 5 || CMSG_STAT_UPDATE_REQUEST || src/net/tmwa/playerhandler.cpp:581 || src/map/clif.c:7993<br />
|-valign="top"<br />
|0x00BC || 6 || SMSG_PLAYER_STAT_UPDATE_4 || src/map/clif.c:2799 || src/net/tmwa/playerhandler.cpp:381<br />
|-valign="top"<br />
|0x00BD || 44 || SMSG_PLAYER_STAT_UPDATE_5 || src/map/clif.c:2702 || src/net/tmwa/playerhandler.cpp:401<br />
|-valign="top"<br />
|0x00BE || 5 || SMSG_PLAYER_STAT_UPDATE_6 || src/map/clif.c:2466 || src/net/tmwa/playerhandler.cpp:521<br />
|-valign="top"<br />
|0x00BF || 3 || CMSG_PLAYER_EMOTE || src/net/tmwa/playerhandler.cpp:573 || src/map/clif.c:7308<br />
|-valign="top"<br />
|0x00C0 || 7 || SMSG_BEING_EMOTION || src/map/clif.c:6469<br>src/map/clif.c:6488<br>src/map/clif.c:7317 || src/net/tmwa/beinghandler.cpp:385<br />
|-valign="top"<br />
|0x00C1 || 2 || CMSG_WHO_REQUEST<br>CMSG_CHAT_WHO || src/map/chathandler.cpp:264 || src/map/clif.c:7330<br />
|-valign="top"<br />
|0x00C2 || 6 || SMSG_WHO_ANSWER || src/map/clif.c:7332 || src/net/tmwa/gamehandler.cpp:86<br />
|-valign="top"<br />
|0x00C3 || 8 || SMSG_BEING_CHANGE_LOOKS || || src/net/tmwa/beinghandler.cpp:400<br />
|-valign="top"<br />
|0x00C4 || 6 || SMSG_NPC_BUY_SELL_CHOICE || src/map/clif.c:1611 || src/net/tmwa/buysellhandler.cpp:64<br />
|-valign="top"<br />
|0x00C5 || 7 || CMSG_NPC_BUY_SELL_REQUEST || src/net/tmwa/npchandler.cpp:193<br>src/net/tmwa/npchandler.cpp:200 || src/map/clif.c:7756<br />
|-valign="top"<br />
|0x00C6 || -1 || SMSG_NPC_BUY || src/map/clif.c:1631 || src/net/tmwa/buysellhandler.cpp:72<br />
|-valign="top"<br />
|0x00C7 || -1 || SMSG_NPC_SELL || src/map/clif.c:1663 || src/net/tmwa/buysellhandler.cpp:88<br />
|-valign="top"<br />
|0x00C8 || -1 || CMSG_NPC_BUY_REQUEST || src/net/tmwa/npchandler.cpp:207 || src/map/clif.c:7765<br />
|-valign="top"<br />
|0x00C9 || -1 || CMSG_NPC_SELL_REQUEST || src/net/tmwa/npchandler.cpp:215 || src/map/clif.c:7784<br />
|-valign="top"<br />
|0x00CA || 3 || SMSG_NPC_BUY_RESPONSE || src/map/clif.c:7775 || src/net/tmwa/buysellhandler.cpp:114<br />
|-valign="top"<br />
|0x00CB || 3 || SMSG_NPC_SELL_RESPONSE || src/map/clif.c:7794 || src/net/tmwa/buysellhandler.cpp:124<br />
|-valign="top"<br />
|0x00CC || 6 || CMSG_ADMIN_KICK || src/net/tmwa/adminhandler.cpp:104 || src/map/clif.c:8913<br />
|-valign="top"<br />
|0x00CD || 6 || SMSG_ADMIN_KICK_ACK || src/map/clif.c:6605 || src/net/tmwa/adminhandler.cpp:62<br />
|-valign="top"<br />
|0x00E4 || 6 || CMSG_TRADE_REQUEST || src/net/tmwa/tradehandler.cpp:241 || src/map/clif.c:7859<br />
|-valign="top"<br />
|0x00E5 || 26 || SMSG_TRADE_REQUEST || src/map/clif.c:3180 || src/net/tmwa/tradehandler.cpp:86<br />
|-valign="top"<br />
|0x00E6 || 3 || CMSG_TRADE_RESPONSE || src/net/tmwa/tradehandler.cpp:250 || src/map/clif.c:7876<br />
|-valign="top"<br />
|0x00E7 || 3 || SMSG_TRADE_RESPONSE || src/map/clif.c:3198 || src/net/tmwa/tradehandler.cpp:120<br />
|-valign="top"<br />
|0x00E8 || 8 || CMSG_TRADE_ITEM_ADD_REQUEST || src/net/tmwa/tradehandler.cpp:256<br>src/net/tmwa/tradehandler.cpp:268 || src/map/clif.c:7887<br />
|-valign="top"<br />
|0x00E9 || 19 || SMSG_TRADE_ITEM_ADD || src/map/clif.c:3218 || src/net/tmwa/tradehandler.cpp:159<br />
|-valign="top"<br />
|0x00EB || 2 || CMSG_TRADE_ADD_COMPLETE || src/net/tmwa/tradehandler.cpp:275 || src/map/clif.c:7898<br />
|-valign="top"<br />
|0x00EC || 3 || SMSG_TRADE_OK || src/map/clif.c:3320 || src/net/tmwa/tradehandler.cpp:218<br />
|-valign="top"<br />
|0x00ED || 2 || CMSG_TRADE_CANCEL_REQUEST || src/net/tmwa/tradehandler.cpp:285 || src/map/clif.c:7907<br />
|-valign="top"<br />
|0x00EE || 2 || SMSG_TRADE_CANCEL || src/map/clif.c:3338 || src/net/tmwa/tradehandler.cpp:223<br />
|-valign="top"<br />
|0x00EF || 2 || CMSG_TRADE_OK || src/net/tmwa/tradehandler.cpp:280 || src/map/clif.c:7916<br />
|-valign="top"<br />
|0x00F0 || 3 || SMSG_TRADE_COMPLETE || src/map/clif.c:3355 || src/net/tmwa/tradehandler.cpp:230<br />
|-valign="top"<br />
|0x00F2 || 6 || SMSG_PLAYER_STORAGE_STATUS || src/map/clif.c:3375<br>src/map/clif.c:3459 || src/net/tmwa/inventoryhandler.cpp:306<br />
|-valign="top"<br />
|0x00F3 || 8 || CMSG_MOVE_TO_STORAGE || src/net/tmwa/inventoryhandler.cpp:508 || src/map/clif.c:8370<br />
|-valign="top"<br />
|0x00F4 || 21 || SMSG_PLAYER_STORAGE_ADD || src/map/clif.c:3396<br>src/map/clif.c:3481 || src/net/tmwa/inventoryhandler.cpp:331<br />
|-valign="top"<br />
|0x00F5 || 8 || CSMG_MOVE_FROM_STORAGE || src/net/tmwa/inventoryhandler.cpp:514 || src/map/clif.c:8393<br />
|-valign="top"<br />
|0x00F6 || 8 || SMSG_PLAYER_STORAGE_REMOVE || src/map/clif.c:3543 || src/net/tmwa/inventoryhandler.cpp:353<br />
|-valign="top"<br />
|0x00F7 || 2 || CMSG_CLOSE_STORAGE || src/net/tmwa/inventoryhandler.cpp:500 || src/map/clif.c:8452<br />
|-valign="top"<br />
|0x00F8 || 2 || SMSG_PLAYER_STORAGE_CLOSE || src/map/clif.c:3562 || src/net/tmwa/inventoryhandler.cpp:365<br />
|-valign="top"<br />
|0x00F9 || 26 || CMSG_PARTY_CREATE || src/net/tmwa/partyhandler.cpp:313 || src/map/clif.c:8469<br />
|-valign="top"<br />
|0x00FA || 3 || SMSG_PARTY_CREATE || src/map/clif.c:5231 || src/net/tmwa/partyhandler.cpp:79<br />
|-valign="top"<br />
|0x00FB || -1 || SMSG_PARTY_INFO || src/map/clif.c:5249 || src/net/tmwa/partyhandler.cpp:88<br />
|-valign="top"<br />
|0x00FC || 6 || CMSG_PARTY_INVITE || src/net/tmwa/partyhandler.cpp:324 || src/map/clif.c:8510<br />
|-valign="top"<br />
|0x00FD || 27 || SMSG_PARTY_INVITE_RESPONSE || src/map/clif.c:5327 || src/net/tmwa/partyhandler.cpp:112<br />
|-valign="top"<br />
|0x00FE || 30 || SMSG_PARTY_INVITED || src/map/clif.c:5299 || src/net/tmwa/partyhandler.cpp:139<br />
|-valign="top"<br />
|0x00FF || 10 || CMSG_PARTY_INVITED || src/net/tmwa/partyhandler.cpp:352 || src/map/clif.c:8522<br />
|-valign="top"<br />
|0x0100 || 2 || CMSG_PARTY_LEAVE || src/net/tmwa/partyhandler.cpp:359 || src/map/clif.c:8540<br />
|-valign="top"<br />
|0x0101 || 6 || SMSG_PARTY_SETTINGS || src/map/clif.c:5358 || src/net/tmwa/partyhandler.cpp:157<br />
|-valign="top"<br />
|0x0102 || 6 || CMSG_PARTY_SETTINGS || src/net/tmwa/partyhandler.cpp:402<br>src/net/tmwa/partyhandler.cpp:412 || src/map/clif.c:8558<br />
|-valign="top"<br />
|0x0103 || 30 || CMSG_PARTY_KICK || src/net/tmwa/partyhandler.cpp:364<br>src/net/tmwa/partyhandler.cpp:379 || src/map/clif.c:8549<br />
|-valign="top"<br />
|0x0104 || 79 || SMSG_PARTY_MOVE || src/map/clif.c:5485 || src/net/tmwa/partyhandler.cpp:220<br />
|-valign="top"<br />
|0x0105 || 31 || SMSG_PARTY_LEAVE || src/map/clif.c:5383 || src/net/tmwa/partyhandler.cpp:232<br />
|-valign="top"<br />
|0x0106 || 10 || SMSG_PARTY_UPDATE_HP || src/map/clif.c:5463 || src/net/tmwa/partyhandler.cpp:263<br />
|-valign="top"<br />
|0x0107 || 10 || SMSG_PARTY_UPDATE_COORDS || src/map/clif.c:5443 || src/net/tmwa/partyhandler.cpp:283<br />
|-valign="top"<br />
|0x0108 || -1 || CMSG_PARTY_MESSAGE || src/net/tmwa/partyhandler.cpp:386 || src/map/clif.c:8571<br />
|-valign="top"<br />
|0x0109 || -1 || SMSG_PARTY_MESSAGE || src/map/clif.c:5424 || src/net/tmwa/partyhandler.cpp:290<br />
|-valign="top"<br />
|0x010C || 6 || SMSG_MVP || src/map/clif.c:5708 || src/net/tmwa/chathandler.cpp:187<br />
|-valign="top"<br />
|0x010E || 11 || SMSG_PLAYER_SKILL_UP<br>SMSG_GUILD_SKILL_UP || src/map/clif.c:4186<br>src/map/clif.c:6345 || src/net/tmwa/specialhandler.cpp:115<br>src/net/tmwa/guildhandler.cpp:253<br />
|-valign="top"<br />
|0x010F || -1 || SMSG_PLAYER_SKILLS || src/map/clif.c:4145 || src/net/tmwa/specialhandler.cpp:93<br />
|-valign="top"<br />
|0x0110 || 10 || SMSG_SKILL_FAILED || src/map/clif.c:4259 || src/net/tmwa/specialhandler.cpp:129 <br />
|-valign="top"<br />
|0x0112 || 4 || CMSG_SKILL_LEVELUP_REQUEST || src/net/tmwa/playerhandler.cpp:597 || src/map/clif.c:8002 <br />
|-valign="top"<br />
|0x0113 || 10 || CMSG_SKILL_USE_BEING || src/net/tmwa/specialhandler.cpp:234 || src/map/clif.c:8011 <br />
|-valign="top"<br />
|0x0116 || 10 || CMSG_SKILL_USE_POSITION || src/net/tmwa/specialhandler.cpp:242 || src/map/clif.c:8088 <br />
|-valign="top"<br />
|0x0119 || 13 || SMSG_PLAYER_STATUS_CHANGE || src/map/clif.c:1268<br>src/map/clif.c:2885 || src/net/tmwa/beinghandler.cpp:671 <br />
|-valign="top"<br />
|0x011B || 20 || CMSG_SKILL_USE_MAP || src/net/tmwa/specialhandler.cpp:251 || src/map/clif.c:8158 <br />
|-valign="top"<br />
|0x0139 || 16 || SMSG_PLAYER_MOVE_TO_ATTACK || src/map/clif.c:5510 || src/net/tmwa/beinghandler.cpp:662 <br />
|-valign="top"<br />
|0x013A || 4 || SMSG_PLAYER_ATTACK_RANGE || src/map/clif.c:2474 || src/net/tmwa/inventoryhandler.cpp:423 <br />
|-valign="top"<br />
|0x013B || 4 || SMSG_PLAYER_ARROW_MESSAGE || src/map/clif.c:2780 || src/net/tmwa/playerhandler.cpp:545 <br />
|-valign="top"<br />
|0x013C || 4 || SMSG_PLAYER_ARROW_EQUIP || src/map/clif.c:2761 || src/net/tmwa/inventoryhandler.cpp:427 <br />
|-valign="top"<br />
|0x0141 || 14 || SMSG_PLAYER_STAT_UPDATE_3 || src/map/clif.c:2482<br>src/map/clif.c:2489<br>src/map/clif.c:2496<br>src/map/clif.c:2503<br>src/map/clif.c:2510<br>src/map/clif.c:2517 || src/net/tmwa/playerhandler.cpp:370 <br />
|-valign="top"<br />
|0x0142 || 6 || SMSG_NPC_INT_INPUT || src/map/clif.c:1772 || src/net/tmwa/npchandler.cpp:116 <br />
|-valign="top"<br />
|0x0143 || 10 || CMSG_NPC_INT_RESPONSE || src/net/tmwa/npchandler.cpp:166 || src/map/clif.c:8215 <br />
|-valign="top"<br />
|0x0146 || 6 || CMSG_NPC_CLOSE || src/net/tmwa/npchandler.cpp:146 || src/map/clif.c:8265 <br />
|-valign="top"<br />
|0x0148 || 8 || SMSG_BEING_RESURRECT || src/map/clif.c:4667 || src/net/tmwa/beinghandler.cpp:293 <br />
|-valign="top"<br />
|0x0149 || 9 || CMSG_ADMIN_MUTE || src/net/tmwa/adminhandler.cpp:137 || src/map/clif.c:9025 <br />
|-valign="top"<br />
|0x014C || -1 || SMSG_GUILD_ALIANCE_INFO || src/map/clif.c:5962 || src/net/tmwa/guildhandler.cpp:157 <br />
|-valign="top"<br />
|0x014D || 2 || CMSG_GUILD_CHECK_MASTER || || src/map/clif.c:8661 <br />
|-valign="top"<br />
|0x014E || 6 || SMSG_GUILD_MASTER_OR_MEMBER || src/map/clif.c:5842 || src/net/tmwa/guildhandler.cpp:134 <br />
|-valign="top"<br />
|0x014F || 6 || CMSG_GUILD_REQUEST_INFO || src/net/tmwa/guildhandler.cpp:457 || src/map/clif.c:8670 <br />
|-valign="top"<br />
|0x0151 || 6 || CMSG_GUILD_REQUEST_EMBLEM || || src/map/clif.c:8760 <br />
|-valign="top"<br />
|0x0152 || -1 || SMSG_GUILD_EMBLEM || src/map/clif.c:6135 || src/net/tmwa/guildhandler.cpp:243 <br />
|-valign="top"<br />
|0x0153 || -1 || CMSG_GUILD_CHANGE_EMBLEM || || src/map/clif.c:8771 <br />
|-valign="top"<br />
|0x0154 || -1 || SMSG_GUILD_MEMBER_LIST || src/map/clif.c:5996 || src/net/tmwa/guildhandler.cpp:171 <br />
|-valign="top"<br />
|0x0155 || -1 || CMSG_GUILD_CHANGE_MEMBER_POS || || src/map/clif.c:8731 <br />
|-valign="top"<br />
|0x0156 || -1 || SMSG_GUILD_MEMBER_POS_CHANGE || src/map/clif.c:6110 || src/net/tmwa/guildhandler.cpp:236 <br />
|-valign="top"<br />
|0x0159 || 54 || CMSG_GUILD_LEAVE || src/net/tmwa/guildhandler.cpp:425 || src/map/clif.c:8807 <br />
|-valign="top"<br />
|0x015A || 66 || SMSG_GUILD_LEAVE || src/map/clif.c:6252 || src/net/tmwa/guildhandler.cpp:322 <br />
|-valign="top"<br />
|0x015B || 54 || CMSG_GUILD_EXPULSION || src/net/tmwa/guildhandler.cpp:434 || src/map/clif.c:8817 <br />
|-valign="top"<br />
|0x015C || 90 || SMSG_GUILD_EXPULSION || src/map/clif.c:6270 || src/net/tmwa/guildhandler.cpp:327 <br />
|-valign="top"<br />
|0x015D || 42 || CMSG_GUILD_BREAK || || src/map/clif.c:8907 <br />
|-valign="top"<br />
|0x015E || 6 || SMSG_GUILD_BROKEN || src/map/clif.c:6453 || src/net/tmwa/guildhandler.cpp:384 <br />
|-valign="top"<br />
|0x0160 || -1 || SMSG_GUILD_POS_INFO_LIST || src/map/clif.c:6062 || src/net/tmwa/guildhandler.cpp:212 <br />
|-valign="top"<br />
|0x0161 || -1 || CMSG_GUILD_CHANGE_POS_INFO || || src/map/clif.c:8704 <br />
|-valign="top"<br />
|0x0162 || -1 || SMSG_GUILD_SKILL_INFO || src/map/clif.c:6160 || src/net/tmwa/guildhandler.cpp:253 <br />
|-valign="top"<br />
|0x0163 || -1 || SMSG_GUILD_EXPULSION_LIST || src/map/clif.c:6294 || src/net/tmwa/guildhandler.cpp:333 <br />
|-valign="top"<br />
|0x0165 || 30 || CMSG_GUILD_CREATE || src/net/tmwa/guildhandler.cpp:396 || src/map/clif.c:8652 <br />
|-valign="top"<br />
|0x0166 || -1 || SMSG_GUILD_POS_NAME_LIST || src/map/clif.c:6036 || src/net/tmwa/guildhandler.cpp:199 <br />
|-valign="top"<br />
|0x0167 || 3 || SMSG_GUILD_CREATE_RESPONSE || src/map/clif.c:5771 || src/net/tmwa/guildhandler.cpp:91 <br />
|-valign="top"<br />
|0x0168 || 14 || CMSG_GUILD_INVITE || src/net/tmwa/guildhandler.cpp:408 || src/map/clif.c:8789 <br />
|-valign="top"<br />
|0x0169 || 3 || SMSG_GUILD_INVITE_ACK || src/map/clif.c:6235 || src/net/tmwa/guildhandler.cpp:288 <br />
|-valign="top"<br />
|0x016A || 30 || SMSG_GUILD_INVITE || src/map/clif.c:6217 || src/net/tmwa/guildhandler.cpp:279 <br />
|-valign="top"<br />
|0x016B || 10 || CMSG_GUILD_INVITE_REPLY || src/net/tmwa/guildhandler.cpp:416 || src/map/clif.c:8798 <br />
|-valign="top"<br />
|0x016C || 43 || SMSG_GUILD_POSITION_INFO || src/map/clif.c:5792 || src/net/tmwa/guildhandler.cpp:114 <br />
|-valign="top"<br />
|0x016D || 14 || SMSG_GUILD_MEMBER_LOGIN || src/map/clif.c:5811 || src/net/tmwa/guildhandler.cpp:128 <br />
|-valign="top"<br />
|0x016E || 186 || CMSG_GUILD_CHANGE_NOTICE || || src/map/clif.c:8780 <br />
|-valign="top"<br />
|0x016F || 182 || SMSG_GUILD_NOTICE || src/map/clif.c:6198 || src/net/tmwa/guildhandler.cpp:274 <br />
|-valign="top"<br />
|0x0170 || 14 || CMSG_GUILD_ALLIANCE_REQUEST || || src/map/clif.c:8871 <br />
|-valign="top"<br />
|0x0171 || 30 || SMSG_GUILD_REQ_ALLIANCE || src/map/clif.c:6367 || src/net/tmwa/guildhandler.cpp:366 <br />
|-valign="top"<br />
|0x0172 || 10 || CMSG_GUILD_ALLIANCE_REPLY || || src/map/clif.c:8880 <br />
|-valign="top"<br />
|0x0173 || 3 || SMSG_GUILD_REQ_ALLIANCE_ACK || src/map/clif.c:6385 || src/net/tmwa/guildhandler.cpp:371 <br />
|-valign="top"<br />
|0x0174 || -1 || SMSG_GUILD_POSITION_CHANGED || src/map/clif.c:6087 || src/net/tmwa/guildhandler.cpp:227 <br />
|-valign="top"<br />
|0x017E || -1 || CMSG_GUILD_MESSAGE || src/net/tmwa/guildhandler.cpp:443 || src/map/clif.c:8831 <br />
|-valign="top"<br />
|0x017F || -1 || SMSG_GUILD_MESSAGE || src/map/clif.c:6323<br>src/map/clif.c:6581 || src/net/tmwa/guildhandler.cpp:347 <br />
|-valign="top"<br />
|0x0180 || 6 || CMSG_GUILD_OPPOSITION || || src/map/clif.c:8898 <br />
|-valign="top"<br />
|0x0181 || 3 || SMSG_GUILD_OPPOSITION_ACK || src/map/clif.c:6421 || src/net/tmwa/guildhandler.cpp:380 <br />
|-valign="top"<br />
|0x0183 || 10 || CMSG_GUILD_ALLIANCE_DELETE || || src/map/clif.c:8889 <br />
|-valign="top"<br />
|0x0184 || 10 || SMSG_GUILD_DEL_ALLIANCE || src/map/clif.c:6403 || src/net/tmwa/guildhandler.cpp:375 <br />
|-valign="top"<br />
|0x018A || 4 || CMSG_CLIENT_QUIT || src/net/tmwa/gamehandler.cpp:161 || src/map/clif.c:6611 <br />
|-valign="top"<br />
|0x018B || 4 || SMSG_MAP_QUIT_RESPONSE || src/map/clif.c:7012<br>src/map/clif.c:7440 || src/net/tmwa/gamehandler.cpp:98 <br />
|-valign="top"<br />
|0x0190 || 90 || CMSG_SKILL_USE_POSITION_MORE || || src/map/clif.c:8088 <br />
|-valign="top"<br />
|0x0195 || 102 || SMSG_PLAYER_GUILD_PARTY_INFO || src/map/clif.c:7107 || src/net/tmwa/beinghandler.cpp:490 <br />
|-valign="top"<br />
|0x0196 || 9 || SMSG_BEING_STATUS_CHANGE || src/map/clif.c:4585 || src/net/tmwa/beinghandler.cpp:688 <br />
|-valign="top"<br />
|0x019B || 10 || SMSG_BEING_SELFEFFECT || src/map/clif.c:2858<br>src/map/clif.c:6696 || src/net/tmwa/beinghandler.cpp:372 <br />
|-valign="top"<br />
|0x019C || 4 || CMSG_ADMIN_LOCAL_ANNOUNCE || src/net/tmwa/adminhandler.cpp:91 || src/map/clif.c:8350 <br />
|-valign="top"<br />
|0x019D || 6 || CMSG_ADMIN_HIDE || src/net/tmwa/adminhandler.cpp:98 || src/map/clif.c:8996 <br />
|-valign="top"<br />
|0x01B1 || 7 || SMSG_TRADE_ITEM_ADD_RESPONSE || src/map/clif.c:3299 || src/net/tmwa/tradehandler.cpp:176 <br />
|-valign="top"<br />
|0x01B6 || 114 || SMSG_GUILD_BASIC_INFO || src/map/clif.c:5865 || src/net/tmwa/guildhandler.cpp:138 <br />
|-valign="top"<br />
|0x01C8 || 13 || SMSG_PLAYER_INVENTORY_USE || src/map/clif.c:2945 || src/net/tmwa/inventoryhandler.cpp:265 <br />
|-valign="top"<br />
|0x01D4 || 6 || SMSG_NPC_STR_INPUT || src/map/clif.c:1790 || src/net/tmwa/npchandler.cpp:121 <br />
|-valign="top"<br />
|0x01D5 || 8 || CMSG_NPC_STR_RESPONSE || src/net/tmwa/npchandler.cpp:173 || src/map/clif.c:8234 <br />
|-valign="top"<br />
|0x01D7 || 11 || SMSG_BEING_CHANGE_LOOKS2 || src/map/clif.c:2608<br>src/map/clif.c:2675 || src/net/tmwa/beinghandler.cpp:401 <br />
|-valign="top"<br />
|0x01D8 || 54 || SMSG_PLAYER_UPDATE_1 || src/map/clif.c:845 || src/net/tmwa/beinghandler.cpp:511 <br />
|-valign="top"<br />
|0x01D9 || 53 || SMSG_PLAYER_UPDATE_2 || src/map/clif.c:1292 || src/net/tmwa/beinghandler.cpp:512 <br />
|-valign="top"<br />
|0x01DA || 60 || SMSG_PLAYER_MOVE || src/map/clif.c:934 || src/net/tmwa/beinghandler.cpp:513 <br />
|-valign="top"<br />
|0x01DE || 33 || SMSG_SKILL_DAMAGE || src/map/clif.c:4298 || src/net/tmwa/beinghandler.cpp:311 <br />
|-valign="top"<br />
|0x01EE || -1 || SMSG_PLAYER_INVENTORY || src/map/clif.c:1965 || src/net/tmwa/inventoryhandler.cpp:134 <br />
|-valign="top"<br />
|0x01F0 || -1 || SMSG_PLAYER_STORAGE_ITEMS || src/map/clif.c:2097<br>src/map/clif.c:2225 || src/net/tmwa/inventoryhandler.cpp:135 <br />
|-valign="top"<br />
|0x020C || 10 || SMSG_ADMIN_IP || src/map/clif.c:7120 || src/net/tmwa/adminhandler.cpp:69 <br />
|-valign="top"<br />
|0x7530 || 2 || CMSG_SERVER_VERSION_REQUEST || src/net/tmwa/loginhandler.cpp:220 || src/login/login.c:2257<br>src/login/login.c:4011<br>src/char/char.c:3568<br>src/map/clif.c:10174 <br />
|-valign="top"<br />
|0x7531 || 10 || SMSG_SERVER_VERSION_RESPONSE || src/login/login.c:2260<br>src/login/login.c:4014<br>src/char/char.c:3569<br>src/map/clif.c:10175 || src/net/tmwa/loginhandler.cpp:197 <br />
<br />
|}<br />
<br />
== Free Packets ==<br />
These are packets that are not parsed or sent by the client, but have a known length, so they can be used by future servers and the client will just ignore them, not crash.<br />
<br />
{| border="1" cellspacing="0" cellpadding="3"<br />
|- valign="top" <br />
!packet !!len !!notes<br />
|- valign="top" <br />
|0x0000 ||10 ||<br />
|- valign="top" <br />
|0x0074 ||3 ||<br />
|- valign="top" <br />
|0x0075 ||-1 ||<br />
|- valign="top" <br />
|0x0076 ||9 ||<br />
|- valign="top" <br />
|0x0077 ||5 ||<br />
|- valign="top" <br />
|0x0079 ||53 ||<br />
|- valign="top" <br />
|0x007A ||58 ||<br />
|- valign="top" <br />
|0x0082 ||2 ||<br />
|- valign="top" <br />
|0x0083 ||2 ||<br />
|- valign="top" <br />
|0x0084 ||2 ||<br />
|- valign="top" <br />
|0x008B ||23 ||<br />
|- valign="top" <br />
|0x0093 ||2 ||<br />
|- valign="top" <br />
|0x00A3 ||-1 ||<br />
|- valign="top" <br />
|0x00A5 ||-1 ||<br />
|- valign="top" <br />
|0x00AE ||-1 ||<br />
|- valign="top" <br />
|0x00BA ||2 ||<br />
|- valign="top" <br />
|0x00CE ||2 ||<br />
|- valign="top" <br />
|0x00CF ||27 ||clif_parse_PMIgnore<br />
|- valign="top" <br />
|0x00D0 ||3 ||clif_parse_PMIgnoreAll, used by ManaPlus<br />
|- valign="top" <br />
|0x00D1 ||4 ||<br />
|- valign="top" <br />
|0x00D2 ||4 ||used by ManaPlus<br />
|- valign="top" <br />
|0x00D3 ||2 ||<br />
|- valign="top" <br />
|0x00D4 ||-1 ||<br />
|- valign="top" <br />
|0x00D5 ||-1 ||clif_parse_CreateChatRoom<br />
|- valign="top" <br />
|0x00D6 ||3 ||<br />
|- valign="top" <br />
|0x00D7 ||-1 ||<br />
|- valign="top" <br />
|0x00D8 ||6 ||<br />
|- valign="top" <br />
|0x00D9 ||14 ||clif_parse_ChatAddMember<br />
|- valign="top" <br />
|0x00DA ||3 ||<br />
|- valign="top" <br />
|0x00DB ||-1 ||<br />
|- valign="top" <br />
|0x00DC ||28 ||<br />
|- valign="top" <br />
|0x00DD ||29 ||<br />
|- valign="top" <br />
|0x00DE ||-1 ||clif_parse_ChatRoomStatusChange<br />
|- valign="top" <br />
|0x00DF ||-1 ||<br />
|- valign="top" <br />
|0x00E0 ||30 ||clif_parse_ChangeChatOwner<br />
|- valign="top" <br />
|0x00E1 ||30 ||<br />
|- valign="top" <br />
|0x00E2 ||26 ||clif_parse_KickFromChat<br />
|- valign="top" <br />
|0x00E3 ||2 ||clif_parse_ChatLeave<br />
|- valign="top" <br />
|0x00EA ||5 ||<br />
|- valign="top" <br />
|0x00F1 ||2 ||<br />
|- valign="top" <br />
|0x010A ||4 ||<br />
|- valign="top" <br />
|0x010B ||6 ||<br />
|- valign="top" <br />
|0x010D ||2 ||clif_parse_RequestMemo<br />
|- valign="top" <br />
|0x0111 ||39 ||<br />
|- valign="top" <br />
|0x0114 ||31 ||<br />
|- valign="top" <br />
|0x0115 ||35 ||<br />
|- valign="top" <br />
|0x0117 ||18 ||<br />
|- valign="top" <br />
|0x0118 ||2 ||clif_parse_StopAttack, used by ManaPlus<br />
|- valign="top" <br />
|0x011A ||15 ||SMSG_SKILL_NO_DAMAGE, used by ManaPlus<br />
|- valign="top" <br />
|0x011C ||68 ||<br />
|- valign="top" <br />
|0x011D ||2 ||clif_parse_RequestMemo<br />
|- valign="top" <br />
|0x011E ||3 ||<br />
|- valign="top" <br />
|0x011F ||16 ||<br />
|- valign="top" <br />
|0x0120 ||6 ||<br />
|- valign="top" <br />
|0x0121 ||14 ||<br />
|- valign="top" <br />
|0x0122 ||-1 ||<br />
|- valign="top" <br />
|0x0123 ||-1 ||<br />
|- valign="top" <br />
|0x0124 ||21 ||<br />
|- valign="top" <br />
|0x0125 ||8 ||<br />
|- valign="top" <br />
|0x0126 ||8 ||clif_parse_PutItemToCart<br />
|- valign="top" <br />
|0x0127 ||8 ||clif_parse_GetItemFromCart<br />
|- valign="top" <br />
|0x0128 ||8 ||clif_parse_MoveFromKafraToCart<br />
|- valign="top" <br />
|0x0129 ||8 ||clif_parse_MoveToKafraFromCart<br />
|- valign="top" <br />
|0x012A ||2 ||clif_parse_RemoveOption<br />
|- valign="top" <br />
|0x012B ||2 ||<br />
|- valign="top" <br />
|0x012C ||3 ||<br />
|- valign="top" <br />
|0x012D ||4 ||<br />
|- valign="top" <br />
|0x012E ||2 ||<br />
|- valign="top" <br />
|0x012F ||-1 ||<br />
|- valign="top" <br />
|0x0130 ||6 ||<br />
|- valign="top" <br />
|0x0131 ||86 ||<br />
|- valign="top" <br />
|0x0132 ||6 ||<br />
|- valign="top" <br />
|0x0133 ||-1 ||<br />
|- valign="top" <br />
|0x0134 ||-1 ||<br />
|- valign="top" <br />
|0x0135 ||7 ||<br />
|- valign="top" <br />
|0x0136 ||-1 ||<br />
|- valign="top" <br />
|0x0137 ||6 ||<br />
|- valign="top" <br />
|0x0138 ||3 ||<br />
|- valign="top" <br />
|0x013D ||6 ||<br />
|- valign="top" <br />
|0x013E ||24 ||SMSG_SKILL_CASTING, used by ManaPlus<br />
|- valign="top" <br />
|0x013F ||26 ||clif_parse_GM_Monster_Item<br />
|- valign="top" <br />
|0x0140 ||22 ||clif_parse_MapMove<br />
|- valign="top" <br />
|0x0144 ||23 ||<br />
|- valign="top" <br />
|0x0145 ||19 ||<br />
|- valign="top" <br />
|0x0147 ||39 ||<br />
|- valign="top" <br />
|0x014A ||6 ||<br />
|- valign="top" <br />
|0x014B ||27 ||<br />
|- valign="top" <br />
|0x0150 ||110 ||<br />
|- valign="top" <br />
|0x0157 ||6 ||<br />
|- valign="top" <br />
|0x0158 ||-1 ||<br />
|- valign="top" <br />
|0x015F ||42 ||<br />
|- valign="top" <br />
|0x0164 ||-1 ||<br />
|- valign="top" <br />
|0x0175 ||6 ||<br />
|- valign="top" <br />
|0x0176 ||106 ||<br />
|- valign="top" <br />
|0x0177 ||-1 ||<br />
|- valign="top" <br />
|0x0178 ||4 ||clif_parse_ItemIdentify<br />
|- valign="top" <br />
|0x0179 ||5 ||<br />
|- valign="top" <br />
|0x017A ||4 ||clif_parse_UseCard<br />
|- valign="top" <br />
|0x017B ||-1 ||<br />
|- valign="top" <br />
|0x017C ||6 ||clif_parse_InsertCard<br />
|- valign="top" <br />
|0x017D ||7 ||<br />
|- valign="top" <br />
|0x0182 ||106 ||<br />
|- valign="top" <br />
|0x0185 ||34 ||<br />
|- valign="top" <br />
|0x0187 ||6 ||src/char/char.c:3562<br />
|- valign="top" <br />
|0x0188 ||8 ||<br />
|- valign="top" <br />
|0x0189 ||4 ||<br />
|- valign="top" <br />
|0x018C ||29 ||<br />
|- valign="top" <br />
|0x018D ||-1 ||<br />
|- valign="top" <br />
|0x018E ||10 ||<br />
|- valign="top" <br />
|0x018F ||6 ||<br />
|- valign="top" <br />
|0x0191 ||86 ||<br />
|- valign="top" <br />
|0x0192 ||24 ||<br />
|- valign="top" <br />
|0x0193 ||6 ||clif_parse_SolveCharName<br />
|- valign="top" <br />
|0x0194 ||30 ||<br />
|- valign="top" <br />
|0x0197 ||4 ||clif_parse_ResetChar<br />
|- valign="top" <br />
|0x0198 ||8 ||<br />
|- valign="top" <br />
|0x0199 ||4 ||SMSG_PVP_MAP_MODE, used by ManaPlus<br />
|- valign="top" <br />
|0x019A ||14 ||SMSG_PVP_SET, used by ManaPlus<br />
|- valign="top" <br />
|0x019E ||2 ||<br />
|- valign="top" <br />
|0x019F ||6 ||<br />
|- valign="top" <br />
|0x01A0 ||3 ||<br />
|- valign="top" <br />
|0x01A1 ||3 ||<br />
|- valign="top" <br />
|0x01A2 ||35 ||<br />
|- valign="top" <br />
|0x01A3 ||5 ||<br />
|- valign="top" <br />
|0x01A4 ||11 ||<br />
|- valign="top" <br />
|0x01A5 ||26 ||<br />
|- valign="top" <br />
|0x01A6 ||-1 ||<br />
|- valign="top" <br />
|0x01A7 ||4 ||<br />
|- valign="top" <br />
|0x01A8 ||4 ||<br />
|- valign="top" <br />
|0x01A9 ||6 ||<br />
|- valign="top" <br />
|0x01AA ||10 ||<br />
|- valign="top" <br />
|0x01AB ||12 ||<br />
|- valign="top" <br />
|0x01AC ||6 ||<br />
|- valign="top" <br />
|0x01AD ||-1 ||<br />
|- valign="top" <br />
|0x01AE ||4 ||<br />
|- valign="top" <br />
|0x01AF ||4 ||clif_parse_ChangeCart<br />
|- valign="top" <br />
|0x01B0 ||11 ||<br />
|- valign="top" <br />
|0x01B2 ||-1 ||<br />
|- valign="top" <br />
|0x01B3 ||67 ||<br />
|- valign="top" <br />
|0x01B4 ||12 ||<br />
|- valign="top" <br />
|0x01B5 ||18 ||<br />
|- valign="top" <br />
|0x01B7 ||6 ||<br />
|- valign="top" <br />
|0x01B8 ||3 ||<br />
|- valign="top" <br />
|0x01B9 ||6 ||SMSG_SKILL_CAST_CANCEL, used by ManaPlus<br />
|- valign="top" <br />
|0x01BA ||26 ||clif_parse_Shift<br />
|- valign="top" <br />
|0x01BB ||26 ||clif_parse_Shift<br />
|- valign="top" <br />
|0x01BC ||26 ||clif_parse_Recall<br />
|- valign="top" <br />
|0x01BD ||26 ||clif_parse_Recall<br />
|- valign="top" <br />
|0x01BE ||2 ||<br />
|- valign="top" <br />
|0x01BF ||3 ||<br />
|- valign="top" <br />
|0x01C0 ||2 ||<br />
|- valign="top" <br />
|0x01C1 ||14 ||<br />
|- valign="top" <br />
|0x01C2 ||10 ||<br />
|- valign="top" <br />
|0x01C3 ||-1 ||<br />
|- valign="top" <br />
|0x01C4 ||22 ||<br />
|- valign="top" <br />
|0x01C5 ||22 ||<br />
|- valign="top" <br />
|0x01C6 ||4 ||<br />
|- valign="top" <br />
|0x01C7 ||2 ||<br />
|- valign="top" <br />
|0x01C9 ||97 ||<br />
|- valign="top" <br />
|0x01CB ||9 ||<br />
|- valign="top" <br />
|0x01CC ||9 ||<br />
|- valign="top" <br />
|0x01CD ||29 ||<br />
|- valign="top" <br />
|0x01CE ||6 ||clif_parse_AutoSpell<br />
|- valign="top" <br />
|0x01CF ||28 ||<br />
|- valign="top" <br />
|0x01D0 ||8 ||<br />
|- valign="top" <br />
|0x01D1 ||14 ||<br />
|- valign="top" <br />
|0x01D2 ||10 ||<br />
|- valign="top" <br />
|0x01D3 ||35 ||<br />
|- valign="top" <br />
|0x01D6 ||4 ||<br />
|- valign="top" <br />
|0x01DB ||2 ||src/login/login.c:3861<br />
|- valign="top" <br />
|0x01DC ||-1 ||src/login/login.c:3898<br />
|- valign="top" <br />
|0x01DD ||47 ||src/login/login.c:3645<br />
|- valign="top" <br />
|0x01DF ||6 ||clif_parse_GMReqNoChatCount<br />
|- valign="top" <br />
|0x01E0 ||30 ||<br />
|- valign="top" <br />
|0x01E1 ||8 ||<br />
|- valign="top" <br />
|0x01E2 ||34 ||<br />
|- valign="top" <br />
|0x01E3 ||14 ||<br />
|- valign="top" <br />
|0x01E4 ||2 ||<br />
|- valign="top" <br />
|0x01E5 ||6 ||<br />
|- valign="top" <br />
|0x01E6 ||26 ||<br />
|- valign="top" <br />
|0x01E7 ||2 ||clif_parse_sn_doridori<br />
|- valign="top" <br />
|0x01E8 ||28 ||clif_parse_CreateParty2<br />
|- valign="top" <br />
|0x01E9 ||81 ||<br />
|- valign="top" <br />
|0x01EA ||6 ||<br />
|- valign="top" <br />
|0x01EB ||10 ||<br />
|- valign="top" <br />
|0x01EC ||26 ||<br />
|- valign="top" <br />
|0x01ED ||2 ||clif_parse_sn_explosionspirits<br />
|- valign="top" <br />
|0x01EF ||-1 ||<br />
|- valign="top" <br />
|0x01F1 ||-1 ||<br />
|- valign="top" <br />
|0x01F2 ||20 ||<br />
|- valign="top" <br />
|0x01F3 ||10 ||<br />
|- valign="top" <br />
|0x01F4 ||32 ||<br />
|- valign="top" <br />
|0x01F5 ||9 ||<br />
|- valign="top" <br />
|0x01F6 ||34 ||<br />
|- valign="top" <br />
|0x01F7 ||14 ||<br />
|- valign="top" <br />
|0x01F8 ||2 ||<br />
|- valign="top" <br />
|0x01F9 ||6 ||<br />
|- valign="top" <br />
|0x01FA ||48 ||<br />
|- valign="top" <br />
|0x01FB ||56 ||<br />
|- valign="top" <br />
|0x01FC ||-1 ||<br />
|- valign="top" <br />
|0x01FD ||4 ||<br />
|- valign="top" <br />
|0x01FE ||5 ||<br />
|- valign="top" <br />
|0x01FF ||10 ||<br />
|- valign="top" <br />
|0x0200 ||26 ||src/login/login.c:3632<br />
|- valign="top" <br />
|0x0204 ||18 ||src/login/login.c:3638<br />
|- valign="top" <br />
|0x020B ||19 ||src/char/char.c:3030<br />
|}</div>4144https://wiki.themanaworld.org/index.php?title=Reporting_Bugs&diff=24203Reporting Bugs2012-08-28T18:33:28Z<p>4144: /* IRC */</p>
<hr />
<div>==Check that your problem hasn't been reported already==<br />
<br />
The only supported client is the '''official client'''. If you have an issue which involve your client switch first to the official client and check if the problem persists before reporting.<br />
<br />
First use the '''Search''' feature on the forum to check if the issue you are experiencing was not posted before.: http://forums.themanaworld.org/search.php <br />
<br />
For server and content bugs, check the '''mantis''' Bug Tracker, maybe someone already posted same issue and it is being worked on: http://mantis.themanaworld.org/, and for bugs concerning the official client: http://bugs.manasource.org/<br />
<br />
Optionally, check the '''Glitorious''' repositories:<br />
<br />
*server-code: https://gitorious.org/tmw-eathena/mainline<br />
<br />
*server-data: https://gitorious.org/+tmw-admins/tmw/tmwa-server-test<br />
<br />
*client-data: https://gitorious.org/tmw/tmwa-client-data<br />
<br />
*client-code: https://github.com/mana<br />
<br />
<br />
==Where to report?==<br />
<br />
===Forum===<br />
If you are not sure that your problem is a bug or you are not sure that you can report it correctly, forum moderators, developers and players will help you or do it for you; report in: <br />
''Board index » Community » Player talk'': http://forums.themanaworld.org/viewforum.php?f=12<br />
<br />
You have strong reasons to suspect the content, the server or the client; report in the appropriate forum:<br />
''Board index » Support'': http://forums.themanaworld.org/viewforum.php?f=19<br />
<br />
be sure to read: ''Board index » Support » General support » Read Me First: How To Report Bugs'': http://forums.themanaworld.org/viewtopic.php?f=3&t=1178<br />
<br />
===IRC===<br />
You are not sure that your problem is a bug:<br />
IRC channelsupport : [irc.themanaworld.org#tmw-support]<br />
<br />
You are almost sure that your problem is a bug:<br />
IRC channel development: [irc.themanaworld.org#tmw-dev]<br />
<br />
For ManaPlus report: server irc.freenode.org , channel #manaplus<br />
<br />
===Bug Tracker===<br />
Bug tracker is a powerful tool, users need to be a bit aware of the way game works. Anonymous log-in is possible.<br />
<br />
*Content and server: Mantis: http://mantis.themanaworld.org/<br />
<br />
*Official Client: Manasource: http://bugs.manasource.org/<br />
<br />
*If you issue involves the Manaplus Client, report to http://bugs.evolonline.org/<br />
<br />
==How to report?==<br />
<br />
Here again the information that the developers need to solve the problem must be as complete and precise as possible.<br />
<br />
In Client issues, specify your system name, version and architecture, and client version. It is very good idea to include the name of your OS in the topic title, for example: Windows XP: Game is crashing when...<br />
Be verbose, post backtrace, strace, content of tmw.log, versions of dependent software etc. Make sure that all [[Dependencies]] are installed and have correct versions.<br />
<br />
Respect the time of developers and helpers - use descriptive topic titles, subjects like "OMFG game isn't working", "WTF HELP!", "GOT PROBLEM!" are not acceptable, and usually indicates that the author is a person not to be treated seriously. Good topic title is eg.: Linux: Can't load map file - unknown error. Posts which contains rude remarks, foul language or are duplicated will be closed without any notice. <br />
<br />
Note that in order to fix a bug, a programmer needs an exact way to reproduce the circumstances which lead to it:<br />
"I had Item X and later I hadn't had it anymore" isn't enough information to pinpoint an issue. On the other hand "when you do X and Y while W and Z, and then you take a towel our of storage, you always get an orange instead" would be a bug description a programmer can actually use.<br />
<br />
If you have a patch, post in Technical Development or Content Development:http://forums.themanaworld.org/viewforum.php?f=18 (Content and Server) and http://forums.themanaworld.org/viewforum.php?f=19 for client.<br />
<br />
When you use a pastebin, make sure to check the longest possible expiration setting.<br />
<br />
Errors on the '''wiki''' should be fixed by the one who notices them - that's the point of a wiki. When the documentation is wrong, you should make it correct.<br />
<br />
<br />
==Testing==<br />
<br />
Before developers release game content onto the official server, they'd like feedback from other developers and playtesters.<br />
If you are interested in content testing watch the [[Testing Server]] page in this wiki.</div>4144https://wiki.themanaworld.org/index.php?title=Reporting_Bugs&diff=24202Reporting Bugs2012-08-28T18:28:31Z<p>4144: /* Bug Tracker */</p>
<hr />
<div>==Check that your problem hasn't been reported already==<br />
<br />
The only supported client is the '''official client'''. If you have an issue which involve your client switch first to the official client and check if the problem persists before reporting.<br />
<br />
First use the '''Search''' feature on the forum to check if the issue you are experiencing was not posted before.: http://forums.themanaworld.org/search.php <br />
<br />
For server and content bugs, check the '''mantis''' Bug Tracker, maybe someone already posted same issue and it is being worked on: http://mantis.themanaworld.org/, and for bugs concerning the official client: http://bugs.manasource.org/<br />
<br />
Optionally, check the '''Glitorious''' repositories:<br />
<br />
*server-code: https://gitorious.org/tmw-eathena/mainline<br />
<br />
*server-data: https://gitorious.org/+tmw-admins/tmw/tmwa-server-test<br />
<br />
*client-data: https://gitorious.org/tmw/tmwa-client-data<br />
<br />
*client-code: https://github.com/mana<br />
<br />
<br />
==Where to report?==<br />
<br />
===Forum===<br />
If you are not sure that your problem is a bug or you are not sure that you can report it correctly, forum moderators, developers and players will help you or do it for you; report in: <br />
''Board index » Community » Player talk'': http://forums.themanaworld.org/viewforum.php?f=12<br />
<br />
You have strong reasons to suspect the content, the server or the client; report in the appropriate forum:<br />
''Board index » Support'': http://forums.themanaworld.org/viewforum.php?f=19<br />
<br />
be sure to read: ''Board index » Support » General support » Read Me First: How To Report Bugs'': http://forums.themanaworld.org/viewtopic.php?f=3&t=1178<br />
<br />
===IRC===<br />
You are not sure that your problem is a bug:<br />
IRC channelsupport : [irc.themanaworld.org#tmw-support]<br />
<br />
You are almost sure that your problem is a bug:<br />
IRC channel development: [irc.themanaworld.org#tmw-dev]<br />
<br />
===Bug Tracker===<br />
Bug tracker is a powerful tool, users need to be a bit aware of the way game works. Anonymous log-in is possible.<br />
<br />
*Content and server: Mantis: http://mantis.themanaworld.org/<br />
<br />
*Official Client: Manasource: http://bugs.manasource.org/<br />
<br />
*If you issue involves the Manaplus Client, report to http://bugs.evolonline.org/<br />
<br />
==How to report?==<br />
<br />
Here again the information that the developers need to solve the problem must be as complete and precise as possible.<br />
<br />
In Client issues, specify your system name, version and architecture, and client version. It is very good idea to include the name of your OS in the topic title, for example: Windows XP: Game is crashing when...<br />
Be verbose, post backtrace, strace, content of tmw.log, versions of dependent software etc. Make sure that all [[Dependencies]] are installed and have correct versions.<br />
<br />
Respect the time of developers and helpers - use descriptive topic titles, subjects like "OMFG game isn't working", "WTF HELP!", "GOT PROBLEM!" are not acceptable, and usually indicates that the author is a person not to be treated seriously. Good topic title is eg.: Linux: Can't load map file - unknown error. Posts which contains rude remarks, foul language or are duplicated will be closed without any notice. <br />
<br />
Note that in order to fix a bug, a programmer needs an exact way to reproduce the circumstances which lead to it:<br />
"I had Item X and later I hadn't had it anymore" isn't enough information to pinpoint an issue. On the other hand "when you do X and Y while W and Z, and then you take a towel our of storage, you always get an orange instead" would be a bug description a programmer can actually use.<br />
<br />
If you have a patch, post in Technical Development or Content Development:http://forums.themanaworld.org/viewforum.php?f=18 (Content and Server) and http://forums.themanaworld.org/viewforum.php?f=19 for client.<br />
<br />
When you use a pastebin, make sure to check the longest possible expiration setting.<br />
<br />
Errors on the '''wiki''' should be fixed by the one who notices them - that's the point of a wiki. When the documentation is wrong, you should make it correct.<br />
<br />
<br />
==Testing==<br />
<br />
Before developers release game content onto the official server, they'd like feedback from other developers and playtesters.<br />
If you are interested in content testing watch the [[Testing Server]] page in this wiki.</div>4144https://wiki.themanaworld.org/index.php?title=Forks&diff=17325Forks2011-01-17T01:20:07Z<p>4144: </p>
<hr />
<div><!--<br />
<br />
Prerequisite for being listed on this page is having a server which is/was public playable but incompatible with the original TMW client (compatible servers are listed on the "Servers" page) and releasing a modified version of the TMW client software under the terms of the GNU GPL (this means making the source code available!).<br />
<br />
--><br />
The open source nature of The Mana World allows everyone to use it as a base for creating an own game. A lot of teams have made use of this opportunity. Projects listed on this page don't work with the official client. Those that are are listed on the [[Servers]] article.<br />
<br />
==Active forks==<br />
These are projects which are still in active development.<br />
<br />
===Aethyra===<br />
A fork of TMW based on the eAthena branch with most of the content from the original TMW, with plenty of custom content.<br />
<br />
* http://www.aethyraproject.org<br />
<br />
===Mundo Dos Dragões ( World of Dragons )===<br />
A Brazilian fork of TMW based on the eAthena branch with a completely new game world made from RPGMaker tiles.<br />
<br />
* http://www.mundodosdragoes.org<br />
<br />
===My Path Online===<br />
A fork of Mana based on the Manaserv branch with a completely redesigned world using both TMW tiles and many other custom tiles from around the world.<br />
<br />
* http://www.mypathonline.com<br />
<br />
===Evol Online===<br />
Resurrected old evol project in development. Now multilanguage. Using as server reworked tmwAthena. As graphics using GPL graphics. As client manaplus or any tmw compotable clients (with some limitations)<br />
<br />
* http://www.evolonline.org/<br />
<br />
==Inactive forks==<br />
These are projects based on TMW which are unfortunately not active anymore.<br />
<br />
===Sirus Online===<br />
An eAthena-based branch formed by people frustrated with the management of Endless Online. It had a quite good start until most players and some developers decided to rather play and develop the original TMW.<br />
<br />
===Damasca===<br />
A project very similar in scope to The Mana World, although programmed in C# instead of C++. When the development slowed down because of insufficient manpower it was attempted to rescue the project by using TMWserv and the TMW client which were already much further in their development. Unfortunately it did not turn out so well.<br />
<br />
* http://www.damasca.net<br />
<br />
[[Category:Forks]]</div>4144