Archived author: importer • Posted: 2016-07-10T12:38:27+00:00
Original source
Original source
A project that I’ve worked on and off over the last 8 months, the original idea was to create a simple sandbox with basic networking for the original Alpha client (0.5.3) however, as per usual, it evolved and I’ve implemented (read: thrown together) the base of a few other systems. I’ve not worked on this for 3+ months so thought someone else might be interested in reviving this as I don't plan on continuing this project.
A quick disclaimer: this was never intended to be a commercial project and therefore it is the definition of spaghetti code! I wouldn’t recommend trying to use this for a public server or to even work on the code; just simply as a reference. If I were to redo this I’d use one of the vanilla cores as a base and work back from that.
Current status of features:
- Chat and emotes
Chat channels not implemented
- Items
- Trading
No enchanting through the chat window
- Groups
Group loot not implemented
- Quests
No ScriptDev equivalent so scripted quests won't work
Not all of the correct quest filters are applied
Issue with displaying quest objective count
- Instance portals
Instancing itself is not implemented
- Gameobjects
Only spawning (chests are animated though!)
- NPCs
Vendors, talent trainers, bankers and skill trainers are working to some degree
Basic faction implementation
- Friend/Ignore List
- Talent “tree”
Spell effects not implemented
- Spell casting
Spell effects not implemented but cast animations and pre cast checks are
- Creatures
Can melee combat
Looting works but couldn’t figure out how looting worked in terms that tagging mobs wasn’t a feature, should everyone have access to the dead mob’s loot?
Movement isn’t correct
AI not implemented
Basic faction implementation
- Leveling
Correct talent and skill points being applied as well as the animation
Some things to note:
- I couldn’t find any reliable source to say if guilds even existed at this stage. The packets are there and the code is in the client but whether it was released I’m not sure so haven’t implemented it
- All settings are in the Globals.cs file including level cap
- I’ve used a Mangos 1.12.1 database as the backend so a lot of items/creatures/stats are wrong
- GM Commands include
.additem <item number>
.addskill <skillid>
.setskill <skillid> <amount> <max amount>
.kil
.level <level>
.money <copper amount>
.setpower <amount>
- Saving is something I started working on but never really implemented
- The saving and database mechanic works around a custom ORM I built which is heavily reflection reliant
- Under the common project there is a file called structs.cs in the Constants folder. This is every struct I could extract from the client
- Username and password is in the wow.ses file inside the client directory; by default the server will create an account based on this information
- On my keyboard the '@' key brings up the client's debug console one very helpful command is "speed <amount>". The default being 6 and the max being ~50.
Requirements:
Installation:
Client Download:
Server:
- Extract the DBC files to a folder named “dbc” under the root directory
MPQEdit works for this
- Unzip and run the SQL file in the Database.zip archive
- Inside the App.Config file is a MySQL connection string, change this to point to the above database
If you’re running the compiled version the config is called WorldServer.exe.config
- Creature a shortcut to WoWClient.exe and add –uptodate to the end
i.e. "E:\World of Warcraft Alpha 0.5.3\WoWClient.exe" –uptodate
Continuation:
As I said before, I never intended to release this or use it for an actual server this was just a project to explore the Alpha further than the original sandboxes. However if a team decides to work on this I’ll be more than happy to lend a hand or offer what information I’ve sourced.
Source code can be found here:
https://github.com/barncastle/Alpha-WoW
The download link is a compiled version with DBCs