WvsGlobal v22 (WvsBeta_REVAMP)
WvsGlobal fork targeted for v22 and .net framework 4.8. Includes idb and scripts.
Notes
- Config options for Redis, ElasticSearch/logging and some others are missing
- ReNX has been modified to support merging of NX files
- log4net.ElasticSearch was made a bit better in terms of memory usage and logging
- SQLs/wvsbeta_sql_compatible.sql should be compatible with the server
- packages/ folder contains the NuGet packages.
Features
- Lots.
- log4net and ElasticSearch for logging/tracing
- Redis for locking character transfers when they CC and other features
- NX data files
- Threaded packet sending queue to offload slow sockets
- PatchCreator for maple .patch files, using jdiff
- Improved MasterThread for running the best as possible, without CPU load
- Anti-Hack measures
- Discord webhook support
- bcrypt password hashing
Credits
- wackyracer
- Exile
- Diamondo25
- Sifl
- Anthony
- SpAgentMoo
- Joob
- Rath
- Ginseng
- csproj (for doing about nothing at all. hurr)
And all staff and the players that have made the server a great success. You'll be remembered.
Things we've learned
- Don't exploit or hack. We knew all along.
- Don't bug GiveEXP function so that it saves on every exp gain, while there are 50 people training (thanks Exile :) )
- Don't livestream with your camera pointing to your keyboard and then log in.
- Let other people check your code to remove exploits.
- Don't rush releases.
- Delaying releases because migration logic is borked is not helping the problem, either. Like the teleport bug, hurr.
- And if you decide to release and do your last push to git, your git host could drop out (Gitlab issue @ 2017-08-24 at 2 AM)
- KitterzPE or RiPE will not work. Stop crashing your clients...
- Keep your Windows Server up-to-date, otherwise you might get rekt >_>. (We never had that issue)
- There are VPSs running on old hardware out there. Ours was on a Nehalem or Westmere based host.
- Make sure your server host(s) is/are paid. Otherwise you get downtime out of nowhere.
- Don't get top ranked on Google for "maplestory global"
- GTOP is shit. Don't spend money and time into that.
- If you do decide to use GTOP, expect downtimes. And log everything related to it.
- Don't boost your friends as a server owner, outside of Tespia. People are not going to like that. #boostgate
- People like being midget.
- Keep love outside of private servers, or you might get f*cked
- Keep your password private. We've had 5 people that we had to recover from some brother or sister deleting their character(s)...
- Do not push to production directly. That single line edit could have a lot of issues
- Use debug logging using debug logging functionalities, especially when you do it in the attack handler
- Trace.WriteLine is erased. Do not pass a function call, such as packet.ReadInt() to it, because that will disappear.
- Do NOT select text inside a console. It freezes the application running inside it.
- Double check, no, TRIPLE check your queries. Don't want your shoes to end up on your head ;')
- Have a way to test someones character to figure out issues.
- Do not put too much money in Facebook. Your reach will be capped at a certain point
- Use /map 0 for free meso
- Stay away from El Nath, it might kill you until you are dead (and lost all your EXP). Who needs to check HP anyway?
- When you think you fixed an issue with falling down the map, and you accidentally made a teleport cheat on the map boundaries. Which then keeps on existing for weeks.
- TomBradyProtect, and you'll never get a wz editor ever again.
- Don't give away Ilbis as a CM.
- Muting people might make them use emoji responses to talk, instead.
- Make sure repeated actions are in sync, and don't decide to stack up in events due to locking and such hurr...
Patching
Using the native patcher, create a FTP server with anonymous read access, using the following directory structure:
- Maple
- download
- FullVersion
- MSSetup.exe - Used if patching fails for some reason.
- FullVersion
- patch
- notice
- 000xx.txt - The version changes file.
- patchdir
- 000xx
- 000xxto000yy.patch - The patch file, generated by the PatchCreator (using
make-patches
) - NewPatcher.dat - The new patcher to download (renamed from .exe)
- Version.info - Generated by the PatchCreator, contains the checksum of the new patcher and the version to patch from.
- 000xxto000yy.patch - The patch file, generated by the PatchCreator (using
- 000xx
- notice
- download