Beruflich Dokumente
Kultur Dokumente
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
Server files:
RF Online 2.2.3.2 GU - Xtreme Server Files FIXED H4TE
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)
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.
From Device
Check restore
name:rf
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
Name:RF_User. Server:127.0.0.1\SQLEXPRESS
Next:Finish:Test. If OK: OK. repeat for RF_World & BILLING, using RF_World and BILLING as the default database respectively.
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)
11
Note, (this version of) LoginServer uses port 10001 (use tcpview to confim)
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.
13
Try to login as GM
Note:GM ID in RF Client uses !name. Example:!teste
14
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
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 someones query :) Maindev.ru RF_223_php_Emulation
Version:
1 2011-12-03 bov.
19