pySilkroadSecurity exposes Drew's SilkroadSecurity API to Python 3.2 and above. It does not implement the API in Python code.
- Linux or Mac OSX
- Python 3.2+
- boost
- git
- cmake
- apt-get update && apt-get upgrade
- apt-get install build-essential python3.2 python3.2-dev libboost-all-dev git cmake
- apt-get update && apt-get upgrade
- apt-get install build-essential python3-dev libboost-dev git cmake
- yum update
- yum install gcc-c++ boost boost-devel boost-python3 boost-python3-devel python3-devel cmake
Make sure you have base-devel
already installed.
- pacman -Syu
- pacman -S python3 boost git cmake
- Follow the Debian 7 guide.
- Use a single thread to compile
This will be a complete guide since the steps are quite different for compiling. You will need to update the Python version in the cmake string when 3.5+ is released.
brew install boost
brew install python3
brew install boost-python --with-python3 --c++11
git clone https://github.com/ProjectHax/pySilkroadSecurity.git
cd pySilkroadSecurity/
- ```cmake -DPYTHON_INCLUDE_DIR=
python3-config --prefix
/include/python3.5m -DPYTHON_LIBRARY=`python3-config --prefix`/lib/libpython3.5m.dylib -DPython_FRAMEWORKS=`python3-config --prefix```` make -j4
cd python/
python3 pySilkroadStats.py
git clone https://github.com/ProjectHax/pySilkroadSecurity.git
cd pySilkroadSecurity/
cmake .
make -j4
cd python/
python3 pySilkroadStats.py
pySilkroadStats.py
This small project shows you how the SilkroadSecurity API is to be used from Python. It will connect to iSRO and display the server list. This can be easily added to by adding a few lines to log into the servers and join the game world.
pySilkroadProxy.py
This project accepts connections on TCP port 15779 and will create a proxy between the Silkroad client and the Silkroad game servers. This will allow you to view all packets going to and from Silkroad. This project can also be easily modified to filter packets for a private server; although, I would recommend rewriting the network code to not use select() if you end up needing to handle more than 100 simultaneous connections.
Copy pySilkroadSecurity.so and stream.py to your own project folder and import them like so:
from pySilkroadSecurity import SilkroadSecurity
from stream import *
- iSRO/SilkroadR client will crash after loading the game world if HackShield is disabled using edxSilkroadLoader5 (it's missing one client patch that was added recently)
- Stream classes have not been extensively tested/used and may have bugs
- With some modifications it can work under Python 2.7.X (it was originally written for 2.7.X)