sdev-client library provides modifications and enhancements for Shaiya Episode 6 PT client version 182. This library handles client-side features including battlefield movement, chat exploit fixes, recovery packet handling, and more.
Environment Requirements
- OS: Windows 10
- IDE: Visual Studio 2019
- Language: C++ 20
Prerequisites
The DirectX SDK installer creates a system environment variable named
DXSDK_DIR that specifies the installation directory.Binary Restoration
The client binaries have been partially restored to their original condition. For adding new imports, it’s recommended to use PE Bear.SData Formats
The library supports multiple SData format versions:| Data Type | Format |
|---|---|
| Item | EP6.4 |
| Monster | EP5 |
| NpcQuest | EP6 |
| NpcSkill | EP6 |
| Skill | EP6 |
Battlefield Move
The battlefield move implementation is based on US client 223 (EP7).Data Structure
Add the following files to your data directory:Configuration
Configuration Guidelines
Configuration Guidelines
- Assign a unique value to each
MAP_NOkey - Define a unique level range for each battlefield
- Movement is instant, like the official server
- Certain debuffs will prevent movement
- Moving to the same zone is not allowed
The game uses MapID to determine which system message line contains the map name. The client chooses the battlefield based on level range, not MapID.
Chat Color Exploit Fix
The solution involves increasing stack allocation in two functions to prevent buffer overrun. See the Old New Thing blog post for technical details.Assembly Code Modifications
Recovery Packet Handling
Episode 6.4 (and greater) clients do not add the values in the 0x505 packet handler by default.