Clone of Akilla's ac2d @ https://github.com/deregtd/AC2D

index.php 9.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?php
  2. $blah = dir("pics/");
  3. $imlists = array();
  4. while ($nd = $blah->read())
  5. {
  6. if ($nd == ".") continue;
  7. if ($nd == "..") continue;
  8. if ($nd == "ac2dlogo.jpg") continue;
  9. if ($nd == "Thumbs.db") continue;
  10. if (strpos($nd, "_sm") != FALSE) continue;
  11. $imlists[substr($nd,0,strpos($nd,"."))] = filemtime("pics/$nd");
  12. }
  13. asort($imlists);
  14. $imlist = array();
  15. foreach ($imlists as $key => $val)
  16. $imlist[] = $key;
  17. $imcnt = count($imlist);
  18. if ($imcnt & 1)
  19. $imcntL = intval($imcnt / 2 + 1);
  20. else
  21. $imcntL = $imcnt / 2;
  22. ?>
  23. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  24. <HTML>
  25. <HEAD>
  26. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
  27. <TITLE>AC2D - The Alternate Client Project</TITLE>
  28. <STYLE TYPE="text/css">
  29. body {
  30. color: white;
  31. background-color: black;
  32. }
  33. a:link {
  34. color: #6060FF;
  35. }
  36. ul {
  37. margin-top: 5px;
  38. margin-bottom: 5px;
  39. }
  40. hr {
  41. color: #C06000;
  42. background-color: #C06000;
  43. border: 0px;
  44. height: 3px;
  45. width: 70%;
  46. }
  47. .sshot {
  48. margin: 5px 5px 5px 5px;
  49. }
  50. </STYLE>
  51. </HEAD>
  52. <BODY>
  53. <TABLE WIDTH="100%" CELLSPACING=0 CELLPADDING=3 BORDER=0 ALIGN=CENTER>
  54. <TR>
  55. <TD VALIGN=TOP>
  56. <?php
  57. for ($i=0; $i<$imcntL; $i++)
  58. print "<A HREF=\"pics/{$imlist[$i]}.jpg\" TARGET=\"_blank\"><IMG BORDER=0 SRC=\"pics/{$imlist[$i]}_sm.jpg\" CLASS=\"sshot\" ALT=\"AC2D Shot\"></A><BR>";
  59. ?>
  60. </TD>
  61. <TD VALIGN=TOP ALIGN=CENTER>
  62. <IMG SRC="pics/ac2dlogo.jpg" ALT="AC2D: The Alternate Client Project"><BR>
  63. <SPAN STYLE="font:12px Verdana; color:#808080">by Akilla</SPAN>
  64. <HR>
  65. <SPAN STYLE="font:18px Verdana"><B>Latest Build: 10-08-2006, 4:00 AM</B></SPAN><BR>
  66. <SPAN STYLE="font:24px Verdana"><A HREF="terrain.zip">Download Terrain Viewer</A></SPAN><BR>
  67. <DIV STYLE="text-align:left; horizontal-align:center; width:90%; margin-top:15px">
  68. <SPAN STYLE="font:18px Verdana">What's new recently:</SPAN>
  69. <UL>
  70. <LI>Added full landcell support, so building interiors and dungeons are all working
  71. <LI>Fixed up transparency, so cell divisions are seethrough now
  72. <LI>Fixed some texture bugs (BGR->RGB)
  73. <LI>Added terrain textures
  74. <LI>Added proper triangle-folding (which way the terrain quads fold)
  75. <LI>Fixed up all the memory leaks - the massive amount of memory that the thing uses now is actual data it's needing to store...
  76. </UL>
  77. </DIV>
  78. <HR/>
  79. <SPAN STYLE="font:24px Verdana">Terrain Viewer Instructions/Controls:</SPAN><BR>
  80. <DIV STYLE="text-align:left; horizontal-align:center; width:95%; margin-top:10px">
  81. <SPAN STYLE="font:18px Verdana">Installation:</SPAN>
  82. <UL>
  83. <LI>Download and extract the viewer to your AC:ToD directory
  84. <LI>Run it from that directory as the active directory
  85. </UL>
  86. <SPAN STYLE="font:18px Verdana">Controls:</SPAN>
  87. <UL>
  88. <LI><B>WSAD</B> - Standard FPS movement controls
  89. <LI><B>Right click + drag</B> - Rotate camera
  90. <LI><B>F</B> - Toggle 0.2/0.5/1/2/4/8/16/32x movement speed
  91. <LI><B>1 through 9</B> - Sets render radius to 2x the number - i.e. 9 is a render radius of 18, so a 36x36 drawgrid. Only do this if you have a fast computer and video card. It's set to render radius of 5 to start with...
  92. <LI><B>Insert</B> - Resets camera to default location (over sanc IIRC)
  93. <LI><B>Click the Minimap</B> - Transports you to the spot you clicked
  94. </UL>
  95. </DIV>
  96. <HR/>
  97. <SPAN STYLE="font:24px Verdana">Story/Summary of Purpose:</SPAN><BR>
  98. <DIV STYLE="text-align:left; horizontal-align:center; width:95%; margin-top:10px">
  99. <P>AC2D started back in either late 2004 or early 2005 as AC2Dx, a project by pea to create a fully-functional console client for Asheron's Call. This would be for things like buffbots, etc., that didn't require a graphical interface, and hence didn't need to take up any memory. Before the project got too far, I don't actually remember what happened, but somehow pea and I started working on a new version of AC2Dx intending to be a graphical client, which was just dubbed AC2D. Before it got too far, pea lost interest and started working on a server emulator instead, and I continued on AC2D alone.</P>
  100. <P>I worked on and off on the project for several months. ToD brought around several changes that were hard to deal with. It took a couple months of periodic work before AC2D was even close to its former glory. By fall of 2005, it was a quite capable client. It was able to login, properly transfer worldservers, view most objects of the world, do basic landblock/object decoding and viewing, and even contained a very functional user interface built around a custom windowing system. However, with my impending senior thesis to complete, I ran out of energy to keep working on the project, and it sat around, untouched, until October 2006. Something got me wanting to work on it again, so I picked up the project.</P>
  101. <P>I decided that, to begin with, it would be more useful to do a #define'd version of the client that was solely a terrain flyer. This would give me the ability to simply develop the client's rendering ability without having to login to a server each time, as well as allowing me full freedom to traverse the world to test things. So, I roped off a section of the code into a #define that would launch me straight into a worldviewer, and added custom controls for it, and the project was reborn. When the terrain viewer gets to a point that I'm happy with it, I will resume standard AC2D development.</P>
  102. <P>The final purpose of AC2D is to reverse-engineer enough of the game's file formats/network protocol to make a usable alternate client to the normal Turbine one. The interface on the normal client is horrible, the graphics are slow and dated, and the plugin system is terrible. AC2D was designed from the ground up to have an incredibly versatile class interface for accessing all elements of the world, and with a custom windowing system, allowing a transparent and fully customizable user interface. Where necessary, I attempt to work with turbine to ensure that the client acts as close to the real client as possible, and to do everything possible to prevent crashing any of the turbine servers. This usually includes doing development on empty landcells, in case something happens, but to this date I do not know of any time that I have crashed a landcell. When the client is at a point that I believe it to be fully compatibile with turbine's systems without any risk of crashing things, as well as, hopefully, getting the blessing of Turbine, I will release the full client and not just the terrain viewer portion of it.</P>
  103. </DIV>
  104. <HR/>
  105. <SPAN STYLE="font:24px Verdana">Current Progress:</SPAN><BR>
  106. <DIV STYLE="text-align:left; horizontal-align:center; width:95%; margin-top:10px">
  107. <TABLE WIDTH="100%" CELLPADDING=3 BORDER=1 CELLSPACING=0 STYLE="font:14px Verdana">
  108. <TR STYLE="font-size:20px">
  109. <TD ALIGN=CENTER WIDTH="50%">File Formats</TD>
  110. <TD ALIGN=CENTER WIDTH="50%">Network Protocol</TD>
  111. </TR>
  112. <TR>
  113. <TD VALIGN=TOP>
  114. <SPAN STYLE="font:18px Verdana">Portal.Dat:</SPAN>
  115. <UL>
  116. <LI>01 - Type 1 models - Fully Loading
  117. <LI>02 - Type 2 models (Modelgroups) - Mostly loading, missing several unknowns for initial positions
  118. <LI>03 - Animations - Somewhat working, missing several unknowns, especially for combined animations
  119. <LI>04 - Palettes - Fully loading
  120. <LI>05 - Texture lookups - Fully loading
  121. <LI>06 - Textures - All formats other than JPEG loading
  122. <LI>08 - Texture Lookups - Fully loading
  123. <LI>0A - Sounds - Untouched
  124. <LI>0D - Dungeon Parts - Fully loading
  125. <LI>0E - UI text - Fully loading
  126. <LI>0F - palette lookups - Not used
  127. <LI>13 - Worldinfo - Using some data from it, the actual file type is undecoded
  128. <LI>22 - String lists - Untouched
  129. <LI>25 - More string lists - Untouched
  130. <LI>27 - Magic Strings - Untouched
  131. <LI>31 - Character creation strings - Untouched
  132. </UL>
  133. <SPAN STYLE="font:18px Verdana">Cell.Dat:</SPAN>
  134. <UL>
  135. <LI>FFFF - Main Landblock Heightmap - Fully loading, some bits of the type flag still not used (vegetation density, blending, road specifics)
  136. <LI>FFFE - Landblock Object List - Mostly loading, plenty of unknowns left
  137. <LI>0100 + xx - Landcells - Mostly loading, plenty of unknowns left, but is able to load the dungeonparts
  138. </UL>
  139. </TD>
  140. <TD VALIGN=TOP>
  141. <SPAN STYLE="font:18px Verdana">Loginserver:</SPAN>
  142. <UL>
  143. <LI>Currently only connects to Nov 05 server, will be updated soon
  144. <LI>Logs in to all of the different given login servers
  145. <LI>Properly transfers between login servers
  146. <LI>Parses character list, MOTD, account info
  147. <LI>No character creation/deletion support
  148. </UL>
  149. <SPAN STYLE="font:18px Verdana">Worldserver:</SPAN>
  150. <UL>
  151. <LI>Most important packets decoded aside from pack handling, trading, and general item wielding/management
  152. <LI>Transfers worldservers properly, most of the time...
  153. <LI>Spellcasting fully functional
  154. <LI>Combat mode fully functional
  155. <LI>Skills, stats, map, chat, emotes fully functional and parsed into a charinfo class
  156. <LI>Animations, object creation, fully functional
  157. <LI>Limited movement ability with client
  158. </UL>
  159. </TD>
  160. </TR>
  161. </TABLE>
  162. </DIV>
  163. <HR/>
  164. <SPAN STYLE="font:24px Verdana">Contact:</SPAN><BR>
  165. <DIV STYLE="text-align:left; horizontal-align:center; width:95%; margin-top:10px">
  166. <UL>
  167. <LI><B>IRC</B> - irc.sorcery.net - Akilla in #acdev or #ac2d
  168. <LI><B>AIM</B> - zenacmaster
  169. <LI><B>Email</B> - akilla[spam]@[spam]earthlink.net (see if you can figure it out)
  170. </UL>
  171. </DIV>
  172. <HR/>
  173. <SPAN STYLE="font:24px Verdana">Acknowledgments:</SPAN><BR>
  174. <DIV STYLE="text-align:left; horizontal-align:center; width:95%; margin-top:10px">
  175. <UL>
  176. <LI><B>Pea</B> - For starting this project off, and for tons of help along the way with file formats/protocol RE
  177. <LI><B>KewtSquirrel</B> - For lots of help with file formats/protocol RE
  178. <LI><B>#acdev</B> - Random coding help/AC info
  179. </UL>
  180. </DIV>
  181. <HR/>
  182. </TD>
  183. <TD VALIGN=TOP>
  184. <?php
  185. for ($i=$imcntL; $i<$imcnt; $i++)
  186. print "<A HREF=\"pics/{$imlist[$i]}.jpg\" TARGET=\"_blank\"><IMG BORDER=0 SRC=\"pics/{$imlist[$i]}_sm.jpg\" CLASS=\"sshot\" ALT=\"AC2D Shot\"></A><BR>";
  187. ?>
  188. </TD>
  189. </TABLE>
  190. </BODY>
  191. </HTML>