So, since i got some free time, i can write this for everyone out there trying to get the server working without success for now. As you might already know, i've shared files i leaked from Vietnam Silkroad official servers to the community. So, here is what you will need for setting up a Silkroad server based on VSRO server files.
1. Windows XP/2003 Server/Windows 7/Windows 2008 Server/Windows 2008 Server r2 (one of those)
2. For handling 1000 players with all regions working, you will need 2 machines (you can run one as virtual)
3. One of the machines must have at least core i5 processor, and 6 - 8 GB of RAM, second might be slower a bit
4. Microsoft .NET framework 3.5+
5. Microsoft SQL Server 2000/2005/2008/2008 r2 (i will use 2k8 in this guide)
6. Microsoft SQL Server Management Studio (in 2000 it's integrated, for 2005 u need to download it, same as for 2008). SSMS 2005 wont work with mssql server 2008
7. A bit of knowledge how that stuff works
You can get MSSQL 2008 express edition from official Microsoft website
Well, since it's RageZone, i think, people got enough brain to set MSSQL server up.
Anyway, after installing mssql server, get those files i've also released
Server Files
Part1
Part2
Part3
Files was released on EPVP originally, and password is "fortheworstcommunityever".
Database Dumps
Changeset vsro obt v247-v249 (u wont need it, unless you are just interested in viewing it)
Xtrap update files
Billing ASP scripts
Custom certification server
from pushedx aka Drew Benton
config files from LegendaryDev
Latest SMC Build
So, let's start. Save all that files in a some folder on your hard disk, and extract them.
After you are done with setting up a mssql server, and restoring databases (i consider, database names will be SRO_VT_ACCOUNT, SRO_VT_SHARD, SRO_VT_SHARDLOG), you have to
create 3 ODBC sources (you can name then however you want, but i preffer to call them the same way as databases). Specify "SQL Server" as ODBC driver. Default language must be
English for all databases.
Also, you have to set ODBC default database names this way :
SRO_VT_ACCOUNT -> SRO_VT_ACCOUNT
SRO_VT_SHARD -> SRO_VT_SHARD
SRO_VT_SHARDLOG -> SRO_VT_SHARDLOG
It's pretty simple and understandable, because i use the same database names as ODBC.
Don't forget to edit _ShardService table, and change Shard ID to 64 in SRO_VT_ACCOUNT database.
After you are done with ODBC, you must configure your custom certification server to work with your database server. Just run 1 - Decompile file in it's folder,
it will decompile current packt.dat file, and save .ini files at "ini" folder. Open it, and you will see few files, which you have to replace with those
which you downloaded in another archive (from LegendaryDev). After you are done, open your "srGlobalService.ini", and configure it to work with your database
server. Don't forget, by default, mssql 2005 and 2008 does not bind on port 1433, they uses ODBC. So, you shouldn't put ",1433" after your server hostname (which
should look like "PC_NAME\SQLEXPRESS", or just "PC_NAME". Do same for "srShard.ini" file (also, you can edit some shard configuration there, like capacity).
Do not make server capacity more than 1000 for now (i will tell why a bit later). Then you will have to change the ip addresses for binding certification server. For
this, open srNoteType.ini, and change "wip" to your WAN ip, and "nip" to your local ip. After you are done with your common certification configs, run "2 - Compile.bat" file in order
to make a new "packt.dat" file (new one will be named "new_packt.dat"). After you are done with it, start third batch file ("3 - CustomCertificationServer.bat")
Now, if the certification window starts, and shows a message, that says server successfully bound on port 32000 (or any other, if you modifyed it), you are ready to begin configuring
server.cfg in your main server files folder. If it doesent, you should be done something wrong (it should be IP in 99% of cases).
Well, if you suceeded, open your server.cfg file in the main server files folder, and change all "Certification" ip addresses to your one. Take a look at SR_ShardManager and SR_GameServer configuration.
As you can see, there is a billing url at shard settings, which you will have to set up by installing a IIS server, and creating a website instance on some unused port running. Files you should put on your IIS website
are in the beginning of post (billing asp scripts). Also, don't forget to enable asp support in your IIS server, otwertise, it will not work (will give IIS core error, and wont work propertly).
You have to edit DBConnect.asp file with your MSSQL server security information. Don't forget to edit your billing server url in your server.cfg (it should be like "http://silkroad.net:1337/").
After you are done, you might try to start your server. Here is the sequence in which you should do it (might be different, but this one will work for sure).
1 - Custom certification server
2 - GlobalManager
3 - MachineManager
4 - DownloadServer
5 - GatewayServer
6 - FarmManager
7 - AgentServer
8 - SR_ShardManager
9 - SR_GameServer
If you got everything running fine, you might try to start the service. For doing it, you have to download SMC (also check the top of this post), create a new server developer account, and log in using SMC.
For doing it, open your SSMSE, go to SRO_VT_ACCOUNT database, open TB_User table, and a new row with your account infos there (password is encrypted with usual md5 function). For giving account a rights
to access through SMC, you will have to change it's "sec_primary" to 1, same as "sec_content". Also, for connecting to SMC you will have to add your IP address to official ip ranges list.
For doing it, you have to edit _PrivilegedIP table in SRO_VT_ACCOUNT database (by default, it uses reverse integer "encryption", but you can modify it to use normal IP ranges. You can do it using this query :
USE [SRO_VT_ACCOUNT] GO /****** Object: Table [dbo].[_PrivilegedIP] Script Date: 09/13/2011 08:35:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO drop table _PrivilegedIP GO CREATE TABLE [dbo].[_PrivilegedIP]( [IP1] [tinyint] NOT NULL, [IP2] [tinyint] NOT NULL, [IP3] [tinyint] NOT NULL, [IP4] [tinyint] NOT NULL, [IP5] [tinyint] NOT NULL, [IP6] [tinyint] NOT NULL, [IP7] [tinyint] NOT NULL, [IP8] [tinyint] NOT NULL ) ON [PRIMARY] GO
After it's done, just add your ip range like this : if your ip is 127.0.0.1, for example, add each part of it in one column.
This will add 4 ip addresses into allowable ip ranges (127.0.0.1 - 127.0.0.5).127 0 0 1 127 0 0 5
After you are done, restart your GatewayServer, if it was running while you were doing it.
Now you will have to edit your client side (server division ip address is stored at Media.pk2), you have to edit it with XVI32, Hex Workshop, or some other hexadecimal editor.
Well, you can also use a software writen by other people, like "Media Patcher", etc.
Common problems are
{
- Wrong MSSQL server setup
- Wrong certification server configs
- Wrong database names
- Wrong ODBC setup
- Wrong IIS setup
- Wrong ip addresses/ports defined in server.cfg
}
Some info you should know
{
- One agent server supports only 1000 users
- You can't run 1 gameserver with ALL regions working (_RefRegionBindAssocServer table in SRO_VT_SHARD database; 0 = disabled, 1 = gs1, 2 = gs2, 3 = g3)
- You can run only 1 gameserver/any another module instance at a single physical/virtual machine
- I don't have any sources of server modules executables to provide, so, reversing is the way to go for fixing stuff
- For adding new gameserver/agentserver/any other instance nodes, you have to know some stuff about the way modules are being certificated/linked
- Certification server reads the first network adapter primary ip address
- Basic certification architecture
- Tons more
}
I will update this guide through time, as much as i can. There is tons of things to tell that you should know, but i'm just too lazy at the moment, so, you will have to wait for updates.
Chern0byl
Ragezone