Clone of UAS2 @ https://github.com/drudgedance/uas2

mainpage.h 3.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /**
  2. @mainpage UAS2 Documentation
  3. @section UAS2Intro Introduction
  4. The Universal Asheron's Call Server project seeks to create an emulation server of the online game
  5. Asheron's Call while respecting the legal privileges retained by the game's developers.
  6. UAS2 is a continuation of the UAS project, which can be found at http://sourceforge.net/projects/acemulator/.
  7. The goal of UAS2 is to continue to develop the appropriate framework for an Asheron's Call server.
  8. The collection of data that may be used to populate this framework is tasked to a sister project, UAS2db,
  9. which can also can found in the source.
  10. The project source is located at http://sourceforge.net/projects/uas2.
  11. @section UAS2Classes Class Overview
  12. The entry point of the UAS2 application is WinMain in WinMain.cpp.
  13. There are several top-level processess:
  14. <ul>
  15. <li>cMasterServer: Controls the loading and unloading of world data (threaded).
  16. <ul><li>
  17. The MasterServer thread is created as the game server is started.
  18. </li></ul>
  19. <li>cCharacterServer: Receives and processes communication between the server and client when the client
  20. is NOT in-world.
  21. <ul>
  22. <li>Client login to and logout from the server.
  23. <li>Character creation and deletion.
  24. </ul>
  25. <li>cWorldServer: Receives and processes communication between the server and client concerning avatar
  26. actions when the client is in-world.<br>
  27. <ul><li>
  28. Client character communication with the server.<br>
  29. (The Client/Server protocol used can be found on the
  30. <a href = http://decal.insanity-inc.org/protocol/Documentation.aspx>
  31. Decal Documentation website</a>)
  32. </li></ul>
  33. <li>cMonsterServer: Processes monster actions that are to be sent to the client. Located in cMonsterServer.cpp.
  34. </ul>
  35. There are several types of objects. The base object class is cObject. Most objects derive from this class.
  36. <ul>
  37. <li>The avatar object is implemented in the cAvatar class.
  38. <li>Monster objects are implemented in the cMonster class.
  39. Monster AI is dictated by SimpleAI, while cMonsterServer (cMonsterServer.cpp) processes and sends the data.
  40. <li>World Objects (objects, generally static, loaded in the world) are implemented in their respective classes.
  41. All world objects are initialized using a constructor when the world is loaded.
  42. <ul><li>
  43. These classes include: cAltar, cChest, cCovenant, cDoor, cHooks, cHouse, cLifestone,
  44. cMerchantSign, cPortal, cStorage, cWorldObject
  45. </li></ul>
  46. <li>Item Objects (non-static, usually inventoriable objects) are implemented in their respective classes.
  47. <ul><li>
  48. These classes include: cAmmo, cArmor, cBooks, cClothes, cFoci, cGems, cHealingCon, cHealingKits,
  49. cJewelry, cLockpicks, cManaStones, cMisc, cPack, cPlants, cPyreals, cSalvage, cScrolls, cShield,
  50. cSpellComps, cTradeNotes, cWands, cWeapon.
  51. </li></ul>
  52. </ul>
  53. The class cPortalDat handles the loading of information from the portal.dat file.<br>
  54. The class cLandBlock handles the loading of information from the cell.dat file.<br>
  55. @section UAS2DB UAS2DB Overview
  56. UAS2DB is the collection of raw data to be used to populate the world of Asheron's Call.
  57. The data is predominantely in the form of raw packet data, so as to capture and store all possible relevant information.
  58. To be usable by UAS2, the relevant data must be extracted and converted into MySQL form and ultimately uploaded to the UAS2 database.
  59. The UAS2 Capture Tool, or any similar tool, is intended to perform this function.
  60. */