Bigger update!
Remember that big list of stuff left to do? It's a lot smaller now
I've been having a blast implementing the missing features I mentioned in the last update.
So what's new in REOSERV?
Features ✨
- Switched to Argon2id password hashing
- Lockers and Bank Bob fully implemented
- Town Boards implemented
- Stole the timestamp display idea from EOSERV
- Reporting and "Speak to admin" features implemented
- Based off EOSERV (reports/messages go to admin board and admin chat)
- #ping command implemented
- Client will now show online friends
- Admin hide command implemented
- Should be completely invisible to players and NPCs (even if player is sniffing packets)
- Changed to tick based timers for most server events
- Timed quake events implemented
- Implemented spike damage and timed spike events
- Implemented timed hp/tp drain events
- Implemented timed warp "suck" (players adjacent to warp tiles will auto warp after so long)
- Door open state is now tracked on the server
- This prevents players from walking through closed doors
- Also prevents players from being "sucked" into closed door warps
- Implemented timed save for all players
- Implemented map relog coordinates (used to reset a player's position after logging back in to a map)
- Implemented server rescue map if player attempts to login to an invalid map
- Server side validation for door and chest keys
- Inn keeper system implemented
- Players can now register and cancel citizenship, and sleep at inn keeper npcs
- Implemented player trading system
- Implemented player parties
- Using party exp share formula that was derived from GameServer
- Implemented ranged weapons
- Implemented arena system
- Players can now change their account password
- Optionally freeze NPCs that are out of range of players (GameServer behavior)
- Pub files can now be generated from JSON (JSON can be created with new tool pub2json)
- Admin moderation commands implemented
- $ban player [duration] (IP and account ban)
- $kick player
- $jail player (also works for offline player)
- $free player (also works for offline player)
- $freeze player (client side only)
- $unfreeze player (client side only)
- $mute player (client side only)
- $global (toggle global channel lock)
Bug fixes 🐛
- Fixed adding items to chests
- Chests are now created when maps are loaded rather than the first time the spawn items event triggers
- No longer sending player walk packets to the player that walked
- This caused laggy client behavior that wasn't noticable on localhost
Code cleanup 🧹
- Created Dockerfile
- Switched to rustls for tls encryption
- This allows the program to easily be containerized
What's left?
REOSERV is just missing a few larger features now
- Kill steal protection system
- Guild system
- Anti-speed system
- Boss & Minion system
- Law & Marriage
- Quest system
Hope you enjoyed this update! I'll try to get the next one out soon 😜