1. Lzma or lz4 , don't really matter the compression algorithm that you use. You need a SSD and all is fine.
2. The aim of improved_packet_encryption is to cipher packets to prevent packet sniffer to decrypt and to solve buffer issues. Just don't touch it if you have no ideea how to work with memory management. And lol, why you need to cipher packets? Really is metin2, is an old game... Belive me , No big hacker will come to destroy kids server.
AES is the best. I alredy use it for mysql hash password.. SELECT HEX(AES_ENCRYPT('password', 'key'));
3. SendClientConfigPacket. should be ok The packet will send true or false intro client and with one config server you can enable or disable client codes too. Here is an example config. https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif from my server. Also write locale.cfg metin2.cfg mouse.cfg to be saved intro registry.
if (true == ReceiveClientConfigPacket(g_enable_wolfman))
{
/// Valid codes
}
Here is one challange for you, well.. What to include in you release, i already did all those but do it if you want.
- no need to pool memory big than 1024*256, that is 18 slots, to forbidden call buffer_pool_free()
-memory size 8Byte align, use memalign inseated
- create a thread safe for buffers.
- std::copy inseated of memcpy
- convert all new operators to unique_ptr (Client / server src )
- see assert functions intro release mode (server /client ) undefined behavior (buffer.c)
- Rewrite adminpage systems for a better stability.
- Fix all memory leaks that come from SpeedTreeWrapper class.
- Fix rotation intro intro StatePacket.
- and mooooooooore things , just too lazy to tell you...
Good luck.