Hi,
Founded in my old files guide how to create lineage2 official server. Unfortunatelly there are no any images of files, but maybe it will help you or maybe someone have files and can share. So here is guide: Requirements:
64-Bit Processor and 64-Bit OS
MSSQL (NOT MYSQL)
==========================================================
#1
Extract all the folders from the C4 Official Pack to the folder or place you want them....
Also extract all other files into there respected folders in CacheDScript Folder, Geodata Folder, html Folder, L2Server Folder, and Script Folder.
(Note those few txt files in there you can delete.)
==========================================================
#2
Edit your configs
CacheD -> l2cache.ini
[Change (address="TO LAN IP")]
L2NPC -> l2npc.ini
[Change all (address="TO LAN IP")]
L2Server -> L2Server.ini
[Change all (address="TO LAN IP")]
[Change (reconnectauth=0)]
AuthD/etc -> config.txt
[Change (DevServerIP="TO WAN IP")]
[Change (logdip="TO LAN IP")]
L2Comm -> l2comm.ini
[Change all (address="TO LAN IP")]
L2LogD -> L2logD.ini
[Change all (address="TO LAN IP")]
Note:
Change the Address to your LAN IP if it's on a LAN or to WAN if it's on server box.
Example: Routers are normally LAN (YOUR HOUSE) so IP starts with 192.*.*.*
Boxes uses Switches WAN (DATACENTER) so IP WONT'T start with 192.*.*.*
Note 2:
Change all world ids to 1
==========================================================
#3
Create the Databases by Executing 0_create-db.sql
-> EXECUTE 1_lin2clancomm
-> EXECUTE 2_lin2comm
-> EXECUTE 3_lin2db
-> EXECUTE 4_lin2log
-> EXECUTE 5_lin2report
-> EXECUTE 6_lin2user
-> EXECUTE 7_lin2world
-> EXECUTE 8_petition
To their corresponding databases.
#4
Edit x_self.sql
--------------------------------------------------------------------------
-- Create the world id
INSERT INTO lin2db.dbo.server (id, name, ip, inner_ip, ageLimit, pk_flag, kind, port)
VALUES (1, 'xxxxxxxx', '1.2.3.4', '127.0.0.1', 0, 1, 0, 7777);
-- name ip (of your server)
GO
-- Create root user and make in build master aka game master aka GM
-- WARNING: the default password is also 'root'. First thing you need to do
-- after install is change it.
INSERT INTO lin2db.dbo.ssn(ssn,name,email,job,phone,zip,addr_main,addr_etc,account_num)
VALUES ('777','God of Lineage','god@heaven.li',0,'telphone','123456','','',1);
INSERT INTO lin2db.dbo.user_account(account, pay_stat)
VALUES ('root', 1);
INSERT INTO lin2db.dbo.user_info(account,ssn,kind)
VALUES ('root','777', 99);
INSERT INTO lin2world.dbo.builder_account(account_name, account_id, default_builder)
VALUES ('root', 1, 1);
GO
-- insert into petition.dbo.NCDBA7 values (1,'connection string',10000,30,'petition');
-- read notes about PetitionD!!!
-- GO
--------------------------------------------------------------------------
That's quite self explanatory except for the PetitionD part. (Don't touch "lin2db.dbo.user_auth(account,password,quiz1,quiz2,answer1,answer2)
VALUES ('root', CONVERT(binary, 0xb1be70e9a83f19192cb593935ec4e2e2), '', '', CONVERT(binary, ''), CONVERT(binary, ''));")
Check Part #3 Extra at the bottom
=========================================================
#4
Set up your DSN
Control Pannel -> Administrative Tools -> ODBC <TAB> FILE DSN
Add - SQL server - lin2world - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2world
Add - SQL server - lin2clancomm - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2clancomm
Add - SQL server - lin2comm - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2comm
Add - SQL server - lin2log - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2log
Add - SQL server - lin2report - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2report
Add - SQL server - lin2db - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2db
Add - SQL server - lin2user - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): lin2user
Add - SQL server - petition - Server(s): (127.0.0.1) - Windows NT identification(W) - Change the Basic Database to following(D): petition
=========================================================
#5
Create a user that has access to all the databases.
Make MSSQL server use mixed Authentication.
=========================================================
#6
EDIT boot.ini under C:\
You might see different things, depends on which OS you have...
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windo ws Server 2003, Enterprise" /noexecute=optout /fastdetect /3GB
add /3GB to the end of boot.ini
=========================================================
#7
RESTART THE COMPUTER
=========================================================
#8
Generate your Serial Number for your Server Computer
Open Command Prompt and type ipconfig /all
Enter the information in the keygen provided and use that key for all the key prompts on server load up
=========================================================
#9
Load up the servers
[L2LogD.exe]
File DB = lin2log
login name = MSSQL User
password = MSSQL USER PASS
[CacheD.exe]
File DB = lin2world
login name = MSSQL User
password = MSSQL USER PASS
[L2Comm]
File DB = lin2clancomm or lin2comm (Based on which one it asks you for) [Two prompts will pop up on for lin2clancomm and lin2comm]
login name = MSSQL User
password = MSSQL USER PASS
[PetitionDConsole]
[L2AuthD.exe]
File DSN = lin2db
login name = MSSQL User
password = MSSQL USER PASS
[L2Server.exe]
[L2NPC.exe]
=========================================================
#3 Extra
This is complete tutorial how to install PetitionD server and how to configure it. The server is from NCSoft, I haven’t changed anything. The database is my own work, because standard database schema is for old petition server, which doesn’t work with C4 retail. So I had to make totally different database schema, compatible with this client.
So let’s start with database:
PART I – DATABASE
Everything is tested on MS SQL server 2005, I was too lazy to looking for 2000 and installing it.
1. Create empty database for petition (in my examples it is call called ‘petition’)
http://aralyon.ratafak.net/peti/1a.jpg http://aralyon.ratafak.net/peti/1b.jpg 2. Think out connection string – it’s string containing all information about connecting to database (Petition server DOESN’T use DSN like other parts of L2 server)
There are 2 ways how to connect
a) Windows authentication
You authenticate to mssql with your windows username and password - the connection string is
Code:
3. Open db_schema\petition_schema.sql in MSSQL Management studio (or Query Analyzer in MSSQL2000)
4. Write connection string to INSERT INTO statement, as shown below:
http://aralyon.ratafak.net/peti/1c.jpg 5. Set current database to your petition database in toolbar
http://aralyon.ratafak.net/peti/1d.jpg 6. Execute it, it should return no error
PART II – SERVER
1) Choose mode - you can use it like service (originally) or (with my loader) like console program.
2) Installing service - skip if you want to use it like console program
Use InstallUtil from .NET installation directory (I think that it is explained somewhere in other topic.
Syntax is: InstallUtil.exe c:\yourL2server\PetitionD\PetitionD.exe
Some informations about it - Installer Tool (Installutil.exe)
3) Make encrypted connection string:
1) Write your connection string from step 1.2 to a text file (e.g. connstr.txt)
2) Encrypt it with DES.exe many thanks to Digital - write name of the text file with connection string to field "File to encrypt" and then click on "Encrypt" button. It should show you a "Done" message and create .enc file (e.g. connstr.txt.enc)
http://aralyon.ratafak.net/peti/2a.jpg 3) it contains encrypted connection string.
4) Edit PetitionD.exe.config (for service version) or PetitionConsole.exe.config (for console version). Configuration options are in format <add key="Name" value="Value"></add>
Description of configuration file:
GmServicePort - port for connecting from GM client
WorldServicePort - port for connection from gameserver, it must be the same as [PetitionD] - port in l2server.ini
NoticeServicePort - I don't know yet, I'll have a look later
AuthIp - Ip address of AuthD (It needs auth to authenticate GM client)
AuthPort - admin port of AuthD
AuthConnCount - size of connection pool
LogDirectory - directory to store log files
EnableQuota, MaxQuota - Quote about number of petitions from one player, leave it off, because it isn't done yet
RunMode - can be "test" or "normal", it is highly recommended to set it on "normal"
DumpPacket - enables dumping packets to log file (I recommend to disable, it is for debugging purposes only)
ServerStatusRefreshInterval - ???
DatabaseConnString - encrypted connection string - you MUST change it to corrent values, otherwise it doesnt work!
DatabaseConnName - leave it, it is name of the connection string in NCDBA7
DatabaseConnCount,DatabaseConnTimeout - leave it
MaxActivePetition - maximum number of petitions
MinimumGmClientBuildNumber - minimum version of GM client
EnableGmStatusDump - ???
EnableAssignment - ???
MaxAssignmentPerGm - ???
EnableOnlineCheck - ???
So it is everyting, now petition server is configured. you can start console version with PetitionConsole.exe and service version in service manager in control panel.
It is not still fully tested, but I hope there is no more bugs. If you find anything, please write it to this topic or send me icq or msn message
There is one big problem related to it - It looks like external gm client is needed, because the only method which can get petition into state 3 (petition after submitting is in state 2) is called from gm client listener handler (=invoked by gm client).
But gm client supplied with server doesnt work, probably it is intended to use with old petitionD.
GMs can't do nearly anything with submitted petition with L2 client, you have to use GM client. The only builder command related to petition (which I know what it si doing is //force_peti <charname> <petition content> which forces player to submit a petition.
Security notice - for security reasons restrict database access for petition server, there might be security issues, it is unlikely,but it is possible.