The Helios Project is a Ragnarok Online emulator. Unlike most emulators, this one is from scratch, uses multi/single server exes, the Lua scripting engine, and many more features.


http://www.helios-emu.org





Separate each tag with a space.

Release Date:

2008-01-02

Topics:

License:

Ratings and Reviews

Be the first to post a text review of The Helios Project. Rate and review a project by clicking thumbs up or thumbs down in the right column.

Project Feed

  • Code committed

    aeomin committed revision 691 to the The Helios Project SVN repository, changing 12 files

    posted by aeomin 56 days ago

  • Code committed

    aeomin committed revision 690 to the The Helios Project SVN repository, changing 11 files

    posted by aeomin 133 days ago

  • File released: /Helios Public Releases/Release 2/Helios.zip

    posted 677 days ago

  • Helios Public Releases Release 2 file released: Helios.zip

    posted 677 days ago

  • File released: /Helios Public Releases/Release 1 - Proof of Concepts/Helios_0.0.1.274_Win32bin.zip

    posted 884 days ago

  • File released: /Helios Public Releases/Release 1 - Proof of Concepts/Helios_0.0.1.274_src.zip

    posted 884 days ago

  • File released: /Helios Public Releases/Release 1 - Proof of Concepts/Helios_0.0.1.274_Linux.zip

    posted 884 days ago

  • Helios Public Releases Release 1 - Proof of Concepts file released: Helios_0.0.1.274_Win32bin.zip

    _ _ _ _ | | | | | | (_) | |__| | ___ | | _ ___ ___ | __ | / _ \ | | | | / _ \ / __| | | | | | __/ | | | | | (_) | \__ \ |_| |_| \___| |_| |_| \___/ |___/ Ragnarok Emulator Developers & Contributers - Tsusai - RaX - Aeomin - ChrstphrR (CR) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Release 1 -------------------------------------------------------------------------------- - Rev 274 - [2007/05/29] Tsusai - RELEASE 1. See Release Notes.txt. - - Rev 273 - [2007/05/29] RaX - Added in #warp for the proof of concept release, this is a HACKED IN ADDITION, do not expect it to stay, It'll be replaced by a much cleaner and better behaving version at a later date. - - Rev 272 - [2007/05/29] Tsusai - LuaNPCCore - RunLuaNPCScript: Forgot to uncomment a test line and remove the pcall line. - - Rev 271 - [2007/05/29] Tsusai - Apparently my Div by 0 test survived the Ctrl-S. Removed - - Rev 270 - [2007/05/29] Tsusai - Notes/Overview: More addons to the lua npc engine and various tweaks. [2007/05/29] Tsusai - MadExcept: Linked the VERSION that appears in reports, to read from Version.pas.HeliosVersion [2007/05/29] Tsusai - Being - TBeing: Removed MapPointer. Useless [2007/05/29] Tsusai - NPC - TScriptNPC.Disable: Removed MapPointer [2007/05/29] Tsusai - Being - TBeing.Walk: Added OnTouchCellFound and OnTouchCell, so that I can 1) make code look prety 2) Make sure that once i trigger an Ontouch npc, I don't do it again within its field. [2007/05/29] Tsusai - Character - TScriptState: Added more fields for it. [2007/05/29] Tsusai - Character - TCharacter.Create: Initiallize CharaState. [2007/05/29] Tsusai - OnTouchCellEvent - TOnTouchCellEvent.Execute: Makes sure conditions are right for running the script. [2007/05/29] Tsusai - LuaNPCCommands: Added script_dialog, script_wait, & script_close [2007/05/29] Tsusai - LuaNPCCommands - addnpc: Corrected the TNPC.Point setting [2007/05/29] Tsusai - LuaNPCCore: Added Resuming functions to resume Lua threads. [2007/05/29] Tsusai - PacketDB: Enabled 'npcclicked' & 'npcnextclicked' [2007/05/29] Tsusai - ZoneRecv: Added NPCNext & NPCClick. Const'd InterServer recv commands' InBuffer. [2007/05/29] Tsusai - ZoneRecv - ShowMap: Removed MapPointer [2007/05/29] Tsusai - ZoneRecv - CharaWalkRequest: Added some conditionals before walking. [2007/05/29] Tsusai - ZoneRecv - GetNameAndID: Added NPC data retrieval - - Rev 269 - [2007/05/27] CR - Overview: Bugfix! Solved out 3 bugs with walking/pathing, two pointed out by Tsusai and RaX while testing NPC Warps, and then the map- edge errors found trying to quell the complaints about unwalkable tiles that shouldn't be. That said, there still remains an issue with some unwalkable tiles, while I was testing this on the new1-2 map at 100,9 (as Tsusai suggested to test). Situation: the little "coves" to the left and right at the bottom, that are 1x3 tiles aren't reachable. I'm committing my changes to solve the aformentioned 3 bugs, because that solves out 98% of the issues found, and now we'll have more people to test and sort out that last remaining pesky problem. :P :) [2007/05/27] CR - Map TMap.GetPath: Applied 3 sets of bugfixes, two caused by my algorithm tweaks, one pre-existing: Mea Culpa: Infinite Loops, and improper pathing when the mouse button is held down to walk are solved. Pre-existing and discovered while dealing with the rest: We failed to account for map edges properly in our 16 radius search range, and this caused improper coordinates to be sent for the path. This one wasn't found right away, because we weren't testing on more than the new1-1 map. - - Rev 268 - [2007/05/25] Tsusai - Notes/Overview: Zone Updates. [2007/05/25] Tsusai - ZoneRecv: Moved things around a bit. Moved maploading back into ShowMap, and moved the Zone count increase from ShowMap into MapConnect. [2007/05/25] Tsusai - ZoneRecv -RecvWarpRequestReplyFromInter: Removes player from current cell. [2007/05/25] Tsusai - ZoneSend: Cleaned up uses [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TBeing to TCharacter. [2007/05/25] Tsusai - ZoneSend - SendAreaChat: Removed ABeing, changed to APerson, and added TCharacter conditionals. [2007/05/25] Tsusai - ZoneSend - ZoneSendBeing: Will not send information on hidden npcs. [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TCharacter to TBeing. [2007/05/25] Tsusai - ZoneSend - ZoneSendWarp: removes player from cell (same zone warp) - - Rev 267 - [2007/05/25] Tsusai - Notes/Overview: Lua Updates [2007/05/25] Tsusai - LuaCoreRoutines - MakeLuaThread: Finally got it to work the way I want it. Creates a new execution thread, links to the original globals, and keeps its own globals. [2007/05/25] Tsusai - LuaNPCCommands: Cleaned up USES, added the first real NPC command, "moveto". [2007/05/25] Tsusai - LuaNPCCommands - MakeNPCWarp: Forgot to add Job ID assignment. [2007/05/25] Tsusai - LuaNPCCore: Cleared up uses. [2007/05/25] Tsusai - LuaNPCCore - GetCharaFromLua: Returns a boolean function if retrieval of character data was successful. [2007/05/25] Tsusai - LuaNPCCore - RunLuaNPCScript: Added termination of lua thread. Not sure if that is a good spot or not. I will know soon. - - Rev 266 - [2007/05/25] Tsusai - Notes/Overview: Fixed USES in the following: ZoneServer, InterServer, InterRecv. - - Rev 265 - [2007/05/25] Tsusai - Being - TBeing.Walk: Fixed The ontouch event firing, due to an array typo. Also added sets the character to "standing" so the walk routine exits properly. [2007/05/25] Tsusai - NPC - TScriptNPC.OnTouch: fixed caller (was executing the clicking version). [2007/05/25] Tsusai - NPC - TScriptNPC.Enable & Disable: Fixed initial check to just check for OnTouchEnabled. [2007/05/25] Tsusai - TWarpNPC.Create: Now automatically sets the warp npc to an enabled state. - - Rev 264 - [2007/05/25] Tsusai - Added IS TCHARACTER conditionals to all routines (We were sending chat, and various packets to NPCs) - - Rev 263 - [2007/05/25] Tsusai - OnTouchCellEvent : made the ScriptNPC protected, and added a readonly property. - - Rev 262 - [2007/05/25] Tsusai - Notes/Overview: Moved linux notes to bin folder, and updated it with the full list of required libraries. - - Rev 261 - [2007/05/22] RaX - Overview : Broke Inter Server into the same design (*Server, *Send, *Recv) as the zone server. [2007/05/22] RaX - Updated header in InterServer to reflect all it does. [2007/05/22] RaX - Moved send routines from interserver.pas into intersend.pas [2007/05/22] RaX - Moved Recv routines from interserver.pas into interrecv.pas [2007/05/22] RaX - Updated uses in all 3 files. [2007/05/22] RaX - Added InterSend.pas [2007/05/22] RaX - Added InterRecv.pas - - Rev 260 - [2007/05/22] RaX - Overview : Added OnTouch to TScriptNPC. [2007/05/22] RaX - TScriptNPC : Added Enable/Disable [2007/05/22] RaX - TNPC : Changed Enabled to a property. [2007/05/22] RaX - TBeing: Modified .Walk to check for OnTouchEvents and execute them. [2007/05/22] RaX - Added TOnTouchCellEvent, an event object which resides in the currently named Beings intlist32 in TMap.Cell[x][y].Beings (Possible rename to objects?) - - Rev 259 - [2007/05/21] Tsusai - Notes/Overview: Updated a bunch of lua stuff. [2007/05/21] Tsusai - ZoneServer - ProcessZonePacket: Changed the AChara from TCharacter to a pointer of TCharacter. This way I can get the original character data, and pass it on. [2007/05/21] Tsusai - LuaNPCCommands: Redid the syntax checker, not as descriptive as before. Also added npc() to add NPCs [2007/05/21] Tsusai - LuaNPCCore: Removed existing commands, RunLuaNPCScript, SetCharaToLua, & GetCharaFromLua - - Rev 258 - [2007/05/19] CR - Overview: Cleanup in InterServer unit. Added class header, initial description of the purpose of the InterServer. Made changes, including new properties that lend clarity to routines that used to do the casting work in-situ. [2007/05/19] CR - InterServer - TInterServer.RecvGMCommandReply: Altered header, indent and style changes. Use of new ClientList and ZoneServerLink property and a with clause to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.InterSendGMCommandToZones: Altered header, indent and style changes. Extracted a local procedure to construct the packet ($2206), and slight optimizations made. Used ClientList and ZoneServerLink properties for clarity. [2007/05/19] CR - InterServer - TInterServer.RecvWhisper: Altered header, indent and style changes. Use of with, and ZoneServerLink to clarify code. [2007/05/19] CR - InterServer - TInterServer.RecvWhisperReply: Alterd Comment Header, indent and style changes. Used ZoneServerLink and ClientLink properties to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.SetPort: Altered Comment Header. Changed behavior so that fPort and TCPServer.DefaultPort are only altered IFF Value is different from fPort. Value parameter made constant. [2007/05/19] CR - InterServer - TInterServer.GetClientList: Created routine. Property read handler for ClientList. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerInfo: Created routine. Property read handler for ZoneServerInfo. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerLink: Created routine. Property Read handler for ZoneServerLink. [2007/05/19] CR - InterServer - TInterServer.RecvZoneWarpRequest: Altered Comment Header. Indent and style changes, with clause added to declutter a database value read. - - Rev 257 - [2007/05/13] - Tsusai - Notes/Overview: Fixed packet_db/zone related parameters. [2007/05/13] - Tsusai - Packet_Db: Modified ExecCommand types to have var and const for their parameters. [2007/05/13] - Tsusai - ZoneRecv: Updated all parameters for the above. [2007/05/13] - Tsusai - BufferIO: Added const/var to all parameters. - - Rev 256 - [2007/05/08] - RaX - Fixed hints and warnings that Turbo Delphi failed to catch. I finally fixed my compiler! - - Rev 255 - [2007/05/07] CR - Overview: Found the holy grail! Speedup on pathing, with a combination of logic simplification, and finding the proper spot and calculations for the Cost comparison. Users should notice the faster pathing with points selected near the edge of the character's view. [2007/05/07] CR - Map - TMap.GetPath: Added to comment header to describe this routine's behavior further. Refactored StepCost out of main routine, and improved the efficiency of that cost lookup by simplifying the comparison. Refactored out routines InitializeAnArea and GetOptimalDirection. Renamed local variables: XMod and YMode now are Offset (TPoint), and EndPointMod is now AreaEndPoint. Using DiagonalCost to PROPERLY focus the search area. In testing, this yields speeds half the time of the algorithm used in rev 254. This proper cost comparison, along with the proper stepping DOWN the compared cost (not incrementing it!), and with use of GetOptimalDirection, we are now aiming the search toward the goal, and avoiding expensive searches that don't compute to a low-cost path. - - Rev 254 - [2007/05/07] CR - Overview: Documentation and preparatory work in MapTypes for an improvement for Pathing on our maps. [2007/05/07] CR - MapTypes: Added constants for the GAT values, taken verbatim from Prometheus beforehand. I'm still a bit unsure that these have the correct names for the values. Someone please, please double check! [2007/05/07] CR - MapTypes - TFloodItem: Changed Cost to LongWord (same range, futureproofing for when Tsusai can't control his urge to compile 64 bit binaries whenever CodeGear releases a 64b compiler). Added methods for finding the Manhattan and Diagonal Costs from the given item to a relative destination point. Added both for completeness, but I'm only intending to use DiagonalCost since it'll give a more accurate heuristic distance. - - Rev 253 - [2007/05/06] CR - Overview: Minor cleanup in some TCharacter Set* methods -- documenting the routines, making parameters constant, and minimizing flags set for saving the Character State TCharacter.DataChanged isn't flagged when the value is identical to the Set* method's stored property value. [2007/05/06] CR - Character - TCharacter.SetBAbyID, SetOnline, SetHomunID: Aforementioned changes above applied to these property writing routines. - - Rev 252- [2007/05/04] - Tsusai - Notes/Overview: More tweaks to TWarpNPC & its lua side, and some documentation. New warp syntax, npc name is also the lua function name to call [hidden]warp("map","npc name and function name",x,y,xradius,yradius) [2007/05/04] - Tsusai - Character - TCharacter: Clears personal thread on destroy. [2007/05/04] - Tsusai - NPC - Added documentation, including a "tree" of how I plan the NPC object structure. [2007/05/04] - Tsusai - NPC - TWarpNPC: Removed "Destination" values. A warp will be a ontouch activated lua script. This will allow for random warps as well. Removed static JID value. [2007/05/04] - Tsusai - Map: Removed Lua from maps. [2007/05/04] - Tsusai - GameConstants: Added NPC_WARPSPRITE & NPC_INVISIBLE constants. [2007/05/04] - Tsusai - LuaCoreRoutines: Documented Lua_isNonNumberString and added a "is not nil" check in TerminateLuaThread. [2007/05/04] - Tsusai - LuaNPCCommands: Added hiddenwarp support. Broke up the npc warp reading. Now the syntax checker is its own procedure, and addwarp and addhiddenwarp are designed to go through the checker and TWarpNPC maker. [2007/05/04] - Tsusai - LuaNPCCore: Added comments. - - Rev 251 - [2007/05/03] - Aeomin - Overview: Implement Whisper. [2007/05/03] - Aeomin - Added RecvWhisperReply & RecvRedirectWhisper procedure [ZoneRecv.pas] [2007/05/03] - Aeomin - Added RedirectWhisperToZone & SendWhisperReplyToInter procedure [ZoneInterCommunication.pas] [2007/05/03] - Aeomin - Fixed type in Game database, lost '' in query [MySQLGameDatabase.pas(LoadChara)] [2007/04/27] - Aeomin - Fixed typo header in Static database of JanSql [JanSQLStaticDatabase.pas(GetMapZoneID)] [2007/04/27] - Aeomin - Added SendWhisperReply procedure to tell client about result of whisper [ZoneSend.pas] [2007/04/27] - Aeomin - Added SendWhisperReplyToZone procedure to parse the whisper reply code from Inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added RecvWhisper procedure to parse the request from zone [InterServer.pas] [2007/04/27] - Aeomin - Added Whisper procedure to parse Whisper packet [ZoneRecv.pas] [2007/04/27] - Aeomin - Added SendWhisperToInter procedure to send whisper request from zone to inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added 0x2210-0x2212 packet in packet_db.txt - - Rev 250 - [2007/05/02] - Tsusai - Notes/Overview: Added basic TNPC structures and added the first REAL lua script function, warp(), which will load the parameters it has, and create a TWarpNPC. warp("new_1-1","Start-Castle",148,112,2,3,"new_1-2",100,9) is the syntax warp(map,name,x,y,xradius,yradius,destmap,destx,desty); [2007/05/02] - Tsusai - NPC: Added, includes some basic TNPC structures, and descending classes such as TScriptNPC & TWarpNPC [2007/05/02] - Tsusai - InterServer - TInterServer.RecvZoneWarpRequest: Changed the ZoneID check to check for > 0. [2007/05/02] - Tsusai - LuaCoreRoutines: Added bool function Lua_isNonNumberString. A number like 345 passes the provided lua_isstring function, because it can be converted to a string. This function checks if it is a string, then if that is not a number. Good for alphanumeric strings only, no exceptions to pure numbers. [2007/05/02] - Tsusai - LuaNPCCommands: Changed addwarp & addnpc lua commands to npc and warp (still have add* prefix for the delphi procedure side). [2007/05/02] - Tsusai - LuaNPCCommands - AddWarp: No longer a dummy procedure. This sucker error checks like MAD, makes a TWarpNPC if its ok, and adds it to the zone global list. [2007/05/02] - Tsusai - LuaNPCCore: Splitted code from PrepLuaForNPCScripts to SetCharaIDToLua. Added GetCharaIDFromLua. [2007/05/02] - Tsusai - ZoneServer: Added a NPCList (TIntList32) for storing NPCs. Added create & free methods as well. - - Rev 249 - [2007/05/02] - RaX - Fixed packet_db, this corrects the freezing problem experienced in newer clients. (9/18+) - - Rev 248 - [2007/05/01] - Tsusai - Notes/Overview: Fixed a warp error for same map or same zone. [2007/05/01] - Tsusai - ZoneSend - ZoneSendWarp: Didn't save position for same map and same zone warping - - Rev 247 - [2007/05/01] - Tsusai - Notes/Overview: Added RaX's warp code w/ some fixes. Allows for warping on the same map, same zone, and multi zone warping :) [2007/05/01] - RaX - ServerInfo: const'd all strings that were not changing. [2007/05/01] - RaX - InterServer: Added RecvZoneWarpRequest and InterSendWarpReplyToZone. [2007/05/01] - RaX - InterServer - TInterServer.ParseInterServ: Added reading of zone warping details (RecvZoneWarpRequest) [2007/05/01] - Tsusai - InterServer - RecvZoneWarpRequest: Edited not to return any info if the zone w/ the request warp-to map doesn't exist. They can walk to the magical unknown map for all I care. [2007/05/01] - Tsusai - LoginServer - TLoginServer.Stop: Reversed the for loop of Charaserver deletions. [2007/05/01] - Tsusai - LoginServer - RemoveFromAccountList: Commented out the Account Key nilling. Fudges things up multi exe setups. [2007/05/01] - RaX - ZoneRecv: Added RecvWarpRequestReplyFromInter. [2007/05/01] - Tsusai - ZoneRecv - RecvWarpRequestReplyFromInter: Added updates to characters map and points, so after the d/c, it saves, and loads proper. [2007/05/01] - RaX - ZoneSend: Added ZoneSendWarpRequest. [2007/05/01] - Tsusai - ZoneSend: Added const to all procedures. [2007/05/01] - RaX - ZoneServer - TZoneServer.InterReadClient: Added parsing for the warp request reply from interserver to pass to RecvWarpRequestReplyFromInter. - - Rev 246 - [2007/04/29] Tsusai - Notes/Overview: Walking mechanism revisited. Initial design modeled after prometheus highly inefficent. It would cycle through all beings in a 33x33 area (16 radius, 1089 cells), as it cycled, it would go through all the beings for that cell to see if they were in the edge cells for showing and disappearing. A new flow control was designed, reducing the number of cells checked down to approx 244 (down to 22% of original). [2007/04/29] Tsusai - Being - TBeing.Walk: Broke up sections to HideBeings and ShowBeings. Also redid the cell looping system to loop through a set of border cells (~244 for first/last two rows/columns) instead of 1089 cells. [2007/04/29] Tsusai - Map - TMap: Removed any/all lua references - - Rev 245 - [2007/04/29] RaX - Commented TMap.GetPath. - - Rev 244 - [2007/04/29] CR - Overview: Cleanup of TCharacter.CalcMaxHP for clarity. [2007/04/28] CR - Character: TCharacter.CalcMaxHP: Altered Comment Header, added further description of the routine. Used an internal variable to simplify & shorten the span where the Database connection is open to retrieve the BaseMaxHP value. Reindented the formula for initializing MaxHP. Boy is it clearer to read without that long abomination of a method name to retrieve "GetBaseMaxHP"! :P~~ - - Rev 243 - [2007/04/28] CR - Overview: Made new data type in Being for stat arrays, used in both TBeing and TCharacter. Cleanup in TCharacter. [2007/04/28] CR - Being: New type ByteStatArray replaces the repeated use of array [STR..LUK] of Byte; definitions in Being and Character. [2007/04/28] CR - Character: Reindented the data types above TCharacter. [2007/04/28] CR - Character: TCharacter: Modified Class header. Eliminated private section - all internal fields used for properties are now protected, instead. Removed GetBaseStats property method (unneeded). Altered SetBaseStats to model the changes I made in TBeing last commit. Eliminated public variables that were IDENTICAL to those in TBeing (to avoid a repeat of problems like we had with fZeny in an earlier commit). Changed ParamUP and ParamBonus so they use the ByteStatArray type like TBeing uses for ParamBase. [2007/04/28] CR - Character: TCharacter:GetBaseStats: Removed. This class will call the ancestor GetBaseStats instead, which is all that was done within this routine (I would've kept it if it had to alter DataChanged). [2007/04/28] CR - Character: TCharacter:SetBaseStats: Altered Comment Header, improved description, noted Pre and Post conditions. Altered parameters to match TBeing. - - Rev 242 - TYPOS IN REVISION ENTRY [2007/04/28] CR - Overview: Commenting and headers added. Minor changes made for improve efficiencies, and comments left where there might be room for further gains, once proper explanations are fleshed out. [2007/04/28] CR - Being: Altered unit header. Improved unit description. Added class header for TBeing, described minor changes to the interface there. [2007/04/28] CR - Being: TBeing: Altered header, included description. Made empty routines CalcMaxHP and CalcMaxSP abstract. Eliminated private section, moved AreaLoop into protected. [2007/04/28] CR - Being: TBeing.Walk: Altered comment header. Added scathing comments for the lack of explanation for what REALLY goes in within this routine when two of the devs working on this project had to deal with poorly documented code beforehand and SHOULD KNOW BETTER than to leave code of this complexity unadorned with ANY sensible comments. On a positive note, the explanation for the routine was fine. [2007/04/28] CR - Being: TBeing.Walk:GetDirection: Changed Index from Integer to Byte type to eliminate a cast. [2007/04/28] CR - Being: TBeing.Create: Altered Comment Header. Added comment regarding inherited behavior. [2007/04/28] CR - Being: TBeing.Destroy: Altered header, added a better description. Defined Pre and Post Conditons. Added a comment stating that the inherited call must come last. Bugfix: moved inherited call last so ancestor's cleanup happens after the EventList/Path are freed. [2007/04/28] CR - Being: TBeing.SetName: Made Value parameter constant. [2007/04/28] CR - Being: TBeing.GetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.SetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.CalcSpeed: Added comment header & description. [2007/04/28] CR - Character: TCharacter.SetName: Made Value parameter constant to correspond with change made in TBeing. - - Rev 241 - [2007/04/28] CR - Overview: Commenting, reuse of constants to self-explain an array's bounds. [2007/04/28] CR - GameConstants: Altered header. Rearranged Direction constants to reuse NORTH and NORTHEAST as the bounds for the constant Directions array. - - Rev 240 - [2007/04/26] RaX - Fixed small bug in MySQLCommonDatabase -> SaveAccount. A space was accidentally removed in ChrstphrR's changes in rev 220. - - Rev 239 - [2007/04/25] Tsusai - Notes/Overview: Small Lua cleanup & added routine descriptions. [2007/04/25] Tsusai - LuaCoreRoutines, LuaNPCCommands, & LuaNPCCore: Routine descriptions added. [2007/04/25] Tsusai - LuaNPCCommands: Rearanged information. Remembered I could use the forward declaration, thus I am able to remove my dummy npc commands from interface. - - Rev 238 - [2007/04/25] Tsusai - Notes/Overview: Lua Lua Lua Lua Lua Lua. Seriously, alot of restructuring of existing npc routines vs common lua routines. [2007/04/25] Tsusai - LuaCoreRoutines: Added. I've split alot of crap out of the other units and made commands so that no other non Lua* unit calls the dll wrapper LuaPas itself. Added TLua, which is just the Plua_state, TLuaInfo, (for use w/ descendant threads like map and character lua's) which stores a lua for itself, its own reference ID to the parent, and a link to the parent. This is so that descendant execution threads can be unreferenced later and cleaned up on the fly :) [2007/04/25] Tsusai - LuaNPC*: Renamed from NPCCore/Commands. Redid and or rearranged the routines in these files with another or LuaCoreRoutines. [2007/04/25] Tsusai - ZoneServer: Updated all lua calls because of the restructure. [2007/04/25] Tsusai - Character: Lua (TLua) changed to LuaInfo (TLuaInfo). [2007/04/25] Tsusai - Map: Updated NPCLua (TLua) to NPCLuaInfo (TLuaInfo). Updated all lua related calls for the above restructure. - - Rev 237 - [2007/04/24] Tsusai - Notes/Overview: Linux fix related to the GetTick function. [2007/04/24] Tsusai - WinLinux - GetTick: The existing code only returned uptime in seconds. Unfortunatly in linux there is no current uptime in ms like Windows. This fix stores a linux time at startup (seconds since 1900 and its ms), then will take the difference for the tick. - - Rev 236 - [2007/04/23] Tsusai - Notes/Overview: Further refined lua in Helios. Changed out once again the Delphi unit that controls the dll. With that change, we can now use the latest Lua dll build 5.1.2. Also corrected a tiny error with the linux compile line dealing with LoginAccountInfo. This was giving me phantom errors in the delphi environment. [2007/04/23] Tsusai - Helios.dpr: Added the note that our license does not override third party licensing. [2007/04/23] Tsusai - 3rdParty.txt: Updated [2007/04/23] Tsusai - Lua.dll: Added Lua 5.1.2 dll and removed the lualib.dll (not used anymore). [2007/04/23] Tsusai - LuaPas: Added. Modified to for Windows/Linux dll/so names. [2007/04/23] Tsusai - Lua, luaxlib, lualib: Removed the THlua package. [2007/04/23] Tsusai - Helios.dpr: Changed the lua paths and fixed LoginAccountInfo linux path [2007/04/23] Tsusai - test.lua: Removed. [2007/04/23] Tsusai - Lua Notes.txt: Added some lua notes. [2007/04/23] Tsusai - Character.pas: Updated Uses for LuaPas [2007/04/23] Tsusai - Map.pas - TMap: Added NPCLua to TMap. Added loading of Scripts/MapLoaders/mapname.lua for dynamic npc loading. [2007/04/23] Tsusai - NPCCommands: Updated uses, added results to existing functions to kill compiler hints. [2007/04/23] Tsusai - NPCCore: Updated uses. MakeCharacterLuaThread changed to MakeLuaThread. Takes 2 lua pointers now. LuaCleanup: Removed RunLuaScript: Added, split from LuaSetup. [2007/04/23] Tsusai - ZoneServer: Updated uses. Now calls Core.lua instead of test.lua. - - Rev 235 - [2007/04/22] RaX - Fixed DefaultZeny not working. I had forgotten to remove the private fZeny variable from TCharacter back in the day which was now overriding the one in TBeing. Removed. I also went ahead and cleared up the other redundant problem causing variables. - - Rev 234 - [2007/04/20] RaX - Added GetChara(CharacterName) rather than just by ID in Database/GameDatabase - - Rev 233 - [2007/04/17] RaX - Added ScriptDirectory to ZoneConfig in Zone.ini. [2007/04/17] RaX - Updated EnsureFolderStructure to include the new script directory. - - Rev 232 - [2007/04/17] Tsusai - Notes/Overview: I started having some weird File.dcu not found, when doing random things. So I decided to clean up the uses again. This solved my issues. [2007/04/17] Tsusai - Added a Script State for TCharacter. [2007/04/17] Tsusai - Using Icarus as a guide, I cleaned up the uses of the following: DelayDisconnectEvent, CharaLoginCommunication, LoginServer, NPCCore, ZoneCharaCommunication. - - Rev 231 - [2007/04/16] Tsusai - Notes/Overview: Lua now integrated w/ Helios in a simple way. Units may need some cleanup, but when you run the zone, you will see results of loading test.lua (empty NPC Created reply & stored function execution). [2007/04/16] Tsusai - Removed dynamic lua file that was added. For some odd reason it wouldn't work proper. Replaced with THLua units. [2007/04/16] Tsusai - Added test.lua and lua dll's to bin directory. [2007/04/16] Tsusai - Character - TCharacter: Added personal lua pointer. [2007/04/16] Tsusai - ZoneServer - Loads and runs test.lua. Also cleans up npc lua - - Rev 230 - [2007/04/15] Tsusai - Notes/Overview: Reorganized Lua and added work in progress units (not active). [2007/04/15] Tsusai - ThirdParty/Lua.pas - Replaced with a different version by another author. This unit supports dynamic loading, so a compile used as a login server will not require the dll now. [2007/04/15] Tsusai - Common/Lua/ - Moved to Servers/Zone/Lua/ [2007/04/15] Tsusai - NPCCommands.pas & NPCCore.pas - Added to Servers/Zone/Lua/ - - Rev 229 - [2007/04/12] Aeomin - Append check for char and zone server to disallow LoginKey of 0 [CharacterServer.pas (SendCharas) ; ZoneRecv.pas (MapConnect)] [2007/04/12] Aeomin - Added reset LoginKey to 0 after client DC [LoginServer.pas (RemoveFromAccountList)] - - Rev 228 - [2007/04/12] RaX - Fixed a warning in Aeomin's new code...Changed Seconds from longword to integer in Account.pas - TemporaryBan. - - Rev 227 - [2007/04/12] Notes/Overview: Implement Duplicate Login Session Check. [2007/04/12] Aeomin - Added Show_FriendlyMessage_On_DuplicateLogin option for Char server, if set to TRUE, char server will show "Someone has already logged in with this ID" instead just DC when duplicate login [CharaOptions.pas, CharacterServer.pas(LoginClientKickAccount)] [2007/04/11] Aeomin - Added DuplicateSessionKick procedure to search & kick the character [ZoneSend.pas] [2007/04/11] Aeomin - Added SendKickAccountToZone procedure to send kick packet to Zone server [ZoneCharaCommunication.pas] [2007/04/11] Aeomin - Added LoginClientKickAccount procedure to check if account is online and kick [CharacterServer.pas] [2007/04/11] Aeomin - Added SendDCError procedure to send connect error packet 0x0081 [LoginServer.pas] [2007/04/11] Aeomin - Added Packet 0x2007 and 0x2110 for request force kick [packet_db.txt] [2007/04/10] Aeomin - Added TemperaryBan in TAccount to ban account temperary (in seconds) [Account.pas] [2007/04/10] Aeomin - Added GetBanUntilTimeString to TAccount for get remaining time when temperary ban [Account.pas] [2007/04/10] Aeomin - Changed "if not AnAccount.IsBanned then" to "if not AnAccount.State > 0 then" for extension [LoginServer.pad(ValidateLogin)] [2007/04/10] Aeomin - Added support 0x2005 and 0x2006 in Login Server which doing similar function as Char Server [LoginServer.pas] [2007/04/10] Aeomin - Added Transfering (Boolean) to TClientLink for keep the data when client selected a Character [PacketTypes] [2007/04/10] Aeomin - Added DcAndKeepData (Boolean) In TCharacter for keeping data while client is disconnected [Character.pas] [2007/04/10] Aeomin - Added SendAccountLogon/SendAccountLogOut procedure to update account in Account server's accountlist from Char server [CharaLoginCommunication.pas] [2007/04/10] Aeomin - Updated LoginClientRead to support Character Server ID [CharacterServer.pas] [2007/04/10] Aeomin - Changed Validated from Boolean to Byte [CharaLoginCommunication.pas (SendValidateFlagToChara)] [2007/04/10] Aeomin - Added ServerID in TCharaServerInfo [CharacterServerInfo.pas] [2007/04/10] Aeomin - Changed fCharaServerList From TStringList to TIntList32 [LoginServer.pas] [2007/04/10] Aeomin - Changed size of 0x2000 from 44 to 48 to support ID [packet_db.txt] [2007/04/10] Aeomin - Added config option ID for char server.[CharaOptions.pas] [2007/04/10] Aeomin - Added delaydc in SendCharacterSelectResponse and SendQuitGameResponse [ZoneSend.pas] [2007/04/10] Aeomin - Added UpdateToAccountList and RemoveFromAccountList [CharacterServer.pas] [2007/04/10] Aeomin - Added SendZoneCharaLogon and SendZoneCharaLogOut [ZoneCharaCommunication.pas] [2007/04/10] Aeomin - Added Packet 0x2108 and 0x2109. [packet_db.txt] - - Rev 226 - [2007/04/12] Tsusai - Notes/Overview: Fixed Linux compile errors and a file move. [2007/04/12] Tsusai - MSSQLClient: Somehow forgot that SysUtils was needed for linux. [2007/04/12] Tsusai - Helios.dpr: Changed Crt unit files from WinConsole to LinCRT & NCurses. [2007/04/12] Tsusai - Moved Lua.pas into ThirdParty folder. Moved Dummy files for my reference. - - Rev 225 - [2007/04/11] RaX - Added Trunk/NOTES/Source Directory Structure.txt, this file explains the folder structure in the source code. - - Rev 224 - [2007/04/11] RaX - Overview: Updated the dpr to show the new locations of the files. - - Rev 223 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Yet another purposely broken build, this one completes moving all the source files into their appropriated positions. [2007/04/11] RaX - Renamed 3rdParty to ThirdParty. [2007/04/11] RaX - Moved Database.pas into the Database folder. [2007/04/11] RaX - Created Common/Classes/Beings folder, moved Being and descendants into it. [2007/04/11] RaX - Created Common/Classes/Lists folder, moved custom lists into it. - - Rev 222 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Moved files around to be more sane in the repository. [2007/04/11] RaX - Moved Classes Folder into Common Folder. [2007/04/11] RaX - Moved Packet_DB.pas into Zone Folder. [2007/04/11] RaX - Moved Zone, Character, Inter, and Login Folders into a new Servers Folder. [2007/04/11] RaX - Moved Console Folder into Common Folder. [2007/04/11] RaX - Moved Lua folder into Common folder. [2007/04/11] RaX - Moved Config Folder into Common Folder. [2007/04/11] RaX - Removed "Database" Folder from /src. [2007/04/11] RaX - This commit breaks the build on purpose! Moving the files around requires multiple commits to complete. - - Rev 221 - [2007/04/10] RaX - Overview: made ini input use ensurerange on values that could crash the server. [2007/04/10] RaX - Added NetworkConstants.pas. Contains MAX_PORT. [2007/04/10] RaX - Added MAX_DBTYPE to DatabaseConstants.pas [2007/04/10] RaX - Added ensurerange around any integer/word/longword type variables in the ini files to prevent range errors from users. - - Rev 220 - [2007/04/07] CR - Overview: Cleanup - Static Database - Template and implemented units for Jan and MySQL synched up. [2007/04/07] CR - StaticDatabaseTemplate: Altered header. Made all methods abstract. All parameters are strictly defined as in/out/var/const to self document and make string parameters more efficient when the methods are called. [2007/04/07] CR - JanSQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - MySQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - Version: Updated Version string/version info. - - Rev 219 - [2007/04/06] CR - Overview: Cleanup - Game Database - Template and implemented units for Jan and MySQL synched up. [2007/04/06] CR - GameDatabaseTemplate: Altered header, improved description. Template class made entirely abstract, and all parameters are specified as in/out/var/const explicitly. [2007/04/06] CR - JanSQLGameDatabase: Altered header. Improved description/ purpose of unit. Changes to TJanSQLGameDatabase. [2007/04/06] CR - MySQLGameDatabase: Altered header, added to description. Changes made to TMySQLGameDatabase class to match changes made in the Game DB Template. - - Rev 218 - [2007/04/06] Aeomin - Forgot commit dpr file. - - Rev 217 - BROKEN BUILD [2007/04/06] Aeomin - Changed console message related to update online count from MS_NOTICE to MS_DEBUG [LoginServer.pas , CharacterServer.pas] [2007/04/06] Aeomin - Added Who.DelayDisconnect(10000); in Kick [ZoneSend.pas (Kick)] [2007/04/06] Aeomin - Added DelayDisconnectEvent.pas and DelayDisconnect in being to disconnect client after time expire (Used in kick) [DelayDisconnectEvent.pas , Being.pas] [2007/04/06] Aeomin - Added support /w | /who in game to receive total online count [ZoneRecv.pas (SlashWho) , ZoneSend.pas (ZoneSendConnectionsCount)] [2007/04/06] Aeomin - Added support of packet 0x2107 to set total online count [ZoneServer.pas] [2007/04/06] Aeomin - Added UpdateOnlineCountToZone and SendOnlineCountToZone to send Total Online Count to all zones [CharacterServer.pas , ZoneCharaCommunication.pas] [2007/04/06] Aeomin - Added Connection: TIdContext to let character able to send packet to all zone servers [ServerInfo.pas] [2007/04/06] Aeomin - Added packet 0x2107 in packet DB use to send total online count from Char server to Zone. [packet_db.txt] - - Rev 216 - [2007/04/06] CR - Overview: Cleanup - made TCommonDatabaseTemplate abstract, and rigorously defined each parameter to self-document. [2007/04/06] CR - CommonDatabaseTemplate: Changed Header Style. Made the class entirely Abstract. All methods state explicit in/out/var/const for each parameter. Eliminated Constructor and Destructor definitions because they are identical to TObject's -- and all derived classes have more complex constructors. [2007/04/06] CR - JanSQLCommonDatabase: Made all parameters var/const/in/out. Create doesn't override the constructor in the template (due to changes to the template model). Parent and Database made into read-only properties, with f* internal fields to store them. Converted all private fields and methods to protected. [2007/04/06] CR - MySQLCommonDatabase: Altered header for class. Moved private fields and methods into protected. Made fields f* style, and created read only properties for the original field names. Changed method parameters to model after changes made in TCommonDatabaseTemplate. [2007/04/06] CR - Altered Version string/Version info. - - Rev 215 - [2007/03/31] Aeomin - Fixed account always turns to female when using MYSQL. - Rev 214 - [2007/03/30] CR - Overview: Code cleanup in MySQLCommonDatabase, MySQLGameDatabase units. [2007/03/30] CR - MySQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MySQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 213 - [2007/03/30] Aeomin - Removed SendZoneCharaIncrease in OnConnect [ZoneServer.pas:TZoneServer.OnConnect] and moved to ShowMap [ZoneRecv.pas:ShowMap] [2007/03/30] Aeomin - Commented out debug message that will show every time player login/logout [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo in zone server that may cause unknown problem (Pointed out by RaX) [ZoneServer.pas:TZoneServer.OnDisconnect] [2007/03/30] Aeomin - Fixed typo that made char server to confuse packet (Pointed out by RaX) [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo causes AV in CharServer when try to calculate online players [CharacterServer.pas:GetOnlineUserCount] [2007/03/30] Aeomin - Changed Server down error code from 3 to 1 [CharacterServer.pas:SendCharaToMap] - Rev 212 - [2007/03/30] Tsusai - Notes/Overview: Basic Online count in place. Updated server<->server documentation [2007/03/30] Tsusai - ServerToServerPackets: Updated for alot of things. [2007/03/30] Tsusai - Packet_Db: Added new online user packets. [2007/03/30] Tsusai - CharacterServer - GetOnlineUserCount: Replaced OnlineUsers with this. Gets total count of all players on the zone. [2007/03/30] Tsusai - CharacterServer - ParseCharaServ: Added packets 0x2105 & 0x2106 for easy online count updating. [2007/03/30] Tsusai - CharaLoginCommunication - SendCharaOnlineUsersToLogin: Changed OnlineUsers to GetOnlineUserCount. [2007/03/30] Tsusai - ZoneCharaCommunication: Added SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServer - TZoneServer OnConnect & OnDisconnect: Added calls to SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServerInfo - TZoneServerInfo: Added OnlineUsers word type. - - Rev 211 - [2007/03/29] RaX - Notes/Overview: Completed Database changes, made database connections connect and disconnect locally. [2007/03/29] RaX - CommonDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - GameDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - StaticDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - LoginServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - CharacterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneRecv.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneSend.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - InterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - Remember to Connect before and disconnect after issuing groups of Queries, routine local. - - Rev 210 - [2007/03/28] Tsusai - Notes/Overview: Fixed HP issues. Packet_DB update. Added Lua related files (no dlls yet). [2007/03/28] Tsusai - Character - TCharacter.CalcMaxHP: MaxHP + Calc'd MaxHP wasn't the right formula. Also made it change the HP to MATCH the MAXHP if its over at the time of calculation. [2007/03/28] Tsusai - Packet_db: Added new packets for '07 clients from eA's. [2007/03/28] Tsusai - ZoneSend - KickAllUsers: Reversed the loop of kicking of characters to prevent any index out of bounds errors. [2007/03/28] Tsusai - Added Lua.pas, folders, and some dummy files for reminders of what I need to do. - - Rev 209 - [2007/03/28] Aeomin - Fixed Access Violation during shutdown, which just an extra check [ZoneServer.pas:OnDisconnect] [2007/03/28] Aeomin - Added a Zone Option which allows kick all players before shutdown, instead just Disconnect. [Only works with proper shutdown (CTRL+C), close button will force close program] [2007/03/28] Aeomin - Added Kick, KickAll procedure [ZoneSend.pad] - Rev 208 - [2007/03/28] CR - Overview: Code cleanup in PacketTypes, ZoneRecv, ZoneSend, ZoneServer, and ZoneServerInfo units. [2007/03/28] CR - PacketTypes: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneRecv: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneSend: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServerInfo: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 207 - [2007/03/28] CR - Overview: Code cleanup in Being, Database, Globals, GMCommands, InterServer, JanSQLCommonDatabase, JanSQLGameDatabase, Map, MovementEvents, and MSSQLClient units. [2007/03/28] CR - Being: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 204!) [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 205!) [2007/03/28] CR - Globals: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - GMCommands: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - InterServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Map: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MovementEvents: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MSSQLClient: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 206 - [2007/03/28] CR - Overview: Code cleanup in Character, CharacterEventThread, and Database units. [2007/03/28] CR - Character: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - CharacterEventThread: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database:TDatabase.Create - Removed hints about unused local variables. Reindented code, wrapping comments and long lines. [2007/03/28] CR - Version: Updated version string. - - Rev 205 - [2007/03/28] CR - Overview: SVN Cleanup [2007/03/28] CR - Version: Updated version string. [2007/03/28] CR - SVN ignores set, to make wading through files when committing less of a chore. trunk/ and subfolders: svn:ignore tag set for "*.~*" trunk/obj/: svn:ignore tag set for "*.dcu" - - Rev 204 - [2007/03/28] CR - Overview: Code cleanup in AreaLoopEvents, Being units. [2007/03/28] CR - Version: updated version number, modified header comment. [2007/03/28] CR - Being: Cleaned up uses clauses - unneeded units removed. Made changes to parameter lists for the TLoopCall declaration. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left (faster calls this way, especially when called repeatedly in triple nested loops!). [2007/03/28] CR - AreaLoopEvents: Cleaned up uses clauses - unneeded units removed, and some moved to local to the routines, not the declaration. Made changes to parameter lists for the routines here, following the new TLoopCall procedure declaration in Being. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left. - - Rev 203 - [2007/03/27] RaX - Notes/Overview : Moved Zone server to local connections. Removed global database connection. [2007/03/27] RaX - ZoneServer.pas, ZoneRecv.pas, ZoneSend.pas - changed ADatabase calls to threadlink databases. [2007/03/27] RaX - PacketTypes.pas - now TThreadLink.create takes a TIdContext as a param. [2007/03/27] RaX - Database.pas - implemented ClientInfo, set in tthreadlink.create. [2007/03/27] RaX - Account.pas/character.pas - moved database calls to TThreadlink. [2007/03/27] RaX - Moved DatabaseOptions from the database connection to mainproc. - - Rev 202 - [2007/03/26] - Aeomin - Fixed wrong gender showing of other players, apparently is caused new codes which makes every players same gender as your own [ZoneSend.pas:ZoneSendBeing] - Rev 201 - [2007/03/26] RaX - Notes/Overview : Fixed annoying slight timing difference between server and client in walking. [2007/03/26] RaX - Added "DIV 2" to the end of the speed calcs in CharaWalkRequest - zonerecv - - Rev 200 - [2007/03/26] RaX - Notes/Overview : Fixed access violation with help from Aeomin - Thanks [2007/03/26] RaX - I forgot 2 frees of the accountlink =( Now that they're owned by the connection. Fixed. - - Rev 199 - [2007/03/26] RaX - Notes/Overview : Inter Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. [2007/03/26] RaX - GM Commands are now enabled - try out #Zonestatus with an access level of 100 or higher =) Test multiple zones too. - - Rev 198 - [2007/03/26] RaX - Notes/Overview : Character Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. - - Rev 197 - [2007/03/26] RaX - Notes/Overview : Login server is now using local connections. [2007/03/26] RaX - Changed all ADatabase uses in LoginServer.pas to TThreadLink calls. [2007/03/26] RaX - Added TThreadLink.Create to OnConnect in login server. - - Rev 196 - [2007/03/26] RaX - Notes/Overview : another sub commit of the massive database changes about to occur... [2007/03/26] RaX - Changed TThreadLink into a parent class with a TDatabase Databaselink as it's only property, it also has a constructor and destructor which create + free it. [2007/03/26] RaX - The other links (CharaServerLink, ZoneServerLink) are descendants of TThreadLink as well as a new TClientLink which is what TThreadLink used to be. [2007/03/26] RaX - Made each inherit the constructors, each also has a destructor which checks and frees the links of they're created. - - Rev 195 - [2007/03/26] RaX - Notes/Overview : Made accounts + characters linked to the client from themselves through ClientInfo rather than just through the tthreadlink. [2007/03/26] RaX - Account.pas - added ClientInfo property. [2007/03/26] RaX - Character.pas changed order of properties. [2007/03/26] RaX - ZoneRecv - implemented setting the account's clientinfo. - - Rev 194 - [2007/03/26] RaX - Notes/Overview : Fixed memory leaks in Account + Character servers. Zone should be fine, we've kept strict control there by dealing with everything through an "owning" list. Just a note...We leaked in EVERY character server function...let's NOT let that happen ever again. - - Rev 193 - [2007/03/25] RaX - Notes/Overview : Removed accountlist from globals. Modified code to deal with it. Moved Account access into TThreadLink.AccountInfo for consistency. [2007/03/25] RaX - Updated Globals.pas, removed all traces of the accountlist. [2007/03/25] RaX - LoginServer.pas, killed accountlist, made account access local. [2007/03/25] RaX - CharacterServer.pas killed accountlist. Made changes to offset the removal such as updating the account's charanum on create. [2007/03/25] RaX - Reorganized and fixed GetAccount and overloads in all database types. They no longer use AccountList + are slightly easier to read =) [2007/03/25] RaX - Removed TCharacter.Account - we now use TThreadLink.AccountLink in all cases. [2007/03/25] RaX - Updated zone server, it now uses account + character link variables. - - Rev 192 - [2007/03/15] Tsusai - Notes/Overview: Added 'Support_Dec06_AndNewerClients' to Character.ini This allows usage of ONLY December 2006 and newer clients when enabled. kRO added the ability to rename a character, which at this time I do not know how to enable/support. [2007/03/15] Tsusai - CharaOptions : Added [OPTIONS] 'Support_Dec06_AndNewerClients', and its parsing. [2007/03/15] Tsusai - CharacterServer : Added WriteCharacterDataToBuffer. This routine handles writing the character's stats to the outgoing buffer at the right offset. Also this routine makes use of the new ini entry, so that the changed packet length is supported. [2007/03/15] Tsusai - CharacterServer - CreateChara & SendCharas : Now call WriteCharacterDataToBuffer. - - Rev 191 - [2007/03/25] CR - Overview: Comments added to explain and state origins of WriteBufferTwoPoints [2007/03/25] CR - BufferIO:WriteBufferTwoPoints - Added Comment Header, and described routine in detail, and in summary. Made remaining three passed parameters constant. Renamed local variables for more clarity: [2007/03/25] CR - Version - updated version string (and version info for exe) - - Rev 190 - [2007/03/25] CR - Overview: Bugfix - code meant to handle and notify user of malformed .pms mapfiles would not work as intended. Result will NOT behave the same as C or C++'s return keyword! [2007/03/25] CR - MapTypes - Added MAX_PMS_HEADER_LENGTH constant. Used in TMapLoadFromFile [2007/03/24] CR - Map:TMap.LoadFromFile - Parameter made constant (optimization) Renamed Parameter "Path" to "PmsFile" to avoid ambiguity with TMap.Path It's a more appropriate name than "Path" in the first place! :) Surrounded TMemoryStream with a try-finally to protect the resource. Fixed major logic flaws -- Result is NOT handled like C/C++'s "return" keyword. Thus, we NEED to use if-then-else branching, not just sequential if-thens. Malformed/hand-mangled maps could cause fatal errors with the old code flow, because it couldn't avoid continuing on instead of bailing early. [2007/03/25] CR - Helios.dpr - removed MadShi units that were added in on Aeomin's previous build. [2007/03/25] CR - Version - Updated text displayable version (and the build number that's stored in the exe itself too). - - Rev 189 - [2007/03/24] - Aeomin - Added IgnoreMob & IgnoreNPC parameter to TBeing.AreaLoop to extend for future NPCs (Mob also is NPC) [Being.pas] [2007/03/24] - Aeomin - Extended TBeing.Walk to handle NPC/Mob and etc... [Being.pas] [2007/03/24] - Aeomin - Renamed ZoneWalkingChar to ZoneWalkingBeing, ZoneSendChar to ZoneSendBeing, ZoneDisappearChar to ZoneDisappearBeing, to support other than character (Npc,Mob etc) [ZoneSend.pas] [2007/03/23] - Aeomin - More typo fixes on direction - - Rev 188 - [2007/03/24] CR - Overview: Hint Removal, Refactor, Credits. Removed a warning for an unused local variable in TCharacter.SendSubStat. [2007/03/24] CR - Character:TCharacter.SendSubStat - Moved first section of this routine into local procedure Send_00b0. Moved the non-implemented blocks into local routines as well. Made all parameters constant, which self- documents these, and makes calling the routine more efficient. Anyone working on this routine, please feel free to use more descriptive or appropriate local routine names! :) [2007/03/24] CR - Updated Contributors on this document and Helios.dpr [2007/03/24] CR - Updated Version String missed in Rev 187 - - Rev 187 - BROKEN BUILD [2007/03/22] - RaX - fixed the dpr - Aeomin had forgotten to commit it. [2007/03/22] - RaX - Finished GM Command system, Now there's an ugly bug that has surfaced when gm commands are used because of the database clients not being thread safe, so the system has been disabled for now. [2007/03/22] - RaX - Inter Server now accepts packet 2207 and forwards it to the zones. this new packet is the command execution result, it tells the character whatever the command sends back. - - Rev 186 - BROKEN BUILD [2007/03/22] - A careless mistake : Forgot commit file AreaLoopEvents.pas - - Rev 185 - BROKEN BUILD [2007/03/22] - Aeomin - Now able to show other characters ingame. [2007/03/21] - Aeomin - Fixed direction being opposite (Should be counter-clockwise). [2007/03/21] - Aeomin - Put most of area loops into one procedure and typed procedures to make code clean. [2007/03/21] - Aeomin - Preset index number in loop to reduce recount on each character when making packet of character list (Character Server). [2007/03/20] - Aeomin - Able to change direction and show to other character. [2007/03/20] - Aeomin - Added Status and Ailments in TBeing for future needs. - - Rev 184 - [2007/03/21] - RaX - Overview : Added to the inter server, it now prepares to send packet 2206 to all zones. [2007/03/20] - RaX - Zone server now listens for 2206 from the inter. [2007/03/21] - RaX - Zone server now looks for an accounts level before allowing a gm command to be executed. [2007/03/21] - RaX - GMCommands.pas - added a few new utility routines and implemented them. - - Rev 183 - [2007/03/19] - RaX - Overview : Created basic GM Command component and added it as a part of the zone server, will also be apart of the inter server in the future. [2007/03/19] - RaX - Modified GMCommands.pas, made it a class rather than a bunch of routines. [2007/03/19] - RaX - Changed IsCommand to check the list of commands to see if a specified piece of chat started by # is really a gm command. - - Rev 182 - [2007/03/19] - RaX - Added simple gm command parsing to zone server in the new AreaChat routine. [2007/03/19] - RaX - Added to inter server, it now accepts gm command sends from zones. [2007/03/19] - RaX - Added zone server communicating with inter to send gm commands. [2007/03/19] - RaX - Added GMCommands.pas to Zone, will hold all our gm command related stuff. [2007/03/19] - RaX - Updated packet_db, contains the new inter communication packet. - - Rev 181 - [2007/03/19] - Tsusai - Notes/Overview: Modifed basic timed event. [2007/03/19] - Tsusai - Event - TRootEvent.Create : Now takes on the time as its parameter. [2007/03/19] - Tsusai - Updated the following for the above : MovementEvent - TMovementEvent.Create Being - TBeing.Walk ZoneRecv - CharacterWalking - - Rev 180 - [2007/03/18] - Aeomin - Add very basic support of local chat (you have to walk blindly to meet other character). - - Rev 179 - [2007/03/18] - RaX - Copied over Character Server code to have Zone authenticate with inter server. [2007/03/18] - RaX - Renamed *Packets units to *Communication units, makes mroe sense. [2007/03/18] - RaX - Implemented Inter client in zone server. [2007/03/18] - RaX - Added new inter comm packets to packet_db - - Rev 178 - [2007/03/17] - RaX - Fixed Return to character select, changed true to false in a condition (Thanks Aeomin). [2007/03/17] - RaX - Moved packet sending code out of zone recv and into zone send. [2007/03/17] - RaX - Fixed walking points start and end being in the wrong places. [2007/03/17] - RaX - Walking should work pretty normally now. - - Rev 177 - [2007/03/16] - Tsusai - Notes/Overview: Added 2 packets. Also anytime we recieve data from Indy and place in our buffer, that information that would be overwritten in our buffer is cleared. [2007/03/16] - Tsusai - ZoneRecv: Added ReturnToCharacterSelect & QuitGame (not fully tested). [2007/03/16] - Tsusai - PacketDB: Enabled the above. - - Rev 176 - [2007/03/16] - Tsusai - Notes/Overview: Fixed the character point "not saving". [2007/03/16] - Tsusai - Map - GetPath: Commented out the use of APath.Assign. The list that was copied was ordered in reverse (destination at index 0, source at last index). Since the list was passed that way, it was thinking that we started at the end and went to where we were. Currently uses a for downto loop to copy the points just right. [2007/03/16] - Tsusai - Character - TCharacter: Removed 'inherited' calls on the Save Map and Save point. They were NOT inherited nor do they override. - - Rev 175 - [2007/03/14] - RaX - Fully implemented Direction variable in TBeing, forgot to before. - - Rev 174 - [2007/03/14] - RaX - Overview : General cleanup in TBeing + TCharacter. [2007/03/14] - RaX - Moved overridden properties in TCharacter to inherited ones. [2007/03/14] - RaX - Removed copied code from TBeing overridden get + set methods and instead had them inherit the TBeing methods. [2007/03/14] - RaX - Removed dX + dY from TBeing.Walk, we are now using a direction system that allows you to convert a direction constant number IE::0,1,2,3,4,5,6,7 into a point and vice versa. [2007/03/14] - RaX - Moved Direction constant array from Map.pas into game constants. [2007/03/14] - RaX - Added direction constants to game constants (North, south, etc). [2007/03/14] - RaX - Renamed Bidx in TBeing.Walk to BeingIndex, was hard to understand. [2007/03/14] - RaX - Renamed TBeing.Point to Position, was hiding the Point method in Types. - - Rev 173 - [2007/03/14] - [Shin] - Re-added maps to databases along with map files. They were copies. - - Rev 172 - [2007/03/14] - [Shin] - Removed map 06guild_r, 06guild_01 - 06guild_08. - - Rev 171 - [2007/03/13] - Aeomin - Updated headers, corrected typoes, etc. - - Rev 170 - [2007/03/13] - RaX - Remade the Pathing algorithm, now behaves exactly like Aegis. Timing issue still remains - Tsusai, take a look? - - Rev 169 - [2007/03/09] - [Shin] - Added map 06guildr. [2007/03/09] - [Shin] - Updated map database, ve_in2 needed to be ve_in02. - - Rev 168 - [2007/03/08] - RaX - Fixed pathing events firing all at once [2007/03/08] - RaX - Adjusted pathing, removed getting the closest path. [2007/03/08] - RaX - Added removing existing walking events if a new walk request comes in. [2007/03/08] - RaX - Removed debug messages, no longer needed. [2007/03/08] - RaX - small timing issue remains, server is one step ahead of the client... sometimes.... - - Rev 167 - [2007/03/07] - Tsusai - Notes/Overview: Fixed inheritance between some of the TBeing and TCharacter parts. [2007/03/07] - Tsusai - Updated the resource file with the new icon. Added the icon itself. [2007/03/07] - Tsusai - Being - TBeing: Refined Walk to run once per point. Adds event for the next point. Added properties to fields such as JID and Name. [2007/03/07] - Tsusai - Character - TCharacter: Set all Set*** to override its TBeing settings. [2007/03/07] - Tsusai - Map - TMap.GetPath: Clears the result path before writing to it from the temp path. [2007/03/07] - Tsusai - CharacterEventThread: Changed to use LongWord for tick times instead of TDateTime. [2007/03/07] - Tsusai - Event & EventList: Any/all TEvents changed to TRootEvent. SyncObjs has a TEvent in it, so to prevent any odd conflicts, this was done. [2007/03/07] - Tsusai - MovementEvent - TMovementEvent: Added Create to take on a TBeing, and calls that tbeing's Walk method [2007/03/07] - Tsusai - ZoneSend - ZoneSendCharaWalkReply: Changed parameters [2007/03/07] - Tsusai - ZoneRecv - CharaWalkRequest: Added more code to support it. [2007/03/07] - Tsusai - Added BUGS and TODO. - - Rev 166 - [2007/03/02] - RaX - Merged the two MSSQL client files. Added credits. - - Rev 165 - [2007/03/02] - RaX - Overview: Created basic MSSQL database interface, all it does right now is dynamically load the library and set up the routine pointers. [2007/03/02] - RaX - Added Common/3rdParty/MSSQL/mssql32_mod.pas - modified by Tsusai. [2007/03/02] - RaX - Added Classes/MSSQL.pas - a wrapper class for mssql32_mod which is a dll template. - - Rev 164 - [2007/03/01] - Tsusai - Notes/Overview: Unit Uses cleanup. - - Rev 163 - [2007/02/28] - Tsusai - Notes/Overview: Fixed scrolling in Linux [2007/02/28] - Tsusai - CRT - SetupCRT: Added the enabling of scrolling for linux. - - Rev 162 - [2007/02/27] - RaX - Added routine headers to new routines written by Tsusai. [2007/02/27] - RaX - Removed Char_clickarea and Char_Showarea constants from gameconstants [2007/02/27] - RaX - Replaced constants with entried in zone.ini under performance. [2007/02/27] - RaX - Added Zone Tick and Event Tick options in zone.ini under performance, these are also implemented as the amount of time to sleep in milliseconds between packet processes for zone tick, and event processes for event tick. - - Rev 161 - [2007/02/27] - RaX - Fixed pathing randomly using all available ram, that vital line of code was also unimplemented, apparently I had committed one of my tests back in the day =( [2007/02/27] - RaX - Added a Sleep(1) to the end of ProcessZonePacket to free up the processor. [2007/02/27] - RaX - Made a few efficiency changes to PointList, removed Assign. - - Rev 160 - [2007/02/26] - RaX - Accidentally removed a vital line of code from pathing along the way somewhere. Now fixed. [2007/02/26] - RaX - Added CHAR_SHOWAREA to gameconstants, implemented in TBeing.Walk. - - Rev 159 - [2007/02/26] - RaX - Overview : And more console and startup tweaks! [2007/02/26] - RaX - Added new Message type, MS_ALERT, for non-loggable messages(command results, etc.). [2007/02/26] - RaX - Implemented MS_ALERT type messages in Commands. [2007/02/26] - RaX - Fixed bug with /exit command, Helios would not exit cleanly because the Console object was being free'd before MainProc was free'd. Fixed by including Console.Free in TerminateApplication. - - Rev 158 - [2007/02/25] - RaX - Overview : Further console and startup tweaks. [2007/02/25] - RaX - Fixed line color issue, didn't include part of the necessary code in the critical section. [2007/02/25] - RaX - Added TConsole.ReadLn(AString); This is an alias for ReadLn which also includes our command parser. [2007/02/25] - RaX - Messed with MainProc.Startup to have it look better. [2007/02/25] - RaX - Moved MainProc.DisplayHeader into the dpr, have it display only ONCE. [2007/02/25] - RaX - at 3am I forgot I had removed the thirdpartycredits from startup display new command, /credits, displays them. - - Rev 157 - [2007/02/24] - RaX - Overview : Finished log configuration by adding the ability to set which types of messages are logged. Added ability to configure which directories are used (Maps/Database/Configuration Directories). Made all ini files create in the configuration directory set in Helios.ini, which now retains the name of the .exe so, in effect, an administrator could run multiple exe's in one folder by setting the folder names difrerently. [2007/02/24] - RaX - Reorganized MainProc.Startup, moved Header into DisplayHeader. [2007/02/24] - RaX - Added a few global initializations and the Console object creation to the body of Helios.dpr. [2007/02/24] - RaX - Added Directories to HeliosConfig.pas. [2007/02/25] - RaX - Changed Command errors to be type Information for logging purposes. [2007/02/25] - RaX - Added IsValidFolderName to WinLinux to make sure folder names supplied in Helios.ini do not contain invalid characters for the filesystem Helios is on. [2007/02/25] - RaX - Implemented Directory variables throughout Helios. [2007/02/25] - RaX - Added EnsureFileStructure to MainProc. This routine makes sure the supplied required directories exist and if they don't, it creates them. [2007/02/25] - RaX - Helios can now start by itself in a directory with no resources whatsoever and not crash. [2007/02/25] - RaX - Removed a debug line I had forgotten about in Map.pas. [2007/02/25] - RaX - Console was being free'd in Destroy Globals, so when an administrator used command /restart, the server would crash. Fixed. - - Rev 156 - [2007/02/24] - RaX - Overview : Added log to file for console messages configureable by the administrator. [2007/02/24] - RaX - Added ConsoleConfig.pas - broke out console related ini entries from HeliosConfig.pas. [2007/02/24] - RaX - Added new constant, MS_DEBUG, to globals for handling debug messages. [2007/02/24] - RaX - Reorganized TConsole.Message to be faster and handle messages better. [2007/02/24] - RaX - Added TConsole.WriteDebug which appends an entry with a timestamp for each message which meets the criteria defined in Console.ini. - - Rev 155 - [2007/02/24] - RaX - Fixed pathing, Got rid of GetArea, added IsBlocked as a member of TMap. Tsusai - ProcessZonePacket, after a successfull walk request, gets stuck in an infinite, REALLY stinkin' fast loop that leaks memory all over the place - investigate? Oh yeah, characters can walk. - - Rev 154 - [2007/02/20] - Tsusai - Notes/Overview: Implemented the StartCRT and EndCRT. [2007/02/20] - Tsusai - Helios.dpr : Added StartCRT here. [2007/02/20] - Tsusai - Globals - TerminateApplication : Added EndCRT here. - - Rev 153 - [2007/02/20] - RaX - Reverted rev 133's Pathing changes. - - Rev 152 - [2007/02/20] - Tsusai - Notes/Overview: Walking mechanics somewhat in place..waiting on Pathing fixes. Also some bug fixes from a few mistakes in Rev 143. Added the icon passed to me from RaX. Only shows up in windows (only compiles in with the windows compiler). [2007/02/20] - Tsusai - Being - Added Walking procedure. [2007/02/20] - Tsusai - Map - TMap.LoadfromFile - Added the setting of the TMap.Path here. [2007/02/20] - Tsusai - BufferIO - Added WriteBufferTwoPoints [2007/02/20] - Tsusai - CRT - Added SetupCRT and EndCRT. Will be implemented into the code later. Handles the setup of the CRT units (Really just for linux, but need to keep it and call it from CRT wrapper). [2007/02/20] - Tsusai - PacketDB - Commented out the walk packet for now. [2007/02/20] - Tsusai - ZoneRecv - CharacterWalkRequest - Added more code. [2007/02/20] - Tsusai - ZoneRecv - Various fixes of GetPacketLength back to 4 (it would return -1 for the packets that have a variable length). [2007/02/20] - Tsusai - ZoneSend - Added ZoneSendWalkReply. [2007/02/20] - Tsusai - zoneServer - TZoneServer.LoadMaps - Fixed bug where the map name was not stored in the TMap. - - Rev 151 - [2007/02/20] - RaX - Forgot to change a 2-3 MainProc.Console messages on the linux side, fixed. - - Rev 150 - [2007/02/20] - RaX - Fixed Kylix not liking a unit and a variable having the same name... [2007/02/20] - RaX - Renamed Console to Terminal.pas. Removed Unused uses of Console. - - Rev 149 - [2007/02/20] - RaX - Unfortunately, because of my brain at 3am, I forgot to commit main.pas so rev 148 is broken. Sorry =(. [2007/02/20] - RaX - Changed Error colors to red instead of burgundy. - - Rev 148 - BROKEN [2007/02/20] - RaX - Fixed termination. Helios now checks to see if it is done loading before a user can shut it down. If an administrator attempts to shut it down, it will write a message informing the administrator that he/she must wait until helios is done starting before he/she can stop it. - - Rev 147 - [2007/02/20] - RaX - Implemented typed console messages. Each displays differently automagically in the console based on a constant passed to the Console.Message routine. [2007/02/20] - RaX - Console is now a global rather than being attached to mainproc. [2007/02/20] - RaX - Slightly reworded messages to conform. - - Rev 146 - [2007/02/19] - RaX - Moved Console.pas's contents to trunk/src/Main.pas. [2007/02/19] - RaX - Added TConsole to Console.pas - a wrapper for console output. - - Rev 145 - [2007/02/19] - Tsusai - Notes/Overview: Added CRT units. Thse will allow for colored text when coded in. [2007/02/19] - Tsusai - Made Console folder. Moved Console.pas here, and added WinConsole.pas (Windows CRT), LinCRT and NCurses (Linux). - - Rev 144 - [2007/02/19] - Tsusai - Notes/Overview: Enabled loading the resource data for icons. Shows default Delphi 7 Project icon right now. - - Rev 143 - [2007/02/14] - Tsusai - Notes/Overview: Updated some SendBuffer calls to use GetPacketLength. [2007/02/14] - Tsusai - Updated CharacterServer, Character, ZoneRecv, and ZoneSend to use GetPacketLength. [2007/02/14] - Tsusai - ZoneSend : Changed procedure variables to make adjustments to send the needed TCharacter. [2007/02/14] - Tsusai - TCPServerRoutines : Changed GetPacketLength to use word for version, and LongWord as the return type. - - Rev 142 - [2007/02/09] - Tsusai - Notes/Overview: After some reading of newsgroups, I learned that the Cardinal type (0..4bil number type) is 4 bytes..but its not guaranteed on all OS's and versions of Delphi. All Cardinals are now LongWords, which are always going to be 4 bytes, and covers the same number range. - - Rev 141 - [2007/01/31] - RaX - Added comment headers to event related units. Reorganized the CharacterEventThread to get the time before looping, save some api calls. - - Rev 140 - [2007/01/28] - Tsusai - Notes/Overview : Added beginnings of walking, and bugfixes/tweaks [2007/01/28] - Tsusai - Being - TBeing : Added MapInfo (TMap Link), IsWalking, and DestinationPoint [2007/01/28] - Tsusai - Character - TCharacter : Added a CharaState enumerated field, and a OnTouchIDs list (useless now , but I felt like adding it), and create/destroy methods. [2007/01/28] - Tsusai - MySQLGameDatabase - GetChara - Removed unused variable. [2007/01/28] - Tsusai - MySQLStaticDatabase - GetBaseMaxWeight - Added check for one row. [2007/01/28] - Tsusai - CharacterEventThread - Fixed the way the time to fire the event is figured out. Ticks are not TDateTime safe/compliant. Also DateUtils or wtf its called is not available on Delphi Personal. [2007/01/28] - Tsusai - BufferIO : Added BufferReadOnePoint. [2007/01/28] - Tsusai - WinLinux - KillProcess : Fixed linux side of the code, forgot a ; for the message. [2007/01/28] - Tsusai - PacketDB - Load_PacketDB : Activated the walk request packet. [2007/01/28] - Tsusai - ZoneRecv : Added CharacterWalkRequest - - Rev 139 - [2007/01/28] - RaX - Added TCriticalSection changes to the eventlist and characterthread. - - Rev 138 - [2007/01/26] - Tsusai - Added revisions from former svn repository to the tags folder. In the structure of OpenSVN_Tsusai_Revisions/Rev#/(code). Perservation of older code. - - Rev 137 - [2007/01/26] - RaX - Bugfix - I forgot to use downto when dealing with the eventlist, caused it to skip events. Fixed. - - Rev 136 - [2007/01/26] - RaX - Moved CharacterEventThread from Console to ZoneServer. - - Rev 135 - [2007/01/26] - RaX - Added basic character events system. [2007/01/26] - RaX -Added Event, EventList, MovementEvent, and CharacterEventThread into Classes/Events/. [2007/01/26] - RaX - Added ZoneServer.OnDisconnect, it free's characters from it's list. - - Rev 134 - [2007/01/26] - RaX - Removed Global Character List. Now, only the zone server has a list. Character Server only uses queries. [2007/01/26] - RaX - Modified LoadChara to calculate max hp/sp, speed, and weight. - - Rev 133 - [2007/01/25] - RaX - Updated Map Load, made all maps load on startup, but Cell information load dynamically. Nothing unloads...yet...will do once I finish the event system. [2007/01/25] - RaX - Moved Cell Loading portion of TMap.LoadFromFile into TMap.Load. [2007/01/25] - RaX - Added TMap.Unload, which destroys a map's Cell information. [2007/01/25] - RaX - Updated Pathing code a little bit, made to be slightly more efficient by not using Length() to get Y and XMax variables twice, I have them returned via var parameters in GetArea. [2007/01/25] - RaX - Moved ZoneServer CommClient connection stuff into TZoneServer.ConnectToCharacter, implemented AFTER startup to make things look nice. [2007/01/25] - RaX - Moved CharacterServer CommClient connection stuff into TCharacterServer.ConnectToLogin for the same reasons and implemented the same way as above [2007/01/25] - RaX - Moved Helios Header into TMainProc.StartUp. [2007/01/25] - RaX - Moved starting message AFTER the credits. - - Rev 132 - [2007/01/25] - Tsusai - Notes/Overview: Cleaned up RaX's replace code, and added a ExtractFileNameMod to WinLinux to take care of it. [2007/01/25] - Tsusai - Map - LoadFromFile: Replaced RaX's code to call ExtractFileNameMod [2007/01/25] - Tsusai - WinLinux - ExtractFileNameMod: Added. The real ExtractFileName uses a delimiter to do the work (\). Our cross compiling code for paths use / so it would never break it up. This new function acts as a middle man, converting all / to \ in a Windows Only environment before making the actual ExtractFileName call. [2007/01/25] - Tsusai - Being - TBeing: Added the common attributes between Characters and Mobs, such as MDEF. Unlike Prometheus, I think we can live with putting mob info into MDEF1 and not worry about reading/writing to MDEF2 (the + bonus). [2007/01/25] - Tsusai - Character - TCharacter: Removed most of the common things descending from TBeing, and rearanged properties so that I could turn the "This method hides * in base class" warnings by a compiler directive. [2007/01/25] - Tsusai - GameConstants: STR..LUK are now 0..5 instead of 1..6 Its murder on me to remember and for packet writing (especially when it'll be shared w/ mobs). - - Rev 131 - [2007/01/24] - RaX - Notes/Overview - Bugfixes. ExtractFileName doesn't like forward slashes like what we use in TMap.LoadFromFile. Had to write a very inefficient way to recreate that. Luckily, now we can handle any slashes in a file path, even if the os can't... Bugfix #2 - I forgot to remove the .gat searching in the static database queries. - - Rev 130 - [2007/01/24] - RaX - Notes/Overview - Implemented weight table and MaxWeight TCharacter calculations. [2007/01/24] - RaX - Added GetBaseMaxWeight to static database classes. [2007/01/24] - RaX - Added CalcMaxWeight in Character.pas. [2007/01/24] - RaX - Implemented CalcMaxWeight on chara creation in CharacterServer.pas. [2007/01/24] - RaX - Added weight table to statis databases both for jansql and mysql. [2007/01/24] - RaX - Updated hp/sp tables to include baby jobs and super novice. - - Rev 129 - [2007/01/24] - RaX - Added another optimization that was supposed to be in the last commit. TMap.LoadFromFile(Map.pas) changed MapTag from a string to an array[1..13] of char to avoid a needless setlength call before reading in the maptag from the mapfile. - - Rev 128 - [2007/01/23] - RaX - Notes/Overview - Optimizations suggested by Damian (Thanks again). [2007/01/23] - RaX - Updated CharaServer/LoginServer to make sure that the charaserverinfo/ zoneserverinfo lists get their information free'd on stopping the servers. [2007/01/23] - RaX - Updated BufferReadString(BufferIO.pas) to hopefully be slightly faster if not just more readable and not dependant on TCBuffer. [2007/01/23] - RaX - Changed TCell (MapTypes.pas) to use on Being list instead of 3 lists. [2007/01/23] - RaX - Renamed Graph to Cell in the comments in Map.pas, forgot to when I made the earlier changes (sorry!) - - Rev 127 - [2007/01/23] - RaX - Forgot to Free the maplist in ZoneServer.Destroy (Thanks Damian), remedied. - - Rev 126 - [2007/01/22] - RaX - Notes/Overview :: Implemented map loading. [2007/01/22] - RaX - Added Classes/MapList.pas. [2007/01/22] - RaX - Added Common/MapTypes.pas. [2007/01/22] - RaX - Moved all types outside of TMap from Map.pas into MapTypes.pas. [2007/01/22] - RaX - Added Flags Type, holds boolean values pertaining to database map flags. [2007/01/22] - RaX - Added static database query GetMapFlags which fills a TFlags record with the data specified in table maps. [2007/01/22] - RaX - Added LoadFromFile to TMap, it loads a pms map from the file indicated by the parameter 'Path'. [2007/01/22] - RaX - Implemented half of Dynamic map loading, maps do not load on start, instead, they load when a player enters a map. The half that's not done is unloading. [2007/01/22] - RaX - Updated Static maps table, removed '.gat' from the mapname field. [2007/01/22] - RaX - LoginServer, CharacterServer, ZoneServer, InterServer - added console messages if someone tries to start a server that's already started, etc from inside code. Also, removed the started checks from Commands.pas and moved them into each server's stop/ start routines. [2007/01/22] - RaX - Removed InterToZoneClient from inter server, won't be needing it. [2007/01/22] - RaX - Dumped XTimer from SVN - gonna rewrite when the need arises. - - Rev 125 - [2007/01/22] - RaX - Notes/Overview :: Removed hints + warnings. [2007/01/22] - RaX - Added dummy result of FALSE to TGameDatabaseTemplate.Connect(); [2007/01/22] - RaX - commented out ClientTick in ZoneRecv, Tsusai - uncomment when you need it. [2007/01/22] - RaX - Commented out Reload in Commands.pas. - - Rev 124 - [2007/01/21] - Tsusai - Notes/Overview: WinLinux changes [2007/01/21] - Tsusai - WinLinux - Changed the linux termination. Uses SIGQUIT output, and displays a warning before it does (so that the user doesn't freak out). - - Rev 123 - [2007/01/21] - Tsusai - Notes/Overview: Modifications to CommClient. [2007/01/21] - Tsusai - CommClient : Redid logic. Its thread only deals with reading any data on the buffer, and is setup by connect/disconnect methods [2007/01/21] - Tsusai - WinLinux - Added LowerPriority method that lowers a thread's priority (will be testing Libc.nice soon) [2007/01/21] - Tsusai - XTimer : Updated priority call (LowerPriority); - - Rev 122 - [2007/01/21] - RaX - Fixed /start command, moved server create/destroys into mainproc create/destroy. - - Rev 121 - [2007/01/20] - Tsusai - Notes/Overview: Something isn't right when either packet_db or the databases fail to load/connect and the server says Startup Success.....bullshit. [2007/01/20] - Tsusai - PacketDB - LoadPacketDB: Now a function, if it fails to load, its false. (duh) [2007/01/20] - Tsusai - ALLDATABASES : Create holds a result bool variable, which is set by the Connect function (if connected, true) [2007/01/20] - Tsusai - Database - Create : Holds a result bool, which is determined if all 3 databases were created and connected. [2007/01/20] - Tsusai - Globals - InitGlobals: Now a function, returns true if packetdb and database loaded. (notice a pattern in the changelog yet?) [2007/01/20] - Tsusai - Console - MainProc.Startup : Will ERROR if InitGlobals failed to load the packet_db and database. [2007/01/20] - Tsusai - Console - MainProc.Shutdown : Reversed order of server shutdowns, so there are no reattempts for internal clients to reconnect. - - Rev 120 - [2007/01/20] - Tsusai - Notes/Overview: TWEAKS! [2007/01/20] - Tsusai - Found a shortcut method IdContext.Binding, which links to Idcontext.Connection.Socket.Binding. Any use of the long version has been replaced with the shortcut, and any Console messages that broke word wrap limit have been wrapped. Changes are in: -LoginServer -CharacterServer -ZoneServer [2007/01/20] - Tsusai - CharacterServer - In the ZServerInfo.Address call, there was a spare ',' that I overlooked. Delphi ignores it, but Kylix caught it. Fixed [2007/01/20] - Tsusai - CommClient - Replaced TThread and now useing TIdThread. It has reduced some conflicts when trying to access the client readthreads. - - Rev 119 - [2007/01/19] - RaX - Added some properties to TMap, Size and Mode. Fixed last commit, I forgot to update Graph to Cell in TMap (sorry =)) - - Rev 118 - [2007/01/18] - RaX - Updated Headers on Yesterdays changes to ZoneServer related files. [2007/01/18] - RaX - Added Mobs, NPCs, and Characters to each TMap Cell, renamed Graph to cell. - - Rev 117 - [2007/01/17] - Tsusai - Notes/Overview: Zone display done. Also as always, various tweaks to get it to work. [2007/01/17] - Tsusai - CharacterServer - SendCharaToMap : Completed code to auto select a zone for transport. [2007/01/17] - Tsusai - Database\Game*** - CreateChara : Sends the character number over for when creating. [2007/01/17] - Tsusai - Database\Static** - GetMapCanSave changed to GetMapCannotSave, and corrected queries. [2007/01/17] - Tsusai - Character - TCharacter : Added a basic client packet subsystem. It may not be the best place for it, but for now it is ok. [2007/01/17] - Tsusai - BufferIO - RecvBuffer : Cannot recieve 0 packets. The system doesn't like it. [2007/01/17] - Tsusai - GameConstants : Removed invalid job classes (stupid data I put in) and added a right and left hand constant. [2007/01/17] - Tsusai - PacketDB - Activated 'ticksend' and 'getcharnamerequest' packet_db command routines. [2007/01/17] - Tsusai - ZoneRecv - Added ShowMap, RecvTick, and GetNameAndID. Added temp spots for packets for inventory and stuff. [2007/01/17] - Tsusai - ZoneSend - Added replies for RecvTick and GetNameAndID [2007/01/17] - Tsusai - ZoneServer - Added a check for data on the buffer (odd things were happening). [2007/01/17] - Tsusai - Client_packet_en - corrected the map connect packet. There are not 2 login keys, only 1 and a tick. - - Rev 116 - [2007/01/17] - RaX - Added IndexOfAID to CharaList. Gets a character by account id [2007/01/17] - RaX - Updated starting points in CharacterOptions. - - Rev 115 - [2007/01/17] - RaX - Joint commit by me and Tsusai, calcmaxhp/sp/speed are now in place and pull from the static database. They also send to the client and show on character create. [2007/01/17] - RaX - Made databases global per exe once again due to circular include errors. - - Rev 114 - [2007/01/17] - RaX - Fixed my character database fubar. Forgot that a WORD type is unsigned =) [2007/01/17] - RaX - Updated SQL files to reflect new changes, all equipment fields are unsigned. - - Rev 113 - [2007/01/16] - RaX - Updated Static Databases, added query to return the zone id a map is assigned to from our maps table. [2007/01/16] - RaX - Removed setaccount from jansqlstaticdatabase...why that was still there I still do not know. - - Rev 112 - [2007/01/15] - RaX - Updated Static database - added fields and converted from latest(11.2) aegis mapinfo dump. - Table Maps [2007/01/15] - RaX - Added /bin/Maps folder with all kro 11.2 maps as specified in the newly converted maps database. (644 maps) - - Rev 111 - [2007/01/15] - RaX - Notes/Overview: Added character defaults to Character.ini and implemented them in characterserver. [2007/01/15] - RaX - Added Game Database fields armor, garment, shoes, accessory1, and accessory2. Renamed Weapon and shield to RightHand and LeftHand, respectively, both internally and database side. [2007/01/15] - RaX - Corrected spelling mistakes in console messages (I before E except after C in Received). [2007/01/15] - RaX - Fixed character.txt in jansql - Tsu, you committed the character "tonto" =). [2007/01/15] - RaX - Added armor, garment, shoes, accessory1, and accessory2 as properties to Character class. [2007/01/15] - RaX - Renamed DatabaseTXT.pas to PacketDB.pas. [2007/01/15] - RaX - Moved Gameobjects to classes and renamed to Being. - - Rev 110 - [2007/01/14] - Tsusai - Notes/Overview: Zone communications to character server in place. Still no connection for the RO Client to make the connection to the Zone just yet. [2007/01/14] - Tsusai - ServerToServerPackets.txt - contains all packet documentation of server to server communications. [2007/01/14] - Tsusai - Database\packet_db.txt - Added new packets for chara<->zone packets. [2007/01/14] - Tsusai - CharacterServer - Added zone packet parsing and validation of the zone. [2007/01/14] - Tsusai - CharaLoginPackets - All packet procedures renamed. [2007/01/14] - Tsusai - CommClient - Added Source and Destination names (for the error messages.). [2007/01/14] - Tsusai - List32 - Replaced IndexOfObject. I don't know wtf the writers were thinking. It was taking an integer instead of an object -_- [2007/01/14] - Tsusai - TCPServerRoutines - Updated the CommClient creation for the above update. [2007/01/14] - Tsusai - ZoneOptions - Added missing entries, such as CharaServer location and port. [2007/01/14] - Tsusai - LoginServer - Updated Error response to a bad character server validation. [2007/01/14] - Tsusai - ZoneCharaPackets - Added. [2007/01/14] - Tsusai - ZoneServerInfo - Added. [2007/01/14] - Tsusai - ZoneServer - Removed unneeded IPCardinal code, added setting of the client that connects to the character server. - - Rev 109 - [2007/01/13] - Tsusai - Notes/Overview: Fixes and partial commits to character server for zone connections. [2007/01/13] - Tsusai - CharacterServer : Added fZoneServerList, OnDisconnect Method, updated SendCharaToMap to take on a connection and buffer parameter, Corrected error constant numbers (was getting email error where could not happen error should be, and vice versa. Please verify this change RaX). Added commented out code in SendcharaToMap. Fixed StatPoint display in CreateChara. Removed unneeded If connected check in ParseCharaServ. [2007/01/13] - Tsusai - ***GameDatabase: Updated GetChara to take on a JanSQLReleaseTable hidden bool. Assumes false. Updated any GetChara calls. Updated LoadChara to attach Account information. [2007/01/13] - Tsusai - CharacterServer, ZoneRecv: Updated any/all GetChara calls. [2007/01/13] - Tsusai - Character: ClientVersion changed to byte (I need a negative number). [2007/01/13] - Tsusai - Added ServerInfo root object, and updated CharacterServerInfo to descend from that. Added ZoneServerInfo to do the same. [2007/01/13] - Tsusai - PacketTypes: Added ZoneServerLink object. - - Rev 108 - [2007/01/12] - Tsusai - Notes/Overview: Fixed the outstanding JanSQL character server table errors. We were trying to save and release a table that was already released due to LoadChara releasing. [2007/01/12] - Tsusai - JanSQLGameDatabase - Overrode the GetChara procedure. Now takes a flag to release the table after loading of a character. LoadChara NO LONGER releases the table, since GetChara is the only thing that calls it and takes care of it if it needs to. [2007/01/12] - Tsusai - LoginServer - Fixed my January 2006 entries...its 2007 now. - - Rev 107 - [2007/01/12] - RaX - Modified Database.ini and The Database constructor to support setting each database's type individually. (IE - Common : text Game : SQL Static : Text) - - Rev 106 - [2007/01/11] - RaX - Added headers in JanSQLCommonDatabase and MySQLCommonDatabase. - - Rev 105 - [2007/01/11] - RaX - Added ID field to Zone.ini. - - Rev 104 - [2007/01/10] - RaX - Notes/Overview : Updated Static Database and added one query for Zone. [2007/01/10] - RaX - Added 3 new tables to Static : hp, sp, and statpoints. [2007/01/10] - RaX - Added same tables to jansql databases. [2007/01/10] - RaX - Updated Static->maps table : removed .gat extensions from mapnames. [2007/01/10] - RaX - Added one query to StaticDatabase, GetMapCanSave(MapName). Returns a boolean indicating if a character can save on said map or not. - - Rev 103 - [2007/01/10] - RaX - Notes/Overview : Database changes, broke up the database class into 3 separate database classes (Common, Game, and Static). [2007/01/10] - RaX - Deleted old database units. [2007/01/10] - RaX - Added new database units (one of each of the old per database). Moved units into separate folders inside the database folder under classes. [2007/01/10] - RaX - Updated zonemaps in Static database, all flags are now boolean and it has been renamed to just 'maps'. [2007/01/10] - RaX - Updated jansql databases to reflect mysql changes. [2007/01/10] - RaX - Reorganized how each database is created and free'd. - - Rev 102 - [2007/01/09] - RaX - Deleted rev_55.sql [2007/01/09] - RaX - Added helioscommon, heliosgame, and heliosstatic.sql to replace. [2007/01/09] - RaX - Filled helios statics zonemaps table with mapinfo from prometheus. - - Rev 101 - [2007/01/08] - Tsusai - Notes/Overview: Modifications to allow WAN/LAN checking complete and in place. [2007/01/08] - Tsusai - WinLinux: Added a record type called TIPSet, which contains 2 strings, Full, and Partial. This is to store more things for the result type of GetIPStringFromHostname. [2007/01/08] - Tsusai - WinLinux - GetIPStringFromHostname: Now returns a TIPSet type, the Full IP that is obtained and a Partial (X.X.X.) The last . is for prevention of comparing 192.168.10.1 to the partial of 192.168.1 [2007/01/08] - Tsusai - Inter/Zone servers: Disabled IP and IPCardinal code. Will reactivate properly later. [2007/01/08] - Tsusai - CharaServerInfo: Overhauled ip / port information. changed the storage strings that would store pure IPs as what they originally are, instead of parsing the IPs from a hostname for example. WANPort -> Port. Added fLANPartial to store the partial LAN IP. Added Function Address, which takes a IP string of the client, for checking against the LAN IP Partial that is stored. [2007/01/08] - Tsusai - LoginServer - SendCharacterServers: Changed the WANCardinal and placed the Address() function in it is placed. [2007/01/08] - Tsusai - LoginServer - VerifyCharaServer: Changed the WANPort to Port. [2007/01/08] - Tsusai - LoginServer - ParseLogin: Changed the incoming WAN and LAN information to the fixed names. - - Rev 100 - [2007/01/08] - Tsusai - Notes/Overview: Fixed JanSQL Queries, and a tweak to janSQL and CommClient. [2007/01/08] - Tsusai - CommClient: Once again reorganized order of procedures when relating to disconnecting and suspending the client thread. [2007/01/08] - Tsusai - janSQL: Modified anything relating to file I/O to use / in the path, instead of \ due to linux issues. [2007/01/08] - Tsusai - JanSQLDatabase: Updated any missing %s strings to have quotes surrounding, janSQL doesn't like them too much and goofs w/o errors. - - Rev 99 - [2007/01/08] - RaX - Forgot to remove madexcept from linux includes, removed. - - Rev 98 - [2007/01/07] - RaX - Updated JanSQL queries, SAVE TABLE and RELEASE TABLE instead of SAVE and RELEASE. - - Rev 97 - [2007/01/07] - RaX - Notes/Overview : Split up ServerOptions.ini into one ini for each server, one for database, and one for general helios config(enabled servers). [2007/01/07] - RaX - Added LoginOptions, CharaOptions, InterOptions, ZoneOptions, DatabaseOptions, and HeliosOptions. [2007/01/07] - RaX - Removed serverOptions. [2007/01/07] - RaX - Removed ServerConfig from Globals. [2007/01/07] - RaX - Added public property, Options, to each server. Options is the ini for each. [2007/01/07] - RaX - Added Options to MainProc and Database. [2007/01/07] - RaX - Changed Database class system so that each Database Template Child is created with a parent argument, allowing Options to be called from inside the child classes rather than having to have it passed into it. [2007/01/07] - RaX - Cleaned up unused variables in ZoneServer. [2007/01/07] - RaX - Re-organized uses in Helios.dpr to be organized first by category, and then alphabetically for better classification. [2007/01/07] - RaX - Added more inter communication variables to ZoneServer, in preparation for zone->chara and zone->inter communication. - - Rev 96 - [2007/01/04] - RaX - Added Headers to CommClient and updated Globals'. [2007/01/04] - RaX - Changed server.start routines to use a hidden parameter, reload, which tells it whether to reload the ini or not. [2007/01/04] - RaX - Added and implemented Globals - LoadIni; for the above change. LoadIni Free's ServerConfig if it's assigned, and recreates it. - - Rev 95 - [2007/01/04] - Tsusai - Reorganized the suspending code of the CommClient thread. Apparently it would halt the thread (good) but not disconnect (bad). - - Rev 94 - [2007/01/04] - RaX - Updated documentation + headers in LoginServer. Added /help command listings for new /start and /stop commands in Commands. [2007/01/04] - RaX - Added Started property to each server class. [2007/01/04] - RaX - Changed /start and /stop to use already build in <server>.start procedures and modified them to work with servers which aren't free'd. - - Rev 93 - [2007/01/03] - Tsusai - Notes/Overview : Implemented the GetPacketLength function, and added some new console output messages to let admins know what is going on with login and character servers. [2007/01/03] - Tsusai - DatabaseTXT: Allowed Load_PacketDB be called outside of that unit. [2007/01/03] - Tsusai - Added the following files into Notes: client_packet_en (from prometheus), and Generating Linux Compiles.txt [2007/01/03] - Tsusai - Database\packet_db.txt - Added Helios custom packets (server communication packets). [2007/01/03] - Tsusai - Globals - InitGlobals: Calls Load_PacketDB. [2007/01/03] - Tsusai - TCPServerRoutines - DeactivateServer: Added termination messages, and is passed a name for those messages. [2007/01/03] - Tsusai - LoginServer, CharaServer, InterServer, ZoneServer: Updated DeactivateServer calls. [2007/01/03] - Tsusai - Console : Added a blank space after the server startup. [2007/01/03] - Tsusai - LoginServer, CharaServer, CharaLoginPackets : Updated static packet lengths (Recv and Send) with the GetPacketLength function. - - Rev 92 - [2007/01/03] - RaX - Added 2 ini entries, [Login] - Key and [Chara] - LoginKey. Now we can specify the password used to communicate between the login and character servers. - - Rev 91 - [2007/01/02] - RaX - Thanks to research done by Tsusai, our text database works with multiple exes. [2007/01/02] - RaX - Changed JanSQLDatabase to save and release after each update/insert/ delete and just release after each select, this causes the text database to reload itself before queries, allowing real-time data changes in a text database =o. - - Rev 90 - [2006/12/30] - RaX - Pretty much redid the database reorganization of the last commit. Moved Databases to be a private entity of each server. Zone is the exception, multiple file rely on the zone's database since we don't want the zone server file to be, well, HUGE =) NOTE::: The 12/28 client works, but is quirky. There seems to be some missing padding in create character and delete character, because results for each are random. Tsusai, can you sniff the exe and see what's missing? Maybe it'll be a simple feature to add. I'll e-mail it to you par request. - - Rev 89 - [2006/12/29] - RaX - Added my e-mail address to the helios.dpr header. [2006/12/29] - RaX - Moved Database creates and frees around to assign each dynamically based on which servers are enabled. [2006/12/29] - RaX - Added new console commands, start and stop. For example, /start login would create and start the login server. /stop login would stop and free the login server. - - Rev 88 - [2006/12/28] - Tsusai - Forgot to put back the Account field in the LoadChara in both existing database calls. - - Rev 87 - [2006/12/28] - RaX - Added the 12/28 client to our packet_db. - - Rev 86 - [2006/12/27] - Tsusai - Notes/Overview: More updates to the multi character server coding, mainly side effect bugfixes. [2006/12/27] - Tsusai - Account - GetBanned and GetConnectTime: Removed the SQL calls, and simplied. [2006/12/27] - Tsusai - CommClient - TClientThread.Execute: tweaked the try/except field. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase, DatabaseTemplate: Changed GetAccountBanAndConnectTime to RefreshAccountData. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase : Fixed GenderChar and LoginKey reading in SetAccount, modified GetAccount (both types) to be more efficient, and read the new RefreshAccountData that is required. RefreshAccountData reads the ban and connect (play) time, and the login keys. - - Rev 85 - [2006/12/26] - RaX - Oops, forgot to remove some code from a previous method of getting a new character's id in JanSQLDatabase. CreateChara. - - Rev 84 - [2006/12/24] - RaX - Added default values to TCharacters in CreateChara(CharacterServer). - - Rev 83 - [2006/12/24] - Tsusai - Notes/Overview: Unfortnately a large commit. This commit includes the ability to finally start linking 2 exes together, at the characterserver level. Thats right, running two copies correctly, can result in having two servers listed at the server selection menu after login. Also many Uses have been cleaned up. [2006/12/24] - Tsusai - Added the following units: CharacterServerInfo, CharaLoginPackets, and CommClient. [2006/12/24] - Tsusai - CharacterServerInfo : Contains a type that houses information on a Character Server, such as WAN/LAN IPs, port, Servername, and online users. These are stored in a list that is read from when someone logs in, and is sent a list. [2006/12/24] - Tsusai - CharaLoginPackets : Contain all Outgoing routines at the moment. [2006/12/24] - Tsusai - CommClient : Contains a Indy TCP Client descendant, which controls a generated thread. The thread checks for connection and tries to connect every 30 seconds. It also figures out if there is data available and passes it on as a OnRecieve event. [2006/12/24] - Tsusai - InterServer, ZoneServer : Turned off their built in clients for now. [2006/12/24] - Tsusai - Console : Removed static list entry for the character servers (our workaround until this was done). [2006/12/24] - Tsusai - TCPServerRoutines (NEEDS RENAMING NOW) : Replaced all TIdTCPClients with TInterClient, and updated Activate/Deactivate Client as needed. Also removed crap out of DeactivateServer for now. I think we won't suffer that problem we did in Prometheus. [2006/12/24] - Tsusai - PacketTypes : Added TCharaServerLink type which is used in LoginServer. [2006/12/24] - Tsusai - Globals : Removed UTF8String (its still just string), Cleaned up uses, removed CharacterServerList (now private in LoginServer as it should be). Added IncMinute and IncSecond routines. [2006/12/24] - Tsusai - BufferIO : Added WriteBufferMD5String to write the bytes as they are into buffer, and ReadBufferMD5 to read the bytes directly from the buffer. Overloaded SendBuffer and RecvBuffer to accept TInterClient as a passed parameter. Fixed BufferReadString's parameters. [2006/12/24] - Tsusai - mwStringHashList : Fixed Uses. [2006/12/24] - Tsusai - Character - SetSaveTime: Uses IncMinute from Globals now. [2006/12/24] - Tsusai - LoginServer - Cleaned uses, Removed OnExecute Event, tied ParseLoginServer directly to it. Added OnDiscconect method, to remove character server information from the list if that particular client disconnected. CharaServerList has been moved here and is a private field. Removed ReadMD5Password (in BufferIO now). Updated parameters of ValidateLogin and SendLoginError. Added VerifyCharaServer to validate (static validate for now). Fixed the packet indexes and loop for SendCharacterServers. Added Parsing of charaserv client packets to ParseLogin. Will be fined tuned in a later commit. [2006/12/24] - Tsusai - CharacterServer : Removed anything having to do with the translation of IP/Hostname strings into cardinals. Added CharaToLoginClient, and events for it (OnConnected and OnRecieve). Removed CharacterServer.OnExecute, using ParseCharaServ directly. Added the setting of Host/Port of the CharaToLoginClient in .Start for now. Also removed the While from ParseCharaServer, not needed. [2006/12/24] - Tsusai - Added Packet documentation for Chara<->login communications to Notes [2006/12/24] - Tsusai - Removed Subdirectories in obj, not needed. - - Rev 82 - [2006/12/23] - RaX - Reordered Character Deletion Errors in CharacterServer due to some weird error messages. - - Rev 81 - [2006/12/23] - RaX - Notes/Overview - Implemented new FASTER character list and fixed a bug in JanSQLDatabase. [2006/12/23] - RaX - Added CharaList.pas, a low level TCharacterList which is as fast as it gets I believe. [2006/12/23] - RaX - Updated CharaExists both overloads in JanSQLDatabase.pas. Both weren't looking at the record count, only at the result identifier, and if there are records to be found, Jan returns an identifier, which is why it worked with no characters in the database =) [2006/12/23] - RaX - Changed Globals to use a TCharacterList instead of a TIntList32 as the global characterlist. [2006/12/23] - RaX - Changed CharacterServer to use the new characterlist. [2006/12/23] - RaX - Changed JanSQL + MySQL + DatabaseTemplate to use the new list. - - Rev 80 - [2006/12/23] - Muad_Dib - Added new jobs (ninja, gunslinger, xmas suit) to GameConstants. - - Rev 79 - [2006/12/23] - RaX - Added Updated jAthena Packet_db. Fully updated. - - Rev 78 - [2006/12/22] - RaX - Added GetPacketLength to TCPServerRoutines. - - Rev 77- [2006/12/22] - RaX - Confusion on my part, NOW the characterlist bug is fixed with no leaks [2006/12/22] - RaX - Updated headers in all files. [2006/12/22] - RaX - Moved ServerException into each of the server classes. [2006/12/22] - RaX - Cleaned up uses in Console.pas. - - Rev 76- [2006/12/21] - RaX - Fixed CharacterList Corruption bug. We were free'ing ACharacter after it was already free'd in CharacterList.Delete which caused a crash.(JanSQLDatabase, MySQLDatabase) - - Rev 75- [2006/12/21] - RaX - Removed Deprecated units AccountDB, SQL, and SaveThread. Leaving XTimer in case we need a timer. - - Rev 74- [2006/12/21] - RaX - Updated JanSQLDatabase queries to work with jansql. (JanSQLDatabase) [2006/12/21] - RaX - Changed StrToInt to StrToIntDef with a default of 0 in LoadChara because JanSQL doesn't support default values or typing for that matter. [2006/12/21] - RaX - Added calculations for the next available ID to CreateChara, see above for details as to why. - - Rev 73- [2006/12/21] - Tsusai - Notes/Overview: Renamed unit Socket to BufferIO. All applicable files were updated. - - Rev 72- [2006/12/21] - RaX - Modified JanSQLDatabase.pas to use resultidentifier numbers to access the internal list of recordsets rather than using passed QueryResult pointers. Freeing these was causing JanSQL to corrupt it's internal list and cause random crashes. Also, the result list would get unbearably huge after a short time =) from now on we use Database.ReleaseRecordset(ResultIdentifier : Integer) to free our query results in jan. [2006/12/21] - RaX - Modified MySQLDatabase and JanSQLDatabase in GetBanAndConnect to use special queries rather than just reloading the entire account. [2006/12/21] - RaX - changed serveroptions.ini to have the default database host as ./save to allow jansql to work out of the box. [2006/12/21] - RaX - added jansql database to the save folder in trunk/bin. - - Rev 71- [2006/12/20] - Tsusai - Notes/Overview: Updates to database system. [2006/12/20] - Tsusai - DatabaseTemplate: Modified CONNECT to use out current standard parameters, instead of using reintroduces and overrides in the children classes. [2006/12/20] - Tsusai - MySQLDatabase & JanSQLDatabase - SaveAccount: Removed StrToInt64 conversions of dates. Just strings now. [2006/12/20] - Tsusai - JanSQLDatabase - SaveAccount: Fixed how the dates are stored back into the database. This caused problems of the same account trying to reconnect, and bad times being read when logging BACK in. [2006/12/20] - Tsusai - JanSQLDatabase: Added Disconnect method, which calls the commit query to save the database. - - Rev 70- [2006/12/19] - Tsusai - Oopsie. Didn't know my runtime debug parameters were saving. Removed - - Rev 69- [2006/12/19] - Tsusai - Heh...69. Sorry..couldn't help myself [2006/12/19] - Tsusai - Accounts: For some reason if a person attempted to login with the mf suffix for auto account creation on MD5 connection, following connections would be told they have no more game time. The Now procedure was somehow not returning, but with SysUtils.Now as the replacement, it works. Not too sure if something is causing a conflict with it, but it should be sound now. - - Rev 68- [2006/12/18] - RaX - Merged ZoneCore into ZoneServer.pas. - - Rev 67- [2006/12/18] - RaX - Suppressed hints and warnings in jansql using compiler directives. [2006/12/18] - RaX - Moved server classes into their respective folders in the src root. - - Rev 66- [2006/12/18] - Tsusai - Notes/Oveview: JanSQL (TXT reading) debugged. [2006/12/18] - Tsusai - JanSQLDatabase/MySQLDatabase : Cleaned up ****Exists routines. Added missing memory free'ing of QueryResults. [2006/12/18] - Tsusai - JanSQLDatabase - SendQuery : If locating a row failed, and returned nothing (it happens), it would return a nil set. Works now by creating one prior to setting. Not too sure this is proper. [2006/12/18] - Tsusai - janSQLTokenizer: Restored to pre cleaning. Something I did made it malfunction on connecting. [2006/12/18] - Tsusai - Globals : Readded optional INI loading. - - Rev 65- [2006/12/18] - Tsusai - Notes/Overview: Linux compiler fixes. [2006/12/18] - Tsusai - JanSQLDatabase : Renamed JanSQL in the uses to janSQL. Unit name must match file name. Its a casesensitive OS. [2006/12/18] - Tsusai - janSQLExpressions2 : Recleaned, leaving 1 hint for now. For some odd reason the crosskylix compiler wasn't liking it the way I had it. - - Rev 64- [2006/12/17] - RaX - Moved all servers into classes located in Classes/Servers/ [2006/12/17] - RaX - Reorganized Console.pas to accomodate changes made to servers. [2006/12/17] - RaX - Redid startup/shutdown procedures to create and free the servers dynamically based on which are enabled. - - Rev 63- [2006/12/17] - Tsusai - Notes/Overview: Added _M/_F login parsing. This only works when using a basic login and not a encrypted login. [2006/12/17] - Tsusai - LoginServerProcess: Added ParseMF to parse the _M/_F. [2006/12/17] - Tsusai - **DatabaseTempate: Added CreateAccount and AccountExists procedures and functions. - - Rev 62- [2006/12/17] - RaX - Updated headers in MySQLDatabase.pas, JanSQLDatabase.pas, CharaServerProcess.pas, LoginServerProcess.pas, CharaServerTypes.pas. [2006/12/17] - RaX - Removed DIV by 0 forced error in helios.dpr. [2006/12/17] - RaX - Added checking for a valid database in JanSQLDatabase.pas - Connect(). [2006/12/17] - RaX - Removed hints in turbo delphi about functions not being expanded by adding an ifdef to the uses of JanSQL.pas and JanSQLExpressions.pas. - - Rev 61- Broken, someone who's name rhymes with forgot to remove his EDIVBY0 =) [2006/12/17] - Tsusai - Notes/Overview: MySQL queries fixed, Login server information covering the IPs removed. They aren't needed. [2006/12/17] - RaX - Notes/Overview: (All RaX entries by Tsusai) MainProc now holds the database connections, instead of creating on the fly. [2006/12/17] - Tsusai - MySQLDatabaseTemplate : Corrected queries. One error was trying to access a character table (its characters) and another was running a query to access information in the common database, from within game database connection. [2006/12/17] - Tsusai - ServerOptions - Removed Login server IPS [2006/12/17] - Tsusai - Merged RaX's changes. [2006/12/17] - RaX - Added JanSQLDatabase, controls TXT database system. [2006/12/17] - RaX - Removed on the fly database connections, replacing with a one connecter per database variable in MainProc object. - - Rev 60- [2006/12/13] - Tsusai - Notes/Overview: JanSQL committed, its a TXT SQL system. [2006/12/13] - Tsusai - Added JanSQL folder and added into project. [2006/12/13] - Tsusai - Renamed SQL folder to MySQL. - - Rev 59- [2006/12/11] - RaX - Added GetBaseHP and SP functions to the database class. - - Rev 58- [2006/12/06] - Tsusai - Notes/Overview: Random tweaks to things. [2006/12/06] - Tsusai - CharaServerTypes - widestring->string conversions. Not needed [2006/12/06] - Tsusai - TCPServerRoutines - ActivateServer: Added more constants. [2006/12/06] - Tsusai - WinLinux - Widesting->String conversion, added GetIPStringFromHostname (DNS RESOLVING IN!!!!!) [2006/12/06] - Tsusai - Console - TMainProc.Shutdown - Made interserver communication client components disconnect first, then servers. - - Rev 57- [2006/11/29] - RaX - Added a few new configuration options to ServerOptions.ini and reorganized it to suit. (LAN IPs, WAN IPs, Ports, etc.) Removed Communication completely. - - Rev 56- [2006/11/29] - RaX - Implemented stubbed out Inter Server and added appropriate configuration variables for enabling/disabling the zone, chara, and inter servers. Also, uncommented Tsusai's Zone implementation code. Added ActivateClient and DeActivateClient to TCPServerRoutines. Renamed ServerOptions configuration section "MySQL" to "Database" and changed code appropriately. Added stubbed connect and execute routines for inter server component. Implemented and uncommented inter communication clients. - - Rev 55- [2006/11/27] - Tsusai - Updated the SQL file again. Storage and Ragsvrinfo should be game were not game related, as a mistake on my part. - - Rev 54- [2006/11/27] - Tsusai - Notes/Overview: Fixed USES in the following units CharaServerProcesses, Character, CharaList, DatabaseTemplate, XTimer, List32, uMysql*, Globals, Socket, Console, ZoneCore, ZoneRecv, ZoneSend. [2006/11/27] - Tsusai - Added ZoneSend, which sends out replies so far for the zone. [2006/11/27] - Tsusai - ZoneRecv - Added MapConnect which handles zone connection validation. - - Rev 53- [2006/11/17] - RaX - added getting the closest path to the destination to our pathing algorithm. - - Rev 52- [2006/11/14] - Tsusai - Notes/Overview: Restructure of the mysql database. [2006/11/14] - Tsusai - Added Database/packet_db.txt [2006/11/14] - Tsusai - Updated Bin/SQL Files/helios.sql to HeliosSQL_rev51.sql with the restructured database. I recommend deleting the old one and regenerating a new ServerOptions.ini for this. [2006/11/14] - Tsusai - CharaServerProcess - SendCharas: Fixed bug where Index would do a ERangeError, because of 0 characters being returned. Also fixed a database call that was calling the wrong database (was trying to do a query in the common database, and not in the game database). [2006/11/14] - Tsusai - Account - TAccount : Added a ConnectUntil datetime field, updated Banned to a datetime. Added various methods and functions to make checking these easier. [2006/11/14] - Tsusai - Database - Removed all Writeln and replaced with MainProc.Console [2006/11/14] - Tsusai - DatabaseTemplate/MySQLDatabase - GetAccountBanAndConnectTime : Added. [2006/11/14] - Tsusai - MySQLDatabase - All query statements updated to table restructures. [2006/11/14] - Tsusai - Globals - Added ConvertMySQLTime to convert the time string from MySQL to a TDateTime. If given a 0000-00-00 00:00:00 (which is impossible to convert), it uses the lowest possible TDateTime (like january 1900). [2006/11/14] - Tsusai - ServerOptions - Updated default Database names. [2006/11/14] - Tsusai - LoginProcesses - Replaced Writeln, and added banned and connectuntil checks with properly added response codes. - - Rev 51- Forgot Changelog - Rev 50- [2006/11/13] - Tsusai - Notes/Overview : Addins, and added more multiserver support (not done) [2006/11/13] - Tsusai - ServerOptions - Reorganized and split the mysql database into 2, a common and a game specific. [2006/11/13] - Tsusai - WinLinux - Added a GetTick command. Unsure if the linux version works proper. [2006/11/13] - Tsusai - DatabaseTemplate - Reindented. [2006/11/13] - Tsusai - Database - TDatabase.Create : Now gets an optional parameter, to tell the optional mysql database which connection to make (Common database, or Game Database) [2006/11/13] - Tsusai - Account - Added LoginCount, LastLoginTime, and Level to TAccount. [2006/11/13] - Tsusai - CharaServerProcesses - Updated any TDatabase creations to make sure the right database is accessed. [2006/11/13] - Tsusai - MySQLDatabase - TMySQLDatabase : Placed "Connection" into private, Overrode Create and Connect method to take a boolean flag for which database to use. Added a SendQuery (use just like query). If a Query actually fails to execute, a visual error will happen and the query pasted to the console. [2006/11/13] - Tsusai - Socket - Added WriteBufferPointAndDirection and fixed SendBuffer's description. [2006/11/13] - Tsusai - Console - TMainProc.Startup : Added conditional to activate the login server. Moved ThirdPartyCredits procedure call to the top of the routine. [2006/11/13] - Tsusai - LoginProcesses - ValidateLogin : Fixed the LoginKey assignments, and saved. - - Rev 49- [2006/11/12] - Tsusai - Console : Cleaned up some uses, removed TThreadLink variable, not needed, added Zone Server OnConnect & OnExecute events. [2006/11/12] - Tsusai - CharaServerProcess - ParseCharaServ : Removed TThreadLink variable, not needed. [2006/11/12] - Tsusai - WinLinux : Added a PriorityLow global constant. Windows has tpLowest while Linux is an integer (PRIO_MIN). [2006/11/12] - Tsusai - XTimer - TXTimer.Execute : Priority is now set to PriorityLow constant. (Exisiting was not cross compilable) [2006/11/12] - Tsusai - DatabaseTXT - Load_PacketDB : Updated the FileExist paths, database is now Database (case issue) and the \ in the path is now a / (pathing issue). - - Rev 48- [2006/11/11] - Tsusai - BUGFIX (God I did not want to see one of these...). Removed the usage of FreeAndNil(ADatabase); that RaX implemented. Replaced with ADatabase.Free; Odd thing was that once a person logged into character server, it would no longer accept any more connections. [2006/11/11] - Tsusai - ZoneCore & Console - Reindented. [2006/11/11] - Tsusai - Globals - MakeRNDString added, generates a random string based on what length we want. [2006/11/11] - Tsusai - PacketTypes - Added a TMd5String type to attach to our login client information. [2006/11/11] - Tsusai - LoginProcesses - Implemented TMD5String and attached to the login client info, and stored the randomly generated key in it (ONLY WHEN MD5 CONNECTIONS ARE USED) - - Rev 47- [2006/11/06] - Tsusai - Merged GameGlobals into GameConstants, and updated any/all units that used to call GameGlobals. out a better timer, so for now, we have seconds. [2006/11/06] - Tsusai - Updated 3rdParty.txt to mention we are using uMySQL** under MySQL's FLOSS exception. [2006/11/06] - Tsusai - Extracted the version string to its own unit, to keep revisions to Globals separate. - - Rev 46- [2006/11/03] - RaX - Rewrote XTimer to fix problems with processors that modulate their clock speed. Changed resolution to seconds. We can't have lower resolutions until I figure out a better timer, so for now, we have seconds. [2006/11/03] - RaX - Changed ini loading to load default 60 for SaveTimer.Interval. [2006/11/03] - RaX - Changed Console.Pas to accomodate our new changes. - - Rev 45- [2006/11/02] - RaX - Updated ThirdParty.txt to include Indy. Also, corrected mistakes made by yours truly in the umysqlclient credits. "There is no Spoof", you could say. Updated to "Part 10" of the GNU license. - - Rev 44- [2006/11/01] - RaX - Map.pas - Implemented Tsusai's changed to GetPath which include, but are not limited to, the following... GetPath changed to a boolean function with APath as a parameter passed by address. Addition of IsBlocked to check for passability versus a multi-line condition. [2006/11/01] - RaX - Map.pas - Added GetArea, a private method of TMap which creates a search area based on our constant CHAR_CLICKAREA distance away from the starting point. [2006/11/02] - RaX - moved CHAR_CLICKAREA into Constants/GameConstants.pas. [2006/11/02] - RaX - Added GameConstants.pas. - - Rev 43- [2006/10/31] - RaX - Modified Map.pas - GetPath to return a TPointList instead of an Array [2006/10/31] - RaX - moved constant CHAR_CLICKAREA to implementation, created Directions constant array of tpoints which contains the distance to go from the starting point to get the point in said direction. [2006/10/31] - RaX - changed TMap.Graph to an array of array of TPoint. - - Rev 42- [2006/10/30] - RaX - Added Classes/Map.Pas - our TMap map class. Stubbed, only contains our pathfinding algorithm for now. The Pathfinder is a "floodfill" or "wave" search that finds the shortest path between 2 points by flooding the graph with tracers that keep track of where they've been. The first one to reach the end's path is the shortest path. - - Rev 41- [2006/10/23] - RaX - Random cleanup in LoginProcess, removed unused variables and function calls from our former Indy9 socket. - - Rev 40- [2006/10/23] - RaX - Updated XTimer to have a Resolution property which is defined by constants to reflect the accuracy fo the timer, between nanoseconds and seconds. XTimer is now much more accurate than before as well. [2006/10/23] - RaX - Added variables to ServerConfig to enable/disable and set the interval for the Save Loop. - - Rev 39- [2006/10/21] - RaX - Re-Added XTimer.pas (it works correctly now, and better!) changed over SaveLoop.pas into what it was supposed to be, the save thread only, executed by XTimer. XTimer is now a reuseable timer with a real resolution of 1ms ...the defining element is assembly....go me. Will be updated to really get accurate time down to the clock speed of the processor (faster the clock speed, the more accurate the timer). [2006/10/21] - RaX - Added our license to the header of Helios.dpr. [2006/10/21] - RaX - Added ThirdParty.txt contents. Basic, but effective. - - Rev 38- [2006/10/20] - Tsusai - Upgraded things to Indy 10. All old outstanding writebuffers now use Socket.SendBuffer. [2006/10/20] - Tsusai - Console: Updated all TIdPeerThreads to TIdContext, and renamed AThread to AConnection. [2006/10/20] - Tsusai - Socket: Updated SendPading to use SendBuffer. SendBuffer now converts OUR buffer to Indy bytebits to send out (it took 3 hours to get sending to work right). Also added a RecvBuffer, to handle recieving packets and putting them into a buffer. [2006/10/20] - Tsusai - TCPServerRoutines: Updated threads to contexts in DeactivateServer. [2006/10/20] - Tsusai - Login/Zone/Chara : Updated all peerthreads to contexts, removed ReadFromStack, redid the input buffer size call, and implemented SendBuffer (if missing) and RecvBuffer. - - Rev 37- [2006/10/13] - Tsusai - Friday October 13th....Just as creepy as 06/06/06 [2006/10/13] - Tsusai - LoginProcesses: Separated the validation code from ParseLogin, and added MD5 client connection support. - - Rev 36- [2006/10/10] - RaX - Code cleanup... [2006/10/10] - RaX - moved Run from Helios.dpr to MainProc as a property for organization. [2006/10/10] - RaX - Moved around save loop creates and destroys around in MainProc to make it force a save before the loop shuts down and free and recreate on restart. [2006/10/10] - RaX - Added TSaveLoop.Save which will house the actual save code... to allow forcing a full save by simply calling this procedure from outside the thread. - - Rev 35- [2006/10/09] - RaX - Fixed my timer. It wasn't allowing console commands (for some unknown reason). Removed XTimer, moved everything into SaveLoop...no more Enabled Property. {Thank you Tsusai} - - Rev 34- [2006/10/06] - RaX - Updated XTimer.pas to work with Delphi 7 (Self.Ontimer(); vs OnTimer()); - - Rev 33- [2006/10/06] - RaX - Overview - stubbed out the save loop thread routines and built a timer for us to use. [2006/10/06] - RaX - FIXED - Added CharaList.pas - forgot to last commit (sorry). [2006/10/06] - RaX - Added SaveTimer to MainProc, a threaded Timer I wrote. [2006/10/06] - RaX - Added TXTimer (Classes/XTimer.pas), a timer thread meant for the save. loop. [2006/10/06] - RaX - Added TSaveLoop(Classes/SaveLoop.pas) - our Saving thread. [2006/10/06] - RaX - How it works - The Timer runs in background forever. At Interval ms, it executes the saveloop, which runs outside of the execution path of both MainProc, and the timer itself. After saving, the SaveLoop automatically free's itself. - - Rev 32- BROKEN [2006/10/06] - RaX - Finished implementation of the Database system and made it thread-safe (we now use a local, to the object instance, connection rather than the old global one.) [2006/10/06] - RaX - CharaServerProcess - ripped out lingering sql queries and moved them into the databaseing units, created CharaExists(overloaded) and GetAccountCharas to replace them. [2006/10/06] - RaX - Removed old SQL.pas from project, still on SVN for posterities sake. [2006/10/06] - RaX - Removed SQLConnected from MainProc (console.pas). - - Rev 31- [2006/10/04] - Tsusai - Overview: Patched ZoneCore after running into multithread problems in Prometheus. [2006/10/04] - Tsusai - DatabaseTXT: Updated TPacketProc to recieve a passed packet buffer. [2006/10/04] - Tsusai - ZoneCore : Updated ExecCommand to pass the InBuffer to any zone procedure. [2006/10/04] - Tsusai - ZoneRecv : Updated the NoCommand procedure to be compatable by the above changes. - - Rev 30- [2006/10/01] - Tsusai - Overview: Continued work on RaX's plug and play database system. Mainly delt with character database components. [2006/10/01] - Tsusai - Console : Local Character server now using WAN_IP, not 127.0.0.1 [2006/10/01] - Tsusai - DatabaseTemplate/MySQLDatabase : Moved TCharacter SQL methods here from Character.pas [2006/10/01] - Tsusai - CharaServerProcesses : Updated calls for the above changes. Note : Database units not organized...was busy with functionality. Also, need to verify any use of TDatabase is cleaned up after we are done with it (FreeAndNil() or .Free). - - Rev 29- [2006/09/30] - RaX - Updated new database organization, removed CreateDatabase and created a "wrapper" class for our Multi-database interface which, on create, decides what interface to use. [2006/09/30] - RaX - Added - Classes/Database.pas [2006/09/30] - RaX - Renamed - Classes/Database/Database.pas to DatabaseTemplate.pas. [2006/09/30] - RaX - FIXED!!! - Random warnings from our umysql client, simply changed destroy to Destroy. - - Rev 28- [2006/09/29] - RaX - Overview - HUGE CHANGE, finally added our plug and play database system. this is, well, unique in RO emulators. The ability to swap between database types at the flip of a switch is handy, of course, but giving people more choices in databasing is extremely useful. [2006/09/29] - RaX - Added Classes/Database/Database.pas [2006/09/29] - RaX - Added Classes/Database/MySQLDatabase.pas [2006/09/29] - RaX - Added Constants/DatabaseConstants.pas [2006/09/29] - RaX - changed LoginProcesses to use the new database system rather than AccountDB.pas. [2006/09/29] - RaX - removed AccountDB.pas from the project, still on SVN for history. [2006/09/29] - RaX - Changed CharaServerProcesses to use the new database system. [2006/09/29] - RaX - Modified ServerOptions.pas to include a DatabaseType variable. This variable determines which database Helios uses. - - Rev 27- [2006/09/28] - RaX - ZoneCore - Started reorganization/re-documentation... make things a little easier to understand for newbies to the codebase =) [2006/09/28] - RaX - ZoneCore - renamed variables, recased types, moved begins around. placed ":" in their appropriate places when dealing with declarations. - - Rev 26- [2006/09/26] - Tsusai - Notes: Zone core uploaded. Non operational or called. [2006/09/26] - Tsusai - Character : Added ClientVersion to TCharacter. [2006/09/26] - Tsusai - PacketTypes : Imported TReadPts. [2006/09/26] - Tsusai - ServerOptions/WinLinux : Removed unneeded Units. [2006/09/26] - Tsusai - DatabaseTXT : Added unit to load .txt databases. [2006/09/26] - Tsusai - ZoneCore : Imported from Prometheus (yes..this is legal under GPL). [2006/09/26] - Tsusai - ZoneRecv : Added. - - Rev 25- [2006/09/26] - Tsusai - Globals: Added GetMD5 function, to turn a string into a MD5 string. - - Rev 24- [2006/09/26] - RaX - Re-indented half of the files...too many to count...non-code-affecting change. - - Rev 23- [2006/09/21] - RaX - Forgot to upload Helios.DPR. Now remedied. - - Rev 22- [2006/09/21] - RaX - Overview : To avoid a 20 page long changelog entry, I documented everything that wasn't documented. We're glad you chose to shop at Helios. Thank you, and have a nice day. - - Rev 21- [2006/09/20] - RaX - Overview : Documented ./trunk/src/Classes/Commands.pas and updated Documentation in ./trunk/src/Console.pas. Slight indentation rework in Globals. [2006/09/20] - RaX - Added comment headers to the head of the document and over each routine. [2006/09/20] - RaX - Modified original doc plan to include a line below each routine as well as a header above. [2006/09/19] - RaX - Re-indented a few variables in Globals.pas. - - Rev 20- [2006/09/19] - RaX - Overview : Documented ./trunk/src/Console.pas [2006/09/19] - RaX - Added comment headers to the head of the document and over each routine. Tell me what you think Tsu. - - Rev 19- [2006/09/17] - Tsusai - Overview : Fixed terminations, and added TCPServer activations and disconnections learned from Prometheus. [2006/09/17] - Tsusai - WinLinux : Added Termination signal capturing, and also adding manual process termination. [2006/09/17] - Tsusai - Globals : SQL timeout set to 10 seconds, Termination procedures added here. Now houses the server version. [2006/09/17] - Tsusai - TCPServerRoutines : Added, helps with activation and deactivation. [2006/09/17] - Tsusai - Console : Minor tweaks to MainProc class. - - Rev 18- [2006/08/21] - Tsusai - Overview : Tweaks, removal of some debug, credits file loading. [2006/08/21] - Tsusai - Added MadExcept to windows version. [2006/08/21] - Tsusai - CharaServerProcess - ParseCharaServ: Fixed loop structure (ReadFromStack). [2006/08/21] - Tsusai - Globals - ConnectToMySQL: Separated out into its own function. [2006/08/21] - Tsusai - Console - ThirdPartyCredits: Added. Reads credits file. [2006/08/21] - Tsusai - Console - MainProc.Startup: Cleaned up procedure. [2006/08/21] - Tsusai - Console - MainProc.ServerException: Finalized code. - - Rev 17- [2006/08/06] - Tsusai - SaveDB: Removed. [2006/08/06] - Tsusai - Notes\About running on linux.txt - Added (basically need zlib package installed). [2006/08/06] - Tsusai - Globals : Retrieves mySQL connection details from ServerOptions. Tells how many accounts and characters there are on the server. [2006/08/06] - Tsusai - ServerOptions : Added mySQL information loading and saving. [2006/08/06] - Tsusai - Console : Removed SaveDB call. - - Rev 16- [2006/08/05] - Tsusai - Overview : Character Server Fully Implemented...Big, because partial sucks. [2006/08/05] - Tsusai - GameGlobals : Added. [2006/08/05] - Tsusai - CharaServerProcess: SendCharas : Completed. CreateChara : Completed. DeleteChara : Filled in dummy procedure with fully functional code. ParseCharaServ : Updated DeleteChara Call. [2006/08/05] - Tsusai - Account - TAccount : Changed Characters to CharaID array. [2006/08/05] - Tsusai - Character TParamBase : Removed. TCharacter : All SQL related variables are properties. Whenever any of these are written to, an internal SaveTime Clock starts (Current + 5 min). Invokes SQL save, then is reset. (why waste a save query on a person sitting around Prontera all day long). Added Load, Save, and remove SQL procedures. Added GetCharacters to find a character from the internal list then sql. [2006/08/05] - Tsusai - Globals : CharacterList now an integer list. [2006/08/05] - Tsusai - AccountDB : Added FindAccountByID, and fixed the static setting in FindAccountByName. [2006/08/05] - Tsusai - LoginProcesses : Updated for AccountDB updates. [2006/08/05] - Tsusai - All other files: Uses cleaned up. - - Rev 15- [2006/07/11] - Tsusai - Overview : Forgot to SVN add SQL.pas - - Rev 14- [2006/07/11] - Tsusai - Overview : Character server work [2006/07/11] - Tsusai - SQL : Added. Get and Set integer and string utilites. SET : Needs a table, parameter, value, and ID key value. GET : Needs a table, parameter, and ID key value. [2006/07/11] - Tsusai - CharaServerProcess : Work on CreateChara. Need to do further work on TCharacter. [2006/07/11] - Tsusai - Character - TCharacter : Added most of the sql chara table variables as properties. Also added a AddToSQL, which returns the new CharaID. (STILL NEEDS WORK) [2006/07/11] - Tsusai - Globals : Added uses description. [2006/07/11] - Tsusai - Socket : Added BufferReadByte. - - Rev 13- [2006/07/08] - RaX - Overview : Lucky 13...=) [2006/07/08] - RaX - Moved and renamed AccountTypes and CharacterTypes. AccountTypes in '\trunk\src\Classes\Account.pas' and CharacterTypes in '\trunk\src\Classes\Character.pas'. One Class per file is the name of the game. - - Rev 12- [2006/07/08] - Tsusai - Overview : Code audit >< [2006/07/08] - Tsusai - Added Notes folder. [2006/07/08] - Tsusai - Documented and cleaned the following: CharaServerTypes, CharaServerProcess, AccountTypes, CharacterTypes, Globals, PacketTypes, Socket*, ServerOptions*, Console, AccountDB, SaveDB. * = RaX to document [2006/07/08] - Tsusai - Helios.dpr : moved "Loading text" from Console here. Contains the revision number. Please remember to update when you commit. [2006/07/08] - Tsusai - GameObjects : removed duplicate TCharacter code. - - Rev 11- [2006/07/08] - RaX - Overview : Pre-organizational...organization...=) [2006/07/08] - RaX - Commands.pas - Moved into classes folder. [2006/07/08] - RaX - Alphabetized units in Helios.dpr - - Rev 10- [2006/07/06] - Tsusai - Overview : CharacterServer Code and some bonus SQL code. [2006/07/06] - Tsusai - CharaServerPacker - SendCharas: SQL Query updated. Code setup to return Zero characters at this time till TCharacter is developed further. [2006/07/06] - Tsusai - CharacterTypes - TCharacter: All properties that will be made will be using SQL to get and set data. Basic retrieval code is now set in place, to be shared. Write procedures to come. [2006/07/06] - Tsusai - Globals: Added CharacterList (not used yet). Updated Console() to MainProc.Console() thus fixing broken rev 9. [2006/07/06] - Tsusai - Socket - WriteBuffer: Undid overload and added the type as a suffix (WriteBufferByte) Afraid of possible packet glitches, last thing I need to worry about. [2006/07/06] - Tsusai - AccountDB - FindAccount: Fixed searching engine. Wouldn't find it if it already existed. [2006/07/06] - Tsusai - LoginProcesses: Updated WriteBuffer calls. - - Rev 9- Broken [2006/07/06] - Tsusai - Overview : Forgot to upload the sql file, fixes (thanks to Jbain) [2006/07/06] - Tsusai - NonSQLFiles : Writeln -> console() update. [2006/07/06] - Tsusai - uMySQLVio : _WIN_ conditionals changed to MSWINDOWS (Jbain pointed it out). - - Rev 8- [2006/07/06] - Tsusai - Overview : Phased out txt for the moment. mySQL for now. Using jA Database. [2006/07/06] - Tsusai - helios.sql : jAthena sql info with test character and account. Would like an aegis one since this would be designed to be an aegis emulator. *shrug* [2006/07/06] - Tsusai - AccountTypes : Modified Gender to be a char. Once set, it modifies gendernum (0 or 1). Gender as a Char is M or F. [2006/07/06] - Tsusai - Globals : Moved SQL out of console to Globals. Centralized. [2006/07/06] - Tsusai - Console : SQL Code removed. Also, FIXED CharaServer OnExecute and OnConnect events. Also added The local character server. Now shows up. [2006/07/06] - Tsusai - AccountDB : removed old txt code, now looks in either the [2006/07/06] - Tsusai - Helios.dpr : removed "Command:" visual. Goofs up with server messages. [2006/07/06] - Tsusai - LoginProcesses : Replaced Gender with GenderNum (see above); - - Rev 7- [2006/07/05] - Tsusai - Overview: Massive code update, mainly dealing with SQL integration. [2006/07/05] - Tsusai - Helios.dpr : added some units. [2006/07/05] - Tsusai - WinLinux: Added this unit to address ALL massive ifdef mswindows/linux. Currently controls the IP to ip cardinal type used for RO clients to connect to a specified server. [2006/07/05] - Tsusai - CharaServerTypes: Modified, IP is now a property. Modifying it automatically updates IPCardinal. [2006/07/05] - Tsusai - Common\SQL (Folder) added SQL. It is GPL, but at this time I have contacted the author and am asking permission. If declined, project would be either without SQL or be GPL. [2006/07/05] - Tsusai - CharacterTypes: Added, basic TCharacter. Eventually, EVERYTHING will be a property for instant SQL SELECT and UPDATE procedures. [2006/07/05] - Tsusai - PacketTypes: Added TThreadLink type, from indy prometheus prototype. Helps link AThread.Data to actual TCharacter or TAccount. [2006/07/05] - Tsusai - Console: TThreadLink is now assigned to a connection thread upon character server connect. Also Added BASIC SQL retrieval. [2006/07/05] - Tsusai - SaveDB: Killed a warning...I want to remove this after txt file load is redone so it is beautifully like SQL, with massive disk access (lol, probably do this like prommy). [2006/07/05] - Tsusai - LoginProcesses: Removed unneeded variables. - - Rev 6- [2006/07/04] - Tsusai - Overview: Redo of certain account handling, for easy future MySQL addon. [2006/07/04] - Tsusai - Database is now AccountDB at this time. Object form removed, just procedures (why create memory for something only for procedures). Redid load structure, so that it loads on the go. [2006/07/04] - Tsusai - Console, Globals : Updated for above. [2006/07/04] - Tsusai - AccountTypes : Updated TAccount; [2006/07/04] - Tsusai - Commands: Removed /reload. Rather have all DB setup before doing this. [2006/07/04] - Tsusai - LoginProcesses: Updated to call active account search. [2006/07/04] - Tsusai - GameObjects : added, contains TBeing and TCharacter (works in progress). - - Rev 5- [2006/05/06] - RaX - Overview : stubbed Tdatabase/reorganized Tdatabase for upcoming changes to allow multiple database types to be used. Added CharaServerParse's Guts, a case statement based on Prometheus' charasel.pas No code was copied, however. Just the idea. I broke that up originally anyways...=) [2006/05/06] - RaX - Database - Overwrote Create to initialize lists and load the database. [2006/05/06] - RaX - Globals - Moved AccountList into TDatabase as a public var. [2006/05/06] - RaX - Database - Changed how reload works to accomodate later database additions. [2006/05/06] - RaX - LoginProcesses - Changed AccountList to ADatabase.Accountlist throughout the code. [2006/05/06] - RaX - CharaServerPacket - Added guts to CharaServerParse, a case statement to decide what to do with packets. - - Rev 4- [2006/05/08] - RaX - Overview : Added ServerName under new section "CharaOptions" in serveroptions.pas Made all INI options actually affect code...=) [2006/05/08] - RaX : ServerOptions.pas - Added SetServerName, fServerName, and LoadCharaOptions to do their respective tasks, exactly like similiarly named routines/vars. [2006/05/08] - RaX : Console.pas - Replaced hardcoded variables for server ports/ internal chara server name with their respective INI variables. [2006/05/08] - RaX : TODO:: Input validation on ini variables, making sure that ports are between 1 and 32767, that IP's are valid, etc. - - Rev 3- [2006/05/06] - Tsusai - Overview : Updated Serveroptions to what RaX wants, an "OnChange" idea. [2006/05/06] - Tsusai - ServerOptions: Configred to work like prometheus, load what is available, save all ini options. - - Rev 2- [2006/05/06] - RaX - Overview : Added Trunk/src/Config/ServerOptions.pas [2006/05/06] - RaX - Added basic INI functionality. INI will be named ServerOptions.ini and will always be in the same folder as the exe. [2006/05/06] - RaX - Class TServerOptions - TMemINI descendant with ini keys as class variables and save, load, and writenewini as methods. [2006/05/06] - RaX - TServerOptions.Save() - saves ini to disk. [2006/05/06] - RaX - TServerOptions.Load() - Loads ini keys into variables. [2006/05/06] - RaX - TServerOptions.WriteNewINI() - Writes a new copy of the ini with default values. - - Rev 1- [2006/05/05] - Tsusai - Import to http://opensvn.csie.org/HeliosProject/ - FROM OPENSVN.CSIE.ORG/TSUSAI/HELIOS - Rev 40- [2006/05/05] - RaX : Overview - CINCO DE MAYO, Reorganized a large part of the code. [2006/05/05] - RaX : Moved Console commands back into TCommands class [2006/05/05] - RaX : Reorganized startup messages into an outline format. [2006/05/05] - RaX : Redid the main loop to allow TCommands.Exit to exit the loop. [2006/05/05] - RaX : Added check at the beginning of TCommands.Parse to see if the string was blank, if it was blank, it would not exexute the parsing routine. [2006/05/05] - RaX : Finally, I tested the changes. Everything checks out ok. There seems to be no memory leaks, and it seems to be uncrashable. Hopefully this will be a good building block for the other servers. - - Rev 39- [2006/05/04] - Tsusai : The original bug problem was that i was using a byte type for the loop. 0 to -1 crashes with the range error, due to the fact byte type cannot be less than 0. Fixed. - - Rev 38- [2006/05/04] - RaX : Bugfix :: If there aren't any charaservers in charaserverlist, there would be a range error in loginprocesses.pas - SendCharaServers. Fixed with condition checking if there is a charaserver in the list. - - Rev 37- forgot changelog - - Rev 36 - [2006/05/04] - Tsusai: Bugfix and added linux compatability Helios.dpr : added one of the few win/linux conditional defines. Console.pas : removed database variables, activated loginserver. Globals.pas : added ADatabase as a global variable here. - - Rev 35 - [2006/05/04] - Tsusai - GUI removal and reorganization to accomidate. Helios.dpr : executes in a controlled loop to keep the application alive. Console.pas : new console class of the application (MainProc). Items from Commands.pas moved here Commands.pas : removed Socket.pas : removed tsocket class, but kept procedures. Those procedures are enough, don't need to create and destroy classes (memory) over and over just yet. not till we have game objects in place. Database.pas : moved Reload here from Commands - - Rev 34 - [2006/05/03] - RaX - Fixed bug from rev 29, AnAccount was being free'd after being added as an object to accountlist in Database.pas - LoadAccountInfo. This was also removing the object from accountlist. - - Rev 33 - [2006/05/03] - RaX - Removed login processes from Socket.pas ...for now...=) Moved Socket.pas into common. - - Rev 32 - [2006/05/03] - RaX - Miscalculated version numbers in changelog. This fixes them. - - Rev 31 - [2006/05/03] - RaX - Moved all socket related code into socket class, renamed variables in all routines in socket.pas. Added command "/commands" to display available console commands. - - Rev 30 - [2006/05/03] - RaX - Added some more of the socket interface to the socket class, there's a bit more to go though. (SendBuffer was added, all Packet handling will be done by this class soon, and will make it easier to swap out sockets if need be). - - Rev 29 - [2006/05/03] - RaX - Modified socket code to be accessed by a class, for flexibility. It's been tested and works. - - Rev 1-28 - Tsusai [2006/05/01] - Forgot to SVN add database.pas [2006/05/01] - RaX updated reload in commands.pas [2006/05/01] - Added RaX's changes: Now Win32 (not everyone has Delphi Ent for cross) Database changes, added Command.pas. Also Added "missing" CharaServerPacket unit [2006/04/13] - Added project group, added beginning of character server. [2006/04/07] - Added new version of Helios - Tsusai

    posted 893 days ago

  • Helios Public Releases Release 1 - Proof of Concepts file released: Helios_0.0.1.274_src.zip

    _ _ _ _ | | | | | | (_) | |__| | ___ | | _ ___ ___ | __ | / _ \ | | | | / _ \ / __| | | | | | __/ | | | | | (_) | \__ \ |_| |_| \___| |_| |_| \___/ |___/ Ragnarok Emulator Developers & Contributers - Tsusai - RaX - Aeomin - ChrstphrR (CR) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Release 1 -------------------------------------------------------------------------------- - Rev 274 - [2007/05/29] Tsusai - RELEASE 1. See Release Notes.txt. - - Rev 273 - [2007/05/29] RaX - Added in #warp for the proof of concept release, this is a HACKED IN ADDITION, do not expect it to stay, It'll be replaced by a much cleaner and better behaving version at a later date. - - Rev 272 - [2007/05/29] Tsusai - LuaNPCCore - RunLuaNPCScript: Forgot to uncomment a test line and remove the pcall line. - - Rev 271 - [2007/05/29] Tsusai - Apparently my Div by 0 test survived the Ctrl-S. Removed - - Rev 270 - [2007/05/29] Tsusai - Notes/Overview: More addons to the lua npc engine and various tweaks. [2007/05/29] Tsusai - MadExcept: Linked the VERSION that appears in reports, to read from Version.pas.HeliosVersion [2007/05/29] Tsusai - Being - TBeing: Removed MapPointer. Useless [2007/05/29] Tsusai - NPC - TScriptNPC.Disable: Removed MapPointer [2007/05/29] Tsusai - Being - TBeing.Walk: Added OnTouchCellFound and OnTouchCell, so that I can 1) make code look prety 2) Make sure that once i trigger an Ontouch npc, I don't do it again within its field. [2007/05/29] Tsusai - Character - TScriptState: Added more fields for it. [2007/05/29] Tsusai - Character - TCharacter.Create: Initiallize CharaState. [2007/05/29] Tsusai - OnTouchCellEvent - TOnTouchCellEvent.Execute: Makes sure conditions are right for running the script. [2007/05/29] Tsusai - LuaNPCCommands: Added script_dialog, script_wait, & script_close [2007/05/29] Tsusai - LuaNPCCommands - addnpc: Corrected the TNPC.Point setting [2007/05/29] Tsusai - LuaNPCCore: Added Resuming functions to resume Lua threads. [2007/05/29] Tsusai - PacketDB: Enabled 'npcclicked' & 'npcnextclicked' [2007/05/29] Tsusai - ZoneRecv: Added NPCNext & NPCClick. Const'd InterServer recv commands' InBuffer. [2007/05/29] Tsusai - ZoneRecv - ShowMap: Removed MapPointer [2007/05/29] Tsusai - ZoneRecv - CharaWalkRequest: Added some conditionals before walking. [2007/05/29] Tsusai - ZoneRecv - GetNameAndID: Added NPC data retrieval - - Rev 269 - [2007/05/27] CR - Overview: Bugfix! Solved out 3 bugs with walking/pathing, two pointed out by Tsusai and RaX while testing NPC Warps, and then the map- edge errors found trying to quell the complaints about unwalkable tiles that shouldn't be. That said, there still remains an issue with some unwalkable tiles, while I was testing this on the new1-2 map at 100,9 (as Tsusai suggested to test). Situation: the little "coves" to the left and right at the bottom, that are 1x3 tiles aren't reachable. I'm committing my changes to solve the aformentioned 3 bugs, because that solves out 98% of the issues found, and now we'll have more people to test and sort out that last remaining pesky problem. :P :) [2007/05/27] CR - Map TMap.GetPath: Applied 3 sets of bugfixes, two caused by my algorithm tweaks, one pre-existing: Mea Culpa: Infinite Loops, and improper pathing when the mouse button is held down to walk are solved. Pre-existing and discovered while dealing with the rest: We failed to account for map edges properly in our 16 radius search range, and this caused improper coordinates to be sent for the path. This one wasn't found right away, because we weren't testing on more than the new1-1 map. - - Rev 268 - [2007/05/25] Tsusai - Notes/Overview: Zone Updates. [2007/05/25] Tsusai - ZoneRecv: Moved things around a bit. Moved maploading back into ShowMap, and moved the Zone count increase from ShowMap into MapConnect. [2007/05/25] Tsusai - ZoneRecv -RecvWarpRequestReplyFromInter: Removes player from current cell. [2007/05/25] Tsusai - ZoneSend: Cleaned up uses [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TBeing to TCharacter. [2007/05/25] Tsusai - ZoneSend - SendAreaChat: Removed ABeing, changed to APerson, and added TCharacter conditionals. [2007/05/25] Tsusai - ZoneSend - ZoneSendBeing: Will not send information on hidden npcs. [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TCharacter to TBeing. [2007/05/25] Tsusai - ZoneSend - ZoneSendWarp: removes player from cell (same zone warp) - - Rev 267 - [2007/05/25] Tsusai - Notes/Overview: Lua Updates [2007/05/25] Tsusai - LuaCoreRoutines - MakeLuaThread: Finally got it to work the way I want it. Creates a new execution thread, links to the original globals, and keeps its own globals. [2007/05/25] Tsusai - LuaNPCCommands: Cleaned up USES, added the first real NPC command, "moveto". [2007/05/25] Tsusai - LuaNPCCommands - MakeNPCWarp: Forgot to add Job ID assignment. [2007/05/25] Tsusai - LuaNPCCore: Cleared up uses. [2007/05/25] Tsusai - LuaNPCCore - GetCharaFromLua: Returns a boolean function if retrieval of character data was successful. [2007/05/25] Tsusai - LuaNPCCore - RunLuaNPCScript: Added termination of lua thread. Not sure if that is a good spot or not. I will know soon. - - Rev 266 - [2007/05/25] Tsusai - Notes/Overview: Fixed USES in the following: ZoneServer, InterServer, InterRecv. - - Rev 265 - [2007/05/25] Tsusai - Being - TBeing.Walk: Fixed The ontouch event firing, due to an array typo. Also added sets the character to "standing" so the walk routine exits properly. [2007/05/25] Tsusai - NPC - TScriptNPC.OnTouch: fixed caller (was executing the clicking version). [2007/05/25] Tsusai - NPC - TScriptNPC.Enable & Disable: Fixed initial check to just check for OnTouchEnabled. [2007/05/25] Tsusai - TWarpNPC.Create: Now automatically sets the warp npc to an enabled state. - - Rev 264 - [2007/05/25] Tsusai - Added IS TCHARACTER conditionals to all routines (We were sending chat, and various packets to NPCs) - - Rev 263 - [2007/05/25] Tsusai - OnTouchCellEvent : made the ScriptNPC protected, and added a readonly property. - - Rev 262 - [2007/05/25] Tsusai - Notes/Overview: Moved linux notes to bin folder, and updated it with the full list of required libraries. - - Rev 261 - [2007/05/22] RaX - Overview : Broke Inter Server into the same design (*Server, *Send, *Recv) as the zone server. [2007/05/22] RaX - Updated header in InterServer to reflect all it does. [2007/05/22] RaX - Moved send routines from interserver.pas into intersend.pas [2007/05/22] RaX - Moved Recv routines from interserver.pas into interrecv.pas [2007/05/22] RaX - Updated uses in all 3 files. [2007/05/22] RaX - Added InterSend.pas [2007/05/22] RaX - Added InterRecv.pas - - Rev 260 - [2007/05/22] RaX - Overview : Added OnTouch to TScriptNPC. [2007/05/22] RaX - TScriptNPC : Added Enable/Disable [2007/05/22] RaX - TNPC : Changed Enabled to a property. [2007/05/22] RaX - TBeing: Modified .Walk to check for OnTouchEvents and execute them. [2007/05/22] RaX - Added TOnTouchCellEvent, an event object which resides in the currently named Beings intlist32 in TMap.Cell[x][y].Beings (Possible rename to objects?) - - Rev 259 - [2007/05/21] Tsusai - Notes/Overview: Updated a bunch of lua stuff. [2007/05/21] Tsusai - ZoneServer - ProcessZonePacket: Changed the AChara from TCharacter to a pointer of TCharacter. This way I can get the original character data, and pass it on. [2007/05/21] Tsusai - LuaNPCCommands: Redid the syntax checker, not as descriptive as before. Also added npc() to add NPCs [2007/05/21] Tsusai - LuaNPCCore: Removed existing commands, RunLuaNPCScript, SetCharaToLua, & GetCharaFromLua - - Rev 258 - [2007/05/19] CR - Overview: Cleanup in InterServer unit. Added class header, initial description of the purpose of the InterServer. Made changes, including new properties that lend clarity to routines that used to do the casting work in-situ. [2007/05/19] CR - InterServer - TInterServer.RecvGMCommandReply: Altered header, indent and style changes. Use of new ClientList and ZoneServerLink property and a with clause to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.InterSendGMCommandToZones: Altered header, indent and style changes. Extracted a local procedure to construct the packet ($2206), and slight optimizations made. Used ClientList and ZoneServerLink properties for clarity. [2007/05/19] CR - InterServer - TInterServer.RecvWhisper: Altered header, indent and style changes. Use of with, and ZoneServerLink to clarify code. [2007/05/19] CR - InterServer - TInterServer.RecvWhisperReply: Alterd Comment Header, indent and style changes. Used ZoneServerLink and ClientLink properties to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.SetPort: Altered Comment Header. Changed behavior so that fPort and TCPServer.DefaultPort are only altered IFF Value is different from fPort. Value parameter made constant. [2007/05/19] CR - InterServer - TInterServer.GetClientList: Created routine. Property read handler for ClientList. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerInfo: Created routine. Property read handler for ZoneServerInfo. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerLink: Created routine. Property Read handler for ZoneServerLink. [2007/05/19] CR - InterServer - TInterServer.RecvZoneWarpRequest: Altered Comment Header. Indent and style changes, with clause added to declutter a database value read. - - Rev 257 - [2007/05/13] - Tsusai - Notes/Overview: Fixed packet_db/zone related parameters. [2007/05/13] - Tsusai - Packet_Db: Modified ExecCommand types to have var and const for their parameters. [2007/05/13] - Tsusai - ZoneRecv: Updated all parameters for the above. [2007/05/13] - Tsusai - BufferIO: Added const/var to all parameters. - - Rev 256 - [2007/05/08] - RaX - Fixed hints and warnings that Turbo Delphi failed to catch. I finally fixed my compiler! - - Rev 255 - [2007/05/07] CR - Overview: Found the holy grail! Speedup on pathing, with a combination of logic simplification, and finding the proper spot and calculations for the Cost comparison. Users should notice the faster pathing with points selected near the edge of the character's view. [2007/05/07] CR - Map - TMap.GetPath: Added to comment header to describe this routine's behavior further. Refactored StepCost out of main routine, and improved the efficiency of that cost lookup by simplifying the comparison. Refactored out routines InitializeAnArea and GetOptimalDirection. Renamed local variables: XMod and YMode now are Offset (TPoint), and EndPointMod is now AreaEndPoint. Using DiagonalCost to PROPERLY focus the search area. In testing, this yields speeds half the time of the algorithm used in rev 254. This proper cost comparison, along with the proper stepping DOWN the compared cost (not incrementing it!), and with use of GetOptimalDirection, we are now aiming the search toward the goal, and avoiding expensive searches that don't compute to a low-cost path. - - Rev 254 - [2007/05/07] CR - Overview: Documentation and preparatory work in MapTypes for an improvement for Pathing on our maps. [2007/05/07] CR - MapTypes: Added constants for the GAT values, taken verbatim from Prometheus beforehand. I'm still a bit unsure that these have the correct names for the values. Someone please, please double check! [2007/05/07] CR - MapTypes - TFloodItem: Changed Cost to LongWord (same range, futureproofing for when Tsusai can't control his urge to compile 64 bit binaries whenever CodeGear releases a 64b compiler). Added methods for finding the Manhattan and Diagonal Costs from the given item to a relative destination point. Added both for completeness, but I'm only intending to use DiagonalCost since it'll give a more accurate heuristic distance. - - Rev 253 - [2007/05/06] CR - Overview: Minor cleanup in some TCharacter Set* methods -- documenting the routines, making parameters constant, and minimizing flags set for saving the Character State TCharacter.DataChanged isn't flagged when the value is identical to the Set* method's stored property value. [2007/05/06] CR - Character - TCharacter.SetBAbyID, SetOnline, SetHomunID: Aforementioned changes above applied to these property writing routines. - - Rev 252- [2007/05/04] - Tsusai - Notes/Overview: More tweaks to TWarpNPC & its lua side, and some documentation. New warp syntax, npc name is also the lua function name to call [hidden]warp("map","npc name and function name",x,y,xradius,yradius) [2007/05/04] - Tsusai - Character - TCharacter: Clears personal thread on destroy. [2007/05/04] - Tsusai - NPC - Added documentation, including a "tree" of how I plan the NPC object structure. [2007/05/04] - Tsusai - NPC - TWarpNPC: Removed "Destination" values. A warp will be a ontouch activated lua script. This will allow for random warps as well. Removed static JID value. [2007/05/04] - Tsusai - Map: Removed Lua from maps. [2007/05/04] - Tsusai - GameConstants: Added NPC_WARPSPRITE & NPC_INVISIBLE constants. [2007/05/04] - Tsusai - LuaCoreRoutines: Documented Lua_isNonNumberString and added a "is not nil" check in TerminateLuaThread. [2007/05/04] - Tsusai - LuaNPCCommands: Added hiddenwarp support. Broke up the npc warp reading. Now the syntax checker is its own procedure, and addwarp and addhiddenwarp are designed to go through the checker and TWarpNPC maker. [2007/05/04] - Tsusai - LuaNPCCore: Added comments. - - Rev 251 - [2007/05/03] - Aeomin - Overview: Implement Whisper. [2007/05/03] - Aeomin - Added RecvWhisperReply & RecvRedirectWhisper procedure [ZoneRecv.pas] [2007/05/03] - Aeomin - Added RedirectWhisperToZone & SendWhisperReplyToInter procedure [ZoneInterCommunication.pas] [2007/05/03] - Aeomin - Fixed type in Game database, lost '' in query [MySQLGameDatabase.pas(LoadChara)] [2007/04/27] - Aeomin - Fixed typo header in Static database of JanSql [JanSQLStaticDatabase.pas(GetMapZoneID)] [2007/04/27] - Aeomin - Added SendWhisperReply procedure to tell client about result of whisper [ZoneSend.pas] [2007/04/27] - Aeomin - Added SendWhisperReplyToZone procedure to parse the whisper reply code from Inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added RecvWhisper procedure to parse the request from zone [InterServer.pas] [2007/04/27] - Aeomin - Added Whisper procedure to parse Whisper packet [ZoneRecv.pas] [2007/04/27] - Aeomin - Added SendWhisperToInter procedure to send whisper request from zone to inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added 0x2210-0x2212 packet in packet_db.txt - - Rev 250 - [2007/05/02] - Tsusai - Notes/Overview: Added basic TNPC structures and added the first REAL lua script function, warp(), which will load the parameters it has, and create a TWarpNPC. warp("new_1-1","Start-Castle",148,112,2,3,"new_1-2",100,9) is the syntax warp(map,name,x,y,xradius,yradius,destmap,destx,desty); [2007/05/02] - Tsusai - NPC: Added, includes some basic TNPC structures, and descending classes such as TScriptNPC & TWarpNPC [2007/05/02] - Tsusai - InterServer - TInterServer.RecvZoneWarpRequest: Changed the ZoneID check to check for > 0. [2007/05/02] - Tsusai - LuaCoreRoutines: Added bool function Lua_isNonNumberString. A number like 345 passes the provided lua_isstring function, because it can be converted to a string. This function checks if it is a string, then if that is not a number. Good for alphanumeric strings only, no exceptions to pure numbers. [2007/05/02] - Tsusai - LuaNPCCommands: Changed addwarp & addnpc lua commands to npc and warp (still have add* prefix for the delphi procedure side). [2007/05/02] - Tsusai - LuaNPCCommands - AddWarp: No longer a dummy procedure. This sucker error checks like MAD, makes a TWarpNPC if its ok, and adds it to the zone global list. [2007/05/02] - Tsusai - LuaNPCCore: Splitted code from PrepLuaForNPCScripts to SetCharaIDToLua. Added GetCharaIDFromLua. [2007/05/02] - Tsusai - ZoneServer: Added a NPCList (TIntList32) for storing NPCs. Added create & free methods as well. - - Rev 249 - [2007/05/02] - RaX - Fixed packet_db, this corrects the freezing problem experienced in newer clients. (9/18+) - - Rev 248 - [2007/05/01] - Tsusai - Notes/Overview: Fixed a warp error for same map or same zone. [2007/05/01] - Tsusai - ZoneSend - ZoneSendWarp: Didn't save position for same map and same zone warping - - Rev 247 - [2007/05/01] - Tsusai - Notes/Overview: Added RaX's warp code w/ some fixes. Allows for warping on the same map, same zone, and multi zone warping :) [2007/05/01] - RaX - ServerInfo: const'd all strings that were not changing. [2007/05/01] - RaX - InterServer: Added RecvZoneWarpRequest and InterSendWarpReplyToZone. [2007/05/01] - RaX - InterServer - TInterServer.ParseInterServ: Added reading of zone warping details (RecvZoneWarpRequest) [2007/05/01] - Tsusai - InterServer - RecvZoneWarpRequest: Edited not to return any info if the zone w/ the request warp-to map doesn't exist. They can walk to the magical unknown map for all I care. [2007/05/01] - Tsusai - LoginServer - TLoginServer.Stop: Reversed the for loop of Charaserver deletions. [2007/05/01] - Tsusai - LoginServer - RemoveFromAccountList: Commented out the Account Key nilling. Fudges things up multi exe setups. [2007/05/01] - RaX - ZoneRecv: Added RecvWarpRequestReplyFromInter. [2007/05/01] - Tsusai - ZoneRecv - RecvWarpRequestReplyFromInter: Added updates to characters map and points, so after the d/c, it saves, and loads proper. [2007/05/01] - RaX - ZoneSend: Added ZoneSendWarpRequest. [2007/05/01] - Tsusai - ZoneSend: Added const to all procedures. [2007/05/01] - RaX - ZoneServer - TZoneServer.InterReadClient: Added parsing for the warp request reply from interserver to pass to RecvWarpRequestReplyFromInter. - - Rev 246 - [2007/04/29] Tsusai - Notes/Overview: Walking mechanism revisited. Initial design modeled after prometheus highly inefficent. It would cycle through all beings in a 33x33 area (16 radius, 1089 cells), as it cycled, it would go through all the beings for that cell to see if they were in the edge cells for showing and disappearing. A new flow control was designed, reducing the number of cells checked down to approx 244 (down to 22% of original). [2007/04/29] Tsusai - Being - TBeing.Walk: Broke up sections to HideBeings and ShowBeings. Also redid the cell looping system to loop through a set of border cells (~244 for first/last two rows/columns) instead of 1089 cells. [2007/04/29] Tsusai - Map - TMap: Removed any/all lua references - - Rev 245 - [2007/04/29] RaX - Commented TMap.GetPath. - - Rev 244 - [2007/04/29] CR - Overview: Cleanup of TCharacter.CalcMaxHP for clarity. [2007/04/28] CR - Character: TCharacter.CalcMaxHP: Altered Comment Header, added further description of the routine. Used an internal variable to simplify & shorten the span where the Database connection is open to retrieve the BaseMaxHP value. Reindented the formula for initializing MaxHP. Boy is it clearer to read without that long abomination of a method name to retrieve "GetBaseMaxHP"! :P~~ - - Rev 243 - [2007/04/28] CR - Overview: Made new data type in Being for stat arrays, used in both TBeing and TCharacter. Cleanup in TCharacter. [2007/04/28] CR - Being: New type ByteStatArray replaces the repeated use of array [STR..LUK] of Byte; definitions in Being and Character. [2007/04/28] CR - Character: Reindented the data types above TCharacter. [2007/04/28] CR - Character: TCharacter: Modified Class header. Eliminated private section - all internal fields used for properties are now protected, instead. Removed GetBaseStats property method (unneeded). Altered SetBaseStats to model the changes I made in TBeing last commit. Eliminated public variables that were IDENTICAL to those in TBeing (to avoid a repeat of problems like we had with fZeny in an earlier commit). Changed ParamUP and ParamBonus so they use the ByteStatArray type like TBeing uses for ParamBase. [2007/04/28] CR - Character: TCharacter:GetBaseStats: Removed. This class will call the ancestor GetBaseStats instead, which is all that was done within this routine (I would've kept it if it had to alter DataChanged). [2007/04/28] CR - Character: TCharacter:SetBaseStats: Altered Comment Header, improved description, noted Pre and Post conditions. Altered parameters to match TBeing. - - Rev 242 - TYPOS IN REVISION ENTRY [2007/04/28] CR - Overview: Commenting and headers added. Minor changes made for improve efficiencies, and comments left where there might be room for further gains, once proper explanations are fleshed out. [2007/04/28] CR - Being: Altered unit header. Improved unit description. Added class header for TBeing, described minor changes to the interface there. [2007/04/28] CR - Being: TBeing: Altered header, included description. Made empty routines CalcMaxHP and CalcMaxSP abstract. Eliminated private section, moved AreaLoop into protected. [2007/04/28] CR - Being: TBeing.Walk: Altered comment header. Added scathing comments for the lack of explanation for what REALLY goes in within this routine when two of the devs working on this project had to deal with poorly documented code beforehand and SHOULD KNOW BETTER than to leave code of this complexity unadorned with ANY sensible comments. On a positive note, the explanation for the routine was fine. [2007/04/28] CR - Being: TBeing.Walk:GetDirection: Changed Index from Integer to Byte type to eliminate a cast. [2007/04/28] CR - Being: TBeing.Create: Altered Comment Header. Added comment regarding inherited behavior. [2007/04/28] CR - Being: TBeing.Destroy: Altered header, added a better description. Defined Pre and Post Conditons. Added a comment stating that the inherited call must come last. Bugfix: moved inherited call last so ancestor's cleanup happens after the EventList/Path are freed. [2007/04/28] CR - Being: TBeing.SetName: Made Value parameter constant. [2007/04/28] CR - Being: TBeing.GetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.SetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.CalcSpeed: Added comment header & description. [2007/04/28] CR - Character: TCharacter.SetName: Made Value parameter constant to correspond with change made in TBeing. - - Rev 241 - [2007/04/28] CR - Overview: Commenting, reuse of constants to self-explain an array's bounds. [2007/04/28] CR - GameConstants: Altered header. Rearranged Direction constants to reuse NORTH and NORTHEAST as the bounds for the constant Directions array. - - Rev 240 - [2007/04/26] RaX - Fixed small bug in MySQLCommonDatabase -> SaveAccount. A space was accidentally removed in ChrstphrR's changes in rev 220. - - Rev 239 - [2007/04/25] Tsusai - Notes/Overview: Small Lua cleanup & added routine descriptions. [2007/04/25] Tsusai - LuaCoreRoutines, LuaNPCCommands, & LuaNPCCore: Routine descriptions added. [2007/04/25] Tsusai - LuaNPCCommands: Rearanged information. Remembered I could use the forward declaration, thus I am able to remove my dummy npc commands from interface. - - Rev 238 - [2007/04/25] Tsusai - Notes/Overview: Lua Lua Lua Lua Lua Lua. Seriously, alot of restructuring of existing npc routines vs common lua routines. [2007/04/25] Tsusai - LuaCoreRoutines: Added. I've split alot of crap out of the other units and made commands so that no other non Lua* unit calls the dll wrapper LuaPas itself. Added TLua, which is just the Plua_state, TLuaInfo, (for use w/ descendant threads like map and character lua's) which stores a lua for itself, its own reference ID to the parent, and a link to the parent. This is so that descendant execution threads can be unreferenced later and cleaned up on the fly :) [2007/04/25] Tsusai - LuaNPC*: Renamed from NPCCore/Commands. Redid and or rearranged the routines in these files with another or LuaCoreRoutines. [2007/04/25] Tsusai - ZoneServer: Updated all lua calls because of the restructure. [2007/04/25] Tsusai - Character: Lua (TLua) changed to LuaInfo (TLuaInfo). [2007/04/25] Tsusai - Map: Updated NPCLua (TLua) to NPCLuaInfo (TLuaInfo). Updated all lua related calls for the above restructure. - - Rev 237 - [2007/04/24] Tsusai - Notes/Overview: Linux fix related to the GetTick function. [2007/04/24] Tsusai - WinLinux - GetTick: The existing code only returned uptime in seconds. Unfortunatly in linux there is no current uptime in ms like Windows. This fix stores a linux time at startup (seconds since 1900 and its ms), then will take the difference for the tick. - - Rev 236 - [2007/04/23] Tsusai - Notes/Overview: Further refined lua in Helios. Changed out once again the Delphi unit that controls the dll. With that change, we can now use the latest Lua dll build 5.1.2. Also corrected a tiny error with the linux compile line dealing with LoginAccountInfo. This was giving me phantom errors in the delphi environment. [2007/04/23] Tsusai - Helios.dpr: Added the note that our license does not override third party licensing. [2007/04/23] Tsusai - 3rdParty.txt: Updated [2007/04/23] Tsusai - Lua.dll: Added Lua 5.1.2 dll and removed the lualib.dll (not used anymore). [2007/04/23] Tsusai - LuaPas: Added. Modified to for Windows/Linux dll/so names. [2007/04/23] Tsusai - Lua, luaxlib, lualib: Removed the THlua package. [2007/04/23] Tsusai - Helios.dpr: Changed the lua paths and fixed LoginAccountInfo linux path [2007/04/23] Tsusai - test.lua: Removed. [2007/04/23] Tsusai - Lua Notes.txt: Added some lua notes. [2007/04/23] Tsusai - Character.pas: Updated Uses for LuaPas [2007/04/23] Tsusai - Map.pas - TMap: Added NPCLua to TMap. Added loading of Scripts/MapLoaders/mapname.lua for dynamic npc loading. [2007/04/23] Tsusai - NPCCommands: Updated uses, added results to existing functions to kill compiler hints. [2007/04/23] Tsusai - NPCCore: Updated uses. MakeCharacterLuaThread changed to MakeLuaThread. Takes 2 lua pointers now. LuaCleanup: Removed RunLuaScript: Added, split from LuaSetup. [2007/04/23] Tsusai - ZoneServer: Updated uses. Now calls Core.lua instead of test.lua. - - Rev 235 - [2007/04/22] RaX - Fixed DefaultZeny not working. I had forgotten to remove the private fZeny variable from TCharacter back in the day which was now overriding the one in TBeing. Removed. I also went ahead and cleared up the other redundant problem causing variables. - - Rev 234 - [2007/04/20] RaX - Added GetChara(CharacterName) rather than just by ID in Database/GameDatabase - - Rev 233 - [2007/04/17] RaX - Added ScriptDirectory to ZoneConfig in Zone.ini. [2007/04/17] RaX - Updated EnsureFolderStructure to include the new script directory. - - Rev 232 - [2007/04/17] Tsusai - Notes/Overview: I started having some weird File.dcu not found, when doing random things. So I decided to clean up the uses again. This solved my issues. [2007/04/17] Tsusai - Added a Script State for TCharacter. [2007/04/17] Tsusai - Using Icarus as a guide, I cleaned up the uses of the following: DelayDisconnectEvent, CharaLoginCommunication, LoginServer, NPCCore, ZoneCharaCommunication. - - Rev 231 - [2007/04/16] Tsusai - Notes/Overview: Lua now integrated w/ Helios in a simple way. Units may need some cleanup, but when you run the zone, you will see results of loading test.lua (empty NPC Created reply & stored function execution). [2007/04/16] Tsusai - Removed dynamic lua file that was added. For some odd reason it wouldn't work proper. Replaced with THLua units. [2007/04/16] Tsusai - Added test.lua and lua dll's to bin directory. [2007/04/16] Tsusai - Character - TCharacter: Added personal lua pointer. [2007/04/16] Tsusai - ZoneServer - Loads and runs test.lua. Also cleans up npc lua - - Rev 230 - [2007/04/15] Tsusai - Notes/Overview: Reorganized Lua and added work in progress units (not active). [2007/04/15] Tsusai - ThirdParty/Lua.pas - Replaced with a different version by another author. This unit supports dynamic loading, so a compile used as a login server will not require the dll now. [2007/04/15] Tsusai - Common/Lua/ - Moved to Servers/Zone/Lua/ [2007/04/15] Tsusai - NPCCommands.pas & NPCCore.pas - Added to Servers/Zone/Lua/ - - Rev 229 - [2007/04/12] Aeomin - Append check for char and zone server to disallow LoginKey of 0 [CharacterServer.pas (SendCharas) ; ZoneRecv.pas (MapConnect)] [2007/04/12] Aeomin - Added reset LoginKey to 0 after client DC [LoginServer.pas (RemoveFromAccountList)] - - Rev 228 - [2007/04/12] RaX - Fixed a warning in Aeomin's new code...Changed Seconds from longword to integer in Account.pas - TemporaryBan. - - Rev 227 - [2007/04/12] Notes/Overview: Implement Duplicate Login Session Check. [2007/04/12] Aeomin - Added Show_FriendlyMessage_On_DuplicateLogin option for Char server, if set to TRUE, char server will show "Someone has already logged in with this ID" instead just DC when duplicate login [CharaOptions.pas, CharacterServer.pas(LoginClientKickAccount)] [2007/04/11] Aeomin - Added DuplicateSessionKick procedure to search & kick the character [ZoneSend.pas] [2007/04/11] Aeomin - Added SendKickAccountToZone procedure to send kick packet to Zone server [ZoneCharaCommunication.pas] [2007/04/11] Aeomin - Added LoginClientKickAccount procedure to check if account is online and kick [CharacterServer.pas] [2007/04/11] Aeomin - Added SendDCError procedure to send connect error packet 0x0081 [LoginServer.pas] [2007/04/11] Aeomin - Added Packet 0x2007 and 0x2110 for request force kick [packet_db.txt] [2007/04/10] Aeomin - Added TemperaryBan in TAccount to ban account temperary (in seconds) [Account.pas] [2007/04/10] Aeomin - Added GetBanUntilTimeString to TAccount for get remaining time when temperary ban [Account.pas] [2007/04/10] Aeomin - Changed "if not AnAccount.IsBanned then" to "if not AnAccount.State > 0 then" for extension [LoginServer.pad(ValidateLogin)] [2007/04/10] Aeomin - Added support 0x2005 and 0x2006 in Login Server which doing similar function as Char Server [LoginServer.pas] [2007/04/10] Aeomin - Added Transfering (Boolean) to TClientLink for keep the data when client selected a Character [PacketTypes] [2007/04/10] Aeomin - Added DcAndKeepData (Boolean) In TCharacter for keeping data while client is disconnected [Character.pas] [2007/04/10] Aeomin - Added SendAccountLogon/SendAccountLogOut procedure to update account in Account server's accountlist from Char server [CharaLoginCommunication.pas] [2007/04/10] Aeomin - Updated LoginClientRead to support Character Server ID [CharacterServer.pas] [2007/04/10] Aeomin - Changed Validated from Boolean to Byte [CharaLoginCommunication.pas (SendValidateFlagToChara)] [2007/04/10] Aeomin - Added ServerID in TCharaServerInfo [CharacterServerInfo.pas] [2007/04/10] Aeomin - Changed fCharaServerList From TStringList to TIntList32 [LoginServer.pas] [2007/04/10] Aeomin - Changed size of 0x2000 from 44 to 48 to support ID [packet_db.txt] [2007/04/10] Aeomin - Added config option ID for char server.[CharaOptions.pas] [2007/04/10] Aeomin - Added delaydc in SendCharacterSelectResponse and SendQuitGameResponse [ZoneSend.pas] [2007/04/10] Aeomin - Added UpdateToAccountList and RemoveFromAccountList [CharacterServer.pas] [2007/04/10] Aeomin - Added SendZoneCharaLogon and SendZoneCharaLogOut [ZoneCharaCommunication.pas] [2007/04/10] Aeomin - Added Packet 0x2108 and 0x2109. [packet_db.txt] - - Rev 226 - [2007/04/12] Tsusai - Notes/Overview: Fixed Linux compile errors and a file move. [2007/04/12] Tsusai - MSSQLClient: Somehow forgot that SysUtils was needed for linux. [2007/04/12] Tsusai - Helios.dpr: Changed Crt unit files from WinConsole to LinCRT & NCurses. [2007/04/12] Tsusai - Moved Lua.pas into ThirdParty folder. Moved Dummy files for my reference. - - Rev 225 - [2007/04/11] RaX - Added Trunk/NOTES/Source Directory Structure.txt, this file explains the folder structure in the source code. - - Rev 224 - [2007/04/11] RaX - Overview: Updated the dpr to show the new locations of the files. - - Rev 223 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Yet another purposely broken build, this one completes moving all the source files into their appropriated positions. [2007/04/11] RaX - Renamed 3rdParty to ThirdParty. [2007/04/11] RaX - Moved Database.pas into the Database folder. [2007/04/11] RaX - Created Common/Classes/Beings folder, moved Being and descendants into it. [2007/04/11] RaX - Created Common/Classes/Lists folder, moved custom lists into it. - - Rev 222 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Moved files around to be more sane in the repository. [2007/04/11] RaX - Moved Classes Folder into Common Folder. [2007/04/11] RaX - Moved Packet_DB.pas into Zone Folder. [2007/04/11] RaX - Moved Zone, Character, Inter, and Login Folders into a new Servers Folder. [2007/04/11] RaX - Moved Console Folder into Common Folder. [2007/04/11] RaX - Moved Lua folder into Common folder. [2007/04/11] RaX - Moved Config Folder into Common Folder. [2007/04/11] RaX - Removed "Database" Folder from /src. [2007/04/11] RaX - This commit breaks the build on purpose! Moving the files around requires multiple commits to complete. - - Rev 221 - [2007/04/10] RaX - Overview: made ini input use ensurerange on values that could crash the server. [2007/04/10] RaX - Added NetworkConstants.pas. Contains MAX_PORT. [2007/04/10] RaX - Added MAX_DBTYPE to DatabaseConstants.pas [2007/04/10] RaX - Added ensurerange around any integer/word/longword type variables in the ini files to prevent range errors from users. - - Rev 220 - [2007/04/07] CR - Overview: Cleanup - Static Database - Template and implemented units for Jan and MySQL synched up. [2007/04/07] CR - StaticDatabaseTemplate: Altered header. Made all methods abstract. All parameters are strictly defined as in/out/var/const to self document and make string parameters more efficient when the methods are called. [2007/04/07] CR - JanSQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - MySQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - Version: Updated Version string/version info. - - Rev 219 - [2007/04/06] CR - Overview: Cleanup - Game Database - Template and implemented units for Jan and MySQL synched up. [2007/04/06] CR - GameDatabaseTemplate: Altered header, improved description. Template class made entirely abstract, and all parameters are specified as in/out/var/const explicitly. [2007/04/06] CR - JanSQLGameDatabase: Altered header. Improved description/ purpose of unit. Changes to TJanSQLGameDatabase. [2007/04/06] CR - MySQLGameDatabase: Altered header, added to description. Changes made to TMySQLGameDatabase class to match changes made in the Game DB Template. - - Rev 218 - [2007/04/06] Aeomin - Forgot commit dpr file. - - Rev 217 - BROKEN BUILD [2007/04/06] Aeomin - Changed console message related to update online count from MS_NOTICE to MS_DEBUG [LoginServer.pas , CharacterServer.pas] [2007/04/06] Aeomin - Added Who.DelayDisconnect(10000); in Kick [ZoneSend.pas (Kick)] [2007/04/06] Aeomin - Added DelayDisconnectEvent.pas and DelayDisconnect in being to disconnect client after time expire (Used in kick) [DelayDisconnectEvent.pas , Being.pas] [2007/04/06] Aeomin - Added support /w | /who in game to receive total online count [ZoneRecv.pas (SlashWho) , ZoneSend.pas (ZoneSendConnectionsCount)] [2007/04/06] Aeomin - Added support of packet 0x2107 to set total online count [ZoneServer.pas] [2007/04/06] Aeomin - Added UpdateOnlineCountToZone and SendOnlineCountToZone to send Total Online Count to all zones [CharacterServer.pas , ZoneCharaCommunication.pas] [2007/04/06] Aeomin - Added Connection: TIdContext to let character able to send packet to all zone servers [ServerInfo.pas] [2007/04/06] Aeomin - Added packet 0x2107 in packet DB use to send total online count from Char server to Zone. [packet_db.txt] - - Rev 216 - [2007/04/06] CR - Overview: Cleanup - made TCommonDatabaseTemplate abstract, and rigorously defined each parameter to self-document. [2007/04/06] CR - CommonDatabaseTemplate: Changed Header Style. Made the class entirely Abstract. All methods state explicit in/out/var/const for each parameter. Eliminated Constructor and Destructor definitions because they are identical to TObject's -- and all derived classes have more complex constructors. [2007/04/06] CR - JanSQLCommonDatabase: Made all parameters var/const/in/out. Create doesn't override the constructor in the template (due to changes to the template model). Parent and Database made into read-only properties, with f* internal fields to store them. Converted all private fields and methods to protected. [2007/04/06] CR - MySQLCommonDatabase: Altered header for class. Moved private fields and methods into protected. Made fields f* style, and created read only properties for the original field names. Changed method parameters to model after changes made in TCommonDatabaseTemplate. [2007/04/06] CR - Altered Version string/Version info. - - Rev 215 - [2007/03/31] Aeomin - Fixed account always turns to female when using MYSQL. - Rev 214 - [2007/03/30] CR - Overview: Code cleanup in MySQLCommonDatabase, MySQLGameDatabase units. [2007/03/30] CR - MySQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MySQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 213 - [2007/03/30] Aeomin - Removed SendZoneCharaIncrease in OnConnect [ZoneServer.pas:TZoneServer.OnConnect] and moved to ShowMap [ZoneRecv.pas:ShowMap] [2007/03/30] Aeomin - Commented out debug message that will show every time player login/logout [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo in zone server that may cause unknown problem (Pointed out by RaX) [ZoneServer.pas:TZoneServer.OnDisconnect] [2007/03/30] Aeomin - Fixed typo that made char server to confuse packet (Pointed out by RaX) [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo causes AV in CharServer when try to calculate online players [CharacterServer.pas:GetOnlineUserCount] [2007/03/30] Aeomin - Changed Server down error code from 3 to 1 [CharacterServer.pas:SendCharaToMap] - Rev 212 - [2007/03/30] Tsusai - Notes/Overview: Basic Online count in place. Updated server<->server documentation [2007/03/30] Tsusai - ServerToServerPackets: Updated for alot of things. [2007/03/30] Tsusai - Packet_Db: Added new online user packets. [2007/03/30] Tsusai - CharacterServer - GetOnlineUserCount: Replaced OnlineUsers with this. Gets total count of all players on the zone. [2007/03/30] Tsusai - CharacterServer - ParseCharaServ: Added packets 0x2105 & 0x2106 for easy online count updating. [2007/03/30] Tsusai - CharaLoginCommunication - SendCharaOnlineUsersToLogin: Changed OnlineUsers to GetOnlineUserCount. [2007/03/30] Tsusai - ZoneCharaCommunication: Added SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServer - TZoneServer OnConnect & OnDisconnect: Added calls to SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServerInfo - TZoneServerInfo: Added OnlineUsers word type. - - Rev 211 - [2007/03/29] RaX - Notes/Overview: Completed Database changes, made database connections connect and disconnect locally. [2007/03/29] RaX - CommonDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - GameDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - StaticDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - LoginServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - CharacterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneRecv.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneSend.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - InterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - Remember to Connect before and disconnect after issuing groups of Queries, routine local. - - Rev 210 - [2007/03/28] Tsusai - Notes/Overview: Fixed HP issues. Packet_DB update. Added Lua related files (no dlls yet). [2007/03/28] Tsusai - Character - TCharacter.CalcMaxHP: MaxHP + Calc'd MaxHP wasn't the right formula. Also made it change the HP to MATCH the MAXHP if its over at the time of calculation. [2007/03/28] Tsusai - Packet_db: Added new packets for '07 clients from eA's. [2007/03/28] Tsusai - ZoneSend - KickAllUsers: Reversed the loop of kicking of characters to prevent any index out of bounds errors. [2007/03/28] Tsusai - Added Lua.pas, folders, and some dummy files for reminders of what I need to do. - - Rev 209 - [2007/03/28] Aeomin - Fixed Access Violation during shutdown, which just an extra check [ZoneServer.pas:OnDisconnect] [2007/03/28] Aeomin - Added a Zone Option which allows kick all players before shutdown, instead just Disconnect. [Only works with proper shutdown (CTRL+C), close button will force close program] [2007/03/28] Aeomin - Added Kick, KickAll procedure [ZoneSend.pad] - Rev 208 - [2007/03/28] CR - Overview: Code cleanup in PacketTypes, ZoneRecv, ZoneSend, ZoneServer, and ZoneServerInfo units. [2007/03/28] CR - PacketTypes: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneRecv: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneSend: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServerInfo: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 207 - [2007/03/28] CR - Overview: Code cleanup in Being, Database, Globals, GMCommands, InterServer, JanSQLCommonDatabase, JanSQLGameDatabase, Map, MovementEvents, and MSSQLClient units. [2007/03/28] CR - Being: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 204!) [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 205!) [2007/03/28] CR - Globals: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - GMCommands: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - InterServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Map: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MovementEvents: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MSSQLClient: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 206 - [2007/03/28] CR - Overview: Code cleanup in Character, CharacterEventThread, and Database units. [2007/03/28] CR - Character: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - CharacterEventThread: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database:TDatabase.Create - Removed hints about unused local variables. Reindented code, wrapping comments and long lines. [2007/03/28] CR - Version: Updated version string. - - Rev 205 - [2007/03/28] CR - Overview: SVN Cleanup [2007/03/28] CR - Version: Updated version string. [2007/03/28] CR - SVN ignores set, to make wading through files when committing less of a chore. trunk/ and subfolders: svn:ignore tag set for "*.~*" trunk/obj/: svn:ignore tag set for "*.dcu" - - Rev 204 - [2007/03/28] CR - Overview: Code cleanup in AreaLoopEvents, Being units. [2007/03/28] CR - Version: updated version number, modified header comment. [2007/03/28] CR - Being: Cleaned up uses clauses - unneeded units removed. Made changes to parameter lists for the TLoopCall declaration. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left (faster calls this way, especially when called repeatedly in triple nested loops!). [2007/03/28] CR - AreaLoopEvents: Cleaned up uses clauses - unneeded units removed, and some moved to local to the routines, not the declaration. Made changes to parameter lists for the routines here, following the new TLoopCall procedure declaration in Being. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left. - - Rev 203 - [2007/03/27] RaX - Notes/Overview : Moved Zone server to local connections. Removed global database connection. [2007/03/27] RaX - ZoneServer.pas, ZoneRecv.pas, ZoneSend.pas - changed ADatabase calls to threadlink databases. [2007/03/27] RaX - PacketTypes.pas - now TThreadLink.create takes a TIdContext as a param. [2007/03/27] RaX - Database.pas - implemented ClientInfo, set in tthreadlink.create. [2007/03/27] RaX - Account.pas/character.pas - moved database calls to TThreadlink. [2007/03/27] RaX - Moved DatabaseOptions from the database connection to mainproc. - - Rev 202 - [2007/03/26] - Aeomin - Fixed wrong gender showing of other players, apparently is caused new codes which makes every players same gender as your own [ZoneSend.pas:ZoneSendBeing] - Rev 201 - [2007/03/26] RaX - Notes/Overview : Fixed annoying slight timing difference between server and client in walking. [2007/03/26] RaX - Added "DIV 2" to the end of the speed calcs in CharaWalkRequest - zonerecv - - Rev 200 - [2007/03/26] RaX - Notes/Overview : Fixed access violation with help from Aeomin - Thanks [2007/03/26] RaX - I forgot 2 frees of the accountlink =( Now that they're owned by the connection. Fixed. - - Rev 199 - [2007/03/26] RaX - Notes/Overview : Inter Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. [2007/03/26] RaX - GM Commands are now enabled - try out #Zonestatus with an access level of 100 or higher =) Test multiple zones too. - - Rev 198 - [2007/03/26] RaX - Notes/Overview : Character Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. - - Rev 197 - [2007/03/26] RaX - Notes/Overview : Login server is now using local connections. [2007/03/26] RaX - Changed all ADatabase uses in LoginServer.pas to TThreadLink calls. [2007/03/26] RaX - Added TThreadLink.Create to OnConnect in login server. - - Rev 196 - [2007/03/26] RaX - Notes/Overview : another sub commit of the massive database changes about to occur... [2007/03/26] RaX - Changed TThreadLink into a parent class with a TDatabase Databaselink as it's only property, it also has a constructor and destructor which create + free it. [2007/03/26] RaX - The other links (CharaServerLink, ZoneServerLink) are descendants of TThreadLink as well as a new TClientLink which is what TThreadLink used to be. [2007/03/26] RaX - Made each inherit the constructors, each also has a destructor which checks and frees the links of they're created. - - Rev 195 - [2007/03/26] RaX - Notes/Overview : Made accounts + characters linked to the client from themselves through ClientInfo rather than just through the tthreadlink. [2007/03/26] RaX - Account.pas - added ClientInfo property. [2007/03/26] RaX - Character.pas changed order of properties. [2007/03/26] RaX - ZoneRecv - implemented setting the account's clientinfo. - - Rev 194 - [2007/03/26] RaX - Notes/Overview : Fixed memory leaks in Account + Character servers. Zone should be fine, we've kept strict control there by dealing with everything through an "owning" list. Just a note...We leaked in EVERY character server function...let's NOT let that happen ever again. - - Rev 193 - [2007/03/25] RaX - Notes/Overview : Removed accountlist from globals. Modified code to deal with it. Moved Account access into TThreadLink.AccountInfo for consistency. [2007/03/25] RaX - Updated Globals.pas, removed all traces of the accountlist. [2007/03/25] RaX - LoginServer.pas, killed accountlist, made account access local. [2007/03/25] RaX - CharacterServer.pas killed accountlist. Made changes to offset the removal such as updating the account's charanum on create. [2007/03/25] RaX - Reorganized and fixed GetAccount and overloads in all database types. They no longer use AccountList + are slightly easier to read =) [2007/03/25] RaX - Removed TCharacter.Account - we now use TThreadLink.AccountLink in all cases. [2007/03/25] RaX - Updated zone server, it now uses account + character link variables. - - Rev 192 - [2007/03/15] Tsusai - Notes/Overview: Added 'Support_Dec06_AndNewerClients' to Character.ini This allows usage of ONLY December 2006 and newer clients when enabled. kRO added the ability to rename a character, which at this time I do not know how to enable/support. [2007/03/15] Tsusai - CharaOptions : Added [OPTIONS] 'Support_Dec06_AndNewerClients', and its parsing. [2007/03/15] Tsusai - CharacterServer : Added WriteCharacterDataToBuffer. This routine handles writing the character's stats to the outgoing buffer at the right offset. Also this routine makes use of the new ini entry, so that the changed packet length is supported. [2007/03/15] Tsusai - CharacterServer - CreateChara & SendCharas : Now call WriteCharacterDataToBuffer. - - Rev 191 - [2007/03/25] CR - Overview: Comments added to explain and state origins of WriteBufferTwoPoints [2007/03/25] CR - BufferIO:WriteBufferTwoPoints - Added Comment Header, and described routine in detail, and in summary. Made remaining three passed parameters constant. Renamed local variables for more clarity: [2007/03/25] CR - Version - updated version string (and version info for exe) - - Rev 190 - [2007/03/25] CR - Overview: Bugfix - code meant to handle and notify user of malformed .pms mapfiles would not work as intended. Result will NOT behave the same as C or C++'s return keyword! [2007/03/25] CR - MapTypes - Added MAX_PMS_HEADER_LENGTH constant. Used in TMapLoadFromFile [2007/03/24] CR - Map:TMap.LoadFromFile - Parameter made constant (optimization) Renamed Parameter "Path" to "PmsFile" to avoid ambiguity with TMap.Path It's a more appropriate name than "Path" in the first place! :) Surrounded TMemoryStream with a try-finally to protect the resource. Fixed major logic flaws -- Result is NOT handled like C/C++'s "return" keyword. Thus, we NEED to use if-then-else branching, not just sequential if-thens. Malformed/hand-mangled maps could cause fatal errors with the old code flow, because it couldn't avoid continuing on instead of bailing early. [2007/03/25] CR - Helios.dpr - removed MadShi units that were added in on Aeomin's previous build. [2007/03/25] CR - Version - Updated text displayable version (and the build number that's stored in the exe itself too). - - Rev 189 - [2007/03/24] - Aeomin - Added IgnoreMob & IgnoreNPC parameter to TBeing.AreaLoop to extend for future NPCs (Mob also is NPC) [Being.pas] [2007/03/24] - Aeomin - Extended TBeing.Walk to handle NPC/Mob and etc... [Being.pas] [2007/03/24] - Aeomin - Renamed ZoneWalkingChar to ZoneWalkingBeing, ZoneSendChar to ZoneSendBeing, ZoneDisappearChar to ZoneDisappearBeing, to support other than character (Npc,Mob etc) [ZoneSend.pas] [2007/03/23] - Aeomin - More typo fixes on direction - - Rev 188 - [2007/03/24] CR - Overview: Hint Removal, Refactor, Credits. Removed a warning for an unused local variable in TCharacter.SendSubStat. [2007/03/24] CR - Character:TCharacter.SendSubStat - Moved first section of this routine into local procedure Send_00b0. Moved the non-implemented blocks into local routines as well. Made all parameters constant, which self- documents these, and makes calling the routine more efficient. Anyone working on this routine, please feel free to use more descriptive or appropriate local routine names! :) [2007/03/24] CR - Updated Contributors on this document and Helios.dpr [2007/03/24] CR - Updated Version String missed in Rev 187 - - Rev 187 - BROKEN BUILD [2007/03/22] - RaX - fixed the dpr - Aeomin had forgotten to commit it. [2007/03/22] - RaX - Finished GM Command system, Now there's an ugly bug that has surfaced when gm commands are used because of the database clients not being thread safe, so the system has been disabled for now. [2007/03/22] - RaX - Inter Server now accepts packet 2207 and forwards it to the zones. this new packet is the command execution result, it tells the character whatever the command sends back. - - Rev 186 - BROKEN BUILD [2007/03/22] - A careless mistake : Forgot commit file AreaLoopEvents.pas - - Rev 185 - BROKEN BUILD [2007/03/22] - Aeomin - Now able to show other characters ingame. [2007/03/21] - Aeomin - Fixed direction being opposite (Should be counter-clockwise). [2007/03/21] - Aeomin - Put most of area loops into one procedure and typed procedures to make code clean. [2007/03/21] - Aeomin - Preset index number in loop to reduce recount on each character when making packet of character list (Character Server). [2007/03/20] - Aeomin - Able to change direction and show to other character. [2007/03/20] - Aeomin - Added Status and Ailments in TBeing for future needs. - - Rev 184 - [2007/03/21] - RaX - Overview : Added to the inter server, it now prepares to send packet 2206 to all zones. [2007/03/20] - RaX - Zone server now listens for 2206 from the inter. [2007/03/21] - RaX - Zone server now looks for an accounts level before allowing a gm command to be executed. [2007/03/21] - RaX - GMCommands.pas - added a few new utility routines and implemented them. - - Rev 183 - [2007/03/19] - RaX - Overview : Created basic GM Command component and added it as a part of the zone server, will also be apart of the inter server in the future. [2007/03/19] - RaX - Modified GMCommands.pas, made it a class rather than a bunch of routines. [2007/03/19] - RaX - Changed IsCommand to check the list of commands to see if a specified piece of chat started by # is really a gm command. - - Rev 182 - [2007/03/19] - RaX - Added simple gm command parsing to zone server in the new AreaChat routine. [2007/03/19] - RaX - Added to inter server, it now accepts gm command sends from zones. [2007/03/19] - RaX - Added zone server communicating with inter to send gm commands. [2007/03/19] - RaX - Added GMCommands.pas to Zone, will hold all our gm command related stuff. [2007/03/19] - RaX - Updated packet_db, contains the new inter communication packet. - - Rev 181 - [2007/03/19] - Tsusai - Notes/Overview: Modifed basic timed event. [2007/03/19] - Tsusai - Event - TRootEvent.Create : Now takes on the time as its parameter. [2007/03/19] - Tsusai - Updated the following for the above : MovementEvent - TMovementEvent.Create Being - TBeing.Walk ZoneRecv - CharacterWalking - - Rev 180 - [2007/03/18] - Aeomin - Add very basic support of local chat (you have to walk blindly to meet other character). - - Rev 179 - [2007/03/18] - RaX - Copied over Character Server code to have Zone authenticate with inter server. [2007/03/18] - RaX - Renamed *Packets units to *Communication units, makes mroe sense. [2007/03/18] - RaX - Implemented Inter client in zone server. [2007/03/18] - RaX - Added new inter comm packets to packet_db - - Rev 178 - [2007/03/17] - RaX - Fixed Return to character select, changed true to false in a condition (Thanks Aeomin). [2007/03/17] - RaX - Moved packet sending code out of zone recv and into zone send. [2007/03/17] - RaX - Fixed walking points start and end being in the wrong places. [2007/03/17] - RaX - Walking should work pretty normally now. - - Rev 177 - [2007/03/16] - Tsusai - Notes/Overview: Added 2 packets. Also anytime we recieve data from Indy and place in our buffer, that information that would be overwritten in our buffer is cleared. [2007/03/16] - Tsusai - ZoneRecv: Added ReturnToCharacterSelect & QuitGame (not fully tested). [2007/03/16] - Tsusai - PacketDB: Enabled the above. - - Rev 176 - [2007/03/16] - Tsusai - Notes/Overview: Fixed the character point "not saving". [2007/03/16] - Tsusai - Map - GetPath: Commented out the use of APath.Assign. The list that was copied was ordered in reverse (destination at index 0, source at last index). Since the list was passed that way, it was thinking that we started at the end and went to where we were. Currently uses a for downto loop to copy the points just right. [2007/03/16] - Tsusai - Character - TCharacter: Removed 'inherited' calls on the Save Map and Save point. They were NOT inherited nor do they override. - - Rev 175 - [2007/03/14] - RaX - Fully implemented Direction variable in TBeing, forgot to before. - - Rev 174 - [2007/03/14] - RaX - Overview : General cleanup in TBeing + TCharacter. [2007/03/14] - RaX - Moved overridden properties in TCharacter to inherited ones. [2007/03/14] - RaX - Removed copied code from TBeing overridden get + set methods and instead had them inherit the TBeing methods. [2007/03/14] - RaX - Removed dX + dY from TBeing.Walk, we are now using a direction system that allows you to convert a direction constant number IE::0,1,2,3,4,5,6,7 into a point and vice versa. [2007/03/14] - RaX - Moved Direction constant array from Map.pas into game constants. [2007/03/14] - RaX - Added direction constants to game constants (North, south, etc). [2007/03/14] - RaX - Renamed Bidx in TBeing.Walk to BeingIndex, was hard to understand. [2007/03/14] - RaX - Renamed TBeing.Point to Position, was hiding the Point method in Types. - - Rev 173 - [2007/03/14] - [Shin] - Re-added maps to databases along with map files. They were copies. - - Rev 172 - [2007/03/14] - [Shin] - Removed map 06guild_r, 06guild_01 - 06guild_08. - - Rev 171 - [2007/03/13] - Aeomin - Updated headers, corrected typoes, etc. - - Rev 170 - [2007/03/13] - RaX - Remade the Pathing algorithm, now behaves exactly like Aegis. Timing issue still remains - Tsusai, take a look? - - Rev 169 - [2007/03/09] - [Shin] - Added map 06guildr. [2007/03/09] - [Shin] - Updated map database, ve_in2 needed to be ve_in02. - - Rev 168 - [2007/03/08] - RaX - Fixed pathing events firing all at once [2007/03/08] - RaX - Adjusted pathing, removed getting the closest path. [2007/03/08] - RaX - Added removing existing walking events if a new walk request comes in. [2007/03/08] - RaX - Removed debug messages, no longer needed. [2007/03/08] - RaX - small timing issue remains, server is one step ahead of the client... sometimes.... - - Rev 167 - [2007/03/07] - Tsusai - Notes/Overview: Fixed inheritance between some of the TBeing and TCharacter parts. [2007/03/07] - Tsusai - Updated the resource file with the new icon. Added the icon itself. [2007/03/07] - Tsusai - Being - TBeing: Refined Walk to run once per point. Adds event for the next point. Added properties to fields such as JID and Name. [2007/03/07] - Tsusai - Character - TCharacter: Set all Set*** to override its TBeing settings. [2007/03/07] - Tsusai - Map - TMap.GetPath: Clears the result path before writing to it from the temp path. [2007/03/07] - Tsusai - CharacterEventThread: Changed to use LongWord for tick times instead of TDateTime. [2007/03/07] - Tsusai - Event & EventList: Any/all TEvents changed to TRootEvent. SyncObjs has a TEvent in it, so to prevent any odd conflicts, this was done. [2007/03/07] - Tsusai - MovementEvent - TMovementEvent: Added Create to take on a TBeing, and calls that tbeing's Walk method [2007/03/07] - Tsusai - ZoneSend - ZoneSendCharaWalkReply: Changed parameters [2007/03/07] - Tsusai - ZoneRecv - CharaWalkRequest: Added more code to support it. [2007/03/07] - Tsusai - Added BUGS and TODO. - - Rev 166 - [2007/03/02] - RaX - Merged the two MSSQL client files. Added credits. - - Rev 165 - [2007/03/02] - RaX - Overview: Created basic MSSQL database interface, all it does right now is dynamically load the library and set up the routine pointers. [2007/03/02] - RaX - Added Common/3rdParty/MSSQL/mssql32_mod.pas - modified by Tsusai. [2007/03/02] - RaX - Added Classes/MSSQL.pas - a wrapper class for mssql32_mod which is a dll template. - - Rev 164 - [2007/03/01] - Tsusai - Notes/Overview: Unit Uses cleanup. - - Rev 163 - [2007/02/28] - Tsusai - Notes/Overview: Fixed scrolling in Linux [2007/02/28] - Tsusai - CRT - SetupCRT: Added the enabling of scrolling for linux. - - Rev 162 - [2007/02/27] - RaX - Added routine headers to new routines written by Tsusai. [2007/02/27] - RaX - Removed Char_clickarea and Char_Showarea constants from gameconstants [2007/02/27] - RaX - Replaced constants with entried in zone.ini under performance. [2007/02/27] - RaX - Added Zone Tick and Event Tick options in zone.ini under performance, these are also implemented as the amount of time to sleep in milliseconds between packet processes for zone tick, and event processes for event tick. - - Rev 161 - [2007/02/27] - RaX - Fixed pathing randomly using all available ram, that vital line of code was also unimplemented, apparently I had committed one of my tests back in the day =( [2007/02/27] - RaX - Added a Sleep(1) to the end of ProcessZonePacket to free up the processor. [2007/02/27] - RaX - Made a few efficiency changes to PointList, removed Assign. - - Rev 160 - [2007/02/26] - RaX - Accidentally removed a vital line of code from pathing along the way somewhere. Now fixed. [2007/02/26] - RaX - Added CHAR_SHOWAREA to gameconstants, implemented in TBeing.Walk. - - Rev 159 - [2007/02/26] - RaX - Overview : And more console and startup tweaks! [2007/02/26] - RaX - Added new Message type, MS_ALERT, for non-loggable messages(command results, etc.). [2007/02/26] - RaX - Implemented MS_ALERT type messages in Commands. [2007/02/26] - RaX - Fixed bug with /exit command, Helios would not exit cleanly because the Console object was being free'd before MainProc was free'd. Fixed by including Console.Free in TerminateApplication. - - Rev 158 - [2007/02/25] - RaX - Overview : Further console and startup tweaks. [2007/02/25] - RaX - Fixed line color issue, didn't include part of the necessary code in the critical section. [2007/02/25] - RaX - Added TConsole.ReadLn(AString); This is an alias for ReadLn which also includes our command parser. [2007/02/25] - RaX - Messed with MainProc.Startup to have it look better. [2007/02/25] - RaX - Moved MainProc.DisplayHeader into the dpr, have it display only ONCE. [2007/02/25] - RaX - at 3am I forgot I had removed the thirdpartycredits from startup display new command, /credits, displays them. - - Rev 157 - [2007/02/24] - RaX - Overview : Finished log configuration by adding the ability to set which types of messages are logged. Added ability to configure which directories are used (Maps/Database/Configuration Directories). Made all ini files create in the configuration directory set in Helios.ini, which now retains the name of the .exe so, in effect, an administrator could run multiple exe's in one folder by setting the folder names difrerently. [2007/02/24] - RaX - Reorganized MainProc.Startup, moved Header into DisplayHeader. [2007/02/24] - RaX - Added a few global initializations and the Console object creation to the body of Helios.dpr. [2007/02/24] - RaX - Added Directories to HeliosConfig.pas. [2007/02/25] - RaX - Changed Command errors to be type Information for logging purposes. [2007/02/25] - RaX - Added IsValidFolderName to WinLinux to make sure folder names supplied in Helios.ini do not contain invalid characters for the filesystem Helios is on. [2007/02/25] - RaX - Implemented Directory variables throughout Helios. [2007/02/25] - RaX - Added EnsureFileStructure to MainProc. This routine makes sure the supplied required directories exist and if they don't, it creates them. [2007/02/25] - RaX - Helios can now start by itself in a directory with no resources whatsoever and not crash. [2007/02/25] - RaX - Removed a debug line I had forgotten about in Map.pas. [2007/02/25] - RaX - Console was being free'd in Destroy Globals, so when an administrator used command /restart, the server would crash. Fixed. - - Rev 156 - [2007/02/24] - RaX - Overview : Added log to file for console messages configureable by the administrator. [2007/02/24] - RaX - Added ConsoleConfig.pas - broke out console related ini entries from HeliosConfig.pas. [2007/02/24] - RaX - Added new constant, MS_DEBUG, to globals for handling debug messages. [2007/02/24] - RaX - Reorganized TConsole.Message to be faster and handle messages better. [2007/02/24] - RaX - Added TConsole.WriteDebug which appends an entry with a timestamp for each message which meets the criteria defined in Console.ini. - - Rev 155 - [2007/02/24] - RaX - Fixed pathing, Got rid of GetArea, added IsBlocked as a member of TMap. Tsusai - ProcessZonePacket, after a successfull walk request, gets stuck in an infinite, REALLY stinkin' fast loop that leaks memory all over the place - investigate? Oh yeah, characters can walk. - - Rev 154 - [2007/02/20] - Tsusai - Notes/Overview: Implemented the StartCRT and EndCRT. [2007/02/20] - Tsusai - Helios.dpr : Added StartCRT here. [2007/02/20] - Tsusai - Globals - TerminateApplication : Added EndCRT here. - - Rev 153 - [2007/02/20] - RaX - Reverted rev 133's Pathing changes. - - Rev 152 - [2007/02/20] - Tsusai - Notes/Overview: Walking mechanics somewhat in place..waiting on Pathing fixes. Also some bug fixes from a few mistakes in Rev 143. Added the icon passed to me from RaX. Only shows up in windows (only compiles in with the windows compiler). [2007/02/20] - Tsusai - Being - Added Walking procedure. [2007/02/20] - Tsusai - Map - TMap.LoadfromFile - Added the setting of the TMap.Path here. [2007/02/20] - Tsusai - BufferIO - Added WriteBufferTwoPoints [2007/02/20] - Tsusai - CRT - Added SetupCRT and EndCRT. Will be implemented into the code later. Handles the setup of the CRT units (Really just for linux, but need to keep it and call it from CRT wrapper). [2007/02/20] - Tsusai - PacketDB - Commented out the walk packet for now. [2007/02/20] - Tsusai - ZoneRecv - CharacterWalkRequest - Added more code. [2007/02/20] - Tsusai - ZoneRecv - Various fixes of GetPacketLength back to 4 (it would return -1 for the packets that have a variable length). [2007/02/20] - Tsusai - ZoneSend - Added ZoneSendWalkReply. [2007/02/20] - Tsusai - zoneServer - TZoneServer.LoadMaps - Fixed bug where the map name was not stored in the TMap. - - Rev 151 - [2007/02/20] - RaX - Forgot to change a 2-3 MainProc.Console messages on the linux side, fixed. - - Rev 150 - [2007/02/20] - RaX - Fixed Kylix not liking a unit and a variable having the same name... [2007/02/20] - RaX - Renamed Console to Terminal.pas. Removed Unused uses of Console. - - Rev 149 - [2007/02/20] - RaX - Unfortunately, because of my brain at 3am, I forgot to commit main.pas so rev 148 is broken. Sorry =(. [2007/02/20] - RaX - Changed Error colors to red instead of burgundy. - - Rev 148 - BROKEN [2007/02/20] - RaX - Fixed termination. Helios now checks to see if it is done loading before a user can shut it down. If an administrator attempts to shut it down, it will write a message informing the administrator that he/she must wait until helios is done starting before he/she can stop it. - - Rev 147 - [2007/02/20] - RaX - Implemented typed console messages. Each displays differently automagically in the console based on a constant passed to the Console.Message routine. [2007/02/20] - RaX - Console is now a global rather than being attached to mainproc. [2007/02/20] - RaX - Slightly reworded messages to conform. - - Rev 146 - [2007/02/19] - RaX - Moved Console.pas's contents to trunk/src/Main.pas. [2007/02/19] - RaX - Added TConsole to Console.pas - a wrapper for console output. - - Rev 145 - [2007/02/19] - Tsusai - Notes/Overview: Added CRT units. Thse will allow for colored text when coded in. [2007/02/19] - Tsusai - Made Console folder. Moved Console.pas here, and added WinConsole.pas (Windows CRT), LinCRT and NCurses (Linux). - - Rev 144 - [2007/02/19] - Tsusai - Notes/Overview: Enabled loading the resource data for icons. Shows default Delphi 7 Project icon right now. - - Rev 143 - [2007/02/14] - Tsusai - Notes/Overview: Updated some SendBuffer calls to use GetPacketLength. [2007/02/14] - Tsusai - Updated CharacterServer, Character, ZoneRecv, and ZoneSend to use GetPacketLength. [2007/02/14] - Tsusai - ZoneSend : Changed procedure variables to make adjustments to send the needed TCharacter. [2007/02/14] - Tsusai - TCPServerRoutines : Changed GetPacketLength to use word for version, and LongWord as the return type. - - Rev 142 - [2007/02/09] - Tsusai - Notes/Overview: After some reading of newsgroups, I learned that the Cardinal type (0..4bil number type) is 4 bytes..but its not guaranteed on all OS's and versions of Delphi. All Cardinals are now LongWords, which are always going to be 4 bytes, and covers the same number range. - - Rev 141 - [2007/01/31] - RaX - Added comment headers to event related units. Reorganized the CharacterEventThread to get the time before looping, save some api calls. - - Rev 140 - [2007/01/28] - Tsusai - Notes/Overview : Added beginnings of walking, and bugfixes/tweaks [2007/01/28] - Tsusai - Being - TBeing : Added MapInfo (TMap Link), IsWalking, and DestinationPoint [2007/01/28] - Tsusai - Character - TCharacter : Added a CharaState enumerated field, and a OnTouchIDs list (useless now , but I felt like adding it), and create/destroy methods. [2007/01/28] - Tsusai - MySQLGameDatabase - GetChara - Removed unused variable. [2007/01/28] - Tsusai - MySQLStaticDatabase - GetBaseMaxWeight - Added check for one row. [2007/01/28] - Tsusai - CharacterEventThread - Fixed the way the time to fire the event is figured out. Ticks are not TDateTime safe/compliant. Also DateUtils or wtf its called is not available on Delphi Personal. [2007/01/28] - Tsusai - BufferIO : Added BufferReadOnePoint. [2007/01/28] - Tsusai - WinLinux - KillProcess : Fixed linux side of the code, forgot a ; for the message. [2007/01/28] - Tsusai - PacketDB - Load_PacketDB : Activated the walk request packet. [2007/01/28] - Tsusai - ZoneRecv : Added CharacterWalkRequest - - Rev 139 - [2007/01/28] - RaX - Added TCriticalSection changes to the eventlist and characterthread. - - Rev 138 - [2007/01/26] - Tsusai - Added revisions from former svn repository to the tags folder. In the structure of OpenSVN_Tsusai_Revisions/Rev#/(code). Perservation of older code. - - Rev 137 - [2007/01/26] - RaX - Bugfix - I forgot to use downto when dealing with the eventlist, caused it to skip events. Fixed. - - Rev 136 - [2007/01/26] - RaX - Moved CharacterEventThread from Console to ZoneServer. - - Rev 135 - [2007/01/26] - RaX - Added basic character events system. [2007/01/26] - RaX -Added Event, EventList, MovementEvent, and CharacterEventThread into Classes/Events/. [2007/01/26] - RaX - Added ZoneServer.OnDisconnect, it free's characters from it's list. - - Rev 134 - [2007/01/26] - RaX - Removed Global Character List. Now, only the zone server has a list. Character Server only uses queries. [2007/01/26] - RaX - Modified LoadChara to calculate max hp/sp, speed, and weight. - - Rev 133 - [2007/01/25] - RaX - Updated Map Load, made all maps load on startup, but Cell information load dynamically. Nothing unloads...yet...will do once I finish the event system. [2007/01/25] - RaX - Moved Cell Loading portion of TMap.LoadFromFile into TMap.Load. [2007/01/25] - RaX - Added TMap.Unload, which destroys a map's Cell information. [2007/01/25] - RaX - Updated Pathing code a little bit, made to be slightly more efficient by not using Length() to get Y and XMax variables twice, I have them returned via var parameters in GetArea. [2007/01/25] - RaX - Moved ZoneServer CommClient connection stuff into TZoneServer.ConnectToCharacter, implemented AFTER startup to make things look nice. [2007/01/25] - RaX - Moved CharacterServer CommClient connection stuff into TCharacterServer.ConnectToLogin for the same reasons and implemented the same way as above [2007/01/25] - RaX - Moved Helios Header into TMainProc.StartUp. [2007/01/25] - RaX - Moved starting message AFTER the credits. - - Rev 132 - [2007/01/25] - Tsusai - Notes/Overview: Cleaned up RaX's replace code, and added a ExtractFileNameMod to WinLinux to take care of it. [2007/01/25] - Tsusai - Map - LoadFromFile: Replaced RaX's code to call ExtractFileNameMod [2007/01/25] - Tsusai - WinLinux - ExtractFileNameMod: Added. The real ExtractFileName uses a delimiter to do the work (\). Our cross compiling code for paths use / so it would never break it up. This new function acts as a middle man, converting all / to \ in a Windows Only environment before making the actual ExtractFileName call. [2007/01/25] - Tsusai - Being - TBeing: Added the common attributes between Characters and Mobs, such as MDEF. Unlike Prometheus, I think we can live with putting mob info into MDEF1 and not worry about reading/writing to MDEF2 (the + bonus). [2007/01/25] - Tsusai - Character - TCharacter: Removed most of the common things descending from TBeing, and rearanged properties so that I could turn the "This method hides * in base class" warnings by a compiler directive. [2007/01/25] - Tsusai - GameConstants: STR..LUK are now 0..5 instead of 1..6 Its murder on me to remember and for packet writing (especially when it'll be shared w/ mobs). - - Rev 131 - [2007/01/24] - RaX - Notes/Overview - Bugfixes. ExtractFileName doesn't like forward slashes like what we use in TMap.LoadFromFile. Had to write a very inefficient way to recreate that. Luckily, now we can handle any slashes in a file path, even if the os can't... Bugfix #2 - I forgot to remove the .gat searching in the static database queries. - - Rev 130 - [2007/01/24] - RaX - Notes/Overview - Implemented weight table and MaxWeight TCharacter calculations. [2007/01/24] - RaX - Added GetBaseMaxWeight to static database classes. [2007/01/24] - RaX - Added CalcMaxWeight in Character.pas. [2007/01/24] - RaX - Implemented CalcMaxWeight on chara creation in CharacterServer.pas. [2007/01/24] - RaX - Added weight table to statis databases both for jansql and mysql. [2007/01/24] - RaX - Updated hp/sp tables to include baby jobs and super novice. - - Rev 129 - [2007/01/24] - RaX - Added another optimization that was supposed to be in the last commit. TMap.LoadFromFile(Map.pas) changed MapTag from a string to an array[1..13] of char to avoid a needless setlength call before reading in the maptag from the mapfile. - - Rev 128 - [2007/01/23] - RaX - Notes/Overview - Optimizations suggested by Damian (Thanks again). [2007/01/23] - RaX - Updated CharaServer/LoginServer to make sure that the charaserverinfo/ zoneserverinfo lists get their information free'd on stopping the servers. [2007/01/23] - RaX - Updated BufferReadString(BufferIO.pas) to hopefully be slightly faster if not just more readable and not dependant on TCBuffer. [2007/01/23] - RaX - Changed TCell (MapTypes.pas) to use on Being list instead of 3 lists. [2007/01/23] - RaX - Renamed Graph to Cell in the comments in Map.pas, forgot to when I made the earlier changes (sorry!) - - Rev 127 - [2007/01/23] - RaX - Forgot to Free the maplist in ZoneServer.Destroy (Thanks Damian), remedied. - - Rev 126 - [2007/01/22] - RaX - Notes/Overview :: Implemented map loading. [2007/01/22] - RaX - Added Classes/MapList.pas. [2007/01/22] - RaX - Added Common/MapTypes.pas. [2007/01/22] - RaX - Moved all types outside of TMap from Map.pas into MapTypes.pas. [2007/01/22] - RaX - Added Flags Type, holds boolean values pertaining to database map flags. [2007/01/22] - RaX - Added static database query GetMapFlags which fills a TFlags record with the data specified in table maps. [2007/01/22] - RaX - Added LoadFromFile to TMap, it loads a pms map from the file indicated by the parameter 'Path'. [2007/01/22] - RaX - Implemented half of Dynamic map loading, maps do not load on start, instead, they load when a player enters a map. The half that's not done is unloading. [2007/01/22] - RaX - Updated Static maps table, removed '.gat' from the mapname field. [2007/01/22] - RaX - LoginServer, CharacterServer, ZoneServer, InterServer - added console messages if someone tries to start a server that's already started, etc from inside code. Also, removed the started checks from Commands.pas and moved them into each server's stop/ start routines. [2007/01/22] - RaX - Removed InterToZoneClient from inter server, won't be needing it. [2007/01/22] - RaX - Dumped XTimer from SVN - gonna rewrite when the need arises. - - Rev 125 - [2007/01/22] - RaX - Notes/Overview :: Removed hints + warnings. [2007/01/22] - RaX - Added dummy result of FALSE to TGameDatabaseTemplate.Connect(); [2007/01/22] - RaX - commented out ClientTick in ZoneRecv, Tsusai - uncomment when you need it. [2007/01/22] - RaX - Commented out Reload in Commands.pas. - - Rev 124 - [2007/01/21] - Tsusai - Notes/Overview: WinLinux changes [2007/01/21] - Tsusai - WinLinux - Changed the linux termination. Uses SIGQUIT output, and displays a warning before it does (so that the user doesn't freak out). - - Rev 123 - [2007/01/21] - Tsusai - Notes/Overview: Modifications to CommClient. [2007/01/21] - Tsusai - CommClient : Redid logic. Its thread only deals with reading any data on the buffer, and is setup by connect/disconnect methods [2007/01/21] - Tsusai - WinLinux - Added LowerPriority method that lowers a thread's priority (will be testing Libc.nice soon) [2007/01/21] - Tsusai - XTimer : Updated priority call (LowerPriority); - - Rev 122 - [2007/01/21] - RaX - Fixed /start command, moved server create/destroys into mainproc create/destroy. - - Rev 121 - [2007/01/20] - Tsusai - Notes/Overview: Something isn't right when either packet_db or the databases fail to load/connect and the server says Startup Success.....bullshit. [2007/01/20] - Tsusai - PacketDB - LoadPacketDB: Now a function, if it fails to load, its false. (duh) [2007/01/20] - Tsusai - ALLDATABASES : Create holds a result bool variable, which is set by the Connect function (if connected, true) [2007/01/20] - Tsusai - Database - Create : Holds a result bool, which is determined if all 3 databases were created and connected. [2007/01/20] - Tsusai - Globals - InitGlobals: Now a function, returns true if packetdb and database loaded. (notice a pattern in the changelog yet?) [2007/01/20] - Tsusai - Console - MainProc.Startup : Will ERROR if InitGlobals failed to load the packet_db and database. [2007/01/20] - Tsusai - Console - MainProc.Shutdown : Reversed order of server shutdowns, so there are no reattempts for internal clients to reconnect. - - Rev 120 - [2007/01/20] - Tsusai - Notes/Overview: TWEAKS! [2007/01/20] - Tsusai - Found a shortcut method IdContext.Binding, which links to Idcontext.Connection.Socket.Binding. Any use of the long version has been replaced with the shortcut, and any Console messages that broke word wrap limit have been wrapped. Changes are in: -LoginServer -CharacterServer -ZoneServer [2007/01/20] - Tsusai - CharacterServer - In the ZServerInfo.Address call, there was a spare ',' that I overlooked. Delphi ignores it, but Kylix caught it. Fixed [2007/01/20] - Tsusai - CommClient - Replaced TThread and now useing TIdThread. It has reduced some conflicts when trying to access the client readthreads. - - Rev 119 - [2007/01/19] - RaX - Added some properties to TMap, Size and Mode. Fixed last commit, I forgot to update Graph to Cell in TMap (sorry =)) - - Rev 118 - [2007/01/18] - RaX - Updated Headers on Yesterdays changes to ZoneServer related files. [2007/01/18] - RaX - Added Mobs, NPCs, and Characters to each TMap Cell, renamed Graph to cell. - - Rev 117 - [2007/01/17] - Tsusai - Notes/Overview: Zone display done. Also as always, various tweaks to get it to work. [2007/01/17] - Tsusai - CharacterServer - SendCharaToMap : Completed code to auto select a zone for transport. [2007/01/17] - Tsusai - Database\Game*** - CreateChara : Sends the character number over for when creating. [2007/01/17] - Tsusai - Database\Static** - GetMapCanSave changed to GetMapCannotSave, and corrected queries. [2007/01/17] - Tsusai - Character - TCharacter : Added a basic client packet subsystem. It may not be the best place for it, but for now it is ok. [2007/01/17] - Tsusai - BufferIO - RecvBuffer : Cannot recieve 0 packets. The system doesn't like it. [2007/01/17] - Tsusai - GameConstants : Removed invalid job classes (stupid data I put in) and added a right and left hand constant. [2007/01/17] - Tsusai - PacketDB - Activated 'ticksend' and 'getcharnamerequest' packet_db command routines. [2007/01/17] - Tsusai - ZoneRecv - Added ShowMap, RecvTick, and GetNameAndID. Added temp spots for packets for inventory and stuff. [2007/01/17] - Tsusai - ZoneSend - Added replies for RecvTick and GetNameAndID [2007/01/17] - Tsusai - ZoneServer - Added a check for data on the buffer (odd things were happening). [2007/01/17] - Tsusai - Client_packet_en - corrected the map connect packet. There are not 2 login keys, only 1 and a tick. - - Rev 116 - [2007/01/17] - RaX - Added IndexOfAID to CharaList. Gets a character by account id [2007/01/17] - RaX - Updated starting points in CharacterOptions. - - Rev 115 - [2007/01/17] - RaX - Joint commit by me and Tsusai, calcmaxhp/sp/speed are now in place and pull from the static database. They also send to the client and show on character create. [2007/01/17] - RaX - Made databases global per exe once again due to circular include errors. - - Rev 114 - [2007/01/17] - RaX - Fixed my character database fubar. Forgot that a WORD type is unsigned =) [2007/01/17] - RaX - Updated SQL files to reflect new changes, all equipment fields are unsigned. - - Rev 113 - [2007/01/16] - RaX - Updated Static Databases, added query to return the zone id a map is assigned to from our maps table. [2007/01/16] - RaX - Removed setaccount from jansqlstaticdatabase...why that was still there I still do not know. - - Rev 112 - [2007/01/15] - RaX - Updated Static database - added fields and converted from latest(11.2) aegis mapinfo dump. - Table Maps [2007/01/15] - RaX - Added /bin/Maps folder with all kro 11.2 maps as specified in the newly converted maps database. (644 maps) - - Rev 111 - [2007/01/15] - RaX - Notes/Overview: Added character defaults to Character.ini and implemented them in characterserver. [2007/01/15] - RaX - Added Game Database fields armor, garment, shoes, accessory1, and accessory2. Renamed Weapon and shield to RightHand and LeftHand, respectively, both internally and database side. [2007/01/15] - RaX - Corrected spelling mistakes in console messages (I before E except after C in Received). [2007/01/15] - RaX - Fixed character.txt in jansql - Tsu, you committed the character "tonto" =). [2007/01/15] - RaX - Added armor, garment, shoes, accessory1, and accessory2 as properties to Character class. [2007/01/15] - RaX - Renamed DatabaseTXT.pas to PacketDB.pas. [2007/01/15] - RaX - Moved Gameobjects to classes and renamed to Being. - - Rev 110 - [2007/01/14] - Tsusai - Notes/Overview: Zone communications to character server in place. Still no connection for the RO Client to make the connection to the Zone just yet. [2007/01/14] - Tsusai - ServerToServerPackets.txt - contains all packet documentation of server to server communications. [2007/01/14] - Tsusai - Database\packet_db.txt - Added new packets for chara<->zone packets. [2007/01/14] - Tsusai - CharacterServer - Added zone packet parsing and validation of the zone. [2007/01/14] - Tsusai - CharaLoginPackets - All packet procedures renamed. [2007/01/14] - Tsusai - CommClient - Added Source and Destination names (for the error messages.). [2007/01/14] - Tsusai - List32 - Replaced IndexOfObject. I don't know wtf the writers were thinking. It was taking an integer instead of an object -_- [2007/01/14] - Tsusai - TCPServerRoutines - Updated the CommClient creation for the above update. [2007/01/14] - Tsusai - ZoneOptions - Added missing entries, such as CharaServer location and port. [2007/01/14] - Tsusai - LoginServer - Updated Error response to a bad character server validation. [2007/01/14] - Tsusai - ZoneCharaPackets - Added. [2007/01/14] - Tsusai - ZoneServerInfo - Added. [2007/01/14] - Tsusai - ZoneServer - Removed unneeded IPCardinal code, added setting of the client that connects to the character server. - - Rev 109 - [2007/01/13] - Tsusai - Notes/Overview: Fixes and partial commits to character server for zone connections. [2007/01/13] - Tsusai - CharacterServer : Added fZoneServerList, OnDisconnect Method, updated SendCharaToMap to take on a connection and buffer parameter, Corrected error constant numbers (was getting email error where could not happen error should be, and vice versa. Please verify this change RaX). Added commented out code in SendcharaToMap. Fixed StatPoint display in CreateChara. Removed unneeded If connected check in ParseCharaServ. [2007/01/13] - Tsusai - ***GameDatabase: Updated GetChara to take on a JanSQLReleaseTable hidden bool. Assumes false. Updated any GetChara calls. Updated LoadChara to attach Account information. [2007/01/13] - Tsusai - CharacterServer, ZoneRecv: Updated any/all GetChara calls. [2007/01/13] - Tsusai - Character: ClientVersion changed to byte (I need a negative number). [2007/01/13] - Tsusai - Added ServerInfo root object, and updated CharacterServerInfo to descend from that. Added ZoneServerInfo to do the same. [2007/01/13] - Tsusai - PacketTypes: Added ZoneServerLink object. - - Rev 108 - [2007/01/12] - Tsusai - Notes/Overview: Fixed the outstanding JanSQL character server table errors. We were trying to save and release a table that was already released due to LoadChara releasing. [2007/01/12] - Tsusai - JanSQLGameDatabase - Overrode the GetChara procedure. Now takes a flag to release the table after loading of a character. LoadChara NO LONGER releases the table, since GetChara is the only thing that calls it and takes care of it if it needs to. [2007/01/12] - Tsusai - LoginServer - Fixed my January 2006 entries...its 2007 now. - - Rev 107 - [2007/01/12] - RaX - Modified Database.ini and The Database constructor to support setting each database's type individually. (IE - Common : text Game : SQL Static : Text) - - Rev 106 - [2007/01/11] - RaX - Added headers in JanSQLCommonDatabase and MySQLCommonDatabase. - - Rev 105 - [2007/01/11] - RaX - Added ID field to Zone.ini. - - Rev 104 - [2007/01/10] - RaX - Notes/Overview : Updated Static Database and added one query for Zone. [2007/01/10] - RaX - Added 3 new tables to Static : hp, sp, and statpoints. [2007/01/10] - RaX - Added same tables to jansql databases. [2007/01/10] - RaX - Updated Static->maps table : removed .gat extensions from mapnames. [2007/01/10] - RaX - Added one query to StaticDatabase, GetMapCanSave(MapName). Returns a boolean indicating if a character can save on said map or not. - - Rev 103 - [2007/01/10] - RaX - Notes/Overview : Database changes, broke up the database class into 3 separate database classes (Common, Game, and Static). [2007/01/10] - RaX - Deleted old database units. [2007/01/10] - RaX - Added new database units (one of each of the old per database). Moved units into separate folders inside the database folder under classes. [2007/01/10] - RaX - Updated zonemaps in Static database, all flags are now boolean and it has been renamed to just 'maps'. [2007/01/10] - RaX - Updated jansql databases to reflect mysql changes. [2007/01/10] - RaX - Reorganized how each database is created and free'd. - - Rev 102 - [2007/01/09] - RaX - Deleted rev_55.sql [2007/01/09] - RaX - Added helioscommon, heliosgame, and heliosstatic.sql to replace. [2007/01/09] - RaX - Filled helios statics zonemaps table with mapinfo from prometheus. - - Rev 101 - [2007/01/08] - Tsusai - Notes/Overview: Modifications to allow WAN/LAN checking complete and in place. [2007/01/08] - Tsusai - WinLinux: Added a record type called TIPSet, which contains 2 strings, Full, and Partial. This is to store more things for the result type of GetIPStringFromHostname. [2007/01/08] - Tsusai - WinLinux - GetIPStringFromHostname: Now returns a TIPSet type, the Full IP that is obtained and a Partial (X.X.X.) The last . is for prevention of comparing 192.168.10.1 to the partial of 192.168.1 [2007/01/08] - Tsusai - Inter/Zone servers: Disabled IP and IPCardinal code. Will reactivate properly later. [2007/01/08] - Tsusai - CharaServerInfo: Overhauled ip / port information. changed the storage strings that would store pure IPs as what they originally are, instead of parsing the IPs from a hostname for example. WANPort -> Port. Added fLANPartial to store the partial LAN IP. Added Function Address, which takes a IP string of the client, for checking against the LAN IP Partial that is stored. [2007/01/08] - Tsusai - LoginServer - SendCharacterServers: Changed the WANCardinal and placed the Address() function in it is placed. [2007/01/08] - Tsusai - LoginServer - VerifyCharaServer: Changed the WANPort to Port. [2007/01/08] - Tsusai - LoginServer - ParseLogin: Changed the incoming WAN and LAN information to the fixed names. - - Rev 100 - [2007/01/08] - Tsusai - Notes/Overview: Fixed JanSQL Queries, and a tweak to janSQL and CommClient. [2007/01/08] - Tsusai - CommClient: Once again reorganized order of procedures when relating to disconnecting and suspending the client thread. [2007/01/08] - Tsusai - janSQL: Modified anything relating to file I/O to use / in the path, instead of \ due to linux issues. [2007/01/08] - Tsusai - JanSQLDatabase: Updated any missing %s strings to have quotes surrounding, janSQL doesn't like them too much and goofs w/o errors. - - Rev 99 - [2007/01/08] - RaX - Forgot to remove madexcept from linux includes, removed. - - Rev 98 - [2007/01/07] - RaX - Updated JanSQL queries, SAVE TABLE and RELEASE TABLE instead of SAVE and RELEASE. - - Rev 97 - [2007/01/07] - RaX - Notes/Overview : Split up ServerOptions.ini into one ini for each server, one for database, and one for general helios config(enabled servers). [2007/01/07] - RaX - Added LoginOptions, CharaOptions, InterOptions, ZoneOptions, DatabaseOptions, and HeliosOptions. [2007/01/07] - RaX - Removed serverOptions. [2007/01/07] - RaX - Removed ServerConfig from Globals. [2007/01/07] - RaX - Added public property, Options, to each server. Options is the ini for each. [2007/01/07] - RaX - Added Options to MainProc and Database. [2007/01/07] - RaX - Changed Database class system so that each Database Template Child is created with a parent argument, allowing Options to be called from inside the child classes rather than having to have it passed into it. [2007/01/07] - RaX - Cleaned up unused variables in ZoneServer. [2007/01/07] - RaX - Re-organized uses in Helios.dpr to be organized first by category, and then alphabetically for better classification. [2007/01/07] - RaX - Added more inter communication variables to ZoneServer, in preparation for zone->chara and zone->inter communication. - - Rev 96 - [2007/01/04] - RaX - Added Headers to CommClient and updated Globals'. [2007/01/04] - RaX - Changed server.start routines to use a hidden parameter, reload, which tells it whether to reload the ini or not. [2007/01/04] - RaX - Added and implemented Globals - LoadIni; for the above change. LoadIni Free's ServerConfig if it's assigned, and recreates it. - - Rev 95 - [2007/01/04] - Tsusai - Reorganized the suspending code of the CommClient thread. Apparently it would halt the thread (good) but not disconnect (bad). - - Rev 94 - [2007/01/04] - RaX - Updated documentation + headers in LoginServer. Added /help command listings for new /start and /stop commands in Commands. [2007/01/04] - RaX - Added Started property to each server class. [2007/01/04] - RaX - Changed /start and /stop to use already build in <server>.start procedures and modified them to work with servers which aren't free'd. - - Rev 93 - [2007/01/03] - Tsusai - Notes/Overview : Implemented the GetPacketLength function, and added some new console output messages to let admins know what is going on with login and character servers. [2007/01/03] - Tsusai - DatabaseTXT: Allowed Load_PacketDB be called outside of that unit. [2007/01/03] - Tsusai - Added the following files into Notes: client_packet_en (from prometheus), and Generating Linux Compiles.txt [2007/01/03] - Tsusai - Database\packet_db.txt - Added Helios custom packets (server communication packets). [2007/01/03] - Tsusai - Globals - InitGlobals: Calls Load_PacketDB. [2007/01/03] - Tsusai - TCPServerRoutines - DeactivateServer: Added termination messages, and is passed a name for those messages. [2007/01/03] - Tsusai - LoginServer, CharaServer, InterServer, ZoneServer: Updated DeactivateServer calls. [2007/01/03] - Tsusai - Console : Added a blank space after the server startup. [2007/01/03] - Tsusai - LoginServer, CharaServer, CharaLoginPackets : Updated static packet lengths (Recv and Send) with the GetPacketLength function. - - Rev 92 - [2007/01/03] - RaX - Added 2 ini entries, [Login] - Key and [Chara] - LoginKey. Now we can specify the password used to communicate between the login and character servers. - - Rev 91 - [2007/01/02] - RaX - Thanks to research done by Tsusai, our text database works with multiple exes. [2007/01/02] - RaX - Changed JanSQLDatabase to save and release after each update/insert/ delete and just release after each select, this causes the text database to reload itself before queries, allowing real-time data changes in a text database =o. - - Rev 90 - [2006/12/30] - RaX - Pretty much redid the database reorganization of the last commit. Moved Databases to be a private entity of each server. Zone is the exception, multiple file rely on the zone's database since we don't want the zone server file to be, well, HUGE =) NOTE::: The 12/28 client works, but is quirky. There seems to be some missing padding in create character and delete character, because results for each are random. Tsusai, can you sniff the exe and see what's missing? Maybe it'll be a simple feature to add. I'll e-mail it to you par request. - - Rev 89 - [2006/12/29] - RaX - Added my e-mail address to the helios.dpr header. [2006/12/29] - RaX - Moved Database creates and frees around to assign each dynamically based on which servers are enabled. [2006/12/29] - RaX - Added new console commands, start and stop. For example, /start login would create and start the login server. /stop login would stop and free the login server. - - Rev 88 - [2006/12/28] - Tsusai - Forgot to put back the Account field in the LoadChara in both existing database calls. - - Rev 87 - [2006/12/28] - RaX - Added the 12/28 client to our packet_db. - - Rev 86 - [2006/12/27] - Tsusai - Notes/Overview: More updates to the multi character server coding, mainly side effect bugfixes. [2006/12/27] - Tsusai - Account - GetBanned and GetConnectTime: Removed the SQL calls, and simplied. [2006/12/27] - Tsusai - CommClient - TClientThread.Execute: tweaked the try/except field. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase, DatabaseTemplate: Changed GetAccountBanAndConnectTime to RefreshAccountData. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase : Fixed GenderChar and LoginKey reading in SetAccount, modified GetAccount (both types) to be more efficient, and read the new RefreshAccountData that is required. RefreshAccountData reads the ban and connect (play) time, and the login keys. - - Rev 85 - [2006/12/26] - RaX - Oops, forgot to remove some code from a previous method of getting a new character's id in JanSQLDatabase. CreateChara. - - Rev 84 - [2006/12/24] - RaX - Added default values to TCharacters in CreateChara(CharacterServer). - - Rev 83 - [2006/12/24] - Tsusai - Notes/Overview: Unfortnately a large commit. This commit includes the ability to finally start linking 2 exes together, at the characterserver level. Thats right, running two copies correctly, can result in having two servers listed at the server selection menu after login. Also many Uses have been cleaned up. [2006/12/24] - Tsusai - Added the following units: CharacterServerInfo, CharaLoginPackets, and CommClient. [2006/12/24] - Tsusai - CharacterServerInfo : Contains a type that houses information on a Character Server, such as WAN/LAN IPs, port, Servername, and online users. These are stored in a list that is read from when someone logs in, and is sent a list. [2006/12/24] - Tsusai - CharaLoginPackets : Contain all Outgoing routines at the moment. [2006/12/24] - Tsusai - CommClient : Contains a Indy TCP Client descendant, which controls a generated thread. The thread checks for connection and tries to connect every 30 seconds. It also figures out if there is data available and passes it on as a OnRecieve event. [2006/12/24] - Tsusai - InterServer, ZoneServer : Turned off their built in clients for now. [2006/12/24] - Tsusai - Console : Removed static list entry for the character servers (our workaround until this was done). [2006/12/24] - Tsusai - TCPServerRoutines (NEEDS RENAMING NOW) : Replaced all TIdTCPClients with TInterClient, and updated Activate/Deactivate Client as needed. Also removed crap out of DeactivateServer for now. I think we won't suffer that problem we did in Prometheus. [2006/12/24] - Tsusai - PacketTypes : Added TCharaServerLink type which is used in LoginServer. [2006/12/24] - Tsusai - Globals : Removed UTF8String (its still just string), Cleaned up uses, removed CharacterServerList (now private in LoginServer as it should be). Added IncMinute and IncSecond routines. [2006/12/24] - Tsusai - BufferIO : Added WriteBufferMD5String to write the bytes as they are into buffer, and ReadBufferMD5 to read the bytes directly from the buffer. Overloaded SendBuffer and RecvBuffer to accept TInterClient as a passed parameter. Fixed BufferReadString's parameters. [2006/12/24] - Tsusai - mwStringHashList : Fixed Uses. [2006/12/24] - Tsusai - Character - SetSaveTime: Uses IncMinute from Globals now. [2006/12/24] - Tsusai - LoginServer - Cleaned uses, Removed OnExecute Event, tied ParseLoginServer directly to it. Added OnDiscconect method, to remove character server information from the list if that particular client disconnected. CharaServerList has been moved here and is a private field. Removed ReadMD5Password (in BufferIO now). Updated parameters of ValidateLogin and SendLoginError. Added VerifyCharaServer to validate (static validate for now). Fixed the packet indexes and loop for SendCharacterServers. Added Parsing of charaserv client packets to ParseLogin. Will be fined tuned in a later commit. [2006/12/24] - Tsusai - CharacterServer : Removed anything having to do with the translation of IP/Hostname strings into cardinals. Added CharaToLoginClient, and events for it (OnConnected and OnRecieve). Removed CharacterServer.OnExecute, using ParseCharaServ directly. Added the setting of Host/Port of the CharaToLoginClient in .Start for now. Also removed the While from ParseCharaServer, not needed. [2006/12/24] - Tsusai - Added Packet documentation for Chara<->login communications to Notes [2006/12/24] - Tsusai - Removed Subdirectories in obj, not needed. - - Rev 82 - [2006/12/23] - RaX - Reordered Character Deletion Errors in CharacterServer due to some weird error messages. - - Rev 81 - [2006/12/23] - RaX - Notes/Overview - Implemented new FASTER character list and fixed a bug in JanSQLDatabase. [2006/12/23] - RaX - Added CharaList.pas, a low level TCharacterList which is as fast as it gets I believe. [2006/12/23] - RaX - Updated CharaExists both overloads in JanSQLDatabase.pas. Both weren't looking at the record count, only at the result identifier, and if there are records to be found, Jan returns an identifier, which is why it worked with no characters in the database =) [2006/12/23] - RaX - Changed Globals to use a TCharacterList instead of a TIntList32 as the global characterlist. [2006/12/23] - RaX - Changed CharacterServer to use the new characterlist. [2006/12/23] - RaX - Changed JanSQL + MySQL + DatabaseTemplate to use the new list. - - Rev 80 - [2006/12/23] - Muad_Dib - Added new jobs (ninja, gunslinger, xmas suit) to GameConstants. - - Rev 79 - [2006/12/23] - RaX - Added Updated jAthena Packet_db. Fully updated. - - Rev 78 - [2006/12/22] - RaX - Added GetPacketLength to TCPServerRoutines. - - Rev 77- [2006/12/22] - RaX - Confusion on my part, NOW the characterlist bug is fixed with no leaks [2006/12/22] - RaX - Updated headers in all files. [2006/12/22] - RaX - Moved ServerException into each of the server classes. [2006/12/22] - RaX - Cleaned up uses in Console.pas. - - Rev 76- [2006/12/21] - RaX - Fixed CharacterList Corruption bug. We were free'ing ACharacter after it was already free'd in CharacterList.Delete which caused a crash.(JanSQLDatabase, MySQLDatabase) - - Rev 75- [2006/12/21] - RaX - Removed Deprecated units AccountDB, SQL, and SaveThread. Leaving XTimer in case we need a timer. - - Rev 74- [2006/12/21] - RaX - Updated JanSQLDatabase queries to work with jansql. (JanSQLDatabase) [2006/12/21] - RaX - Changed StrToInt to StrToIntDef with a default of 0 in LoadChara because JanSQL doesn't support default values or typing for that matter. [2006/12/21] - RaX - Added calculations for the next available ID to CreateChara, see above for details as to why. - - Rev 73- [2006/12/21] - Tsusai - Notes/Overview: Renamed unit Socket to BufferIO. All applicable files were updated. - - Rev 72- [2006/12/21] - RaX - Modified JanSQLDatabase.pas to use resultidentifier numbers to access the internal list of recordsets rather than using passed QueryResult pointers. Freeing these was causing JanSQL to corrupt it's internal list and cause random crashes. Also, the result list would get unbearably huge after a short time =) from now on we use Database.ReleaseRecordset(ResultIdentifier : Integer) to free our query results in jan. [2006/12/21] - RaX - Modified MySQLDatabase and JanSQLDatabase in GetBanAndConnect to use special queries rather than just reloading the entire account. [2006/12/21] - RaX - changed serveroptions.ini to have the default database host as ./save to allow jansql to work out of the box. [2006/12/21] - RaX - added jansql database to the save folder in trunk/bin. - - Rev 71- [2006/12/20] - Tsusai - Notes/Overview: Updates to database system. [2006/12/20] - Tsusai - DatabaseTemplate: Modified CONNECT to use out current standard parameters, instead of using reintroduces and overrides in the children classes. [2006/12/20] - Tsusai - MySQLDatabase & JanSQLDatabase - SaveAccount: Removed StrToInt64 conversions of dates. Just strings now. [2006/12/20] - Tsusai - JanSQLDatabase - SaveAccount: Fixed how the dates are stored back into the database. This caused problems of the same account trying to reconnect, and bad times being read when logging BACK in. [2006/12/20] - Tsusai - JanSQLDatabase: Added Disconnect method, which calls the commit query to save the database. - - Rev 70- [2006/12/19] - Tsusai - Oopsie. Didn't know my runtime debug parameters were saving. Removed - - Rev 69- [2006/12/19] - Tsusai - Heh...69. Sorry..couldn't help myself [2006/12/19] - Tsusai - Accounts: For some reason if a person attempted to login with the mf suffix for auto account creation on MD5 connection, following connections would be told they have no more game time. The Now procedure was somehow not returning, but with SysUtils.Now as the replacement, it works. Not too sure if something is causing a conflict with it, but it should be sound now. - - Rev 68- [2006/12/18] - RaX - Merged ZoneCore into ZoneServer.pas. - - Rev 67- [2006/12/18] - RaX - Suppressed hints and warnings in jansql using compiler directives. [2006/12/18] - RaX - Moved server classes into their respective folders in the src root. - - Rev 66- [2006/12/18] - Tsusai - Notes/Oveview: JanSQL (TXT reading) debugged. [2006/12/18] - Tsusai - JanSQLDatabase/MySQLDatabase : Cleaned up ****Exists routines. Added missing memory free'ing of QueryResults. [2006/12/18] - Tsusai - JanSQLDatabase - SendQuery : If locating a row failed, and returned nothing (it happens), it would return a nil set. Works now by creating one prior to setting. Not too sure this is proper. [2006/12/18] - Tsusai - janSQLTokenizer: Restored to pre cleaning. Something I did made it malfunction on connecting. [2006/12/18] - Tsusai - Globals : Readded optional INI loading. - - Rev 65- [2006/12/18] - Tsusai - Notes/Overview: Linux compiler fixes. [2006/12/18] - Tsusai - JanSQLDatabase : Renamed JanSQL in the uses to janSQL. Unit name must match file name. Its a casesensitive OS. [2006/12/18] - Tsusai - janSQLExpressions2 : Recleaned, leaving 1 hint for now. For some odd reason the crosskylix compiler wasn't liking it the way I had it. - - Rev 64- [2006/12/17] - RaX - Moved all servers into classes located in Classes/Servers/ [2006/12/17] - RaX - Reorganized Console.pas to accomodate changes made to servers. [2006/12/17] - RaX - Redid startup/shutdown procedures to create and free the servers dynamically based on which are enabled. - - Rev 63- [2006/12/17] - Tsusai - Notes/Overview: Added _M/_F login parsing. This only works when using a basic login and not a encrypted login. [2006/12/17] - Tsusai - LoginServerProcess: Added ParseMF to parse the _M/_F. [2006/12/17] - Tsusai - **DatabaseTempate: Added CreateAccount and AccountExists procedures and functions. - - Rev 62- [2006/12/17] - RaX - Updated headers in MySQLDatabase.pas, JanSQLDatabase.pas, CharaServerProcess.pas, LoginServerProcess.pas, CharaServerTypes.pas. [2006/12/17] - RaX - Removed DIV by 0 forced error in helios.dpr. [2006/12/17] - RaX - Added checking for a valid database in JanSQLDatabase.pas - Connect(). [2006/12/17] - RaX - Removed hints in turbo delphi about functions not being expanded by adding an ifdef to the uses of JanSQL.pas and JanSQLExpressions.pas. - - Rev 61- Broken, someone who's name rhymes with forgot to remove his EDIVBY0 =) [2006/12/17] - Tsusai - Notes/Overview: MySQL queries fixed, Login server information covering the IPs removed. They aren't needed. [2006/12/17] - RaX - Notes/Overview: (All RaX entries by Tsusai) MainProc now holds the database connections, instead of creating on the fly. [2006/12/17] - Tsusai - MySQLDatabaseTemplate : Corrected queries. One error was trying to access a character table (its characters) and another was running a query to access information in the common database, from within game database connection. [2006/12/17] - Tsusai - ServerOptions - Removed Login server IPS [2006/12/17] - Tsusai - Merged RaX's changes. [2006/12/17] - RaX - Added JanSQLDatabase, controls TXT database system. [2006/12/17] - RaX - Removed on the fly database connections, replacing with a one connecter per database variable in MainProc object. - - Rev 60- [2006/12/13] - Tsusai - Notes/Overview: JanSQL committed, its a TXT SQL system. [2006/12/13] - Tsusai - Added JanSQL folder and added into project. [2006/12/13] - Tsusai - Renamed SQL folder to MySQL. - - Rev 59- [2006/12/11] - RaX - Added GetBaseHP and SP functions to the database class. - - Rev 58- [2006/12/06] - Tsusai - Notes/Overview: Random tweaks to things. [2006/12/06] - Tsusai - CharaServerTypes - widestring->string conversions. Not needed [2006/12/06] - Tsusai - TCPServerRoutines - ActivateServer: Added more constants. [2006/12/06] - Tsusai - WinLinux - Widesting->String conversion, added GetIPStringFromHostname (DNS RESOLVING IN!!!!!) [2006/12/06] - Tsusai - Console - TMainProc.Shutdown - Made interserver communication client components disconnect first, then servers. - - Rev 57- [2006/11/29] - RaX - Added a few new configuration options to ServerOptions.ini and reorganized it to suit. (LAN IPs, WAN IPs, Ports, etc.) Removed Communication completely. - - Rev 56- [2006/11/29] - RaX - Implemented stubbed out Inter Server and added appropriate configuration variables for enabling/disabling the zone, chara, and inter servers. Also, uncommented Tsusai's Zone implementation code. Added ActivateClient and DeActivateClient to TCPServerRoutines. Renamed ServerOptions configuration section "MySQL" to "Database" and changed code appropriately. Added stubbed connect and execute routines for inter server component. Implemented and uncommented inter communication clients. - - Rev 55- [2006/11/27] - Tsusai - Updated the SQL file again. Storage and Ragsvrinfo should be game were not game related, as a mistake on my part. - - Rev 54- [2006/11/27] - Tsusai - Notes/Overview: Fixed USES in the following units CharaServerProcesses, Character, CharaList, DatabaseTemplate, XTimer, List32, uMysql*, Globals, Socket, Console, ZoneCore, ZoneRecv, ZoneSend. [2006/11/27] - Tsusai - Added ZoneSend, which sends out replies so far for the zone. [2006/11/27] - Tsusai - ZoneRecv - Added MapConnect which handles zone connection validation. - - Rev 53- [2006/11/17] - RaX - added getting the closest path to the destination to our pathing algorithm. - - Rev 52- [2006/11/14] - Tsusai - Notes/Overview: Restructure of the mysql database. [2006/11/14] - Tsusai - Added Database/packet_db.txt [2006/11/14] - Tsusai - Updated Bin/SQL Files/helios.sql to HeliosSQL_rev51.sql with the restructured database. I recommend deleting the old one and regenerating a new ServerOptions.ini for this. [2006/11/14] - Tsusai - CharaServerProcess - SendCharas: Fixed bug where Index would do a ERangeError, because of 0 characters being returned. Also fixed a database call that was calling the wrong database (was trying to do a query in the common database, and not in the game database). [2006/11/14] - Tsusai - Account - TAccount : Added a ConnectUntil datetime field, updated Banned to a datetime. Added various methods and functions to make checking these easier. [2006/11/14] - Tsusai - Database - Removed all Writeln and replaced with MainProc.Console [2006/11/14] - Tsusai - DatabaseTemplate/MySQLDatabase - GetAccountBanAndConnectTime : Added. [2006/11/14] - Tsusai - MySQLDatabase - All query statements updated to table restructures. [2006/11/14] - Tsusai - Globals - Added ConvertMySQLTime to convert the time string from MySQL to a TDateTime. If given a 0000-00-00 00:00:00 (which is impossible to convert), it uses the lowest possible TDateTime (like january 1900). [2006/11/14] - Tsusai - ServerOptions - Updated default Database names. [2006/11/14] - Tsusai - LoginProcesses - Replaced Writeln, and added banned and connectuntil checks with properly added response codes. - - Rev 51- Forgot Changelog - Rev 50- [2006/11/13] - Tsusai - Notes/Overview : Addins, and added more multiserver support (not done) [2006/11/13] - Tsusai - ServerOptions - Reorganized and split the mysql database into 2, a common and a game specific. [2006/11/13] - Tsusai - WinLinux - Added a GetTick command. Unsure if the linux version works proper. [2006/11/13] - Tsusai - DatabaseTemplate - Reindented. [2006/11/13] - Tsusai - Database - TDatabase.Create : Now gets an optional parameter, to tell the optional mysql database which connection to make (Common database, or Game Database) [2006/11/13] - Tsusai - Account - Added LoginCount, LastLoginTime, and Level to TAccount. [2006/11/13] - Tsusai - CharaServerProcesses - Updated any TDatabase creations to make sure the right database is accessed. [2006/11/13] - Tsusai - MySQLDatabase - TMySQLDatabase : Placed "Connection" into private, Overrode Create and Connect method to take a boolean flag for which database to use. Added a SendQuery (use just like query). If a Query actually fails to execute, a visual error will happen and the query pasted to the console. [2006/11/13] - Tsusai - Socket - Added WriteBufferPointAndDirection and fixed SendBuffer's description. [2006/11/13] - Tsusai - Console - TMainProc.Startup : Added conditional to activate the login server. Moved ThirdPartyCredits procedure call to the top of the routine. [2006/11/13] - Tsusai - LoginProcesses - ValidateLogin : Fixed the LoginKey assignments, and saved. - - Rev 49- [2006/11/12] - Tsusai - Console : Cleaned up some uses, removed TThreadLink variable, not needed, added Zone Server OnConnect & OnExecute events. [2006/11/12] - Tsusai - CharaServerProcess - ParseCharaServ : Removed TThreadLink variable, not needed. [2006/11/12] - Tsusai - WinLinux : Added a PriorityLow global constant. Windows has tpLowest while Linux is an integer (PRIO_MIN). [2006/11/12] - Tsusai - XTimer - TXTimer.Execute : Priority is now set to PriorityLow constant. (Exisiting was not cross compilable) [2006/11/12] - Tsusai - DatabaseTXT - Load_PacketDB : Updated the FileExist paths, database is now Database (case issue) and the \ in the path is now a / (pathing issue). - - Rev 48- [2006/11/11] - Tsusai - BUGFIX (God I did not want to see one of these...). Removed the usage of FreeAndNil(ADatabase); that RaX implemented. Replaced with ADatabase.Free; Odd thing was that once a person logged into character server, it would no longer accept any more connections. [2006/11/11] - Tsusai - ZoneCore & Console - Reindented. [2006/11/11] - Tsusai - Globals - MakeRNDString added, generates a random string based on what length we want. [2006/11/11] - Tsusai - PacketTypes - Added a TMd5String type to attach to our login client information. [2006/11/11] - Tsusai - LoginProcesses - Implemented TMD5String and attached to the login client info, and stored the randomly generated key in it (ONLY WHEN MD5 CONNECTIONS ARE USED) - - Rev 47- [2006/11/06] - Tsusai - Merged GameGlobals into GameConstants, and updated any/all units that used to call GameGlobals. out a better timer, so for now, we have seconds. [2006/11/06] - Tsusai - Updated 3rdParty.txt to mention we are using uMySQL** under MySQL's FLOSS exception. [2006/11/06] - Tsusai - Extracted the version string to its own unit, to keep revisions to Globals separate. - - Rev 46- [2006/11/03] - RaX - Rewrote XTimer to fix problems with processors that modulate their clock speed. Changed resolution to seconds. We can't have lower resolutions until I figure out a better timer, so for now, we have seconds. [2006/11/03] - RaX - Changed ini loading to load default 60 for SaveTimer.Interval. [2006/11/03] - RaX - Changed Console.Pas to accomodate our new changes. - - Rev 45- [2006/11/02] - RaX - Updated ThirdParty.txt to include Indy. Also, corrected mistakes made by yours truly in the umysqlclient credits. "There is no Spoof", you could say. Updated to "Part 10" of the GNU license. - - Rev 44- [2006/11/01] - RaX - Map.pas - Implemented Tsusai's changed to GetPath which include, but are not limited to, the following... GetPath changed to a boolean function with APath as a parameter passed by address. Addition of IsBlocked to check for passability versus a multi-line condition. [2006/11/01] - RaX - Map.pas - Added GetArea, a private method of TMap which creates a search area based on our constant CHAR_CLICKAREA distance away from the starting point. [2006/11/02] - RaX - moved CHAR_CLICKAREA into Constants/GameConstants.pas. [2006/11/02] - RaX - Added GameConstants.pas. - - Rev 43- [2006/10/31] - RaX - Modified Map.pas - GetPath to return a TPointList instead of an Array [2006/10/31] - RaX - moved constant CHAR_CLICKAREA to implementation, created Directions constant array of tpoints which contains the distance to go from the starting point to get the point in said direction. [2006/10/31] - RaX - changed TMap.Graph to an array of array of TPoint. - - Rev 42- [2006/10/30] - RaX - Added Classes/Map.Pas - our TMap map class. Stubbed, only contains our pathfinding algorithm for now. The Pathfinder is a "floodfill" or "wave" search that finds the shortest path between 2 points by flooding the graph with tracers that keep track of where they've been. The first one to reach the end's path is the shortest path. - - Rev 41- [2006/10/23] - RaX - Random cleanup in LoginProcess, removed unused variables and function calls from our former Indy9 socket. - - Rev 40- [2006/10/23] - RaX - Updated XTimer to have a Resolution property which is defined by constants to reflect the accuracy fo the timer, between nanoseconds and seconds. XTimer is now much more accurate than before as well. [2006/10/23] - RaX - Added variables to ServerConfig to enable/disable and set the interval for the Save Loop. - - Rev 39- [2006/10/21] - RaX - Re-Added XTimer.pas (it works correctly now, and better!) changed over SaveLoop.pas into what it was supposed to be, the save thread only, executed by XTimer. XTimer is now a reuseable timer with a real resolution of 1ms ...the defining element is assembly....go me. Will be updated to really get accurate time down to the clock speed of the processor (faster the clock speed, the more accurate the timer). [2006/10/21] - RaX - Added our license to the header of Helios.dpr. [2006/10/21] - RaX - Added ThirdParty.txt contents. Basic, but effective. - - Rev 38- [2006/10/20] - Tsusai - Upgraded things to Indy 10. All old outstanding writebuffers now use Socket.SendBuffer. [2006/10/20] - Tsusai - Console: Updated all TIdPeerThreads to TIdContext, and renamed AThread to AConnection. [2006/10/20] - Tsusai - Socket: Updated SendPading to use SendBuffer. SendBuffer now converts OUR buffer to Indy bytebits to send out (it took 3 hours to get sending to work right). Also added a RecvBuffer, to handle recieving packets and putting them into a buffer. [2006/10/20] - Tsusai - TCPServerRoutines: Updated threads to contexts in DeactivateServer. [2006/10/20] - Tsusai - Login/Zone/Chara : Updated all peerthreads to contexts, removed ReadFromStack, redid the input buffer size call, and implemented SendBuffer (if missing) and RecvBuffer. - - Rev 37- [2006/10/13] - Tsusai - Friday October 13th....Just as creepy as 06/06/06 [2006/10/13] - Tsusai - LoginProcesses: Separated the validation code from ParseLogin, and added MD5 client connection support. - - Rev 36- [2006/10/10] - RaX - Code cleanup... [2006/10/10] - RaX - moved Run from Helios.dpr to MainProc as a property for organization. [2006/10/10] - RaX - Moved around save loop creates and destroys around in MainProc to make it force a save before the loop shuts down and free and recreate on restart. [2006/10/10] - RaX - Added TSaveLoop.Save which will house the actual save code... to allow forcing a full save by simply calling this procedure from outside the thread. - - Rev 35- [2006/10/09] - RaX - Fixed my timer. It wasn't allowing console commands (for some unknown reason). Removed XTimer, moved everything into SaveLoop...no more Enabled Property. {Thank you Tsusai} - - Rev 34- [2006/10/06] - RaX - Updated XTimer.pas to work with Delphi 7 (Self.Ontimer(); vs OnTimer()); - - Rev 33- [2006/10/06] - RaX - Overview - stubbed out the save loop thread routines and built a timer for us to use. [2006/10/06] - RaX - FIXED - Added CharaList.pas - forgot to last commit (sorry). [2006/10/06] - RaX - Added SaveTimer to MainProc, a threaded Timer I wrote. [2006/10/06] - RaX - Added TXTimer (Classes/XTimer.pas), a timer thread meant for the save. loop. [2006/10/06] - RaX - Added TSaveLoop(Classes/SaveLoop.pas) - our Saving thread. [2006/10/06] - RaX - How it works - The Timer runs in background forever. At Interval ms, it executes the saveloop, which runs outside of the execution path of both MainProc, and the timer itself. After saving, the SaveLoop automatically free's itself. - - Rev 32- BROKEN [2006/10/06] - RaX - Finished implementation of the Database system and made it thread-safe (we now use a local, to the object instance, connection rather than the old global one.) [2006/10/06] - RaX - CharaServerProcess - ripped out lingering sql queries and moved them into the databaseing units, created CharaExists(overloaded) and GetAccountCharas to replace them. [2006/10/06] - RaX - Removed old SQL.pas from project, still on SVN for posterities sake. [2006/10/06] - RaX - Removed SQLConnected from MainProc (console.pas). - - Rev 31- [2006/10/04] - Tsusai - Overview: Patched ZoneCore after running into multithread problems in Prometheus. [2006/10/04] - Tsusai - DatabaseTXT: Updated TPacketProc to recieve a passed packet buffer. [2006/10/04] - Tsusai - ZoneCore : Updated ExecCommand to pass the InBuffer to any zone procedure. [2006/10/04] - Tsusai - ZoneRecv : Updated the NoCommand procedure to be compatable by the above changes. - - Rev 30- [2006/10/01] - Tsusai - Overview: Continued work on RaX's plug and play database system. Mainly delt with character database components. [2006/10/01] - Tsusai - Console : Local Character server now using WAN_IP, not 127.0.0.1 [2006/10/01] - Tsusai - DatabaseTemplate/MySQLDatabase : Moved TCharacter SQL methods here from Character.pas [2006/10/01] - Tsusai - CharaServerProcesses : Updated calls for the above changes. Note : Database units not organized...was busy with functionality. Also, need to verify any use of TDatabase is cleaned up after we are done with it (FreeAndNil() or .Free). - - Rev 29- [2006/09/30] - RaX - Updated new database organization, removed CreateDatabase and created a "wrapper" class for our Multi-database interface which, on create, decides what interface to use. [2006/09/30] - RaX - Added - Classes/Database.pas [2006/09/30] - RaX - Renamed - Classes/Database/Database.pas to DatabaseTemplate.pas. [2006/09/30] - RaX - FIXED!!! - Random warnings from our umysql client, simply changed destroy to Destroy. - - Rev 28- [2006/09/29] - RaX - Overview - HUGE CHANGE, finally added our plug and play database system. this is, well, unique in RO emulators. The ability to swap between database types at the flip of a switch is handy, of course, but giving people more choices in databasing is extremely useful. [2006/09/29] - RaX - Added Classes/Database/Database.pas [2006/09/29] - RaX - Added Classes/Database/MySQLDatabase.pas [2006/09/29] - RaX - Added Constants/DatabaseConstants.pas [2006/09/29] - RaX - changed LoginProcesses to use the new database system rather than AccountDB.pas. [2006/09/29] - RaX - removed AccountDB.pas from the project, still on SVN for history. [2006/09/29] - RaX - Changed CharaServerProcesses to use the new database system. [2006/09/29] - RaX - Modified ServerOptions.pas to include a DatabaseType variable. This variable determines which database Helios uses. - - Rev 27- [2006/09/28] - RaX - ZoneCore - Started reorganization/re-documentation... make things a little easier to understand for newbies to the codebase =) [2006/09/28] - RaX - ZoneCore - renamed variables, recased types, moved begins around. placed ":" in their appropriate places when dealing with declarations. - - Rev 26- [2006/09/26] - Tsusai - Notes: Zone core uploaded. Non operational or called. [2006/09/26] - Tsusai - Character : Added ClientVersion to TCharacter. [2006/09/26] - Tsusai - PacketTypes : Imported TReadPts. [2006/09/26] - Tsusai - ServerOptions/WinLinux : Removed unneeded Units. [2006/09/26] - Tsusai - DatabaseTXT : Added unit to load .txt databases. [2006/09/26] - Tsusai - ZoneCore : Imported from Prometheus (yes..this is legal under GPL). [2006/09/26] - Tsusai - ZoneRecv : Added. - - Rev 25- [2006/09/26] - Tsusai - Globals: Added GetMD5 function, to turn a string into a MD5 string. - - Rev 24- [2006/09/26] - RaX - Re-indented half of the files...too many to count...non-code-affecting change. - - Rev 23- [2006/09/21] - RaX - Forgot to upload Helios.DPR. Now remedied. - - Rev 22- [2006/09/21] - RaX - Overview : To avoid a 20 page long changelog entry, I documented everything that wasn't documented. We're glad you chose to shop at Helios. Thank you, and have a nice day. - - Rev 21- [2006/09/20] - RaX - Overview : Documented ./trunk/src/Classes/Commands.pas and updated Documentation in ./trunk/src/Console.pas. Slight indentation rework in Globals. [2006/09/20] - RaX - Added comment headers to the head of the document and over each routine. [2006/09/20] - RaX - Modified original doc plan to include a line below each routine as well as a header above. [2006/09/19] - RaX - Re-indented a few variables in Globals.pas. - - Rev 20- [2006/09/19] - RaX - Overview : Documented ./trunk/src/Console.pas [2006/09/19] - RaX - Added comment headers to the head of the document and over each routine. Tell me what you think Tsu. - - Rev 19- [2006/09/17] - Tsusai - Overview : Fixed terminations, and added TCPServer activations and disconnections learned from Prometheus. [2006/09/17] - Tsusai - WinLinux : Added Termination signal capturing, and also adding manual process termination. [2006/09/17] - Tsusai - Globals : SQL timeout set to 10 seconds, Termination procedures added here. Now houses the server version. [2006/09/17] - Tsusai - TCPServerRoutines : Added, helps with activation and deactivation. [2006/09/17] - Tsusai - Console : Minor tweaks to MainProc class. - - Rev 18- [2006/08/21] - Tsusai - Overview : Tweaks, removal of some debug, credits file loading. [2006/08/21] - Tsusai - Added MadExcept to windows version. [2006/08/21] - Tsusai - CharaServerProcess - ParseCharaServ: Fixed loop structure (ReadFromStack). [2006/08/21] - Tsusai - Globals - ConnectToMySQL: Separated out into its own function. [2006/08/21] - Tsusai - Console - ThirdPartyCredits: Added. Reads credits file. [2006/08/21] - Tsusai - Console - MainProc.Startup: Cleaned up procedure. [2006/08/21] - Tsusai - Console - MainProc.ServerException: Finalized code. - - Rev 17- [2006/08/06] - Tsusai - SaveDB: Removed. [2006/08/06] - Tsusai - Notes\About running on linux.txt - Added (basically need zlib package installed). [2006/08/06] - Tsusai - Globals : Retrieves mySQL connection details from ServerOptions. Tells how many accounts and characters there are on the server. [2006/08/06] - Tsusai - ServerOptions : Added mySQL information loading and saving. [2006/08/06] - Tsusai - Console : Removed SaveDB call. - - Rev 16- [2006/08/05] - Tsusai - Overview : Character Server Fully Implemented...Big, because partial sucks. [2006/08/05] - Tsusai - GameGlobals : Added. [2006/08/05] - Tsusai - CharaServerProcess: SendCharas : Completed. CreateChara : Completed. DeleteChara : Filled in dummy procedure with fully functional code. ParseCharaServ : Updated DeleteChara Call. [2006/08/05] - Tsusai - Account - TAccount : Changed Characters to CharaID array. [2006/08/05] - Tsusai - Character TParamBase : Removed. TCharacter : All SQL related variables are properties. Whenever any of these are written to, an internal SaveTime Clock starts (Current + 5 min). Invokes SQL save, then is reset. (why waste a save query on a person sitting around Prontera all day long). Added Load, Save, and remove SQL procedures. Added GetCharacters to find a character from the internal list then sql. [2006/08/05] - Tsusai - Globals : CharacterList now an integer list. [2006/08/05] - Tsusai - AccountDB : Added FindAccountByID, and fixed the static setting in FindAccountByName. [2006/08/05] - Tsusai - LoginProcesses : Updated for AccountDB updates. [2006/08/05] - Tsusai - All other files: Uses cleaned up. - - Rev 15- [2006/07/11] - Tsusai - Overview : Forgot to SVN add SQL.pas - - Rev 14- [2006/07/11] - Tsusai - Overview : Character server work [2006/07/11] - Tsusai - SQL : Added. Get and Set integer and string utilites. SET : Needs a table, parameter, value, and ID key value. GET : Needs a table, parameter, and ID key value. [2006/07/11] - Tsusai - CharaServerProcess : Work on CreateChara. Need to do further work on TCharacter. [2006/07/11] - Tsusai - Character - TCharacter : Added most of the sql chara table variables as properties. Also added a AddToSQL, which returns the new CharaID. (STILL NEEDS WORK) [2006/07/11] - Tsusai - Globals : Added uses description. [2006/07/11] - Tsusai - Socket : Added BufferReadByte. - - Rev 13- [2006/07/08] - RaX - Overview : Lucky 13...=) [2006/07/08] - RaX - Moved and renamed AccountTypes and CharacterTypes. AccountTypes in '\trunk\src\Classes\Account.pas' and CharacterTypes in '\trunk\src\Classes\Character.pas'. One Class per file is the name of the game. - - Rev 12- [2006/07/08] - Tsusai - Overview : Code audit >< [2006/07/08] - Tsusai - Added Notes folder. [2006/07/08] - Tsusai - Documented and cleaned the following: CharaServerTypes, CharaServerProcess, AccountTypes, CharacterTypes, Globals, PacketTypes, Socket*, ServerOptions*, Console, AccountDB, SaveDB. * = RaX to document [2006/07/08] - Tsusai - Helios.dpr : moved "Loading text" from Console here. Contains the revision number. Please remember to update when you commit. [2006/07/08] - Tsusai - GameObjects : removed duplicate TCharacter code. - - Rev 11- [2006/07/08] - RaX - Overview : Pre-organizational...organization...=) [2006/07/08] - RaX - Commands.pas - Moved into classes folder. [2006/07/08] - RaX - Alphabetized units in Helios.dpr - - Rev 10- [2006/07/06] - Tsusai - Overview : CharacterServer Code and some bonus SQL code. [2006/07/06] - Tsusai - CharaServerPacker - SendCharas: SQL Query updated. Code setup to return Zero characters at this time till TCharacter is developed further. [2006/07/06] - Tsusai - CharacterTypes - TCharacter: All properties that will be made will be using SQL to get and set data. Basic retrieval code is now set in place, to be shared. Write procedures to come. [2006/07/06] - Tsusai - Globals: Added CharacterList (not used yet). Updated Console() to MainProc.Console() thus fixing broken rev 9. [2006/07/06] - Tsusai - Socket - WriteBuffer: Undid overload and added the type as a suffix (WriteBufferByte) Afraid of possible packet glitches, last thing I need to worry about. [2006/07/06] - Tsusai - AccountDB - FindAccount: Fixed searching engine. Wouldn't find it if it already existed. [2006/07/06] - Tsusai - LoginProcesses: Updated WriteBuffer calls. - - Rev 9- Broken [2006/07/06] - Tsusai - Overview : Forgot to upload the sql file, fixes (thanks to Jbain) [2006/07/06] - Tsusai - NonSQLFiles : Writeln -> console() update. [2006/07/06] - Tsusai - uMySQLVio : _WIN_ conditionals changed to MSWINDOWS (Jbain pointed it out). - - Rev 8- [2006/07/06] - Tsusai - Overview : Phased out txt for the moment. mySQL for now. Using jA Database. [2006/07/06] - Tsusai - helios.sql : jAthena sql info with test character and account. Would like an aegis one since this would be designed to be an aegis emulator. *shrug* [2006/07/06] - Tsusai - AccountTypes : Modified Gender to be a char. Once set, it modifies gendernum (0 or 1). Gender as a Char is M or F. [2006/07/06] - Tsusai - Globals : Moved SQL out of console to Globals. Centralized. [2006/07/06] - Tsusai - Console : SQL Code removed. Also, FIXED CharaServer OnExecute and OnConnect events. Also added The local character server. Now shows up. [2006/07/06] - Tsusai - AccountDB : removed old txt code, now looks in either the [2006/07/06] - Tsusai - Helios.dpr : removed "Command:" visual. Goofs up with server messages. [2006/07/06] - Tsusai - LoginProcesses : Replaced Gender with GenderNum (see above); - - Rev 7- [2006/07/05] - Tsusai - Overview: Massive code update, mainly dealing with SQL integration. [2006/07/05] - Tsusai - Helios.dpr : added some units. [2006/07/05] - Tsusai - WinLinux: Added this unit to address ALL massive ifdef mswindows/linux. Currently controls the IP to ip cardinal type used for RO clients to connect to a specified server. [2006/07/05] - Tsusai - CharaServerTypes: Modified, IP is now a property. Modifying it automatically updates IPCardinal. [2006/07/05] - Tsusai - Common\SQL (Folder) added SQL. It is GPL, but at this time I have contacted the author and am asking permission. If declined, project would be either without SQL or be GPL. [2006/07/05] - Tsusai - CharacterTypes: Added, basic TCharacter. Eventually, EVERYTHING will be a property for instant SQL SELECT and UPDATE procedures. [2006/07/05] - Tsusai - PacketTypes: Added TThreadLink type, from indy prometheus prototype. Helps link AThread.Data to actual TCharacter or TAccount. [2006/07/05] - Tsusai - Console: TThreadLink is now assigned to a connection thread upon character server connect. Also Added BASIC SQL retrieval. [2006/07/05] - Tsusai - SaveDB: Killed a warning...I want to remove this after txt file load is redone so it is beautifully like SQL, with massive disk access (lol, probably do this like prommy). [2006/07/05] - Tsusai - LoginProcesses: Removed unneeded variables. - - Rev 6- [2006/07/04] - Tsusai - Overview: Redo of certain account handling, for easy future MySQL addon. [2006/07/04] - Tsusai - Database is now AccountDB at this time. Object form removed, just procedures (why create memory for something only for procedures). Redid load structure, so that it loads on the go. [2006/07/04] - Tsusai - Console, Globals : Updated for above. [2006/07/04] - Tsusai - AccountTypes : Updated TAccount; [2006/07/04] - Tsusai - Commands: Removed /reload. Rather have all DB setup before doing this. [2006/07/04] - Tsusai - LoginProcesses: Updated to call active account search. [2006/07/04] - Tsusai - GameObjects : added, contains TBeing and TCharacter (works in progress). - - Rev 5- [2006/05/06] - RaX - Overview : stubbed Tdatabase/reorganized Tdatabase for upcoming changes to allow multiple database types to be used. Added CharaServerParse's Guts, a case statement based on Prometheus' charasel.pas No code was copied, however. Just the idea. I broke that up originally anyways...=) [2006/05/06] - RaX - Database - Overwrote Create to initialize lists and load the database. [2006/05/06] - RaX - Globals - Moved AccountList into TDatabase as a public var. [2006/05/06] - RaX - Database - Changed how reload works to accomodate later database additions. [2006/05/06] - RaX - LoginProcesses - Changed AccountList to ADatabase.Accountlist throughout the code. [2006/05/06] - RaX - CharaServerPacket - Added guts to CharaServerParse, a case statement to decide what to do with packets. - - Rev 4- [2006/05/08] - RaX - Overview : Added ServerName under new section "CharaOptions" in serveroptions.pas Made all INI options actually affect code...=) [2006/05/08] - RaX : ServerOptions.pas - Added SetServerName, fServerName, and LoadCharaOptions to do their respective tasks, exactly like similiarly named routines/vars. [2006/05/08] - RaX : Console.pas - Replaced hardcoded variables for server ports/ internal chara server name with their respective INI variables. [2006/05/08] - RaX : TODO:: Input validation on ini variables, making sure that ports are between 1 and 32767, that IP's are valid, etc. - - Rev 3- [2006/05/06] - Tsusai - Overview : Updated Serveroptions to what RaX wants, an "OnChange" idea. [2006/05/06] - Tsusai - ServerOptions: Configred to work like prometheus, load what is available, save all ini options. - - Rev 2- [2006/05/06] - RaX - Overview : Added Trunk/src/Config/ServerOptions.pas [2006/05/06] - RaX - Added basic INI functionality. INI will be named ServerOptions.ini and will always be in the same folder as the exe. [2006/05/06] - RaX - Class TServerOptions - TMemINI descendant with ini keys as class variables and save, load, and writenewini as methods. [2006/05/06] - RaX - TServerOptions.Save() - saves ini to disk. [2006/05/06] - RaX - TServerOptions.Load() - Loads ini keys into variables. [2006/05/06] - RaX - TServerOptions.WriteNewINI() - Writes a new copy of the ini with default values. - - Rev 1- [2006/05/05] - Tsusai - Import to http://opensvn.csie.org/HeliosProject/ - FROM OPENSVN.CSIE.ORG/TSUSAI/HELIOS - Rev 40- [2006/05/05] - RaX : Overview - CINCO DE MAYO, Reorganized a large part of the code. [2006/05/05] - RaX : Moved Console commands back into TCommands class [2006/05/05] - RaX : Reorganized startup messages into an outline format. [2006/05/05] - RaX : Redid the main loop to allow TCommands.Exit to exit the loop. [2006/05/05] - RaX : Added check at the beginning of TCommands.Parse to see if the string was blank, if it was blank, it would not exexute the parsing routine. [2006/05/05] - RaX : Finally, I tested the changes. Everything checks out ok. There seems to be no memory leaks, and it seems to be uncrashable. Hopefully this will be a good building block for the other servers. - - Rev 39- [2006/05/04] - Tsusai : The original bug problem was that i was using a byte type for the loop. 0 to -1 crashes with the range error, due to the fact byte type cannot be less than 0. Fixed. - - Rev 38- [2006/05/04] - RaX : Bugfix :: If there aren't any charaservers in charaserverlist, there would be a range error in loginprocesses.pas - SendCharaServers. Fixed with condition checking if there is a charaserver in the list. - - Rev 37- forgot changelog - - Rev 36 - [2006/05/04] - Tsusai: Bugfix and added linux compatability Helios.dpr : added one of the few win/linux conditional defines. Console.pas : removed database variables, activated loginserver. Globals.pas : added ADatabase as a global variable here. - - Rev 35 - [2006/05/04] - Tsusai - GUI removal and reorganization to accomidate. Helios.dpr : executes in a controlled loop to keep the application alive. Console.pas : new console class of the application (MainProc). Items from Commands.pas moved here Commands.pas : removed Socket.pas : removed tsocket class, but kept procedures. Those procedures are enough, don't need to create and destroy classes (memory) over and over just yet. not till we have game objects in place. Database.pas : moved Reload here from Commands - - Rev 34 - [2006/05/03] - RaX - Fixed bug from rev 29, AnAccount was being free'd after being added as an object to accountlist in Database.pas - LoadAccountInfo. This was also removing the object from accountlist. - - Rev 33 - [2006/05/03] - RaX - Removed login processes from Socket.pas ...for now...=) Moved Socket.pas into common. - - Rev 32 - [2006/05/03] - RaX - Miscalculated version numbers in changelog. This fixes them. - - Rev 31 - [2006/05/03] - RaX - Moved all socket related code into socket class, renamed variables in all routines in socket.pas. Added command "/commands" to display available console commands. - - Rev 30 - [2006/05/03] - RaX - Added some more of the socket interface to the socket class, there's a bit more to go though. (SendBuffer was added, all Packet handling will be done by this class soon, and will make it easier to swap out sockets if need be). - - Rev 29 - [2006/05/03] - RaX - Modified socket code to be accessed by a class, for flexibility. It's been tested and works. - - Rev 1-28 - Tsusai [2006/05/01] - Forgot to SVN add database.pas [2006/05/01] - RaX updated reload in commands.pas [2006/05/01] - Added RaX's changes: Now Win32 (not everyone has Delphi Ent for cross) Database changes, added Command.pas. Also Added "missing" CharaServerPacket unit [2006/04/13] - Added project group, added beginning of character server. [2006/04/07] - Added new version of Helios - Tsusai

    posted 893 days ago

  • Helios Public Releases Release 1 - Proof of Concepts file released: Helios_0.0.1.274_Linux.zip

    _ _ _ _ | | | | | | (_) | |__| | ___ | | _ ___ ___ | __ | / _ \ | | | | / _ \ / __| | | | | | __/ | | | | | (_) | \__ \ |_| |_| \___| |_| |_| \___/ |___/ Ragnarok Emulator Developers & Contributers - Tsusai - RaX - Aeomin - ChrstphrR (CR) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Release 1 -------------------------------------------------------------------------------- - Rev 274 - [2007/05/29] Tsusai - RELEASE 1. See Release Notes.txt. - - Rev 273 - [2007/05/29] RaX - Added in #warp for the proof of concept release, this is a HACKED IN ADDITION, do not expect it to stay, It'll be replaced by a much cleaner and better behaving version at a later date. - - Rev 272 - [2007/05/29] Tsusai - LuaNPCCore - RunLuaNPCScript: Forgot to uncomment a test line and remove the pcall line. - - Rev 271 - [2007/05/29] Tsusai - Apparently my Div by 0 test survived the Ctrl-S. Removed - - Rev 270 - [2007/05/29] Tsusai - Notes/Overview: More addons to the lua npc engine and various tweaks. [2007/05/29] Tsusai - MadExcept: Linked the VERSION that appears in reports, to read from Version.pas.HeliosVersion [2007/05/29] Tsusai - Being - TBeing: Removed MapPointer. Useless [2007/05/29] Tsusai - NPC - TScriptNPC.Disable: Removed MapPointer [2007/05/29] Tsusai - Being - TBeing.Walk: Added OnTouchCellFound and OnTouchCell, so that I can 1) make code look prety 2) Make sure that once i trigger an Ontouch npc, I don't do it again within its field. [2007/05/29] Tsusai - Character - TScriptState: Added more fields for it. [2007/05/29] Tsusai - Character - TCharacter.Create: Initiallize CharaState. [2007/05/29] Tsusai - OnTouchCellEvent - TOnTouchCellEvent.Execute: Makes sure conditions are right for running the script. [2007/05/29] Tsusai - LuaNPCCommands: Added script_dialog, script_wait, & script_close [2007/05/29] Tsusai - LuaNPCCommands - addnpc: Corrected the TNPC.Point setting [2007/05/29] Tsusai - LuaNPCCore: Added Resuming functions to resume Lua threads. [2007/05/29] Tsusai - PacketDB: Enabled 'npcclicked' & 'npcnextclicked' [2007/05/29] Tsusai - ZoneRecv: Added NPCNext & NPCClick. Const'd InterServer recv commands' InBuffer. [2007/05/29] Tsusai - ZoneRecv - ShowMap: Removed MapPointer [2007/05/29] Tsusai - ZoneRecv - CharaWalkRequest: Added some conditionals before walking. [2007/05/29] Tsusai - ZoneRecv - GetNameAndID: Added NPC data retrieval - - Rev 269 - [2007/05/27] CR - Overview: Bugfix! Solved out 3 bugs with walking/pathing, two pointed out by Tsusai and RaX while testing NPC Warps, and then the map- edge errors found trying to quell the complaints about unwalkable tiles that shouldn't be. That said, there still remains an issue with some unwalkable tiles, while I was testing this on the new1-2 map at 100,9 (as Tsusai suggested to test). Situation: the little "coves" to the left and right at the bottom, that are 1x3 tiles aren't reachable. I'm committing my changes to solve the aformentioned 3 bugs, because that solves out 98% of the issues found, and now we'll have more people to test and sort out that last remaining pesky problem. :P :) [2007/05/27] CR - Map TMap.GetPath: Applied 3 sets of bugfixes, two caused by my algorithm tweaks, one pre-existing: Mea Culpa: Infinite Loops, and improper pathing when the mouse button is held down to walk are solved. Pre-existing and discovered while dealing with the rest: We failed to account for map edges properly in our 16 radius search range, and this caused improper coordinates to be sent for the path. This one wasn't found right away, because we weren't testing on more than the new1-1 map. - - Rev 268 - [2007/05/25] Tsusai - Notes/Overview: Zone Updates. [2007/05/25] Tsusai - ZoneRecv: Moved things around a bit. Moved maploading back into ShowMap, and moved the Zone count increase from ShowMap into MapConnect. [2007/05/25] Tsusai - ZoneRecv -RecvWarpRequestReplyFromInter: Removes player from current cell. [2007/05/25] Tsusai - ZoneSend: Cleaned up uses [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TBeing to TCharacter. [2007/05/25] Tsusai - ZoneSend - SendAreaChat: Removed ABeing, changed to APerson, and added TCharacter conditionals. [2007/05/25] Tsusai - ZoneSend - ZoneSendBeing: Will not send information on hidden npcs. [2007/05/25] Tsusai - ZoneSend - ZoneUpdateDirection: Changed TCharacter to TBeing. [2007/05/25] Tsusai - ZoneSend - ZoneSendWarp: removes player from cell (same zone warp) - - Rev 267 - [2007/05/25] Tsusai - Notes/Overview: Lua Updates [2007/05/25] Tsusai - LuaCoreRoutines - MakeLuaThread: Finally got it to work the way I want it. Creates a new execution thread, links to the original globals, and keeps its own globals. [2007/05/25] Tsusai - LuaNPCCommands: Cleaned up USES, added the first real NPC command, "moveto". [2007/05/25] Tsusai - LuaNPCCommands - MakeNPCWarp: Forgot to add Job ID assignment. [2007/05/25] Tsusai - LuaNPCCore: Cleared up uses. [2007/05/25] Tsusai - LuaNPCCore - GetCharaFromLua: Returns a boolean function if retrieval of character data was successful. [2007/05/25] Tsusai - LuaNPCCore - RunLuaNPCScript: Added termination of lua thread. Not sure if that is a good spot or not. I will know soon. - - Rev 266 - [2007/05/25] Tsusai - Notes/Overview: Fixed USES in the following: ZoneServer, InterServer, InterRecv. - - Rev 265 - [2007/05/25] Tsusai - Being - TBeing.Walk: Fixed The ontouch event firing, due to an array typo. Also added sets the character to "standing" so the walk routine exits properly. [2007/05/25] Tsusai - NPC - TScriptNPC.OnTouch: fixed caller (was executing the clicking version). [2007/05/25] Tsusai - NPC - TScriptNPC.Enable & Disable: Fixed initial check to just check for OnTouchEnabled. [2007/05/25] Tsusai - TWarpNPC.Create: Now automatically sets the warp npc to an enabled state. - - Rev 264 - [2007/05/25] Tsusai - Added IS TCHARACTER conditionals to all routines (We were sending chat, and various packets to NPCs) - - Rev 263 - [2007/05/25] Tsusai - OnTouchCellEvent : made the ScriptNPC protected, and added a readonly property. - - Rev 262 - [2007/05/25] Tsusai - Notes/Overview: Moved linux notes to bin folder, and updated it with the full list of required libraries. - - Rev 261 - [2007/05/22] RaX - Overview : Broke Inter Server into the same design (*Server, *Send, *Recv) as the zone server. [2007/05/22] RaX - Updated header in InterServer to reflect all it does. [2007/05/22] RaX - Moved send routines from interserver.pas into intersend.pas [2007/05/22] RaX - Moved Recv routines from interserver.pas into interrecv.pas [2007/05/22] RaX - Updated uses in all 3 files. [2007/05/22] RaX - Added InterSend.pas [2007/05/22] RaX - Added InterRecv.pas - - Rev 260 - [2007/05/22] RaX - Overview : Added OnTouch to TScriptNPC. [2007/05/22] RaX - TScriptNPC : Added Enable/Disable [2007/05/22] RaX - TNPC : Changed Enabled to a property. [2007/05/22] RaX - TBeing: Modified .Walk to check for OnTouchEvents and execute them. [2007/05/22] RaX - Added TOnTouchCellEvent, an event object which resides in the currently named Beings intlist32 in TMap.Cell[x][y].Beings (Possible rename to objects?) - - Rev 259 - [2007/05/21] Tsusai - Notes/Overview: Updated a bunch of lua stuff. [2007/05/21] Tsusai - ZoneServer - ProcessZonePacket: Changed the AChara from TCharacter to a pointer of TCharacter. This way I can get the original character data, and pass it on. [2007/05/21] Tsusai - LuaNPCCommands: Redid the syntax checker, not as descriptive as before. Also added npc() to add NPCs [2007/05/21] Tsusai - LuaNPCCore: Removed existing commands, RunLuaNPCScript, SetCharaToLua, & GetCharaFromLua - - Rev 258 - [2007/05/19] CR - Overview: Cleanup in InterServer unit. Added class header, initial description of the purpose of the InterServer. Made changes, including new properties that lend clarity to routines that used to do the casting work in-situ. [2007/05/19] CR - InterServer - TInterServer.RecvGMCommandReply: Altered header, indent and style changes. Use of new ClientList and ZoneServerLink property and a with clause to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.InterSendGMCommandToZones: Altered header, indent and style changes. Extracted a local procedure to construct the packet ($2206), and slight optimizations made. Used ClientList and ZoneServerLink properties for clarity. [2007/05/19] CR - InterServer - TInterServer.RecvWhisper: Altered header, indent and style changes. Use of with, and ZoneServerLink to clarify code. [2007/05/19] CR - InterServer - TInterServer.RecvWhisperReply: Alterd Comment Header, indent and style changes. Used ZoneServerLink and ClientLink properties to make code cleaner to read. [2007/05/19] CR - InterServer - TInterServer.SetPort: Altered Comment Header. Changed behavior so that fPort and TCPServer.DefaultPort are only altered IFF Value is different from fPort. Value parameter made constant. [2007/05/19] CR - InterServer - TInterServer.GetClientList: Created routine. Property read handler for ClientList. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerInfo: Created routine. Property read handler for ZoneServerInfo. [2007/05/19] CR - InterServer - TInterServer.GetZoneServerLink: Created routine. Property Read handler for ZoneServerLink. [2007/05/19] CR - InterServer - TInterServer.RecvZoneWarpRequest: Altered Comment Header. Indent and style changes, with clause added to declutter a database value read. - - Rev 257 - [2007/05/13] - Tsusai - Notes/Overview: Fixed packet_db/zone related parameters. [2007/05/13] - Tsusai - Packet_Db: Modified ExecCommand types to have var and const for their parameters. [2007/05/13] - Tsusai - ZoneRecv: Updated all parameters for the above. [2007/05/13] - Tsusai - BufferIO: Added const/var to all parameters. - - Rev 256 - [2007/05/08] - RaX - Fixed hints and warnings that Turbo Delphi failed to catch. I finally fixed my compiler! - - Rev 255 - [2007/05/07] CR - Overview: Found the holy grail! Speedup on pathing, with a combination of logic simplification, and finding the proper spot and calculations for the Cost comparison. Users should notice the faster pathing with points selected near the edge of the character's view. [2007/05/07] CR - Map - TMap.GetPath: Added to comment header to describe this routine's behavior further. Refactored StepCost out of main routine, and improved the efficiency of that cost lookup by simplifying the comparison. Refactored out routines InitializeAnArea and GetOptimalDirection. Renamed local variables: XMod and YMode now are Offset (TPoint), and EndPointMod is now AreaEndPoint. Using DiagonalCost to PROPERLY focus the search area. In testing, this yields speeds half the time of the algorithm used in rev 254. This proper cost comparison, along with the proper stepping DOWN the compared cost (not incrementing it!), and with use of GetOptimalDirection, we are now aiming the search toward the goal, and avoiding expensive searches that don't compute to a low-cost path. - - Rev 254 - [2007/05/07] CR - Overview: Documentation and preparatory work in MapTypes for an improvement for Pathing on our maps. [2007/05/07] CR - MapTypes: Added constants for the GAT values, taken verbatim from Prometheus beforehand. I'm still a bit unsure that these have the correct names for the values. Someone please, please double check! [2007/05/07] CR - MapTypes - TFloodItem: Changed Cost to LongWord (same range, futureproofing for when Tsusai can't control his urge to compile 64 bit binaries whenever CodeGear releases a 64b compiler). Added methods for finding the Manhattan and Diagonal Costs from the given item to a relative destination point. Added both for completeness, but I'm only intending to use DiagonalCost since it'll give a more accurate heuristic distance. - - Rev 253 - [2007/05/06] CR - Overview: Minor cleanup in some TCharacter Set* methods -- documenting the routines, making parameters constant, and minimizing flags set for saving the Character State TCharacter.DataChanged isn't flagged when the value is identical to the Set* method's stored property value. [2007/05/06] CR - Character - TCharacter.SetBAbyID, SetOnline, SetHomunID: Aforementioned changes above applied to these property writing routines. - - Rev 252- [2007/05/04] - Tsusai - Notes/Overview: More tweaks to TWarpNPC & its lua side, and some documentation. New warp syntax, npc name is also the lua function name to call [hidden]warp("map","npc name and function name",x,y,xradius,yradius) [2007/05/04] - Tsusai - Character - TCharacter: Clears personal thread on destroy. [2007/05/04] - Tsusai - NPC - Added documentation, including a "tree" of how I plan the NPC object structure. [2007/05/04] - Tsusai - NPC - TWarpNPC: Removed "Destination" values. A warp will be a ontouch activated lua script. This will allow for random warps as well. Removed static JID value. [2007/05/04] - Tsusai - Map: Removed Lua from maps. [2007/05/04] - Tsusai - GameConstants: Added NPC_WARPSPRITE & NPC_INVISIBLE constants. [2007/05/04] - Tsusai - LuaCoreRoutines: Documented Lua_isNonNumberString and added a "is not nil" check in TerminateLuaThread. [2007/05/04] - Tsusai - LuaNPCCommands: Added hiddenwarp support. Broke up the npc warp reading. Now the syntax checker is its own procedure, and addwarp and addhiddenwarp are designed to go through the checker and TWarpNPC maker. [2007/05/04] - Tsusai - LuaNPCCore: Added comments. - - Rev 251 - [2007/05/03] - Aeomin - Overview: Implement Whisper. [2007/05/03] - Aeomin - Added RecvWhisperReply & RecvRedirectWhisper procedure [ZoneRecv.pas] [2007/05/03] - Aeomin - Added RedirectWhisperToZone & SendWhisperReplyToInter procedure [ZoneInterCommunication.pas] [2007/05/03] - Aeomin - Fixed type in Game database, lost '' in query [MySQLGameDatabase.pas(LoadChara)] [2007/04/27] - Aeomin - Fixed typo header in Static database of JanSql [JanSQLStaticDatabase.pas(GetMapZoneID)] [2007/04/27] - Aeomin - Added SendWhisperReply procedure to tell client about result of whisper [ZoneSend.pas] [2007/04/27] - Aeomin - Added SendWhisperReplyToZone procedure to parse the whisper reply code from Inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added RecvWhisper procedure to parse the request from zone [InterServer.pas] [2007/04/27] - Aeomin - Added Whisper procedure to parse Whisper packet [ZoneRecv.pas] [2007/04/27] - Aeomin - Added SendWhisperToInter procedure to send whisper request from zone to inter [ZoneInterCommunication.pas] [2007/04/27] - Aeomin - Added 0x2210-0x2212 packet in packet_db.txt - - Rev 250 - [2007/05/02] - Tsusai - Notes/Overview: Added basic TNPC structures and added the first REAL lua script function, warp(), which will load the parameters it has, and create a TWarpNPC. warp("new_1-1","Start-Castle",148,112,2,3,"new_1-2",100,9) is the syntax warp(map,name,x,y,xradius,yradius,destmap,destx,desty); [2007/05/02] - Tsusai - NPC: Added, includes some basic TNPC structures, and descending classes such as TScriptNPC & TWarpNPC [2007/05/02] - Tsusai - InterServer - TInterServer.RecvZoneWarpRequest: Changed the ZoneID check to check for > 0. [2007/05/02] - Tsusai - LuaCoreRoutines: Added bool function Lua_isNonNumberString. A number like 345 passes the provided lua_isstring function, because it can be converted to a string. This function checks if it is a string, then if that is not a number. Good for alphanumeric strings only, no exceptions to pure numbers. [2007/05/02] - Tsusai - LuaNPCCommands: Changed addwarp & addnpc lua commands to npc and warp (still have add* prefix for the delphi procedure side). [2007/05/02] - Tsusai - LuaNPCCommands - AddWarp: No longer a dummy procedure. This sucker error checks like MAD, makes a TWarpNPC if its ok, and adds it to the zone global list. [2007/05/02] - Tsusai - LuaNPCCore: Splitted code from PrepLuaForNPCScripts to SetCharaIDToLua. Added GetCharaIDFromLua. [2007/05/02] - Tsusai - ZoneServer: Added a NPCList (TIntList32) for storing NPCs. Added create & free methods as well. - - Rev 249 - [2007/05/02] - RaX - Fixed packet_db, this corrects the freezing problem experienced in newer clients. (9/18+) - - Rev 248 - [2007/05/01] - Tsusai - Notes/Overview: Fixed a warp error for same map or same zone. [2007/05/01] - Tsusai - ZoneSend - ZoneSendWarp: Didn't save position for same map and same zone warping - - Rev 247 - [2007/05/01] - Tsusai - Notes/Overview: Added RaX's warp code w/ some fixes. Allows for warping on the same map, same zone, and multi zone warping :) [2007/05/01] - RaX - ServerInfo: const'd all strings that were not changing. [2007/05/01] - RaX - InterServer: Added RecvZoneWarpRequest and InterSendWarpReplyToZone. [2007/05/01] - RaX - InterServer - TInterServer.ParseInterServ: Added reading of zone warping details (RecvZoneWarpRequest) [2007/05/01] - Tsusai - InterServer - RecvZoneWarpRequest: Edited not to return any info if the zone w/ the request warp-to map doesn't exist. They can walk to the magical unknown map for all I care. [2007/05/01] - Tsusai - LoginServer - TLoginServer.Stop: Reversed the for loop of Charaserver deletions. [2007/05/01] - Tsusai - LoginServer - RemoveFromAccountList: Commented out the Account Key nilling. Fudges things up multi exe setups. [2007/05/01] - RaX - ZoneRecv: Added RecvWarpRequestReplyFromInter. [2007/05/01] - Tsusai - ZoneRecv - RecvWarpRequestReplyFromInter: Added updates to characters map and points, so after the d/c, it saves, and loads proper. [2007/05/01] - RaX - ZoneSend: Added ZoneSendWarpRequest. [2007/05/01] - Tsusai - ZoneSend: Added const to all procedures. [2007/05/01] - RaX - ZoneServer - TZoneServer.InterReadClient: Added parsing for the warp request reply from interserver to pass to RecvWarpRequestReplyFromInter. - - Rev 246 - [2007/04/29] Tsusai - Notes/Overview: Walking mechanism revisited. Initial design modeled after prometheus highly inefficent. It would cycle through all beings in a 33x33 area (16 radius, 1089 cells), as it cycled, it would go through all the beings for that cell to see if they were in the edge cells for showing and disappearing. A new flow control was designed, reducing the number of cells checked down to approx 244 (down to 22% of original). [2007/04/29] Tsusai - Being - TBeing.Walk: Broke up sections to HideBeings and ShowBeings. Also redid the cell looping system to loop through a set of border cells (~244 for first/last two rows/columns) instead of 1089 cells. [2007/04/29] Tsusai - Map - TMap: Removed any/all lua references - - Rev 245 - [2007/04/29] RaX - Commented TMap.GetPath. - - Rev 244 - [2007/04/29] CR - Overview: Cleanup of TCharacter.CalcMaxHP for clarity. [2007/04/28] CR - Character: TCharacter.CalcMaxHP: Altered Comment Header, added further description of the routine. Used an internal variable to simplify & shorten the span where the Database connection is open to retrieve the BaseMaxHP value. Reindented the formula for initializing MaxHP. Boy is it clearer to read without that long abomination of a method name to retrieve "GetBaseMaxHP"! :P~~ - - Rev 243 - [2007/04/28] CR - Overview: Made new data type in Being for stat arrays, used in both TBeing and TCharacter. Cleanup in TCharacter. [2007/04/28] CR - Being: New type ByteStatArray replaces the repeated use of array [STR..LUK] of Byte; definitions in Being and Character. [2007/04/28] CR - Character: Reindented the data types above TCharacter. [2007/04/28] CR - Character: TCharacter: Modified Class header. Eliminated private section - all internal fields used for properties are now protected, instead. Removed GetBaseStats property method (unneeded). Altered SetBaseStats to model the changes I made in TBeing last commit. Eliminated public variables that were IDENTICAL to those in TBeing (to avoid a repeat of problems like we had with fZeny in an earlier commit). Changed ParamUP and ParamBonus so they use the ByteStatArray type like TBeing uses for ParamBase. [2007/04/28] CR - Character: TCharacter:GetBaseStats: Removed. This class will call the ancestor GetBaseStats instead, which is all that was done within this routine (I would've kept it if it had to alter DataChanged). [2007/04/28] CR - Character: TCharacter:SetBaseStats: Altered Comment Header, improved description, noted Pre and Post conditions. Altered parameters to match TBeing. - - Rev 242 - TYPOS IN REVISION ENTRY [2007/04/28] CR - Overview: Commenting and headers added. Minor changes made for improve efficiencies, and comments left where there might be room for further gains, once proper explanations are fleshed out. [2007/04/28] CR - Being: Altered unit header. Improved unit description. Added class header for TBeing, described minor changes to the interface there. [2007/04/28] CR - Being: TBeing: Altered header, included description. Made empty routines CalcMaxHP and CalcMaxSP abstract. Eliminated private section, moved AreaLoop into protected. [2007/04/28] CR - Being: TBeing.Walk: Altered comment header. Added scathing comments for the lack of explanation for what REALLY goes in within this routine when two of the devs working on this project had to deal with poorly documented code beforehand and SHOULD KNOW BETTER than to leave code of this complexity unadorned with ANY sensible comments. On a positive note, the explanation for the routine was fine. [2007/04/28] CR - Being: TBeing.Walk:GetDirection: Changed Index from Integer to Byte type to eliminate a cast. [2007/04/28] CR - Being: TBeing.Create: Altered Comment Header. Added comment regarding inherited behavior. [2007/04/28] CR - Being: TBeing.Destroy: Altered header, added a better description. Defined Pre and Post Conditons. Added a comment stating that the inherited call must come last. Bugfix: moved inherited call last so ancestor's cleanup happens after the EventList/Path are freed. [2007/04/28] CR - Being: TBeing.SetName: Made Value parameter constant. [2007/04/28] CR - Being: TBeing.GetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.SetBaseStats: Added Comment Header. Added precondition for Index range. [2007/04/28] CR - Being: TBeing.CalcSpeed: Added comment header & description. [2007/04/28] CR - Character: TCharacter.SetName: Made Value parameter constant to correspond with change made in TBeing. - - Rev 241 - [2007/04/28] CR - Overview: Commenting, reuse of constants to self-explain an array's bounds. [2007/04/28] CR - GameConstants: Altered header. Rearranged Direction constants to reuse NORTH and NORTHEAST as the bounds for the constant Directions array. - - Rev 240 - [2007/04/26] RaX - Fixed small bug in MySQLCommonDatabase -> SaveAccount. A space was accidentally removed in ChrstphrR's changes in rev 220. - - Rev 239 - [2007/04/25] Tsusai - Notes/Overview: Small Lua cleanup & added routine descriptions. [2007/04/25] Tsusai - LuaCoreRoutines, LuaNPCCommands, & LuaNPCCore: Routine descriptions added. [2007/04/25] Tsusai - LuaNPCCommands: Rearanged information. Remembered I could use the forward declaration, thus I am able to remove my dummy npc commands from interface. - - Rev 238 - [2007/04/25] Tsusai - Notes/Overview: Lua Lua Lua Lua Lua Lua. Seriously, alot of restructuring of existing npc routines vs common lua routines. [2007/04/25] Tsusai - LuaCoreRoutines: Added. I've split alot of crap out of the other units and made commands so that no other non Lua* unit calls the dll wrapper LuaPas itself. Added TLua, which is just the Plua_state, TLuaInfo, (for use w/ descendant threads like map and character lua's) which stores a lua for itself, its own reference ID to the parent, and a link to the parent. This is so that descendant execution threads can be unreferenced later and cleaned up on the fly :) [2007/04/25] Tsusai - LuaNPC*: Renamed from NPCCore/Commands. Redid and or rearranged the routines in these files with another or LuaCoreRoutines. [2007/04/25] Tsusai - ZoneServer: Updated all lua calls because of the restructure. [2007/04/25] Tsusai - Character: Lua (TLua) changed to LuaInfo (TLuaInfo). [2007/04/25] Tsusai - Map: Updated NPCLua (TLua) to NPCLuaInfo (TLuaInfo). Updated all lua related calls for the above restructure. - - Rev 237 - [2007/04/24] Tsusai - Notes/Overview: Linux fix related to the GetTick function. [2007/04/24] Tsusai - WinLinux - GetTick: The existing code only returned uptime in seconds. Unfortunatly in linux there is no current uptime in ms like Windows. This fix stores a linux time at startup (seconds since 1900 and its ms), then will take the difference for the tick. - - Rev 236 - [2007/04/23] Tsusai - Notes/Overview: Further refined lua in Helios. Changed out once again the Delphi unit that controls the dll. With that change, we can now use the latest Lua dll build 5.1.2. Also corrected a tiny error with the linux compile line dealing with LoginAccountInfo. This was giving me phantom errors in the delphi environment. [2007/04/23] Tsusai - Helios.dpr: Added the note that our license does not override third party licensing. [2007/04/23] Tsusai - 3rdParty.txt: Updated [2007/04/23] Tsusai - Lua.dll: Added Lua 5.1.2 dll and removed the lualib.dll (not used anymore). [2007/04/23] Tsusai - LuaPas: Added. Modified to for Windows/Linux dll/so names. [2007/04/23] Tsusai - Lua, luaxlib, lualib: Removed the THlua package. [2007/04/23] Tsusai - Helios.dpr: Changed the lua paths and fixed LoginAccountInfo linux path [2007/04/23] Tsusai - test.lua: Removed. [2007/04/23] Tsusai - Lua Notes.txt: Added some lua notes. [2007/04/23] Tsusai - Character.pas: Updated Uses for LuaPas [2007/04/23] Tsusai - Map.pas - TMap: Added NPCLua to TMap. Added loading of Scripts/MapLoaders/mapname.lua for dynamic npc loading. [2007/04/23] Tsusai - NPCCommands: Updated uses, added results to existing functions to kill compiler hints. [2007/04/23] Tsusai - NPCCore: Updated uses. MakeCharacterLuaThread changed to MakeLuaThread. Takes 2 lua pointers now. LuaCleanup: Removed RunLuaScript: Added, split from LuaSetup. [2007/04/23] Tsusai - ZoneServer: Updated uses. Now calls Core.lua instead of test.lua. - - Rev 235 - [2007/04/22] RaX - Fixed DefaultZeny not working. I had forgotten to remove the private fZeny variable from TCharacter back in the day which was now overriding the one in TBeing. Removed. I also went ahead and cleared up the other redundant problem causing variables. - - Rev 234 - [2007/04/20] RaX - Added GetChara(CharacterName) rather than just by ID in Database/GameDatabase - - Rev 233 - [2007/04/17] RaX - Added ScriptDirectory to ZoneConfig in Zone.ini. [2007/04/17] RaX - Updated EnsureFolderStructure to include the new script directory. - - Rev 232 - [2007/04/17] Tsusai - Notes/Overview: I started having some weird File.dcu not found, when doing random things. So I decided to clean up the uses again. This solved my issues. [2007/04/17] Tsusai - Added a Script State for TCharacter. [2007/04/17] Tsusai - Using Icarus as a guide, I cleaned up the uses of the following: DelayDisconnectEvent, CharaLoginCommunication, LoginServer, NPCCore, ZoneCharaCommunication. - - Rev 231 - [2007/04/16] Tsusai - Notes/Overview: Lua now integrated w/ Helios in a simple way. Units may need some cleanup, but when you run the zone, you will see results of loading test.lua (empty NPC Created reply & stored function execution). [2007/04/16] Tsusai - Removed dynamic lua file that was added. For some odd reason it wouldn't work proper. Replaced with THLua units. [2007/04/16] Tsusai - Added test.lua and lua dll's to bin directory. [2007/04/16] Tsusai - Character - TCharacter: Added personal lua pointer. [2007/04/16] Tsusai - ZoneServer - Loads and runs test.lua. Also cleans up npc lua - - Rev 230 - [2007/04/15] Tsusai - Notes/Overview: Reorganized Lua and added work in progress units (not active). [2007/04/15] Tsusai - ThirdParty/Lua.pas - Replaced with a different version by another author. This unit supports dynamic loading, so a compile used as a login server will not require the dll now. [2007/04/15] Tsusai - Common/Lua/ - Moved to Servers/Zone/Lua/ [2007/04/15] Tsusai - NPCCommands.pas & NPCCore.pas - Added to Servers/Zone/Lua/ - - Rev 229 - [2007/04/12] Aeomin - Append check for char and zone server to disallow LoginKey of 0 [CharacterServer.pas (SendCharas) ; ZoneRecv.pas (MapConnect)] [2007/04/12] Aeomin - Added reset LoginKey to 0 after client DC [LoginServer.pas (RemoveFromAccountList)] - - Rev 228 - [2007/04/12] RaX - Fixed a warning in Aeomin's new code...Changed Seconds from longword to integer in Account.pas - TemporaryBan. - - Rev 227 - [2007/04/12] Notes/Overview: Implement Duplicate Login Session Check. [2007/04/12] Aeomin - Added Show_FriendlyMessage_On_DuplicateLogin option for Char server, if set to TRUE, char server will show "Someone has already logged in with this ID" instead just DC when duplicate login [CharaOptions.pas, CharacterServer.pas(LoginClientKickAccount)] [2007/04/11] Aeomin - Added DuplicateSessionKick procedure to search & kick the character [ZoneSend.pas] [2007/04/11] Aeomin - Added SendKickAccountToZone procedure to send kick packet to Zone server [ZoneCharaCommunication.pas] [2007/04/11] Aeomin - Added LoginClientKickAccount procedure to check if account is online and kick [CharacterServer.pas] [2007/04/11] Aeomin - Added SendDCError procedure to send connect error packet 0x0081 [LoginServer.pas] [2007/04/11] Aeomin - Added Packet 0x2007 and 0x2110 for request force kick [packet_db.txt] [2007/04/10] Aeomin - Added TemperaryBan in TAccount to ban account temperary (in seconds) [Account.pas] [2007/04/10] Aeomin - Added GetBanUntilTimeString to TAccount for get remaining time when temperary ban [Account.pas] [2007/04/10] Aeomin - Changed "if not AnAccount.IsBanned then" to "if not AnAccount.State > 0 then" for extension [LoginServer.pad(ValidateLogin)] [2007/04/10] Aeomin - Added support 0x2005 and 0x2006 in Login Server which doing similar function as Char Server [LoginServer.pas] [2007/04/10] Aeomin - Added Transfering (Boolean) to TClientLink for keep the data when client selected a Character [PacketTypes] [2007/04/10] Aeomin - Added DcAndKeepData (Boolean) In TCharacter for keeping data while client is disconnected [Character.pas] [2007/04/10] Aeomin - Added SendAccountLogon/SendAccountLogOut procedure to update account in Account server's accountlist from Char server [CharaLoginCommunication.pas] [2007/04/10] Aeomin - Updated LoginClientRead to support Character Server ID [CharacterServer.pas] [2007/04/10] Aeomin - Changed Validated from Boolean to Byte [CharaLoginCommunication.pas (SendValidateFlagToChara)] [2007/04/10] Aeomin - Added ServerID in TCharaServerInfo [CharacterServerInfo.pas] [2007/04/10] Aeomin - Changed fCharaServerList From TStringList to TIntList32 [LoginServer.pas] [2007/04/10] Aeomin - Changed size of 0x2000 from 44 to 48 to support ID [packet_db.txt] [2007/04/10] Aeomin - Added config option ID for char server.[CharaOptions.pas] [2007/04/10] Aeomin - Added delaydc in SendCharacterSelectResponse and SendQuitGameResponse [ZoneSend.pas] [2007/04/10] Aeomin - Added UpdateToAccountList and RemoveFromAccountList [CharacterServer.pas] [2007/04/10] Aeomin - Added SendZoneCharaLogon and SendZoneCharaLogOut [ZoneCharaCommunication.pas] [2007/04/10] Aeomin - Added Packet 0x2108 and 0x2109. [packet_db.txt] - - Rev 226 - [2007/04/12] Tsusai - Notes/Overview: Fixed Linux compile errors and a file move. [2007/04/12] Tsusai - MSSQLClient: Somehow forgot that SysUtils was needed for linux. [2007/04/12] Tsusai - Helios.dpr: Changed Crt unit files from WinConsole to LinCRT & NCurses. [2007/04/12] Tsusai - Moved Lua.pas into ThirdParty folder. Moved Dummy files for my reference. - - Rev 225 - [2007/04/11] RaX - Added Trunk/NOTES/Source Directory Structure.txt, this file explains the folder structure in the source code. - - Rev 224 - [2007/04/11] RaX - Overview: Updated the dpr to show the new locations of the files. - - Rev 223 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Yet another purposely broken build, this one completes moving all the source files into their appropriated positions. [2007/04/11] RaX - Renamed 3rdParty to ThirdParty. [2007/04/11] RaX - Moved Database.pas into the Database folder. [2007/04/11] RaX - Created Common/Classes/Beings folder, moved Being and descendants into it. [2007/04/11] RaX - Created Common/Classes/Lists folder, moved custom lists into it. - - Rev 222 - BROKEN BUILD(On Purpose.) [2007/04/11] RaX - Overview: Moved files around to be more sane in the repository. [2007/04/11] RaX - Moved Classes Folder into Common Folder. [2007/04/11] RaX - Moved Packet_DB.pas into Zone Folder. [2007/04/11] RaX - Moved Zone, Character, Inter, and Login Folders into a new Servers Folder. [2007/04/11] RaX - Moved Console Folder into Common Folder. [2007/04/11] RaX - Moved Lua folder into Common folder. [2007/04/11] RaX - Moved Config Folder into Common Folder. [2007/04/11] RaX - Removed "Database" Folder from /src. [2007/04/11] RaX - This commit breaks the build on purpose! Moving the files around requires multiple commits to complete. - - Rev 221 - [2007/04/10] RaX - Overview: made ini input use ensurerange on values that could crash the server. [2007/04/10] RaX - Added NetworkConstants.pas. Contains MAX_PORT. [2007/04/10] RaX - Added MAX_DBTYPE to DatabaseConstants.pas [2007/04/10] RaX - Added ensurerange around any integer/word/longword type variables in the ini files to prevent range errors from users. - - Rev 220 - [2007/04/07] CR - Overview: Cleanup - Static Database - Template and implemented units for Jan and MySQL synched up. [2007/04/07] CR - StaticDatabaseTemplate: Altered header. Made all methods abstract. All parameters are strictly defined as in/out/var/const to self document and make string parameters more efficient when the methods are called. [2007/04/07] CR - JanSQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - MySQLStaticDatabase: Altered header, improved description. Private fields made protected, and into public read-only properties. Parameter changes made to follow the changes made in the ancestor class. [2007/04/07] CR - Version: Updated Version string/version info. - - Rev 219 - [2007/04/06] CR - Overview: Cleanup - Game Database - Template and implemented units for Jan and MySQL synched up. [2007/04/06] CR - GameDatabaseTemplate: Altered header, improved description. Template class made entirely abstract, and all parameters are specified as in/out/var/const explicitly. [2007/04/06] CR - JanSQLGameDatabase: Altered header. Improved description/ purpose of unit. Changes to TJanSQLGameDatabase. [2007/04/06] CR - MySQLGameDatabase: Altered header, added to description. Changes made to TMySQLGameDatabase class to match changes made in the Game DB Template. - - Rev 218 - [2007/04/06] Aeomin - Forgot commit dpr file. - - Rev 217 - BROKEN BUILD [2007/04/06] Aeomin - Changed console message related to update online count from MS_NOTICE to MS_DEBUG [LoginServer.pas , CharacterServer.pas] [2007/04/06] Aeomin - Added Who.DelayDisconnect(10000); in Kick [ZoneSend.pas (Kick)] [2007/04/06] Aeomin - Added DelayDisconnectEvent.pas and DelayDisconnect in being to disconnect client after time expire (Used in kick) [DelayDisconnectEvent.pas , Being.pas] [2007/04/06] Aeomin - Added support /w | /who in game to receive total online count [ZoneRecv.pas (SlashWho) , ZoneSend.pas (ZoneSendConnectionsCount)] [2007/04/06] Aeomin - Added support of packet 0x2107 to set total online count [ZoneServer.pas] [2007/04/06] Aeomin - Added UpdateOnlineCountToZone and SendOnlineCountToZone to send Total Online Count to all zones [CharacterServer.pas , ZoneCharaCommunication.pas] [2007/04/06] Aeomin - Added Connection: TIdContext to let character able to send packet to all zone servers [ServerInfo.pas] [2007/04/06] Aeomin - Added packet 0x2107 in packet DB use to send total online count from Char server to Zone. [packet_db.txt] - - Rev 216 - [2007/04/06] CR - Overview: Cleanup - made TCommonDatabaseTemplate abstract, and rigorously defined each parameter to self-document. [2007/04/06] CR - CommonDatabaseTemplate: Changed Header Style. Made the class entirely Abstract. All methods state explicit in/out/var/const for each parameter. Eliminated Constructor and Destructor definitions because they are identical to TObject's -- and all derived classes have more complex constructors. [2007/04/06] CR - JanSQLCommonDatabase: Made all parameters var/const/in/out. Create doesn't override the constructor in the template (due to changes to the template model). Parent and Database made into read-only properties, with f* internal fields to store them. Converted all private fields and methods to protected. [2007/04/06] CR - MySQLCommonDatabase: Altered header for class. Moved private fields and methods into protected. Made fields f* style, and created read only properties for the original field names. Changed method parameters to model after changes made in TCommonDatabaseTemplate. [2007/04/06] CR - Altered Version string/Version info. - - Rev 215 - [2007/03/31] Aeomin - Fixed account always turns to female when using MYSQL. - Rev 214 - [2007/03/30] CR - Overview: Code cleanup in MySQLCommonDatabase, MySQLGameDatabase units. [2007/03/30] CR - MySQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MySQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 213 - [2007/03/30] Aeomin - Removed SendZoneCharaIncrease in OnConnect [ZoneServer.pas:TZoneServer.OnConnect] and moved to ShowMap [ZoneRecv.pas:ShowMap] [2007/03/30] Aeomin - Commented out debug message that will show every time player login/logout [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo in zone server that may cause unknown problem (Pointed out by RaX) [ZoneServer.pas:TZoneServer.OnDisconnect] [2007/03/30] Aeomin - Fixed typo that made char server to confuse packet (Pointed out by RaX) [CharacterServer.pas:ParseCharaServ] [2007/03/30] Aeomin - Fixed typo causes AV in CharServer when try to calculate online players [CharacterServer.pas:GetOnlineUserCount] [2007/03/30] Aeomin - Changed Server down error code from 3 to 1 [CharacterServer.pas:SendCharaToMap] - Rev 212 - [2007/03/30] Tsusai - Notes/Overview: Basic Online count in place. Updated server<->server documentation [2007/03/30] Tsusai - ServerToServerPackets: Updated for alot of things. [2007/03/30] Tsusai - Packet_Db: Added new online user packets. [2007/03/30] Tsusai - CharacterServer - GetOnlineUserCount: Replaced OnlineUsers with this. Gets total count of all players on the zone. [2007/03/30] Tsusai - CharacterServer - ParseCharaServ: Added packets 0x2105 & 0x2106 for easy online count updating. [2007/03/30] Tsusai - CharaLoginCommunication - SendCharaOnlineUsersToLogin: Changed OnlineUsers to GetOnlineUserCount. [2007/03/30] Tsusai - ZoneCharaCommunication: Added SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServer - TZoneServer OnConnect & OnDisconnect: Added calls to SendZoneCharaIncrease & SendZoneCharaDecrease. [2007/03/30] Tsusai - ZoneServerInfo - TZoneServerInfo: Added OnlineUsers word type. - - Rev 211 - [2007/03/29] RaX - Notes/Overview: Completed Database changes, made database connections connect and disconnect locally. [2007/03/29] RaX - CommonDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - GameDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - StaticDatabase(jan, my, and template) made connect + disconnect public. [2007/03/29] RaX - LoginServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - CharacterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneRecv.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - ZoneSend.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - InterServer.pas - added connect and disconnect around groups of queries in all applicable routines. [2007/03/29] RaX - Remember to Connect before and disconnect after issuing groups of Queries, routine local. - - Rev 210 - [2007/03/28] Tsusai - Notes/Overview: Fixed HP issues. Packet_DB update. Added Lua related files (no dlls yet). [2007/03/28] Tsusai - Character - TCharacter.CalcMaxHP: MaxHP + Calc'd MaxHP wasn't the right formula. Also made it change the HP to MATCH the MAXHP if its over at the time of calculation. [2007/03/28] Tsusai - Packet_db: Added new packets for '07 clients from eA's. [2007/03/28] Tsusai - ZoneSend - KickAllUsers: Reversed the loop of kicking of characters to prevent any index out of bounds errors. [2007/03/28] Tsusai - Added Lua.pas, folders, and some dummy files for reminders of what I need to do. - - Rev 209 - [2007/03/28] Aeomin - Fixed Access Violation during shutdown, which just an extra check [ZoneServer.pas:OnDisconnect] [2007/03/28] Aeomin - Added a Zone Option which allows kick all players before shutdown, instead just Disconnect. [Only works with proper shutdown (CTRL+C), close button will force close program] [2007/03/28] Aeomin - Added Kick, KickAll procedure [ZoneSend.pad] - Rev 208 - [2007/03/28] CR - Overview: Code cleanup in PacketTypes, ZoneRecv, ZoneSend, ZoneServer, and ZoneServerInfo units. [2007/03/28] CR - PacketTypes: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneRecv: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneSend: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - ZoneServerInfo: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 207 - [2007/03/28] CR - Overview: Code cleanup in Being, Database, Globals, GMCommands, InterServer, JanSQLCommonDatabase, JanSQLGameDatabase, Map, MovementEvents, and MSSQLClient units. [2007/03/28] CR - Being: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 204!) [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. (Oops, missed one from 205!) [2007/03/28] CR - Globals: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - GMCommands: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - InterServer: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLCommonDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - JanSQLGameDatabase: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Map: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MovementEvents: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - MSSQLClient: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Version: Updated version string. - - Rev 206 - [2007/03/28] CR - Overview: Code cleanup in Character, CharacterEventThread, and Database units. [2007/03/28] CR - Character: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - CharacterEventThread: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database: Cleaned up uses clauses using Icarus as a guide. [2007/03/28] CR - Database:TDatabase.Create - Removed hints about unused local variables. Reindented code, wrapping comments and long lines. [2007/03/28] CR - Version: Updated version string. - - Rev 205 - [2007/03/28] CR - Overview: SVN Cleanup [2007/03/28] CR - Version: Updated version string. [2007/03/28] CR - SVN ignores set, to make wading through files when committing less of a chore. trunk/ and subfolders: svn:ignore tag set for "*.~*" trunk/obj/: svn:ignore tag set for "*.dcu" - - Rev 204 - [2007/03/28] CR - Overview: Code cleanup in AreaLoopEvents, Being units. [2007/03/28] CR - Version: updated version number, modified header comment. [2007/03/28] CR - Being: Cleaned up uses clauses - unneeded units removed. Made changes to parameter lists for the TLoopCall declaration. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left (faster calls this way, especially when called repeatedly in triple nested loops!). [2007/03/28] CR - AreaLoopEvents: Cleaned up uses clauses - unneeded units removed, and some moved to local to the routines, not the declaration. Made changes to parameter lists for the routines here, following the new TLoopCall procedure declaration in Being. All parameteters are constant, and eliminated the entirely uncalled X,Ys so that we only have 2 parameters left. - - Rev 203 - [2007/03/27] RaX - Notes/Overview : Moved Zone server to local connections. Removed global database connection. [2007/03/27] RaX - ZoneServer.pas, ZoneRecv.pas, ZoneSend.pas - changed ADatabase calls to threadlink databases. [2007/03/27] RaX - PacketTypes.pas - now TThreadLink.create takes a TIdContext as a param. [2007/03/27] RaX - Database.pas - implemented ClientInfo, set in tthreadlink.create. [2007/03/27] RaX - Account.pas/character.pas - moved database calls to TThreadlink. [2007/03/27] RaX - Moved DatabaseOptions from the database connection to mainproc. - - Rev 202 - [2007/03/26] - Aeomin - Fixed wrong gender showing of other players, apparently is caused new codes which makes every players same gender as your own [ZoneSend.pas:ZoneSendBeing] - Rev 201 - [2007/03/26] RaX - Notes/Overview : Fixed annoying slight timing difference between server and client in walking. [2007/03/26] RaX - Added "DIV 2" to the end of the speed calcs in CharaWalkRequest - zonerecv - - Rev 200 - [2007/03/26] RaX - Notes/Overview : Fixed access violation with help from Aeomin - Thanks [2007/03/26] RaX - I forgot 2 frees of the accountlink =( Now that they're owned by the connection. Fixed. - - Rev 199 - [2007/03/26] RaX - Notes/Overview : Inter Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. [2007/03/26] RaX - GM Commands are now enabled - try out #Zonestatus with an access level of 100 or higher =) Test multiple zones too. - - Rev 198 - [2007/03/26] RaX - Notes/Overview : Character Server now uses local database connections. [2007/03/26] RaX - Changed all ADatabase uses in CharacterServer.pas to TThreadLink calls. - - Rev 197 - [2007/03/26] RaX - Notes/Overview : Login server is now using local connections. [2007/03/26] RaX - Changed all ADatabase uses in LoginServer.pas to TThreadLink calls. [2007/03/26] RaX - Added TThreadLink.Create to OnConnect in login server. - - Rev 196 - [2007/03/26] RaX - Notes/Overview : another sub commit of the massive database changes about to occur... [2007/03/26] RaX - Changed TThreadLink into a parent class with a TDatabase Databaselink as it's only property, it also has a constructor and destructor which create + free it. [2007/03/26] RaX - The other links (CharaServerLink, ZoneServerLink) are descendants of TThreadLink as well as a new TClientLink which is what TThreadLink used to be. [2007/03/26] RaX - Made each inherit the constructors, each also has a destructor which checks and frees the links of they're created. - - Rev 195 - [2007/03/26] RaX - Notes/Overview : Made accounts + characters linked to the client from themselves through ClientInfo rather than just through the tthreadlink. [2007/03/26] RaX - Account.pas - added ClientInfo property. [2007/03/26] RaX - Character.pas changed order of properties. [2007/03/26] RaX - ZoneRecv - implemented setting the account's clientinfo. - - Rev 194 - [2007/03/26] RaX - Notes/Overview : Fixed memory leaks in Account + Character servers. Zone should be fine, we've kept strict control there by dealing with everything through an "owning" list. Just a note...We leaked in EVERY character server function...let's NOT let that happen ever again. - - Rev 193 - [2007/03/25] RaX - Notes/Overview : Removed accountlist from globals. Modified code to deal with it. Moved Account access into TThreadLink.AccountInfo for consistency. [2007/03/25] RaX - Updated Globals.pas, removed all traces of the accountlist. [2007/03/25] RaX - LoginServer.pas, killed accountlist, made account access local. [2007/03/25] RaX - CharacterServer.pas killed accountlist. Made changes to offset the removal such as updating the account's charanum on create. [2007/03/25] RaX - Reorganized and fixed GetAccount and overloads in all database types. They no longer use AccountList + are slightly easier to read =) [2007/03/25] RaX - Removed TCharacter.Account - we now use TThreadLink.AccountLink in all cases. [2007/03/25] RaX - Updated zone server, it now uses account + character link variables. - - Rev 192 - [2007/03/15] Tsusai - Notes/Overview: Added 'Support_Dec06_AndNewerClients' to Character.ini This allows usage of ONLY December 2006 and newer clients when enabled. kRO added the ability to rename a character, which at this time I do not know how to enable/support. [2007/03/15] Tsusai - CharaOptions : Added [OPTIONS] 'Support_Dec06_AndNewerClients', and its parsing. [2007/03/15] Tsusai - CharacterServer : Added WriteCharacterDataToBuffer. This routine handles writing the character's stats to the outgoing buffer at the right offset. Also this routine makes use of the new ini entry, so that the changed packet length is supported. [2007/03/15] Tsusai - CharacterServer - CreateChara & SendCharas : Now call WriteCharacterDataToBuffer. - - Rev 191 - [2007/03/25] CR - Overview: Comments added to explain and state origins of WriteBufferTwoPoints [2007/03/25] CR - BufferIO:WriteBufferTwoPoints - Added Comment Header, and described routine in detail, and in summary. Made remaining three passed parameters constant. Renamed local variables for more clarity: [2007/03/25] CR - Version - updated version string (and version info for exe) - - Rev 190 - [2007/03/25] CR - Overview: Bugfix - code meant to handle and notify user of malformed .pms mapfiles would not work as intended. Result will NOT behave the same as C or C++'s return keyword! [2007/03/25] CR - MapTypes - Added MAX_PMS_HEADER_LENGTH constant. Used in TMapLoadFromFile [2007/03/24] CR - Map:TMap.LoadFromFile - Parameter made constant (optimization) Renamed Parameter "Path" to "PmsFile" to avoid ambiguity with TMap.Path It's a more appropriate name than "Path" in the first place! :) Surrounded TMemoryStream with a try-finally to protect the resource. Fixed major logic flaws -- Result is NOT handled like C/C++'s "return" keyword. Thus, we NEED to use if-then-else branching, not just sequential if-thens. Malformed/hand-mangled maps could cause fatal errors with the old code flow, because it couldn't avoid continuing on instead of bailing early. [2007/03/25] CR - Helios.dpr - removed MadShi units that were added in on Aeomin's previous build. [2007/03/25] CR - Version - Updated text displayable version (and the build number that's stored in the exe itself too). - - Rev 189 - [2007/03/24] - Aeomin - Added IgnoreMob & IgnoreNPC parameter to TBeing.AreaLoop to extend for future NPCs (Mob also is NPC) [Being.pas] [2007/03/24] - Aeomin - Extended TBeing.Walk to handle NPC/Mob and etc... [Being.pas] [2007/03/24] - Aeomin - Renamed ZoneWalkingChar to ZoneWalkingBeing, ZoneSendChar to ZoneSendBeing, ZoneDisappearChar to ZoneDisappearBeing, to support other than character (Npc,Mob etc) [ZoneSend.pas] [2007/03/23] - Aeomin - More typo fixes on direction - - Rev 188 - [2007/03/24] CR - Overview: Hint Removal, Refactor, Credits. Removed a warning for an unused local variable in TCharacter.SendSubStat. [2007/03/24] CR - Character:TCharacter.SendSubStat - Moved first section of this routine into local procedure Send_00b0. Moved the non-implemented blocks into local routines as well. Made all parameters constant, which self- documents these, and makes calling the routine more efficient. Anyone working on this routine, please feel free to use more descriptive or appropriate local routine names! :) [2007/03/24] CR - Updated Contributors on this document and Helios.dpr [2007/03/24] CR - Updated Version String missed in Rev 187 - - Rev 187 - BROKEN BUILD [2007/03/22] - RaX - fixed the dpr - Aeomin had forgotten to commit it. [2007/03/22] - RaX - Finished GM Command system, Now there's an ugly bug that has surfaced when gm commands are used because of the database clients not being thread safe, so the system has been disabled for now. [2007/03/22] - RaX - Inter Server now accepts packet 2207 and forwards it to the zones. this new packet is the command execution result, it tells the character whatever the command sends back. - - Rev 186 - BROKEN BUILD [2007/03/22] - A careless mistake : Forgot commit file AreaLoopEvents.pas - - Rev 185 - BROKEN BUILD [2007/03/22] - Aeomin - Now able to show other characters ingame. [2007/03/21] - Aeomin - Fixed direction being opposite (Should be counter-clockwise). [2007/03/21] - Aeomin - Put most of area loops into one procedure and typed procedures to make code clean. [2007/03/21] - Aeomin - Preset index number in loop to reduce recount on each character when making packet of character list (Character Server). [2007/03/20] - Aeomin - Able to change direction and show to other character. [2007/03/20] - Aeomin - Added Status and Ailments in TBeing for future needs. - - Rev 184 - [2007/03/21] - RaX - Overview : Added to the inter server, it now prepares to send packet 2206 to all zones. [2007/03/20] - RaX - Zone server now listens for 2206 from the inter. [2007/03/21] - RaX - Zone server now looks for an accounts level before allowing a gm command to be executed. [2007/03/21] - RaX - GMCommands.pas - added a few new utility routines and implemented them. - - Rev 183 - [2007/03/19] - RaX - Overview : Created basic GM Command component and added it as a part of the zone server, will also be apart of the inter server in the future. [2007/03/19] - RaX - Modified GMCommands.pas, made it a class rather than a bunch of routines. [2007/03/19] - RaX - Changed IsCommand to check the list of commands to see if a specified piece of chat started by # is really a gm command. - - Rev 182 - [2007/03/19] - RaX - Added simple gm command parsing to zone server in the new AreaChat routine. [2007/03/19] - RaX - Added to inter server, it now accepts gm command sends from zones. [2007/03/19] - RaX - Added zone server communicating with inter to send gm commands. [2007/03/19] - RaX - Added GMCommands.pas to Zone, will hold all our gm command related stuff. [2007/03/19] - RaX - Updated packet_db, contains the new inter communication packet. - - Rev 181 - [2007/03/19] - Tsusai - Notes/Overview: Modifed basic timed event. [2007/03/19] - Tsusai - Event - TRootEvent.Create : Now takes on the time as its parameter. [2007/03/19] - Tsusai - Updated the following for the above : MovementEvent - TMovementEvent.Create Being - TBeing.Walk ZoneRecv - CharacterWalking - - Rev 180 - [2007/03/18] - Aeomin - Add very basic support of local chat (you have to walk blindly to meet other character). - - Rev 179 - [2007/03/18] - RaX - Copied over Character Server code to have Zone authenticate with inter server. [2007/03/18] - RaX - Renamed *Packets units to *Communication units, makes mroe sense. [2007/03/18] - RaX - Implemented Inter client in zone server. [2007/03/18] - RaX - Added new inter comm packets to packet_db - - Rev 178 - [2007/03/17] - RaX - Fixed Return to character select, changed true to false in a condition (Thanks Aeomin). [2007/03/17] - RaX - Moved packet sending code out of zone recv and into zone send. [2007/03/17] - RaX - Fixed walking points start and end being in the wrong places. [2007/03/17] - RaX - Walking should work pretty normally now. - - Rev 177 - [2007/03/16] - Tsusai - Notes/Overview: Added 2 packets. Also anytime we recieve data from Indy and place in our buffer, that information that would be overwritten in our buffer is cleared. [2007/03/16] - Tsusai - ZoneRecv: Added ReturnToCharacterSelect & QuitGame (not fully tested). [2007/03/16] - Tsusai - PacketDB: Enabled the above. - - Rev 176 - [2007/03/16] - Tsusai - Notes/Overview: Fixed the character point "not saving". [2007/03/16] - Tsusai - Map - GetPath: Commented out the use of APath.Assign. The list that was copied was ordered in reverse (destination at index 0, source at last index). Since the list was passed that way, it was thinking that we started at the end and went to where we were. Currently uses a for downto loop to copy the points just right. [2007/03/16] - Tsusai - Character - TCharacter: Removed 'inherited' calls on the Save Map and Save point. They were NOT inherited nor do they override. - - Rev 175 - [2007/03/14] - RaX - Fully implemented Direction variable in TBeing, forgot to before. - - Rev 174 - [2007/03/14] - RaX - Overview : General cleanup in TBeing + TCharacter. [2007/03/14] - RaX - Moved overridden properties in TCharacter to inherited ones. [2007/03/14] - RaX - Removed copied code from TBeing overridden get + set methods and instead had them inherit the TBeing methods. [2007/03/14] - RaX - Removed dX + dY from TBeing.Walk, we are now using a direction system that allows you to convert a direction constant number IE::0,1,2,3,4,5,6,7 into a point and vice versa. [2007/03/14] - RaX - Moved Direction constant array from Map.pas into game constants. [2007/03/14] - RaX - Added direction constants to game constants (North, south, etc). [2007/03/14] - RaX - Renamed Bidx in TBeing.Walk to BeingIndex, was hard to understand. [2007/03/14] - RaX - Renamed TBeing.Point to Position, was hiding the Point method in Types. - - Rev 173 - [2007/03/14] - [Shin] - Re-added maps to databases along with map files. They were copies. - - Rev 172 - [2007/03/14] - [Shin] - Removed map 06guild_r, 06guild_01 - 06guild_08. - - Rev 171 - [2007/03/13] - Aeomin - Updated headers, corrected typoes, etc. - - Rev 170 - [2007/03/13] - RaX - Remade the Pathing algorithm, now behaves exactly like Aegis. Timing issue still remains - Tsusai, take a look? - - Rev 169 - [2007/03/09] - [Shin] - Added map 06guildr. [2007/03/09] - [Shin] - Updated map database, ve_in2 needed to be ve_in02. - - Rev 168 - [2007/03/08] - RaX - Fixed pathing events firing all at once [2007/03/08] - RaX - Adjusted pathing, removed getting the closest path. [2007/03/08] - RaX - Added removing existing walking events if a new walk request comes in. [2007/03/08] - RaX - Removed debug messages, no longer needed. [2007/03/08] - RaX - small timing issue remains, server is one step ahead of the client... sometimes.... - - Rev 167 - [2007/03/07] - Tsusai - Notes/Overview: Fixed inheritance between some of the TBeing and TCharacter parts. [2007/03/07] - Tsusai - Updated the resource file with the new icon. Added the icon itself. [2007/03/07] - Tsusai - Being - TBeing: Refined Walk to run once per point. Adds event for the next point. Added properties to fields such as JID and Name. [2007/03/07] - Tsusai - Character - TCharacter: Set all Set*** to override its TBeing settings. [2007/03/07] - Tsusai - Map - TMap.GetPath: Clears the result path before writing to it from the temp path. [2007/03/07] - Tsusai - CharacterEventThread: Changed to use LongWord for tick times instead of TDateTime. [2007/03/07] - Tsusai - Event & EventList: Any/all TEvents changed to TRootEvent. SyncObjs has a TEvent in it, so to prevent any odd conflicts, this was done. [2007/03/07] - Tsusai - MovementEvent - TMovementEvent: Added Create to take on a TBeing, and calls that tbeing's Walk method [2007/03/07] - Tsusai - ZoneSend - ZoneSendCharaWalkReply: Changed parameters [2007/03/07] - Tsusai - ZoneRecv - CharaWalkRequest: Added more code to support it. [2007/03/07] - Tsusai - Added BUGS and TODO. - - Rev 166 - [2007/03/02] - RaX - Merged the two MSSQL client files. Added credits. - - Rev 165 - [2007/03/02] - RaX - Overview: Created basic MSSQL database interface, all it does right now is dynamically load the library and set up the routine pointers. [2007/03/02] - RaX - Added Common/3rdParty/MSSQL/mssql32_mod.pas - modified by Tsusai. [2007/03/02] - RaX - Added Classes/MSSQL.pas - a wrapper class for mssql32_mod which is a dll template. - - Rev 164 - [2007/03/01] - Tsusai - Notes/Overview: Unit Uses cleanup. - - Rev 163 - [2007/02/28] - Tsusai - Notes/Overview: Fixed scrolling in Linux [2007/02/28] - Tsusai - CRT - SetupCRT: Added the enabling of scrolling for linux. - - Rev 162 - [2007/02/27] - RaX - Added routine headers to new routines written by Tsusai. [2007/02/27] - RaX - Removed Char_clickarea and Char_Showarea constants from gameconstants [2007/02/27] - RaX - Replaced constants with entried in zone.ini under performance. [2007/02/27] - RaX - Added Zone Tick and Event Tick options in zone.ini under performance, these are also implemented as the amount of time to sleep in milliseconds between packet processes for zone tick, and event processes for event tick. - - Rev 161 - [2007/02/27] - RaX - Fixed pathing randomly using all available ram, that vital line of code was also unimplemented, apparently I had committed one of my tests back in the day =( [2007/02/27] - RaX - Added a Sleep(1) to the end of ProcessZonePacket to free up the processor. [2007/02/27] - RaX - Made a few efficiency changes to PointList, removed Assign. - - Rev 160 - [2007/02/26] - RaX - Accidentally removed a vital line of code from pathing along the way somewhere. Now fixed. [2007/02/26] - RaX - Added CHAR_SHOWAREA to gameconstants, implemented in TBeing.Walk. - - Rev 159 - [2007/02/26] - RaX - Overview : And more console and startup tweaks! [2007/02/26] - RaX - Added new Message type, MS_ALERT, for non-loggable messages(command results, etc.). [2007/02/26] - RaX - Implemented MS_ALERT type messages in Commands. [2007/02/26] - RaX - Fixed bug with /exit command, Helios would not exit cleanly because the Console object was being free'd before MainProc was free'd. Fixed by including Console.Free in TerminateApplication. - - Rev 158 - [2007/02/25] - RaX - Overview : Further console and startup tweaks. [2007/02/25] - RaX - Fixed line color issue, didn't include part of the necessary code in the critical section. [2007/02/25] - RaX - Added TConsole.ReadLn(AString); This is an alias for ReadLn which also includes our command parser. [2007/02/25] - RaX - Messed with MainProc.Startup to have it look better. [2007/02/25] - RaX - Moved MainProc.DisplayHeader into the dpr, have it display only ONCE. [2007/02/25] - RaX - at 3am I forgot I had removed the thirdpartycredits from startup display new command, /credits, displays them. - - Rev 157 - [2007/02/24] - RaX - Overview : Finished log configuration by adding the ability to set which types of messages are logged. Added ability to configure which directories are used (Maps/Database/Configuration Directories). Made all ini files create in the configuration directory set in Helios.ini, which now retains the name of the .exe so, in effect, an administrator could run multiple exe's in one folder by setting the folder names difrerently. [2007/02/24] - RaX - Reorganized MainProc.Startup, moved Header into DisplayHeader. [2007/02/24] - RaX - Added a few global initializations and the Console object creation to the body of Helios.dpr. [2007/02/24] - RaX - Added Directories to HeliosConfig.pas. [2007/02/25] - RaX - Changed Command errors to be type Information for logging purposes. [2007/02/25] - RaX - Added IsValidFolderName to WinLinux to make sure folder names supplied in Helios.ini do not contain invalid characters for the filesystem Helios is on. [2007/02/25] - RaX - Implemented Directory variables throughout Helios. [2007/02/25] - RaX - Added EnsureFileStructure to MainProc. This routine makes sure the supplied required directories exist and if they don't, it creates them. [2007/02/25] - RaX - Helios can now start by itself in a directory with no resources whatsoever and not crash. [2007/02/25] - RaX - Removed a debug line I had forgotten about in Map.pas. [2007/02/25] - RaX - Console was being free'd in Destroy Globals, so when an administrator used command /restart, the server would crash. Fixed. - - Rev 156 - [2007/02/24] - RaX - Overview : Added log to file for console messages configureable by the administrator. [2007/02/24] - RaX - Added ConsoleConfig.pas - broke out console related ini entries from HeliosConfig.pas. [2007/02/24] - RaX - Added new constant, MS_DEBUG, to globals for handling debug messages. [2007/02/24] - RaX - Reorganized TConsole.Message to be faster and handle messages better. [2007/02/24] - RaX - Added TConsole.WriteDebug which appends an entry with a timestamp for each message which meets the criteria defined in Console.ini. - - Rev 155 - [2007/02/24] - RaX - Fixed pathing, Got rid of GetArea, added IsBlocked as a member of TMap. Tsusai - ProcessZonePacket, after a successfull walk request, gets stuck in an infinite, REALLY stinkin' fast loop that leaks memory all over the place - investigate? Oh yeah, characters can walk. - - Rev 154 - [2007/02/20] - Tsusai - Notes/Overview: Implemented the StartCRT and EndCRT. [2007/02/20] - Tsusai - Helios.dpr : Added StartCRT here. [2007/02/20] - Tsusai - Globals - TerminateApplication : Added EndCRT here. - - Rev 153 - [2007/02/20] - RaX - Reverted rev 133's Pathing changes. - - Rev 152 - [2007/02/20] - Tsusai - Notes/Overview: Walking mechanics somewhat in place..waiting on Pathing fixes. Also some bug fixes from a few mistakes in Rev 143. Added the icon passed to me from RaX. Only shows up in windows (only compiles in with the windows compiler). [2007/02/20] - Tsusai - Being - Added Walking procedure. [2007/02/20] - Tsusai - Map - TMap.LoadfromFile - Added the setting of the TMap.Path here. [2007/02/20] - Tsusai - BufferIO - Added WriteBufferTwoPoints [2007/02/20] - Tsusai - CRT - Added SetupCRT and EndCRT. Will be implemented into the code later. Handles the setup of the CRT units (Really just for linux, but need to keep it and call it from CRT wrapper). [2007/02/20] - Tsusai - PacketDB - Commented out the walk packet for now. [2007/02/20] - Tsusai - ZoneRecv - CharacterWalkRequest - Added more code. [2007/02/20] - Tsusai - ZoneRecv - Various fixes of GetPacketLength back to 4 (it would return -1 for the packets that have a variable length). [2007/02/20] - Tsusai - ZoneSend - Added ZoneSendWalkReply. [2007/02/20] - Tsusai - zoneServer - TZoneServer.LoadMaps - Fixed bug where the map name was not stored in the TMap. - - Rev 151 - [2007/02/20] - RaX - Forgot to change a 2-3 MainProc.Console messages on the linux side, fixed. - - Rev 150 - [2007/02/20] - RaX - Fixed Kylix not liking a unit and a variable having the same name... [2007/02/20] - RaX - Renamed Console to Terminal.pas. Removed Unused uses of Console. - - Rev 149 - [2007/02/20] - RaX - Unfortunately, because of my brain at 3am, I forgot to commit main.pas so rev 148 is broken. Sorry =(. [2007/02/20] - RaX - Changed Error colors to red instead of burgundy. - - Rev 148 - BROKEN [2007/02/20] - RaX - Fixed termination. Helios now checks to see if it is done loading before a user can shut it down. If an administrator attempts to shut it down, it will write a message informing the administrator that he/she must wait until helios is done starting before he/she can stop it. - - Rev 147 - [2007/02/20] - RaX - Implemented typed console messages. Each displays differently automagically in the console based on a constant passed to the Console.Message routine. [2007/02/20] - RaX - Console is now a global rather than being attached to mainproc. [2007/02/20] - RaX - Slightly reworded messages to conform. - - Rev 146 - [2007/02/19] - RaX - Moved Console.pas's contents to trunk/src/Main.pas. [2007/02/19] - RaX - Added TConsole to Console.pas - a wrapper for console output. - - Rev 145 - [2007/02/19] - Tsusai - Notes/Overview: Added CRT units. Thse will allow for colored text when coded in. [2007/02/19] - Tsusai - Made Console folder. Moved Console.pas here, and added WinConsole.pas (Windows CRT), LinCRT and NCurses (Linux). - - Rev 144 - [2007/02/19] - Tsusai - Notes/Overview: Enabled loading the resource data for icons. Shows default Delphi 7 Project icon right now. - - Rev 143 - [2007/02/14] - Tsusai - Notes/Overview: Updated some SendBuffer calls to use GetPacketLength. [2007/02/14] - Tsusai - Updated CharacterServer, Character, ZoneRecv, and ZoneSend to use GetPacketLength. [2007/02/14] - Tsusai - ZoneSend : Changed procedure variables to make adjustments to send the needed TCharacter. [2007/02/14] - Tsusai - TCPServerRoutines : Changed GetPacketLength to use word for version, and LongWord as the return type. - - Rev 142 - [2007/02/09] - Tsusai - Notes/Overview: After some reading of newsgroups, I learned that the Cardinal type (0..4bil number type) is 4 bytes..but its not guaranteed on all OS's and versions of Delphi. All Cardinals are now LongWords, which are always going to be 4 bytes, and covers the same number range. - - Rev 141 - [2007/01/31] - RaX - Added comment headers to event related units. Reorganized the CharacterEventThread to get the time before looping, save some api calls. - - Rev 140 - [2007/01/28] - Tsusai - Notes/Overview : Added beginnings of walking, and bugfixes/tweaks [2007/01/28] - Tsusai - Being - TBeing : Added MapInfo (TMap Link), IsWalking, and DestinationPoint [2007/01/28] - Tsusai - Character - TCharacter : Added a CharaState enumerated field, and a OnTouchIDs list (useless now , but I felt like adding it), and create/destroy methods. [2007/01/28] - Tsusai - MySQLGameDatabase - GetChara - Removed unused variable. [2007/01/28] - Tsusai - MySQLStaticDatabase - GetBaseMaxWeight - Added check for one row. [2007/01/28] - Tsusai - CharacterEventThread - Fixed the way the time to fire the event is figured out. Ticks are not TDateTime safe/compliant. Also DateUtils or wtf its called is not available on Delphi Personal. [2007/01/28] - Tsusai - BufferIO : Added BufferReadOnePoint. [2007/01/28] - Tsusai - WinLinux - KillProcess : Fixed linux side of the code, forgot a ; for the message. [2007/01/28] - Tsusai - PacketDB - Load_PacketDB : Activated the walk request packet. [2007/01/28] - Tsusai - ZoneRecv : Added CharacterWalkRequest - - Rev 139 - [2007/01/28] - RaX - Added TCriticalSection changes to the eventlist and characterthread. - - Rev 138 - [2007/01/26] - Tsusai - Added revisions from former svn repository to the tags folder. In the structure of OpenSVN_Tsusai_Revisions/Rev#/(code). Perservation of older code. - - Rev 137 - [2007/01/26] - RaX - Bugfix - I forgot to use downto when dealing with the eventlist, caused it to skip events. Fixed. - - Rev 136 - [2007/01/26] - RaX - Moved CharacterEventThread from Console to ZoneServer. - - Rev 135 - [2007/01/26] - RaX - Added basic character events system. [2007/01/26] - RaX -Added Event, EventList, MovementEvent, and CharacterEventThread into Classes/Events/. [2007/01/26] - RaX - Added ZoneServer.OnDisconnect, it free's characters from it's list. - - Rev 134 - [2007/01/26] - RaX - Removed Global Character List. Now, only the zone server has a list. Character Server only uses queries. [2007/01/26] - RaX - Modified LoadChara to calculate max hp/sp, speed, and weight. - - Rev 133 - [2007/01/25] - RaX - Updated Map Load, made all maps load on startup, but Cell information load dynamically. Nothing unloads...yet...will do once I finish the event system. [2007/01/25] - RaX - Moved Cell Loading portion of TMap.LoadFromFile into TMap.Load. [2007/01/25] - RaX - Added TMap.Unload, which destroys a map's Cell information. [2007/01/25] - RaX - Updated Pathing code a little bit, made to be slightly more efficient by not using Length() to get Y and XMax variables twice, I have them returned via var parameters in GetArea. [2007/01/25] - RaX - Moved ZoneServer CommClient connection stuff into TZoneServer.ConnectToCharacter, implemented AFTER startup to make things look nice. [2007/01/25] - RaX - Moved CharacterServer CommClient connection stuff into TCharacterServer.ConnectToLogin for the same reasons and implemented the same way as above [2007/01/25] - RaX - Moved Helios Header into TMainProc.StartUp. [2007/01/25] - RaX - Moved starting message AFTER the credits. - - Rev 132 - [2007/01/25] - Tsusai - Notes/Overview: Cleaned up RaX's replace code, and added a ExtractFileNameMod to WinLinux to take care of it. [2007/01/25] - Tsusai - Map - LoadFromFile: Replaced RaX's code to call ExtractFileNameMod [2007/01/25] - Tsusai - WinLinux - ExtractFileNameMod: Added. The real ExtractFileName uses a delimiter to do the work (\). Our cross compiling code for paths use / so it would never break it up. This new function acts as a middle man, converting all / to \ in a Windows Only environment before making the actual ExtractFileName call. [2007/01/25] - Tsusai - Being - TBeing: Added the common attributes between Characters and Mobs, such as MDEF. Unlike Prometheus, I think we can live with putting mob info into MDEF1 and not worry about reading/writing to MDEF2 (the + bonus). [2007/01/25] - Tsusai - Character - TCharacter: Removed most of the common things descending from TBeing, and rearanged properties so that I could turn the "This method hides * in base class" warnings by a compiler directive. [2007/01/25] - Tsusai - GameConstants: STR..LUK are now 0..5 instead of 1..6 Its murder on me to remember and for packet writing (especially when it'll be shared w/ mobs). - - Rev 131 - [2007/01/24] - RaX - Notes/Overview - Bugfixes. ExtractFileName doesn't like forward slashes like what we use in TMap.LoadFromFile. Had to write a very inefficient way to recreate that. Luckily, now we can handle any slashes in a file path, even if the os can't... Bugfix #2 - I forgot to remove the .gat searching in the static database queries. - - Rev 130 - [2007/01/24] - RaX - Notes/Overview - Implemented weight table and MaxWeight TCharacter calculations. [2007/01/24] - RaX - Added GetBaseMaxWeight to static database classes. [2007/01/24] - RaX - Added CalcMaxWeight in Character.pas. [2007/01/24] - RaX - Implemented CalcMaxWeight on chara creation in CharacterServer.pas. [2007/01/24] - RaX - Added weight table to statis databases both for jansql and mysql. [2007/01/24] - RaX - Updated hp/sp tables to include baby jobs and super novice. - - Rev 129 - [2007/01/24] - RaX - Added another optimization that was supposed to be in the last commit. TMap.LoadFromFile(Map.pas) changed MapTag from a string to an array[1..13] of char to avoid a needless setlength call before reading in the maptag from the mapfile. - - Rev 128 - [2007/01/23] - RaX - Notes/Overview - Optimizations suggested by Damian (Thanks again). [2007/01/23] - RaX - Updated CharaServer/LoginServer to make sure that the charaserverinfo/ zoneserverinfo lists get their information free'd on stopping the servers. [2007/01/23] - RaX - Updated BufferReadString(BufferIO.pas) to hopefully be slightly faster if not just more readable and not dependant on TCBuffer. [2007/01/23] - RaX - Changed TCell (MapTypes.pas) to use on Being list instead of 3 lists. [2007/01/23] - RaX - Renamed Graph to Cell in the comments in Map.pas, forgot to when I made the earlier changes (sorry!) - - Rev 127 - [2007/01/23] - RaX - Forgot to Free the maplist in ZoneServer.Destroy (Thanks Damian), remedied. - - Rev 126 - [2007/01/22] - RaX - Notes/Overview :: Implemented map loading. [2007/01/22] - RaX - Added Classes/MapList.pas. [2007/01/22] - RaX - Added Common/MapTypes.pas. [2007/01/22] - RaX - Moved all types outside of TMap from Map.pas into MapTypes.pas. [2007/01/22] - RaX - Added Flags Type, holds boolean values pertaining to database map flags. [2007/01/22] - RaX - Added static database query GetMapFlags which fills a TFlags record with the data specified in table maps. [2007/01/22] - RaX - Added LoadFromFile to TMap, it loads a pms map from the file indicated by the parameter 'Path'. [2007/01/22] - RaX - Implemented half of Dynamic map loading, maps do not load on start, instead, they load when a player enters a map. The half that's not done is unloading. [2007/01/22] - RaX - Updated Static maps table, removed '.gat' from the mapname field. [2007/01/22] - RaX - LoginServer, CharacterServer, ZoneServer, InterServer - added console messages if someone tries to start a server that's already started, etc from inside code. Also, removed the started checks from Commands.pas and moved them into each server's stop/ start routines. [2007/01/22] - RaX - Removed InterToZoneClient from inter server, won't be needing it. [2007/01/22] - RaX - Dumped XTimer from SVN - gonna rewrite when the need arises. - - Rev 125 - [2007/01/22] - RaX - Notes/Overview :: Removed hints + warnings. [2007/01/22] - RaX - Added dummy result of FALSE to TGameDatabaseTemplate.Connect(); [2007/01/22] - RaX - commented out ClientTick in ZoneRecv, Tsusai - uncomment when you need it. [2007/01/22] - RaX - Commented out Reload in Commands.pas. - - Rev 124 - [2007/01/21] - Tsusai - Notes/Overview: WinLinux changes [2007/01/21] - Tsusai - WinLinux - Changed the linux termination. Uses SIGQUIT output, and displays a warning before it does (so that the user doesn't freak out). - - Rev 123 - [2007/01/21] - Tsusai - Notes/Overview: Modifications to CommClient. [2007/01/21] - Tsusai - CommClient : Redid logic. Its thread only deals with reading any data on the buffer, and is setup by connect/disconnect methods [2007/01/21] - Tsusai - WinLinux - Added LowerPriority method that lowers a thread's priority (will be testing Libc.nice soon) [2007/01/21] - Tsusai - XTimer : Updated priority call (LowerPriority); - - Rev 122 - [2007/01/21] - RaX - Fixed /start command, moved server create/destroys into mainproc create/destroy. - - Rev 121 - [2007/01/20] - Tsusai - Notes/Overview: Something isn't right when either packet_db or the databases fail to load/connect and the server says Startup Success.....bullshit. [2007/01/20] - Tsusai - PacketDB - LoadPacketDB: Now a function, if it fails to load, its false. (duh) [2007/01/20] - Tsusai - ALLDATABASES : Create holds a result bool variable, which is set by the Connect function (if connected, true) [2007/01/20] - Tsusai - Database - Create : Holds a result bool, which is determined if all 3 databases were created and connected. [2007/01/20] - Tsusai - Globals - InitGlobals: Now a function, returns true if packetdb and database loaded. (notice a pattern in the changelog yet?) [2007/01/20] - Tsusai - Console - MainProc.Startup : Will ERROR if InitGlobals failed to load the packet_db and database. [2007/01/20] - Tsusai - Console - MainProc.Shutdown : Reversed order of server shutdowns, so there are no reattempts for internal clients to reconnect. - - Rev 120 - [2007/01/20] - Tsusai - Notes/Overview: TWEAKS! [2007/01/20] - Tsusai - Found a shortcut method IdContext.Binding, which links to Idcontext.Connection.Socket.Binding. Any use of the long version has been replaced with the shortcut, and any Console messages that broke word wrap limit have been wrapped. Changes are in: -LoginServer -CharacterServer -ZoneServer [2007/01/20] - Tsusai - CharacterServer - In the ZServerInfo.Address call, there was a spare ',' that I overlooked. Delphi ignores it, but Kylix caught it. Fixed [2007/01/20] - Tsusai - CommClient - Replaced TThread and now useing TIdThread. It has reduced some conflicts when trying to access the client readthreads. - - Rev 119 - [2007/01/19] - RaX - Added some properties to TMap, Size and Mode. Fixed last commit, I forgot to update Graph to Cell in TMap (sorry =)) - - Rev 118 - [2007/01/18] - RaX - Updated Headers on Yesterdays changes to ZoneServer related files. [2007/01/18] - RaX - Added Mobs, NPCs, and Characters to each TMap Cell, renamed Graph to cell. - - Rev 117 - [2007/01/17] - Tsusai - Notes/Overview: Zone display done. Also as always, various tweaks to get it to work. [2007/01/17] - Tsusai - CharacterServer - SendCharaToMap : Completed code to auto select a zone for transport. [2007/01/17] - Tsusai - Database\Game*** - CreateChara : Sends the character number over for when creating. [2007/01/17] - Tsusai - Database\Static** - GetMapCanSave changed to GetMapCannotSave, and corrected queries. [2007/01/17] - Tsusai - Character - TCharacter : Added a basic client packet subsystem. It may not be the best place for it, but for now it is ok. [2007/01/17] - Tsusai - BufferIO - RecvBuffer : Cannot recieve 0 packets. The system doesn't like it. [2007/01/17] - Tsusai - GameConstants : Removed invalid job classes (stupid data I put in) and added a right and left hand constant. [2007/01/17] - Tsusai - PacketDB - Activated 'ticksend' and 'getcharnamerequest' packet_db command routines. [2007/01/17] - Tsusai - ZoneRecv - Added ShowMap, RecvTick, and GetNameAndID. Added temp spots for packets for inventory and stuff. [2007/01/17] - Tsusai - ZoneSend - Added replies for RecvTick and GetNameAndID [2007/01/17] - Tsusai - ZoneServer - Added a check for data on the buffer (odd things were happening). [2007/01/17] - Tsusai - Client_packet_en - corrected the map connect packet. There are not 2 login keys, only 1 and a tick. - - Rev 116 - [2007/01/17] - RaX - Added IndexOfAID to CharaList. Gets a character by account id [2007/01/17] - RaX - Updated starting points in CharacterOptions. - - Rev 115 - [2007/01/17] - RaX - Joint commit by me and Tsusai, calcmaxhp/sp/speed are now in place and pull from the static database. They also send to the client and show on character create. [2007/01/17] - RaX - Made databases global per exe once again due to circular include errors. - - Rev 114 - [2007/01/17] - RaX - Fixed my character database fubar. Forgot that a WORD type is unsigned =) [2007/01/17] - RaX - Updated SQL files to reflect new changes, all equipment fields are unsigned. - - Rev 113 - [2007/01/16] - RaX - Updated Static Databases, added query to return the zone id a map is assigned to from our maps table. [2007/01/16] - RaX - Removed setaccount from jansqlstaticdatabase...why that was still there I still do not know. - - Rev 112 - [2007/01/15] - RaX - Updated Static database - added fields and converted from latest(11.2) aegis mapinfo dump. - Table Maps [2007/01/15] - RaX - Added /bin/Maps folder with all kro 11.2 maps as specified in the newly converted maps database. (644 maps) - - Rev 111 - [2007/01/15] - RaX - Notes/Overview: Added character defaults to Character.ini and implemented them in characterserver. [2007/01/15] - RaX - Added Game Database fields armor, garment, shoes, accessory1, and accessory2. Renamed Weapon and shield to RightHand and LeftHand, respectively, both internally and database side. [2007/01/15] - RaX - Corrected spelling mistakes in console messages (I before E except after C in Received). [2007/01/15] - RaX - Fixed character.txt in jansql - Tsu, you committed the character "tonto" =). [2007/01/15] - RaX - Added armor, garment, shoes, accessory1, and accessory2 as properties to Character class. [2007/01/15] - RaX - Renamed DatabaseTXT.pas to PacketDB.pas. [2007/01/15] - RaX - Moved Gameobjects to classes and renamed to Being. - - Rev 110 - [2007/01/14] - Tsusai - Notes/Overview: Zone communications to character server in place. Still no connection for the RO Client to make the connection to the Zone just yet. [2007/01/14] - Tsusai - ServerToServerPackets.txt - contains all packet documentation of server to server communications. [2007/01/14] - Tsusai - Database\packet_db.txt - Added new packets for chara<->zone packets. [2007/01/14] - Tsusai - CharacterServer - Added zone packet parsing and validation of the zone. [2007/01/14] - Tsusai - CharaLoginPackets - All packet procedures renamed. [2007/01/14] - Tsusai - CommClient - Added Source and Destination names (for the error messages.). [2007/01/14] - Tsusai - List32 - Replaced IndexOfObject. I don't know wtf the writers were thinking. It was taking an integer instead of an object -_- [2007/01/14] - Tsusai - TCPServerRoutines - Updated the CommClient creation for the above update. [2007/01/14] - Tsusai - ZoneOptions - Added missing entries, such as CharaServer location and port. [2007/01/14] - Tsusai - LoginServer - Updated Error response to a bad character server validation. [2007/01/14] - Tsusai - ZoneCharaPackets - Added. [2007/01/14] - Tsusai - ZoneServerInfo - Added. [2007/01/14] - Tsusai - ZoneServer - Removed unneeded IPCardinal code, added setting of the client that connects to the character server. - - Rev 109 - [2007/01/13] - Tsusai - Notes/Overview: Fixes and partial commits to character server for zone connections. [2007/01/13] - Tsusai - CharacterServer : Added fZoneServerList, OnDisconnect Method, updated SendCharaToMap to take on a connection and buffer parameter, Corrected error constant numbers (was getting email error where could not happen error should be, and vice versa. Please verify this change RaX). Added commented out code in SendcharaToMap. Fixed StatPoint display in CreateChara. Removed unneeded If connected check in ParseCharaServ. [2007/01/13] - Tsusai - ***GameDatabase: Updated GetChara to take on a JanSQLReleaseTable hidden bool. Assumes false. Updated any GetChara calls. Updated LoadChara to attach Account information. [2007/01/13] - Tsusai - CharacterServer, ZoneRecv: Updated any/all GetChara calls. [2007/01/13] - Tsusai - Character: ClientVersion changed to byte (I need a negative number). [2007/01/13] - Tsusai - Added ServerInfo root object, and updated CharacterServerInfo to descend from that. Added ZoneServerInfo to do the same. [2007/01/13] - Tsusai - PacketTypes: Added ZoneServerLink object. - - Rev 108 - [2007/01/12] - Tsusai - Notes/Overview: Fixed the outstanding JanSQL character server table errors. We were trying to save and release a table that was already released due to LoadChara releasing. [2007/01/12] - Tsusai - JanSQLGameDatabase - Overrode the GetChara procedure. Now takes a flag to release the table after loading of a character. LoadChara NO LONGER releases the table, since GetChara is the only thing that calls it and takes care of it if it needs to. [2007/01/12] - Tsusai - LoginServer - Fixed my January 2006 entries...its 2007 now. - - Rev 107 - [2007/01/12] - RaX - Modified Database.ini and The Database constructor to support setting each database's type individually. (IE - Common : text Game : SQL Static : Text) - - Rev 106 - [2007/01/11] - RaX - Added headers in JanSQLCommonDatabase and MySQLCommonDatabase. - - Rev 105 - [2007/01/11] - RaX - Added ID field to Zone.ini. - - Rev 104 - [2007/01/10] - RaX - Notes/Overview : Updated Static Database and added one query for Zone. [2007/01/10] - RaX - Added 3 new tables to Static : hp, sp, and statpoints. [2007/01/10] - RaX - Added same tables to jansql databases. [2007/01/10] - RaX - Updated Static->maps table : removed .gat extensions from mapnames. [2007/01/10] - RaX - Added one query to StaticDatabase, GetMapCanSave(MapName). Returns a boolean indicating if a character can save on said map or not. - - Rev 103 - [2007/01/10] - RaX - Notes/Overview : Database changes, broke up the database class into 3 separate database classes (Common, Game, and Static). [2007/01/10] - RaX - Deleted old database units. [2007/01/10] - RaX - Added new database units (one of each of the old per database). Moved units into separate folders inside the database folder under classes. [2007/01/10] - RaX - Updated zonemaps in Static database, all flags are now boolean and it has been renamed to just 'maps'. [2007/01/10] - RaX - Updated jansql databases to reflect mysql changes. [2007/01/10] - RaX - Reorganized how each database is created and free'd. - - Rev 102 - [2007/01/09] - RaX - Deleted rev_55.sql [2007/01/09] - RaX - Added helioscommon, heliosgame, and heliosstatic.sql to replace. [2007/01/09] - RaX - Filled helios statics zonemaps table with mapinfo from prometheus. - - Rev 101 - [2007/01/08] - Tsusai - Notes/Overview: Modifications to allow WAN/LAN checking complete and in place. [2007/01/08] - Tsusai - WinLinux: Added a record type called TIPSet, which contains 2 strings, Full, and Partial. This is to store more things for the result type of GetIPStringFromHostname. [2007/01/08] - Tsusai - WinLinux - GetIPStringFromHostname: Now returns a TIPSet type, the Full IP that is obtained and a Partial (X.X.X.) The last . is for prevention of comparing 192.168.10.1 to the partial of 192.168.1 [2007/01/08] - Tsusai - Inter/Zone servers: Disabled IP and IPCardinal code. Will reactivate properly later. [2007/01/08] - Tsusai - CharaServerInfo: Overhauled ip / port information. changed the storage strings that would store pure IPs as what they originally are, instead of parsing the IPs from a hostname for example. WANPort -> Port. Added fLANPartial to store the partial LAN IP. Added Function Address, which takes a IP string of the client, for checking against the LAN IP Partial that is stored. [2007/01/08] - Tsusai - LoginServer - SendCharacterServers: Changed the WANCardinal and placed the Address() function in it is placed. [2007/01/08] - Tsusai - LoginServer - VerifyCharaServer: Changed the WANPort to Port. [2007/01/08] - Tsusai - LoginServer - ParseLogin: Changed the incoming WAN and LAN information to the fixed names. - - Rev 100 - [2007/01/08] - Tsusai - Notes/Overview: Fixed JanSQL Queries, and a tweak to janSQL and CommClient. [2007/01/08] - Tsusai - CommClient: Once again reorganized order of procedures when relating to disconnecting and suspending the client thread. [2007/01/08] - Tsusai - janSQL: Modified anything relating to file I/O to use / in the path, instead of \ due to linux issues. [2007/01/08] - Tsusai - JanSQLDatabase: Updated any missing %s strings to have quotes surrounding, janSQL doesn't like them too much and goofs w/o errors. - - Rev 99 - [2007/01/08] - RaX - Forgot to remove madexcept from linux includes, removed. - - Rev 98 - [2007/01/07] - RaX - Updated JanSQL queries, SAVE TABLE and RELEASE TABLE instead of SAVE and RELEASE. - - Rev 97 - [2007/01/07] - RaX - Notes/Overview : Split up ServerOptions.ini into one ini for each server, one for database, and one for general helios config(enabled servers). [2007/01/07] - RaX - Added LoginOptions, CharaOptions, InterOptions, ZoneOptions, DatabaseOptions, and HeliosOptions. [2007/01/07] - RaX - Removed serverOptions. [2007/01/07] - RaX - Removed ServerConfig from Globals. [2007/01/07] - RaX - Added public property, Options, to each server. Options is the ini for each. [2007/01/07] - RaX - Added Options to MainProc and Database. [2007/01/07] - RaX - Changed Database class system so that each Database Template Child is created with a parent argument, allowing Options to be called from inside the child classes rather than having to have it passed into it. [2007/01/07] - RaX - Cleaned up unused variables in ZoneServer. [2007/01/07] - RaX - Re-organized uses in Helios.dpr to be organized first by category, and then alphabetically for better classification. [2007/01/07] - RaX - Added more inter communication variables to ZoneServer, in preparation for zone->chara and zone->inter communication. - - Rev 96 - [2007/01/04] - RaX - Added Headers to CommClient and updated Globals'. [2007/01/04] - RaX - Changed server.start routines to use a hidden parameter, reload, which tells it whether to reload the ini or not. [2007/01/04] - RaX - Added and implemented Globals - LoadIni; for the above change. LoadIni Free's ServerConfig if it's assigned, and recreates it. - - Rev 95 - [2007/01/04] - Tsusai - Reorganized the suspending code of the CommClient thread. Apparently it would halt the thread (good) but not disconnect (bad). - - Rev 94 - [2007/01/04] - RaX - Updated documentation + headers in LoginServer. Added /help command listings for new /start and /stop commands in Commands. [2007/01/04] - RaX - Added Started property to each server class. [2007/01/04] - RaX - Changed /start and /stop to use already build in <server>.start procedures and modified them to work with servers which aren't free'd. - - Rev 93 - [2007/01/03] - Tsusai - Notes/Overview : Implemented the GetPacketLength function, and added some new console output messages to let admins know what is going on with login and character servers. [2007/01/03] - Tsusai - DatabaseTXT: Allowed Load_PacketDB be called outside of that unit. [2007/01/03] - Tsusai - Added the following files into Notes: client_packet_en (from prometheus), and Generating Linux Compiles.txt [2007/01/03] - Tsusai - Database\packet_db.txt - Added Helios custom packets (server communication packets). [2007/01/03] - Tsusai - Globals - InitGlobals: Calls Load_PacketDB. [2007/01/03] - Tsusai - TCPServerRoutines - DeactivateServer: Added termination messages, and is passed a name for those messages. [2007/01/03] - Tsusai - LoginServer, CharaServer, InterServer, ZoneServer: Updated DeactivateServer calls. [2007/01/03] - Tsusai - Console : Added a blank space after the server startup. [2007/01/03] - Tsusai - LoginServer, CharaServer, CharaLoginPackets : Updated static packet lengths (Recv and Send) with the GetPacketLength function. - - Rev 92 - [2007/01/03] - RaX - Added 2 ini entries, [Login] - Key and [Chara] - LoginKey. Now we can specify the password used to communicate between the login and character servers. - - Rev 91 - [2007/01/02] - RaX - Thanks to research done by Tsusai, our text database works with multiple exes. [2007/01/02] - RaX - Changed JanSQLDatabase to save and release after each update/insert/ delete and just release after each select, this causes the text database to reload itself before queries, allowing real-time data changes in a text database =o. - - Rev 90 - [2006/12/30] - RaX - Pretty much redid the database reorganization of the last commit. Moved Databases to be a private entity of each server. Zone is the exception, multiple file rely on the zone's database since we don't want the zone server file to be, well, HUGE =) NOTE::: The 12/28 client works, but is quirky. There seems to be some missing padding in create character and delete character, because results for each are random. Tsusai, can you sniff the exe and see what's missing? Maybe it'll be a simple feature to add. I'll e-mail it to you par request. - - Rev 89 - [2006/12/29] - RaX - Added my e-mail address to the helios.dpr header. [2006/12/29] - RaX - Moved Database creates and frees around to assign each dynamically based on which servers are enabled. [2006/12/29] - RaX - Added new console commands, start and stop. For example, /start login would create and start the login server. /stop login would stop and free the login server. - - Rev 88 - [2006/12/28] - Tsusai - Forgot to put back the Account field in the LoadChara in both existing database calls. - - Rev 87 - [2006/12/28] - RaX - Added the 12/28 client to our packet_db. - - Rev 86 - [2006/12/27] - Tsusai - Notes/Overview: More updates to the multi character server coding, mainly side effect bugfixes. [2006/12/27] - Tsusai - Account - GetBanned and GetConnectTime: Removed the SQL calls, and simplied. [2006/12/27] - Tsusai - CommClient - TClientThread.Execute: tweaked the try/except field. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase, DatabaseTemplate: Changed GetAccountBanAndConnectTime to RefreshAccountData. [2006/12/27] - Tsusai - MySQLDatabase, JanSQLDatabase : Fixed GenderChar and LoginKey reading in SetAccount, modified GetAccount (both types) to be more efficient, and read the new RefreshAccountData that is required. RefreshAccountData reads the ban and connect (play) time, and the login keys. - - Rev 85 - [2006/12/26] - RaX - Oops, forgot to remove some code from a previous method of getting a new character's id in JanSQLDatabase. CreateChara. - - Rev 84 - [2006/12/24] - RaX - Added default values to TCharacters in CreateChara(CharacterServer). - - Rev 83 - [2006/12/24] - Tsusai - Notes/Overview: Unfortnately a large commit. This commit includes the ability to finally start linking 2 exes together, at the characterserver level. Thats right, running two copies correctly, can result in having two servers listed at the server selection menu after login. Also many Uses have been cleaned up. [2006/12/24] - Tsusai - Added the following units: CharacterServerInfo, CharaLoginPackets, and CommClient. [2006/12/24] - Tsusai - CharacterServerInfo : Contains a type that houses information on a Character Server, such as WAN/LAN IPs, port, Servername, and online users. These are stored in a list that is read from when someone logs in, and is sent a list. [2006/12/24] - Tsusai - CharaLoginPackets : Contain all Outgoing routines at the moment. [2006/12/24] - Tsusai - CommClient : Contains a Indy TCP Client descendant, which controls a generated thread. The thread checks for connection and tries to connect every 30 seconds. It also figures out if there is data available and passes it on as a OnRecieve event. [2006/12/24] - Tsusai - InterServer, ZoneServer : Turned off their built in clients for now. [2006/12/24] - Tsusai - Console : Removed static list entry for the character servers (our workaround until this was done). [2006/12/24] - Tsusai - TCPServerRoutines (NEEDS RENAMING NOW) : Replaced all TIdTCPClients with TInterClient, and updated Activate/Deactivate Client as needed. Also removed crap out of DeactivateServer for now. I think we won't suffer that problem we did in Prometheus. [2006/12/24] - Tsusai - PacketTypes : Added TCharaServerLink type which is used in LoginServer. [2006/12/24] - Tsusai - Globals : Removed UTF8String (its still just string), Cleaned up uses, removed CharacterServerList (now private in LoginServer as it should be). Added IncMinute and IncSecond routines. [2006/12/24] - Tsusai - BufferIO : Added WriteBufferMD5String to write the bytes as they are into buffer, and ReadBufferMD5 to read the bytes directly from the buffer. Overloaded SendBuffer and RecvBuffer to accept TInterClient as a passed parameter. Fixed BufferReadString's parameters. [2006/12/24] - Tsusai - mwStringHashList : Fixed Uses. [2006/12/24] - Tsusai - Character - SetSaveTime: Uses IncMinute from Globals now. [2006/12/24] - Tsusai - LoginServer - Cleaned uses, Removed OnExecute Event, tied ParseLoginServer directly to it. Added OnDiscconect method, to remove character server information from the list if that particular client disconnected. CharaServerList has been moved here and is a private field. Removed ReadMD5Password (in BufferIO now). Updated parameters of ValidateLogin and SendLoginError. Added VerifyCharaServer to validate (static validate for now). Fixed the packet indexes and loop for SendCharacterServers. Added Parsing of charaserv client packets to ParseLogin. Will be fined tuned in a later commit. [2006/12/24] - Tsusai - CharacterServer : Removed anything having to do with the translation of IP/Hostname strings into cardinals. Added CharaToLoginClient, and events for it (OnConnected and OnRecieve). Removed CharacterServer.OnExecute, using ParseCharaServ directly. Added the setting of Host/Port of the CharaToLoginClient in .Start for now. Also removed the While from ParseCharaServer, not needed. [2006/12/24] - Tsusai - Added Packet documentation for Chara<->login communications to Notes [2006/12/24] - Tsusai - Removed Subdirectories in obj, not needed. - - Rev 82 - [2006/12/23] - RaX - Reordered Character Deletion Errors in CharacterServer due to some weird error messages. - - Rev 81 - [2006/12/23] - RaX - Notes/Overview - Implemented new FASTER character list and fixed a bug in JanSQLDatabase. [2006/12/23] - RaX - Added CharaList.pas, a low level TCharacterList which is as fast as it gets I believe. [2006/12/23] - RaX - Updated CharaExists both overloads in JanSQLDatabase.pas. Both weren't looking at the record count, only at the result identifier, and if there are records to be found, Jan returns an identifier, which is why it worked with no characters in the database =) [2006/12/23] - RaX - Changed Globals to use a TCharacterList instead of a TIntList32 as the global characterlist. [2006/12/23] - RaX - Changed CharacterServer to use the new characterlist. [2006/12/23] - RaX - Changed JanSQL + MySQL + DatabaseTemplate to use the new list. - - Rev 80 - [2006/12/23] - Muad_Dib - Added new jobs (ninja, gunslinger, xmas suit) to GameConstants. - - Rev 79 - [2006/12/23] - RaX - Added Updated jAthena Packet_db. Fully updated. - - Rev 78 - [2006/12/22] - RaX - Added GetPacketLength to TCPServerRoutines. - - Rev 77- [2006/12/22] - RaX - Confusion on my part, NOW the characterlist bug is fixed with no leaks [2006/12/22] - RaX - Updated headers in all files. [2006/12/22] - RaX - Moved ServerException into each of the server classes. [2006/12/22] - RaX - Cleaned up uses in Console.pas. - - Rev 76- [2006/12/21] - RaX - Fixed CharacterList Corruption bug. We were free'ing ACharacter after it was already free'd in CharacterList.Delete which caused a crash.(JanSQLDatabase, MySQLDatabase) - - Rev 75- [2006/12/21] - RaX - Removed Deprecated units AccountDB, SQL, and SaveThread. Leaving XTimer in case we need a timer. - - Rev 74- [2006/12/21] - RaX - Updated JanSQLDatabase queries to work with jansql. (JanSQLDatabase) [2006/12/21] - RaX - Changed StrToInt to StrToIntDef with a default of 0 in LoadChara because JanSQL doesn't support default values or typing for that matter. [2006/12/21] - RaX - Added calculations for the next available ID to CreateChara, see above for details as to why. - - Rev 73- [2006/12/21] - Tsusai - Notes/Overview: Renamed unit Socket to BufferIO. All applicable files were updated. - - Rev 72- [2006/12/21] - RaX - Modified JanSQLDatabase.pas to use resultidentifier numbers to access the internal list of recordsets rather than using passed QueryResult pointers. Freeing these was causing JanSQL to corrupt it's internal list and cause random crashes. Also, the result list would get unbearably huge after a short time =) from now on we use Database.ReleaseRecordset(ResultIdentifier : Integer) to free our query results in jan. [2006/12/21] - RaX - Modified MySQLDatabase and JanSQLDatabase in GetBanAndConnect to use special queries rather than just reloading the entire account. [2006/12/21] - RaX - changed serveroptions.ini to have the default database host as ./save to allow jansql to work out of the box. [2006/12/21] - RaX - added jansql database to the save folder in trunk/bin. - - Rev 71- [2006/12/20] - Tsusai - Notes/Overview: Updates to database system. [2006/12/20] - Tsusai - DatabaseTemplate: Modified CONNECT to use out current standard parameters, instead of using reintroduces and overrides in the children classes. [2006/12/20] - Tsusai - MySQLDatabase & JanSQLDatabase - SaveAccount: Removed StrToInt64 conversions of dates. Just strings now. [2006/12/20] - Tsusai - JanSQLDatabase - SaveAccount: Fixed how the dates are stored back into the database. This caused problems of the same account trying to reconnect, and bad times being read when logging BACK in. [2006/12/20] - Tsusai - JanSQLDatabase: Added Disconnect method, which calls the commit query to save the database. - - Rev 70- [2006/12/19] - Tsusai - Oopsie. Didn't know my runtime debug parameters were saving. Removed - - Rev 69- [2006/12/19] - Tsusai - Heh...69. Sorry..couldn't help myself [2006/12/19] - Tsusai - Accounts: For some reason if a person attempted to login with the mf suffix for auto account creation on MD5 connection, following connections would be told they have no more game time. The Now procedure was somehow not returning, but with SysUtils.Now as the replacement, it works. Not too sure if something is causing a conflict with it, but it should be sound now. - - Rev 68- [2006/12/18] - RaX - Merged ZoneCore into ZoneServer.pas. - - Rev 67- [2006/12/18] - RaX - Suppressed hints and warnings in jansql using compiler directives. [2006/12/18] - RaX - Moved server classes into their respective folders in the src root. - - Rev 66- [2006/12/18] - Tsusai - Notes/Oveview: JanSQL (TXT reading) debugged. [2006/12/18] - Tsusai - JanSQLDatabase/MySQLDatabase : Cleaned up ****Exists routines. Added missing memory free'ing of QueryResults. [2006/12/18] - Tsusai - JanSQLDatabase - SendQuery : If locating a row failed, and returned nothing (it happens), it would return a nil set. Works now by creating one prior to setting. Not too sure this is proper. [2006/12/18] - Tsusai - janSQLTokenizer: Restored to pre cleaning. Something I did made it malfunction on connecting. [2006/12/18] - Tsusai - Globals : Readded optional INI loading. - - Rev 65- [2006/12/18] - Tsusai - Notes/Overview: Linux compiler fixes. [2006/12/18] - Tsusai - JanSQLDatabase : Renamed JanSQL in the uses to janSQL. Unit name must match file name. Its a casesensitive OS. [2006/12/18] - Tsusai - janSQLExpressions2 : Recleaned, leaving 1 hint for now. For some odd reason the crosskylix compiler wasn't liking it the way I had it. - - Rev 64- [2006/12/17] - RaX - Moved all servers into classes located in Classes/Servers/ [2006/12/17] - RaX - Reorganized Console.pas to accomodate changes made to servers. [2006/12/17] - RaX - Redid startup/shutdown procedures to create and free the servers dynamically based on which are enabled. - - Rev 63- [2006/12/17] - Tsusai - Notes/Overview: Added _M/_F login parsing. This only works when using a basic login and not a encrypted login. [2006/12/17] - Tsusai - LoginServerProcess: Added ParseMF to parse the _M/_F. [2006/12/17] - Tsusai - **DatabaseTempate: Added CreateAccount and AccountExists procedures and functions. - - Rev 62- [2006/12/17] - RaX - Updated headers in MySQLDatabase.pas, JanSQLDatabase.pas, CharaServerProcess.pas, LoginServerProcess.pas, CharaServerTypes.pas. [2006/12/17] - RaX - Removed DIV by 0 forced error in helios.dpr. [2006/12/17] - RaX - Added checking for a valid database in JanSQLDatabase.pas - Connect(). [2006/12/17] - RaX - Removed hints in turbo delphi about functions not being expanded by adding an ifdef to the uses of JanSQL.pas and JanSQLExpressions.pas. - - Rev 61- Broken, someone who's name rhymes with forgot to remove his EDIVBY0 =) [2006/12/17] - Tsusai - Notes/Overview: MySQL queries fixed, Login server information covering the IPs removed. They aren't needed. [2006/12/17] - RaX - Notes/Overview: (All RaX entries by Tsusai) MainProc now holds the database connections, instead of creating on the fly. [2006/12/17] - Tsusai - MySQLDatabaseTemplate : Corrected queries. One error was trying to access a character table (its characters) and another was running a query to access information in the common database, from within game database connection. [2006/12/17] - Tsusai - ServerOptions - Removed Login server IPS [2006/12/17] - Tsusai - Merged RaX's changes. [2006/12/17] - RaX - Added JanSQLDatabase, controls TXT database system. [2006/12/17] - RaX - Removed on the fly database connections, replacing with a one connecter per database variable in MainProc object. - - Rev 60- [2006/12/13] - Tsusai - Notes/Overview: JanSQL committed, its a TXT SQL system. [2006/12/13] - Tsusai - Added JanSQL folder and added into project. [2006/12/13] - Tsusai - Renamed SQL folder to MySQL. - - Rev 59- [2006/12/11] - RaX - Added GetBaseHP and SP functions to the database class. - - Rev 58- [2006/12/06] - Tsusai - Notes/Overview: Random tweaks to things. [2006/12/06] - Tsusai - CharaServerTypes - widestring->string conversions. Not needed [2006/12/06] - Tsusai - TCPServerRoutines - ActivateServer: Added more constants. [2006/12/06] - Tsusai - WinLinux - Widesting->String conversion, added GetIPStringFromHostname (DNS RESOLVING IN!!!!!) [2006/12/06] - Tsusai - Console - TMainProc.Shutdown - Made interserver communication client components disconnect first, then servers. - - Rev 57- [2006/11/29] - RaX - Added a few new configuration options to ServerOptions.ini and reorganized it to suit. (LAN IPs, WAN IPs, Ports, etc.) Removed Communication completely. - - Rev 56- [2006/11/29] - RaX - Implemented stubbed out Inter Server and added appropriate configuration variables for enabling/disabling the zone, chara, and inter servers. Also, uncommented Tsusai's Zone implementation code. Added ActivateClient and DeActivateClient to TCPServerRoutines. Renamed ServerOptions configuration section "MySQL" to "Database" and changed code appropriately. Added stubbed connect and execute routines for inter server component. Implemented and uncommented inter communication clients. - - Rev 55- [2006/11/27] - Tsusai - Updated the SQL file again. Storage and Ragsvrinfo should be game were not game related, as a mistake on my part. - - Rev 54- [2006/11/27] - Tsusai - Notes/Overview: Fixed USES in the following units CharaServerProcesses, Character, CharaList, DatabaseTemplate, XTimer, List32, uMysql*, Globals, Socket, Console, ZoneCore, ZoneRecv, ZoneSend. [2006/11/27] - Tsusai - Added ZoneSend, which sends out replies so far for the zone. [2006/11/27] - Tsusai - ZoneRecv - Added MapConnect which handles zone connection validation. - - Rev 53- [2006/11/17] - RaX - added getting the closest path to the destination to our pathing algorithm. - - Rev 52- [2006/11/14] - Tsusai - Notes/Overview: Restructure of the mysql database. [2006/11/14] - Tsusai - Added Database/packet_db.txt [2006/11/14] - Tsusai - Updated Bin/SQL Files/helios.sql to HeliosSQL_rev51.sql with the restructured database. I recommend deleting the old one and regenerating a new ServerOptions.ini for this. [2006/11/14] - Tsusai - CharaServerProcess - SendCharas: Fixed bug where Index would do a ERangeError, because of 0 characters being returned. Also fixed a database call that was calling the wrong database (was trying to do a query in the common database, and not in the game database). [2006/11/14] - Tsusai - Account - TAccount : Added a ConnectUntil datetime field, updated Banned to a datetime. Added various methods and functions to make checking these easier. [2006/11/14] - Tsusai - Database - Removed all Writeln and replaced with MainProc.Console [2006/11/14] - Tsusai - DatabaseTemplate/MySQLDatabase - GetAccountBanAndConnectTime : Added. [2006/11/14] - Tsusai - MySQLDatabase - All query statements updated to table restructures. [2006/11/14] - Tsusai - Globals - Added ConvertMySQLTime to convert the time string from MySQL to a TDateTime. If given a 0000-00-00 00:00:00 (which is impossible to convert), it uses the lowest possible TDateTime (like january 1900). [2006/11/14] - Tsusai - ServerOptions - Updated default Database names. [2006/11/14] - Tsusai - LoginProcesses - Replaced Writeln, and added banned and connectuntil checks with properly added response codes. - - Rev 51- Forgot Changelog - Rev 50- [2006/11/13] - Tsusai - Notes/Overview : Addins, and added more multiserver support (not done) [2006/11/13] - Tsusai - ServerOptions - Reorganized and split the mysql database into 2, a common and a game specific. [2006/11/13] - Tsusai - WinLinux - Added a GetTick command. Unsure if the linux version works proper. [2006/11/13] - Tsusai - DatabaseTemplate - Reindented. [2006/11/13] - Tsusai - Database - TDatabase.Create : Now gets an optional parameter, to tell the optional mysql database which connection to make (Common database, or Game Database) [2006/11/13] - Tsusai - Account - Added LoginCount, LastLoginTime, and Level to TAccount. [2006/11/13] - Tsusai - CharaServerProcesses - Updated any TDatabase creations to make sure the right database is accessed. [2006/11/13] - Tsusai - MySQLDatabase - TMySQLDatabase : Placed "Connection" into private, Overrode Create and Connect method to take a boolean flag for which database to use. Added a SendQuery (use just like query). If a Query actually fails to execute, a visual error will happen and the query pasted to the console. [2006/11/13] - Tsusai - Socket - Added WriteBufferPointAndDirection and fixed SendBuffer's description. [2006/11/13] - Tsusai - Console - TMainProc.Startup : Added conditional to activate the login server. Moved ThirdPartyCredits procedure call to the top of the routine. [2006/11/13] - Tsusai - LoginProcesses - ValidateLogin : Fixed the LoginKey assignments, and saved. - - Rev 49- [2006/11/12] - Tsusai - Console : Cleaned up some uses, removed TThreadLink variable, not needed, added Zone Server OnConnect & OnExecute events. [2006/11/12] - Tsusai - CharaServerProcess - ParseCharaServ : Removed TThreadLink variable, not needed. [2006/11/12] - Tsusai - WinLinux : Added a PriorityLow global constant. Windows has tpLowest while Linux is an integer (PRIO_MIN). [2006/11/12] - Tsusai - XTimer - TXTimer.Execute : Priority is now set to PriorityLow constant. (Exisiting was not cross compilable) [2006/11/12] - Tsusai - DatabaseTXT - Load_PacketDB : Updated the FileExist paths, database is now Database (case issue) and the \ in the path is now a / (pathing issue). - - Rev 48- [2006/11/11] - Tsusai - BUGFIX (God I did not want to see one of these...). Removed the usage of FreeAndNil(ADatabase); that RaX implemented. Replaced with ADatabase.Free; Odd thing was that once a person logged into character server, it would no longer accept any more connections. [2006/11/11] - Tsusai - ZoneCore & Console - Reindented. [2006/11/11] - Tsusai - Globals - MakeRNDString added, generates a random string based on what length we want. [2006/11/11] - Tsusai - PacketTypes - Added a TMd5String type to attach to our login client information. [2006/11/11] - Tsusai - LoginProcesses - Implemented TMD5String and attached to the login client info, and stored the randomly generated key in it (ONLY WHEN MD5 CONNECTIONS ARE USED) - - Rev 47- [2006/11/06] - Tsusai - Merged GameGlobals into GameConstants, and updated any/all units that used to call GameGlobals. out a better timer, so for now, we have seconds. [2006/11/06] - Tsusai - Updated 3rdParty.txt to mention we are using uMySQL** under MySQL's FLOSS exception. [2006/11/06] - Tsusai - Extracted the version string to its own unit, to keep revisions to Globals separate. - - Rev 46- [2006/11/03] - RaX - Rewrote XTimer to fix problems with processors that modulate their clock speed. Changed resolution to seconds. We can't have lower resolutions until I figure out a better timer, so for now, we have seconds. [2006/11/03] - RaX - Changed ini loading to load default 60 for SaveTimer.Interval. [2006/11/03] - RaX - Changed Console.Pas to accomodate our new changes. - - Rev 45- [2006/11/02] - RaX - Updated ThirdParty.txt to include Indy. Also, corrected mistakes made by yours truly in the umysqlclient credits. "There is no Spoof", you could say. Updated to "Part 10" of the GNU license. - - Rev 44- [2006/11/01] - RaX - Map.pas - Implemented Tsusai's changed to GetPath which include, but are not limited to, the following... GetPath changed to a boolean function with APath as a parameter passed by address. Addition of IsBlocked to check for passability versus a multi-line condition. [2006/11/01] - RaX - Map.pas - Added GetArea, a private method of TMap which creates a search area based on our constant CHAR_CLICKAREA distance away from the starting point. [2006/11/02] - RaX - moved CHAR_CLICKAREA into Constants/GameConstants.pas. [2006/11/02] - RaX - Added GameConstants.pas. - - Rev 43- [2006/10/31] - RaX - Modified Map.pas - GetPath to return a TPointList instead of an Array [2006/10/31] - RaX - moved constant CHAR_CLICKAREA to implementation, created Directions constant array of tpoints which contains the distance to go from the starting point to get the point in said direction. [2006/10/31] - RaX - changed TMap.Graph to an array of array of TPoint. - - Rev 42- [2006/10/30] - RaX - Added Classes/Map.Pas - our TMap map class. Stubbed, only contains our pathfinding algorithm for now. The Pathfinder is a "floodfill" or "wave" search that finds the shortest path between 2 points by flooding the graph with tracers that keep track of where they've been. The first one to reach the end's path is the shortest path. - - Rev 41- [2006/10/23] - RaX - Random cleanup in LoginProcess, removed unused variables and function calls from our former Indy9 socket. - - Rev 40- [2006/10/23] - RaX - Updated XTimer to have a Resolution property which is defined by constants to reflect the accuracy fo the timer, between nanoseconds and seconds. XTimer is now much more accurate than before as well. [2006/10/23] - RaX - Added variables to ServerConfig to enable/disable and set the interval for the Save Loop. - - Rev 39- [2006/10/21] - RaX - Re-Added XTimer.pas (it works correctly now, and better!) changed over SaveLoop.pas into what it was supposed to be, the save thread only, executed by XTimer. XTimer is now a reuseable timer with a real resolution of 1ms ...the defining element is assembly....go me. Will be updated to really get accurate time down to the clock speed of the processor (faster the clock speed, the more accurate the timer). [2006/10/21] - RaX - Added our license to the header of Helios.dpr. [2006/10/21] - RaX - Added ThirdParty.txt contents. Basic, but effective. - - Rev 38- [2006/10/20] - Tsusai - Upgraded things to Indy 10. All old outstanding writebuffers now use Socket.SendBuffer. [2006/10/20] - Tsusai - Console: Updated all TIdPeerThreads to TIdContext, and renamed AThread to AConnection. [2006/10/20] - Tsusai - Socket: Updated SendPading to use SendBuffer. SendBuffer now converts OUR buffer to Indy bytebits to send out (it took 3 hours to get sending to work right). Also added a RecvBuffer, to handle recieving packets and putting them into a buffer. [2006/10/20] - Tsusai - TCPServerRoutines: Updated threads to contexts in DeactivateServer. [2006/10/20] - Tsusai - Login/Zone/Chara : Updated all peerthreads to contexts, removed ReadFromStack, redid the input buffer size call, and implemented SendBuffer (if missing) and RecvBuffer. - - Rev 37- [2006/10/13] - Tsusai - Friday October 13th....Just as creepy as 06/06/06 [2006/10/13] - Tsusai - LoginProcesses: Separated the validation code from ParseLogin, and added MD5 client connection support. - - Rev 36- [2006/10/10] - RaX - Code cleanup... [2006/10/10] - RaX - moved Run from Helios.dpr to MainProc as a property for organization. [2006/10/10] - RaX - Moved around save loop creates and destroys around in MainProc to make it force a save before the loop shuts down and free and recreate on restart. [2006/10/10] - RaX - Added TSaveLoop.Save which will house the actual save code... to allow forcing a full save by simply calling this procedure from outside the thread. - - Rev 35- [2006/10/09] - RaX - Fixed my timer. It wasn't allowing console commands (for some unknown reason). Removed XTimer, moved everything into SaveLoop...no more Enabled Property. {Thank you Tsusai} - - Rev 34- [2006/10/06] - RaX - Updated XTimer.pas to work with Delphi 7 (Self.Ontimer(); vs OnTimer()); - - Rev 33- [2006/10/06] - RaX - Overview - stubbed out the save loop thread routines and built a timer for us to use. [2006/10/06] - RaX - FIXED - Added CharaList.pas - forgot to last commit (sorry). [2006/10/06] - RaX - Added SaveTimer to MainProc, a threaded Timer I wrote. [2006/10/06] - RaX - Added TXTimer (Classes/XTimer.pas), a timer thread meant for the save. loop. [2006/10/06] - RaX - Added TSaveLoop(Classes/SaveLoop.pas) - our Saving thread. [2006/10/06] - RaX - How it works - The Timer runs in background forever. At Interval ms, it executes the saveloop, which runs outside of the execution path of both MainProc, and the timer itself. After saving, the SaveLoop automatically free's itself. - - Rev 32- BROKEN [2006/10/06] - RaX - Finished implementation of the Database system and made it thread-safe (we now use a local, to the object instance, connection rather than the old global one.) [2006/10/06] - RaX - CharaServerProcess - ripped out lingering sql queries and moved them into the databaseing units, created CharaExists(overloaded) and GetAccountCharas to replace them. [2006/10/06] - RaX - Removed old SQL.pas from project, still on SVN for posterities sake. [2006/10/06] - RaX - Removed SQLConnected from MainProc (console.pas). - - Rev 31- [2006/10/04] - Tsusai - Overview: Patched ZoneCore after running into multithread problems in Prometheus. [2006/10/04] - Tsusai - DatabaseTXT: Updated TPacketProc to recieve a passed packet buffer. [2006/10/04] - Tsusai - ZoneCore : Updated ExecCommand to pass the InBuffer to any zone procedure. [2006/10/04] - Tsusai - ZoneRecv : Updated the NoCommand procedure to be compatable by the above changes. - - Rev 30- [2006/10/01] - Tsusai - Overview: Continued work on RaX's plug and play database system. Mainly delt with character database components. [2006/10/01] - Tsusai - Console : Local Character server now using WAN_IP, not 127.0.0.1 [2006/10/01] - Tsusai - DatabaseTemplate/MySQLDatabase : Moved TCharacter SQL methods here from Character.pas [2006/10/01] - Tsusai - CharaServerProcesses : Updated calls for the above changes. Note : Database units not organized...was busy with functionality. Also, need to verify any use of TDatabase is cleaned up after we are done with it (FreeAndNil() or .Free). - - Rev 29- [2006/09/30] - RaX - Updated new database organization, removed CreateDatabase and created a "wrapper" class for our Multi-database interface which, on create, decides what interface to use. [2006/09/30] - RaX - Added - Classes/Database.pas [2006/09/30] - RaX - Renamed - Classes/Database/Database.pas to DatabaseTemplate.pas. [2006/09/30] - RaX - FIXED!!! - Random warnings from our umysql client, simply changed destroy to Destroy. - - Rev 28- [2006/09/29] - RaX - Overview - HUGE CHANGE, finally added our plug and play database system. this is, well, unique in RO emulators. The ability to swap between database types at the flip of a switch is handy, of course, but giving people more choices in databasing is extremely useful. [2006/09/29] - RaX - Added Classes/Database/Database.pas [2006/09/29] - RaX - Added Classes/Database/MySQLDatabase.pas [2006/09/29] - RaX - Added Constants/DatabaseConstants.pas [2006/09/29] - RaX - changed LoginProcesses to use the new database system rather than AccountDB.pas. [2006/09/29] - RaX - removed AccountDB.pas from the project, still on SVN for history. [2006/09/29] - RaX - Changed CharaServerProcesses to use the new database system. [2006/09/29] - RaX - Modified ServerOptions.pas to include a DatabaseType variable. This variable determines which database Helios uses. - - Rev 27- [2006/09/28] - RaX - ZoneCore - Started reorganization/re-documentation... make things a little easier to understand for newbies to the codebase =) [2006/09/28] - RaX - ZoneCore - renamed variables, recased types, moved begins around. placed ":" in their appropriate places when dealing with declarations. - - Rev 26- [2006/09/26] - Tsusai - Notes: Zone core uploaded. Non operational or called. [2006/09/26] - Tsusai - Character : Added ClientVersion to TCharacter. [2006/09/26] - Tsusai - PacketTypes : Imported TReadPts. [2006/09/26] - Tsusai - ServerOptions/WinLinux : Removed unneeded Units. [2006/09/26] - Tsusai - DatabaseTXT : Added unit to load .txt databases. [2006/09/26] - Tsusai - ZoneCore : Imported from Prometheus (yes..this is legal under GPL). [2006/09/26] - Tsusai - ZoneRecv : Added. - - Rev 25- [2006/09/26] - Tsusai - Globals: Added GetMD5 function, to turn a string into a MD5 string. - - Rev 24- [2006/09/26] - RaX - Re-indented half of the files...too many to count...non-code-affecting change. - - Rev 23- [2006/09/21] - RaX - Forgot to upload Helios.DPR. Now remedied. - - Rev 22- [2006/09/21] - RaX - Overview : To avoid a 20 page long changelog entry, I documented everything that wasn't documented. We're glad you chose to shop at Helios. Thank you, and have a nice day. - - Rev 21- [2006/09/20] - RaX - Overview : Documented ./trunk/src/Classes/Commands.pas and updated Documentation in ./trunk/src/Console.pas. Slight indentation rework in Globals. [2006/09/20] - RaX - Added comment headers to the head of the document and over each routine. [2006/09/20] - RaX - Modified original doc plan to include a line below each routine as well as a header above. [2006/09/19] - RaX - Re-indented a few variables in Globals.pas. - - Rev 20- [2006/09/19] - RaX - Overview : Documented ./trunk/src/Console.pas [2006/09/19] - RaX - Added comment headers to the head of the document and over each routine. Tell me what you think Tsu. - - Rev 19- [2006/09/17] - Tsusai - Overview : Fixed terminations, and added TCPServer activations and disconnections learned from Prometheus. [2006/09/17] - Tsusai - WinLinux : Added Termination signal capturing, and also adding manual process termination. [2006/09/17] - Tsusai - Globals : SQL timeout set to 10 seconds, Termination procedures added here. Now houses the server version. [2006/09/17] - Tsusai - TCPServerRoutines : Added, helps with activation and deactivation. [2006/09/17] - Tsusai - Console : Minor tweaks to MainProc class. - - Rev 18- [2006/08/21] - Tsusai - Overview : Tweaks, removal of some debug, credits file loading. [2006/08/21] - Tsusai - Added MadExcept to windows version. [2006/08/21] - Tsusai - CharaServerProcess - ParseCharaServ: Fixed loop structure (ReadFromStack). [2006/08/21] - Tsusai - Globals - ConnectToMySQL: Separated out into its own function. [2006/08/21] - Tsusai - Console - ThirdPartyCredits: Added. Reads credits file. [2006/08/21] - Tsusai - Console - MainProc.Startup: Cleaned up procedure. [2006/08/21] - Tsusai - Console - MainProc.ServerException: Finalized code. - - Rev 17- [2006/08/06] - Tsusai - SaveDB: Removed. [2006/08/06] - Tsusai - Notes\About running on linux.txt - Added (basically need zlib package installed). [2006/08/06] - Tsusai - Globals : Retrieves mySQL connection details from ServerOptions. Tells how many accounts and characters there are on the server. [2006/08/06] - Tsusai - ServerOptions : Added mySQL information loading and saving. [2006/08/06] - Tsusai - Console : Removed SaveDB call. - - Rev 16- [2006/08/05] - Tsusai - Overview : Character Server Fully Implemented...Big, because partial sucks. [2006/08/05] - Tsusai - GameGlobals : Added. [2006/08/05] - Tsusai - CharaServerProcess: SendCharas : Completed. CreateChara : Completed. DeleteChara : Filled in dummy procedure with fully functional code. ParseCharaServ : Updated DeleteChara Call. [2006/08/05] - Tsusai - Account - TAccount : Changed Characters to CharaID array. [2006/08/05] - Tsusai - Character TParamBase : Removed. TCharacter : All SQL related variables are properties. Whenever any of these are written to, an internal SaveTime Clock starts (Current + 5 min). Invokes SQL save, then is reset. (why waste a save query on a person sitting around Prontera all day long). Added Load, Save, and remove SQL procedures. Added GetCharacters to find a character from the internal list then sql. [2006/08/05] - Tsusai - Globals : CharacterList now an integer list. [2006/08/05] - Tsusai - AccountDB : Added FindAccountByID, and fixed the static setting in FindAccountByName. [2006/08/05] - Tsusai - LoginProcesses : Updated for AccountDB updates. [2006/08/05] - Tsusai - All other files: Uses cleaned up. - - Rev 15- [2006/07/11] - Tsusai - Overview : Forgot to SVN add SQL.pas - - Rev 14- [2006/07/11] - Tsusai - Overview : Character server work [2006/07/11] - Tsusai - SQL : Added. Get and Set integer and string utilites. SET : Needs a table, parameter, value, and ID key value. GET : Needs a table, parameter, and ID key value. [2006/07/11] - Tsusai - CharaServerProcess : Work on CreateChara. Need to do further work on TCharacter. [2006/07/11] - Tsusai - Character - TCharacter : Added most of the sql chara table variables as properties. Also added a AddToSQL, which returns the new CharaID. (STILL NEEDS WORK) [2006/07/11] - Tsusai - Globals : Added uses description. [2006/07/11] - Tsusai - Socket : Added BufferReadByte. - - Rev 13- [2006/07/08] - RaX - Overview : Lucky 13...=) [2006/07/08] - RaX - Moved and renamed AccountTypes and CharacterTypes. AccountTypes in '\trunk\src\Classes\Account.pas' and CharacterTypes in '\trunk\src\Classes\Character.pas'. One Class per file is the name of the game. - - Rev 12- [2006/07/08] - Tsusai - Overview : Code audit >< [2006/07/08] - Tsusai - Added Notes folder. [2006/07/08] - Tsusai - Documented and cleaned the following: CharaServerTypes, CharaServerProcess, AccountTypes, CharacterTypes, Globals, PacketTypes, Socket*, ServerOptions*, Console, AccountDB, SaveDB. * = RaX to document [2006/07/08] - Tsusai - Helios.dpr : moved "Loading text" from Console here. Contains the revision number. Please remember to update when you commit. [2006/07/08] - Tsusai - GameObjects : removed duplicate TCharacter code. - - Rev 11- [2006/07/08] - RaX - Overview : Pre-organizational...organization...=) [2006/07/08] - RaX - Commands.pas - Moved into classes folder. [2006/07/08] - RaX - Alphabetized units in Helios.dpr - - Rev 10- [2006/07/06] - Tsusai - Overview : CharacterServer Code and some bonus SQL code. [2006/07/06] - Tsusai - CharaServerPacker - SendCharas: SQL Query updated. Code setup to return Zero characters at this time till TCharacter is developed further. [2006/07/06] - Tsusai - CharacterTypes - TCharacter: All properties that will be made will be using SQL to get and set data. Basic retrieval code is now set in place, to be shared. Write procedures to come. [2006/07/06] - Tsusai - Globals: Added CharacterList (not used yet). Updated Console() to MainProc.Console() thus fixing broken rev 9. [2006/07/06] - Tsusai - Socket - WriteBuffer: Undid overload and added the type as a suffix (WriteBufferByte) Afraid of possible packet glitches, last thing I need to worry about. [2006/07/06] - Tsusai - AccountDB - FindAccount: Fixed searching engine. Wouldn't find it if it already existed. [2006/07/06] - Tsusai - LoginProcesses: Updated WriteBuffer calls. - - Rev 9- Broken [2006/07/06] - Tsusai - Overview : Forgot to upload the sql file, fixes (thanks to Jbain) [2006/07/06] - Tsusai - NonSQLFiles : Writeln -> console() update. [2006/07/06] - Tsusai - uMySQLVio : _WIN_ conditionals changed to MSWINDOWS (Jbain pointed it out). - - Rev 8- [2006/07/06] - Tsusai - Overview : Phased out txt for the moment. mySQL for now. Using jA Database. [2006/07/06] - Tsusai - helios.sql : jAthena sql info with test character and account. Would like an aegis one since this would be designed to be an aegis emulator. *shrug* [2006/07/06] - Tsusai - AccountTypes : Modified Gender to be a char. Once set, it modifies gendernum (0 or 1). Gender as a Char is M or F. [2006/07/06] - Tsusai - Globals : Moved SQL out of console to Globals. Centralized. [2006/07/06] - Tsusai - Console : SQL Code removed. Also, FIXED CharaServer OnExecute and OnConnect events. Also added The local character server. Now shows up. [2006/07/06] - Tsusai - AccountDB : removed old txt code, now looks in either the [2006/07/06] - Tsusai - Helios.dpr : removed "Command:" visual. Goofs up with server messages. [2006/07/06] - Tsusai - LoginProcesses : Replaced Gender with GenderNum (see above); - - Rev 7- [2006/07/05] - Tsusai - Overview: Massive code update, mainly dealing with SQL integration. [2006/07/05] - Tsusai - Helios.dpr : added some units. [2006/07/05] - Tsusai - WinLinux: Added this unit to address ALL massive ifdef mswindows/linux. Currently controls the IP to ip cardinal type used for RO clients to connect to a specified server. [2006/07/05] - Tsusai - CharaServerTypes: Modified, IP is now a property. Modifying it automatically updates IPCardinal. [2006/07/05] - Tsusai - Common\SQL (Folder) added SQL. It is GPL, but at this time I have contacted the author and am asking permission. If declined, project would be either without SQL or be GPL. [2006/07/05] - Tsusai - CharacterTypes: Added, basic TCharacter. Eventually, EVERYTHING will be a property for instant SQL SELECT and UPDATE procedures. [2006/07/05] - Tsusai - PacketTypes: Added TThreadLink type, from indy prometheus prototype. Helps link AThread.Data to actual TCharacter or TAccount. [2006/07/05] - Tsusai - Console: TThreadLink is now assigned to a connection thread upon character server connect. Also Added BASIC SQL retrieval. [2006/07/05] - Tsusai - SaveDB: Killed a warning...I want to remove this after txt file load is redone so it is beautifully like SQL, with massive disk access (lol, probably do this like prommy). [2006/07/05] - Tsusai - LoginProcesses: Removed unneeded variables. - - Rev 6- [2006/07/04] - Tsusai - Overview: Redo of certain account handling, for easy future MySQL addon. [2006/07/04] - Tsusai - Database is now AccountDB at this time. Object form removed, just procedures (why create memory for something only for procedures). Redid load structure, so that it loads on the go. [2006/07/04] - Tsusai - Console, Globals : Updated for above. [2006/07/04] - Tsusai - AccountTypes : Updated TAccount; [2006/07/04] - Tsusai - Commands: Removed /reload. Rather have all DB setup before doing this. [2006/07/04] - Tsusai - LoginProcesses: Updated to call active account search. [2006/07/04] - Tsusai - GameObjects : added, contains TBeing and TCharacter (works in progress). - - Rev 5- [2006/05/06] - RaX - Overview : stubbed Tdatabase/reorganized Tdatabase for upcoming changes to allow multiple database types to be used. Added CharaServerParse's Guts, a case statement based on Prometheus' charasel.pas No code was copied, however. Just the idea. I broke that up originally anyways...=) [2006/05/06] - RaX - Database - Overwrote Create to initialize lists and load the database. [2006/05/06] - RaX - Globals - Moved AccountList into TDatabase as a public var. [2006/05/06] - RaX - Database - Changed how reload works to accomodate later database additions. [2006/05/06] - RaX - LoginProcesses - Changed AccountList to ADatabase.Accountlist throughout the code. [2006/05/06] - RaX - CharaServerPacket - Added guts to CharaServerParse, a case statement to decide what to do with packets. - - Rev 4- [2006/05/08] - RaX - Overview : Added ServerName under new section "CharaOptions" in serveroptions.pas Made all INI options actually affect code...=) [2006/05/08] - RaX : ServerOptions.pas - Added SetServerName, fServerName, and LoadCharaOptions to do their respective tasks, exactly like similiarly named routines/vars. [2006/05/08] - RaX : Console.pas - Replaced hardcoded variables for server ports/ internal chara server name with their respective INI variables. [2006/05/08] - RaX : TODO:: Input validation on ini variables, making sure that ports are between 1 and 32767, that IP's are valid, etc. - - Rev 3- [2006/05/06] - Tsusai - Overview : Updated Serveroptions to what RaX wants, an "OnChange" idea. [2006/05/06] - Tsusai - ServerOptions: Configred to work like prometheus, load what is available, save all ini options. - - Rev 2- [2006/05/06] - RaX - Overview : Added Trunk/src/Config/ServerOptions.pas [2006/05/06] - RaX - Added basic INI functionality. INI will be named ServerOptions.ini and will always be in the same folder as the exe. [2006/05/06] - RaX - Class TServerOptions - TMemINI descendant with ini keys as class variables and save, load, and writenewini as methods. [2006/05/06] - RaX - TServerOptions.Save() - saves ini to disk. [2006/05/06] - RaX - TServerOptions.Load() - Loads ini keys into variables. [2006/05/06] - RaX - TServerOptions.WriteNewINI() - Writes a new copy of the ini with default values. - - Rev 1- [2006/05/05] - Tsusai - Import to http://opensvn.csie.org/HeliosProject/ - FROM OPENSVN.CSIE.ORG/TSUSAI/HELIOS - Rev 40- [2006/05/05] - RaX : Overview - CINCO DE MAYO, Reorganized a large part of the code. [2006/05/05] - RaX : Moved Console commands back into TCommands class [2006/05/05] - RaX : Reorganized startup messages into an outline format. [2006/05/05] - RaX : Redid the main loop to allow TCommands.Exit to exit the loop. [2006/05/05] - RaX : Added check at the beginning of TCommands.Parse to see if the string was blank, if it was blank, it would not exexute the parsing routine. [2006/05/05] - RaX : Finally, I tested the changes. Everything checks out ok. There seems to be no memory leaks, and it seems to be uncrashable. Hopefully this will be a good building block for the other servers. - - Rev 39- [2006/05/04] - Tsusai : The original bug problem was that i was using a byte type for the loop. 0 to -1 crashes with the range error, due to the fact byte type cannot be less than 0. Fixed. - - Rev 38- [2006/05/04] - RaX : Bugfix :: If there aren't any charaservers in charaserverlist, there would be a range error in loginprocesses.pas - SendCharaServers. Fixed with condition checking if there is a charaserver in the list. - - Rev 37- forgot changelog - - Rev 36 - [2006/05/04] - Tsusai: Bugfix and added linux compatability Helios.dpr : added one of the few win/linux conditional defines. Console.pas : removed database variables, activated loginserver. Globals.pas : added ADatabase as a global variable here. - - Rev 35 - [2006/05/04] - Tsusai - GUI removal and reorganization to accomidate. Helios.dpr : executes in a controlled loop to keep the application alive. Console.pas : new console class of the application (MainProc). Items from Commands.pas moved here Commands.pas : removed Socket.pas : removed tsocket class, but kept procedures. Those procedures are enough, don't need to create and destroy classes (memory) over and over just yet. not till we have game objects in place. Database.pas : moved Reload here from Commands - - Rev 34 - [2006/05/03] - RaX - Fixed bug from rev 29, AnAccount was being free'd after being added as an object to accountlist in Database.pas - LoadAccountInfo. This was also removing the object from accountlist. - - Rev 33 - [2006/05/03] - RaX - Removed login processes from Socket.pas ...for now...=) Moved Socket.pas into common. - - Rev 32 - [2006/05/03] - RaX - Miscalculated version numbers in changelog. This fixes them. - - Rev 31 - [2006/05/03] - RaX - Moved all socket related code into socket class, renamed variables in all routines in socket.pas. Added command "/commands" to display available console commands. - - Rev 30 - [2006/05/03] - RaX - Added some more of the socket interface to the socket class, there's a bit more to go though. (SendBuffer was added, all Packet handling will be done by this class soon, and will make it easier to swap out sockets if need be). - - Rev 29 - [2006/05/03] - RaX - Modified socket code to be accessed by a class, for flexibility. It's been tested and works. - - Rev 1-28 - Tsusai [2006/05/01] - Forgot to SVN add database.pas [2006/05/01] - RaX updated reload in commands.pas [2006/05/01] - Added RaX's changes: Now Win32 (not everyone has Delphi Ent for cross) Database changes, added Command.pas. Also Added "missing" CharaServerPacket unit [2006/04/13] - Added project group, added beginning of character server. [2006/04/07] - Added new version of Helios - Tsusai

    posted 893 days ago

Rate and Review

Be the first person to add a text review.

Would you recommend this project?






<

Related Projects

The Helios Project Actions

Thanks for your rating!

Would you also like to write a review?





Skip Review