RF 2.2.3.2 local server setup guide Introduction: What follows is a method (determined by internet searching and trial and error) to setup an RF Online 2.2.3.2 server for a local network. What worked for this system may not work for others. This is by no means a definitive guide; there will most likely be better options in setting up the server. There will be security and stability errors that should not be exposed to the internet without testing and correction. If errors are encountered, search appropriate forums and try manually troubleshooting; all trial and error was completed using the tools in the Recommended tools for modifying/debugging: list. Do not pass up the opportunity to broaden knowledge. Feel free to modify this guide, just maintain a list of editors.
System: The system was configured to use a VMware Workstation virtual machine to run the RF server, with a PlayRF.com client (modified launcher) running on the host. This way Wireshark could be used to troubleshoot.
Host:
Windows 7 Ultimate x64 Intel i7 920 12GB RAM 30GB free HDD space
Guest OS (running RF server):
2 core processor 5.5GM RAM Windows Server 2008 R2 x64 with updates applied + vmware tools 20GB HDD (this can be reduced if paging is disabled) Network IP:10.53.1.182
Server files: RF Online 2.2.3.2 GU - Xtreme Server Files – FIXED –H4TE
Recommended tools for modifying/debugging:
Notepad++ Wireshark TCPView A Hex editor with search & replace functionality – Hex Workshop was used A file search utility with binary search functionality – PowerGREP 4 was used AnjLab SQLProfiler The Tracing option in ODBC
1
RF Server installation: Dependencies: Follow the default install options unless otherwise noted.
dotNet2.0: included in OS vc2005: x64vc2005sp1 Account & RFDepend packages from RF server package/ RF Dependency/ SQL server: MSSQL 2008 R2 x64 Express W/ Tools
MSSQL 2008 R2 x64 Express with tools installation options Server Configuration: Service Accounts: SQL Server Browser: Startup Type -> Automatic
Database Engine Configuration: Authentication Mode -> Mixed mode; specify password (SA1password)
2
MSSQL configuration Configure MSSQL2008 R2 Express for network access: Open SQL Server Configuration Manager Enable TCP/IP: SQL Server Network Configuration: Protocols for SQLEXPRESS Named Pipes -> Enabled TCP/IP -> Enabled
Restart the MSSQL server: SQL Server Services: Right click SQL Server (SQLEXPRESS); click restart.
Server file extraction Create the folder for the RF server and extract the server files into it: C:\RF_server_2.2.3.2\
3
MSSQL database setup Setup the databases: Open SQL Server Management Studio Login to 127.0.0.1\SQLEXPRESS with sa:SA1password
Create the databases Right click Databases, select New Database.
Create 3 new databases named: RF_World, RF_User and BILLING
4
Restore the databases Right click RF_world; Tasks; Restore; Database
From Device
File; Add (select backup file: RF_WORLD.bak)
5
Check restore
Options; Overwrite the existing database
OK (repeat for RF_User & Billing)
Set up the new users
name:rf
SQL server authentication: pass: rfpass.
6
uncheck enforce
User mapping: all options excluding denys: for rf: all RF Databases, for rfrusaccount, only database: RF_User, for rfrusworld, only database: RF_World.
Also create the accounts: rfrusaccount:#rf%rusaccount and rfrusworld:#rf%rusworld (These are hardcoded into the AccountServer and ZoneServer respectively and they change with country code; if a different country is used (not RU), use ODBC trace and AnjSql Profiler to determine the user, then hex search user in AccountServerSD.exe to find user & pass)
Allow the appropriate users execute permissions New Query: run this SQL (execute) USE RF_User GRANT EXECUTE TO rfrusaccount, rf USE RF_World GRANT EXECUTE TO rf, rfrusworld USE BILLING GRANT EXECUTE TO rf
7
Create the ODBC connections: Open ODBC Data Source Add: SQL server native: Finish
Name:RF_User. Server:127.0.0.1\SQLEXPRESS
sql server authentication: rf:rfpass
8
Change default database to: RF_User
Next:Finish:Test. If OK: OK. repeat for RF_World & BILLING, using RF_World and BILLING as the default database respectively.
ODBC Data Sources:
9
Server configuration modification (see appendix for this servers configuration files) Setup RF ini (Account and Login\RF_Bin\Initialize\[Account|Billing|Login]System.ini, ZoneServer\WorldInfo\WorldInfo.ini, ZoneServer\RF_Bin\Initialize\WorldSystem.ini, rfacc.ini change IPs change database details change WorldInfo.ini servertype to 0. Note the HBK & History path: create these directories.
change WorldSystem.ini comment out Ver_Check.... -> ;Ver_Check.... change Login_Filter_Dev.ini for GM accounts change rfacc.ini (2 files) -> DBSTR = Driver={SQL Server Native Client 10.0};Server=127.0.0.1\SQLEXPRESS;Database=BILLING;Uid=rf;Pwd=rfpass; (Modify this string according to your database server; see Connection Stings (ODBC) for other options)
10
Testing (All server executable must be run as administrator; it is easiest to set this in compatibility options)
Start the AccountServer and LoginServer enter /open in the login server.
11
Note, (this version of) LoginServer uses port 10001 (use tcpview to confim)
Allow programs through (computer) firewall (LoginServer, ZoneServer) or appropriate ports (through (or turn off (not recommended on a computer connected to the internet)) Windows firewall)
12
Try to login RF client should produce a "Wrong Account input" error message (there are not yet any accounts on the server) on attempting to connect.
Add (normal) user test:test to RF_User.rfaccount INSERT INTO RF_USER.dbo.tbl_rfaccount (Id,Password,accounttype,email,birthdate) VALUES ((CONVERT (binary(16),'test')),(CONVERT (binary(24),'test')),'1','
[email protected]','01/01/1980')
13
Then try to login on client with this account
RF Client should give login, and display the server as closed.
Start the ZoneServer Add a GM account to ini configuration and MSSQL USE RF_User Insert Into tbl_StaffAccount (ID,PW,Grade,Depart,RealName,SubGrade,Birthday,ComClass) Values (Convert(binary,'!teste'),convert(binary,'teste'),'2','none','teste','4','01/01/1991','GM') Add the GM information to Login_Filter_Dev.ini. Restart the Login and Account server.
Try to login as GM Note:GM ID in RF Client uses !name. Example:!teste
14
Success (check free memory)
15
Modifying launcher If you do not have or can't find a suitable client, you must modify an original client. Use wireshark to identify which address the client is obtaining updates (only) from (the launcher page content is not important for now). Investigate how the update process works then build or modify an emulator that provides an LPServerInfo.dat with the IP for your LoginServer and set up a web server
How to modify the update server (need web emulator) Investigation Start capture in wireshark, start the RF Client, wait for it to update, stop wireshark. RF Client calls update.dll on a remote server. Apply a filter in wireshark to find these packets: tcp contains update.dll
Find the Host in each packet.
HEX search for these addresses in the client and modify them to your launch server
This client: the hosts are: launcherupdate.playrf.com, launcherconfig.playrf.com and rfonlinepatch.gscdn.com:10007 Find out what port RF Client is calling the LoginServer on using TCPView – try to login to a non-existent account and watch the RF Client on TCPView. 16
This client uses 27780. Modification Search for the launcher and update text values in the client using a hex editor (not rfonline-patch).
Overwrite these with the IP of your update server (make sure not to change the length of the file)
17
Search & Replace (6) instances of the login port with the appropriate login port (10001)
Save the modified launcher under a new name. Web emulator This emulator only supplies a new login IP for the RF Client. If you have problems, use wireshark to troubleshoot. Using AppServer: Install appserver Modify Apache configuration httpd.conf Change the listen section so it reads: Listen 80 Listen 8080 Listen 10007
Create the rf-server.conf (modify the IP, DocumentRoot, Log and directory values to suit) file in the apache conf directory and add this include at the end of the Apache httpd.cond: Include conf/rfinfo.conf Modify the update.dll (2) LPServerInfo.dat and ServerConfig.dat to point to you patch and login servers. Restart the apache service. Try to login with your update and port modified client.
18
Extensions To connect PHP with MSSQL, ntwdblib.dll (version 2000.80.194.0) must be placed in the apache and php bin folders, and the extension loaded in the php.ini configuration. Web registration: DAFA RF GameCP can be used as a registration script with simple modifications (add a birthday field and use the correct table)
Thanks: RageZone 2.2.3.2 Initial release by: Alankratos/madhatter Fixed release by: H4TE Video guides by baltais99 Anybody who has every answered someone’s query :) Maindev.ru RF_223_php_Emulation
Version: 1 – 2011-12-03 – bov.
19