Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

L2O [Request] L2off set up guide

Initiate Mage
Joined
Jul 14, 2006
Messages
20
Reaction score
0
Hello all,
so far i was using l2j data packs and have one l2j server. I decided to make one l2 but as i can see it is quite difficult. Well, if you can share with me a link to guide or something relevant i would really appreciate.
Thnks.
Sorry for my english.
 
Initiate Mage
Joined
May 26, 2006
Messages
30
Reaction score
0
Well running L2 Off C4 is not that different from C1 Modded...

Requirements:
64-Bit Processor and 64-Bit OS
MSSQL (NOT MYSQL)

Download: .

==========================================================
#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 lin2db.dbo.user_auth(account,password,quiz1,quiz2,answer1,answer2)
VALUES ('root', CONVERT(binary, 0xb1be70e9a83f19192cb593935ec4e2e2), '', '', CONVERT(binary, ''), CONVERT(binary, ''));

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’)


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:

SERVER=(Server name);DATABASE=(Database name);Integrated security=true EXAMPLE: SERVER=.;DATABASE=petition;Integrated security=true

b) Classic authetification using SQL login (recommended) and password
Code:

SERVER=(Server name);DATABASE=(Database name);UID=User name;PWD=Password EXAMPLE: SERVER=hades;DATABASE=petidb;UID=sysdev;PWD=tltmxparoqkftlf1234!

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:

5. Set current database to your petition database in toolbar

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 -

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)

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.

[Petition Info taken from aralyon from PostPacfic]
 
Initiate Mage
Joined
Dec 26, 2006
Messages
73
Reaction score
0
This needs to be stickied...it's been a while since someone has not made such a good tuttorial, congratz.
 
Initiate Mage
Joined
Aug 1, 2004
Messages
4
Reaction score
0
Well running L2 Off C4 is not that different from C1 Modded...

Requirements:
64-Bit Processor and 64-Bit OS

Yes is different!.... I no have OS 64-bit, i need 32-bit server... some one can share a 32-bit server please :wink_4:
 
Initiate Mage
Joined
May 26, 2006
Messages
30
Reaction score
0
Yeah Snake C4 Retail are only 32-Bit lol...
You need a C1 Modded to C4...

Good luck if you want to trying fixing stuff with programming hope you know plenty of C++ and ASM if you pick that route...
 
Junior Spellweaver
Joined
Sep 1, 2006
Messages
111
Reaction score
0
Nice share.But i need it in C5
 
Junior Spellweaver
Joined
Sep 1, 2006
Messages
111
Reaction score
0
I see some post for c5 by 99nets.Is modded C4 says.Not full c5
 
Elite Diviner
Joined
Dec 23, 2006
Messages
492
Reaction score
0
Ok because i dond find a way to connect with my own moddifing c4-c5 filies has anyone fix the 99nets packets and share it plz?
 
Joined
May 5, 2006
Messages
769
Reaction score
0
there are not shared and never be,
The way to fix it is to hex engine.dll and l2server.exe and match the new packets (suppose you know how to find the packets).

There are many ways you can extend C4 to C5, including dissasembling l2server and making new dll's,but any of these ways need strong knowledge of C++, x64 Architecture and .NET...

In addition you can just use the patched animations folder...but no new feature from C5 will be added like this, cause you will need the C4 system to connect
 
Elite Diviner
Joined
Dec 23, 2006
Messages
492
Reaction score
0
there are not shared and never be,
The way to fix it is to hex engine.dll and l2server.exe and match the new packets (suppose you know how to find the packets).

There are many ways you can extend C4 to C5, including dissasembling l2server and making new dll's,but any of these ways need strong knowledge of C++, x64 Architecture and .NET...

In addition you can just use the patched animations folder...but no new feature from C5 will be added like this, cause you will need the C4 system to connect

Why not shared?If anyone do that why not
 
Back
Top