本文作者:smeli(俄罗斯人,于2009年完成该教程)

PS:要比国内写的那些教程完整,详细,希望大家喜欢

  1. VS运行库安装………………………………………..2

  2. SQL数据库安装…………………………………………..3

  3. L2Server设置………………………………………………11

  4. GM账户创建………………………………………….15

  5. 运行服务端(1).………………….………………………..16

  6. 老版服务端设置……………………………………………..19

  7. 运行服务端 (2)……………………………………………...39

    1. Two servers on one auth双线设置……...…………………………39

    2. Eventmatch………………………………………………52

  8. Web注册页……………………………………..…80

  9. 红色错误……………………………………………………82

1 .VS运行库安装

In directiory “Install_runtime” or “l2server/_visualC_2008” you can find redistributable instalation file, or download it directly from Microsoft web site.

Just install it. In picture below this is already installed, so it asking for repair or uninstall.

Maybe you need also to install Dot.Net 2.0 or Dot.Net 3.5+

2. SQL数据库安装

MSSQL 2005安装

Here we assume that you already have installed MSSQL 2005 server or express in mixed mode: “sa” and “Windows Authentification”

Chechk your SQL server is up and running

I am using SQL Server Management Studio Express version

Run your SQL server manager and connect to it

After sucessul login at the left side we have

Double click on “Databases”, then Right click on blank area

Now select “New Database”

and create database “lin2db” (enter name of database and press “OK” button

The same way create all other databases

“lin2comm”

“lin2log”

“lin2world”

“lin2report”

-----------------------------------------------------------------------------------------------
Setting
up Database
Scripts
-----------------------------------------------------------------------------------------------
Note:
“l2online” is your chosen password, it can be “l2offline” or “bigbunny” – it is
your password for user “sa”

Using NOTEPAD form
DBScripts directory,

open 3.lin2comm.sql
(or lin2comm_new.sql) under DBScript

find
set @conn_str = '127.0.0.' +
@world_id + ''';''sa'';''l2online'
change 127.0.0. to the
first 3 sets of numbers of your internal IP (If your internal IP is
192.168.0.121 then enter 192.168.0.)
change "sa"
as your SQL database account
change "l2online" as
your SQL database password
there are 3 lines you have to
change

find
'SQLOLEDB', '127.0.0.1';'sa';'l2online'
change 127.0.0.1 to your internal IP
change "sa" as your SQL database account
change "l2online" as your SQL database password
there is only 1 line you have
to change

save and close the file.

open 6.lin2world.sql
(lin2world_20040609_all.sql) under DBScript

find
set @conn_str =
'127.0.0.' + @world_id + ''';''sa'';''l2online'
change
127.0.0. to the first 3 sets of numbers of your internal IP (If your internal IP
is 192.168.0.121 then enter 192.168.0.)
change "sa" as your SQL database account
change "l2online" as your SQL database password
there are 3 lines you have to
change

find
'SQLOLEDB', '127.0.0.1';'sa';'l2online'
change 127.0.0.1 to your internal IP
change "sa" as your SQL database account
change "l2online" as your SQL database password
there are 2 lines you have to
change

save and close the file.

As database scripts are ready. Apply them.

Use
“File->Open->File”

For database “lin2db”
choose first 4.1. lin2db.sql

Apply it, then choose 4.2
lin2db.sql and apply it too (see pictures below)

After we opened it

Change “master” database
to our “lin2db” (see picture below)

Press Blue “Check” button
for error parsing and Red “Execute” Button for aplying script to database

Completion window will
appear

In case of errors, try to
fix them until all will be ok.

Check out your
database

Now,

Process all other
databases the same maner……………..

Now it is time for DNS Configuration

Open your windows control panel

Select “Administrative Tools” and then open (double
click) “Data Sources (ODBC)”

Choose the File DSN tab then click the Add.. button.

Select SQL Server and click next

Enter your File DSN name, for example “lin2db” and
press Next> button, then press Finish> button

Enter your server name. Press Next> button. Leave
Windows Authetification and press Next>button again

Change default database to our “lin2db” and press
Next> button, and then press Next> button again.

Now you can test your DSN.

Press OK button three two times to confirm your
work.

Process all other databases DSNs the same
maner……………..

3. 服务端配置文件设置

-----------------------------------------------------------------------------------------------
IP
Configurations
-----------------------------------------------------------------------------------------------

Go
to your Lineage 2 Server folder.

In each of these following folders:
L2LogD, CacheD, NewAuth, PetitionD, L2NPC, and L2Server, they contain a
configuration file that is either a *.ini or *.txt document. You don't need to
change anything and make sure they're set at 127.0.0.1. The only time you would
need to change them is if you are loading them from multiple computers! It
doesn't matter if you even have a router! As long as you are loading all 6
Process from the same machine, you just need to keep most of the IP adress as
127.0.0.1.

Change the following lines in config.txt under "NewAuth\etc"
folder:
DevServerIP="24.68.124.198" //Change this to your Internet IP address, your WAN, the IP that you
get from your ISP. Visit http://whatismyip.com to
find it.
logdip="127.0.0.1" //Change this to what you used for your
L2LogD.ini address.

Change the following
lines in l2cache.ini under CacheD folder:
address="127.0.0.1" //Change this only if you plan to load this from
a different computer! Adjust it to the ip of that computer! If PC2 has IP of
192.168.0.121 and it is planning to load L2CacheD.exe there. Then change it,
otherwise leave it as 127.0.0.1!

Change
the following lines in l2logd.ini under L2LogD folder:
address="127.0.0.1"
//Same thing as
L2CacheD.ini

Change the following lines in
config.txt under PetitionD\etc folder:
webAuthServer="127.0.0.1" //Same thing as L2CacheD.ini

Change the following lines in L2NPC.ini under L2NPC
folder:
//Change them accordingly
to what you adjusted for them. If L2LogD.ini has ip of 192.168.0.121 on PC2.
Then change that IP in L2NPC.ini to that. You are pointing L2NPC.exe to connect
to the other Server Processes. Leave the ports alone!

[LogD]
address="127.0.0.1"
port=3999

[CacheD]
address="127.0.0.1"
port=2008

[server]
address="127.0.0.1"
port=2002

[map]
directory="map"

[World]
WorldId=1

[db]
address="127.0.0.1"
user="gamma"
//This should be your MSSQL Login (I
used sa since it sets up the sa account for you when you install SQL and sa has
all permissions)
password="l2online"
//This should be your MSSQL
Password

[Setting]
;Country=0
KR
;Country=1 US
;Country=2 JP
;Country=3 TW
;Country=4
CN
Country=1 //Change this
accordingly to what "CLIENT" version you allow to connect!
ExceptionMailing=false
MailServer=ncs-mail.ncsoft.co.kr

Change
the following lines in l2server.ini under L2Server folder:
//Again, the same explaination from L2NPC.ini
config applies here as well!

[LogD]
address="127.0.0.1"
port=3999

[CacheD]
address="127.0.0.1"
port=2006

[AuthD]
address="127.0.0.1"
port=2104

[petitionD]
address="127.0.0.1"
port=2107
WorldId=1
//Leave this as 1 if you don't plan
to run multiple servers! WorldId = ServerId in lin2db (will be explained
furtherdown). If they're not the same number, your server won't be connecting to
the same gameworld or won't find one to connect to!

Now
setup server record in
“lin2db” database. Open lin2db tables, and rightclick on “dbo.server” table,
then choose “Open Table”

To add information in for
the example [ id = 1 ] you would put the number 1 in the id column:
id =
1
name = same as the worldname in l2server.ini
ip = your external
IP
inner_ip = your internal IP
ageLimit = 0
pk_flag = 0 PK not allow; 1
allow
kind=0
port=7777

The same server setup for
local network access and for the internet access requires a little bit of
magic:

-----------------------------------------------------------------------------------------------

System INI
Configuration

-----------------------------------------------------------------------------------------------

Go to your control panel
(from start menu) then click the system icon, advanced tab, under performance
click settings, then choose the advanced tab again and click the change button
under virtual memory. Set Custom size with minimum set at 1024 and maximum set
at 4096

You must do this to run
all the NPC's.

Locate your boot.ini file
in C:\ Drive. You'll need to change folder view setting to include hidden and
system files or else you won't be able to find it.

Open C:\Boot.ini in
notepad, the last line should look like:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP
Professional" /nodetect

or something similar, add
the /3GB tag at the end. It should look like this (if your line was the same as
the line above)

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP
Professional" /nodetect /3GB

Reboot your computer

4. GM帐号创建

To create test acounts or
restricted accounts, you do not need registration page. Just use Account
creation tool.

Open directory
2_HomePage->L2AC

O
pen
l2ac.ini file, enter your values and save it

[DB Connection]

HostName=l2\SQLEXPRESS

DataBase=lin2db

User=sa

Password=l2online

[Common]

SavePass=1

Now run l2ac.exe

Enter your GM login and
password and press “Create” button

-----------------------------------------------------------------------------------------------

Setting up Administration
Account / GM Characters

-----------------------------------------------------------------------------------------------

For this to work you must
have created an user account.

Open SQL Server
Enterprise Manager (start menu again), double click SQL Server Group, double
click on your local server then click OK. Double click on databases folder and
select lin2db. Click on tables then find user_account, right click on it and
select Open Table then Return All Rows. Note the name and uid of the account
that you want to make a gm.

Go back to databases and
this time select lin2world. Click tables and select builder_account, right click
select Open table then Return All Rows. Under account name enter the name of
your character (that you noted before in user_account) and under default builder
enter 1 and under account_id enter the uid you noted from user_account.

When you make a new
character on this account it will have GM powers, the commands are located in
script/BuilderCmdAlias.txt and are used //command so to disable invisible mode
you would type in: //hide off

To give a current
character GM powers, Go back to databases and select lin2world. Click tables and
select user_data, right click select Open table then Return All Rows. All the
character on the server will be listed, you can just change the builder value
from 0 to 9 for any character you want to give GM powers.

5. 运行服务端

If you want to stay
on track, you'll need to have a secure server.

Otherwise people will
jump in your server, burn it and destroy all of your work with no mercy. Apart
from protection DLLs, you'll also need to configure your Firewall to block
certain ports or else you'll be susceptible to SQL/CacheD injections, and that's
not good.

Filter the following
ports in your firewall: (windows firewall, for example)

# 1433 (SQL) (only local
area network access / closed)

# 2002 (only local area
network access / closed)

# 2008 (only local area
network access / closed)

# 2012 (only local area
network access / closed)

# 2106 (auth) (open to
the public / open)

# 7777 (l2server) (open
to the public / open)

Open the files in the
following order.

L2LogD.exe

File DB = lin2log
login name = your
SQL account
password = your SQL password

CacheD.exe

File DB = lin2world
login name = your SQL
account
password = your SQL password

L2AuthD.exe

File DSN = lin2db
login name = your SQL
account
password = your SQL password

L2Server.exe

If needed, rightclick on
second server tab and select Maximize

Make sure your of server version

L2NPC.exe

Congrats with setting up your
server!

Note. L2Server.exe must be running on the same machine with
L2NPC.exe! You cannot load them on separate computers!

6. 老版教程

6.2 英文版

Part 1 - changing INI's (base on my fixes)
!!!IF YOU DONT HAVE THING LIKE ROUTER THEN LEAVE 127.0.0.1 THERE,
BUT
DevServerIP="127.0.0.1" HAVE TO BE YOUR WAN
IP!!!

-------------------------------------------------------------------------------------

edit config.txt
under NewAuth\etc folder

serverPort=2104
serverExPort=2106
serverIntPort=2108
worldport=7777
DBConnectionNum=10
encrypt=true
numServerThread=2
numServerExThread=2
numServerIntThread=2
logDirectory="log"
;30810
: l2, 30310 : Sl
ProtocolVersion=30810
;8:lineage2, 4
halo
GameID=8
DesApply=false
PacketSizeType=3
ReadLocalServerList=false
OneTimeLogOut=true
CountryCode=2
DevConnectOuter=true
;change it as your
WAN IP
DevServerIP="127.0.0.1"
;SocketTimeOut if player no Action
while they in game then kick out.

SocketTimeOut=10
SocketLimit=5000
AcceptCallNum=1
UseOneIOCom=true
AcceptThread=1
WaitingUserLimit=100
dumppacket=false
UserData=false
UseLogD=false
;change
it as your LAN IP
logdip="127.0.0.1"
logdport=3999
logdconnectinterval=120
;(true=auth-main
reconnect on/false=auth-main reconnect
off)
SupportReconnect=false
AutokickAccount=true
NewEncrypt=false

-------------------------------------------------------------------------------------

edit l2cache.ini
under CacheD folder

[LogD]
;change it as your LAN
IP
address="127.0.0.1"
port=3999

[Setting]
;Country=0 KR
;Country=1
US
;Country=2 JP
;Country=3 TW
;Country=4
CN
Country=4
ExceptionMailing=false
MailServer=mail.ncsoft.co.kr

[World]
WorldId=1
Pair=0

[ItemAudit]
DefaultPriceLimit=100000000
DefaultPriceCheck=50000000
ChgRatioLimit=30
AdenaLimit=100000000
AdenaCheck=50000000
AdenaChgRatioLimit=30

[SQL]
SQLExecLimit=9000
;clear
unowned item data[0:false,
1:true]
ItemClearOnStart=0
DiffBBSConn=0
SaveQsData=0
BBSDBTimeOut=60
USEBBS=0

-------------------------------------------------------------------------------------

edit l2logd.ini
under L2LogD folder

[LogD]
;change it as your LAN
IP
address=127.0.0.1
port=3999
sendable=true

[LogTable]
Daily=1
BCPFolder=1

[Start]
BCPInt=3600000
ServerInt=3600000
AutoBCP=0

[World]
WorldId=1

[SQL]
SQLExecLimit=5000
PollingInterval=6000
BCPThreadCount=5

[Setting]
;Country=0
KR
;Country=1 US
;Country=2 JP
;Country=3 TW
;Country=4
CN
country=4
ExceptionMailing=false
MailServer=ncs-mail.ncsoft.co.kr

-------------------------------------------------------------------------------------

eidt L2NPC.ini under
L2NPC folder

[LogD]
;change it as your LAN
IP
address="127.0.0.1"
port=3999

[CacheD]
;change
it as your LAN IP
address="127.0.0.1"
port=2008

[server]
;change
it as your LAN IP
address="127.0.0.1"
port=2002

[map]
directory="map"

[World]
WorldId=1

[db]
;change
it as your LAN IP
address="127.0.0.1"
port=2005
;your SQL database
account
user="gamma"
;your SQL
database password
password="l2online"

[Setting]
;Country=0
KR
;Country=1 US
;Country=2 JP
;Country=3 TW
;Country=4
CN
Country=4
ExceptionMailing=false
MailServer=ncs-mail.ncsoft.co.kr

-------------------------------------------------------------------------------------

edit l2server.ini
under L2Server folder

[LogD]
;change it as your LAN
IP
address="127.0.0.1"
port=3999

[CacheD]
;change
it as your LAN IP
address="127.0.0.1"
port=2006

[AuthD]
;change
it as your LAN IP
address="127.0.0.1"
port=2104

[petitionD]
;change it as your LAN
IP
address="127.0.0.1"
port=2107
;change the name
whatever u
like
worldname="Lineage2"

[World]
WorldId=1
UserLimit=2000
LetBuilder=0

[Report]
;minute
Interval=60

[Setting]
;Country=0
KR
;Country=1 US
;Country=2 JP
;Country=3 TW
;Country=4
CN
Country=4
UserPathFind=false
WorldCollision=false
ExceptionMailing=false
MailServer=mail.ncsoft.co.kr
AcceptLowerProtocol=true
;you might need to
change here, but leave it unless you got crash when u run
L2Server.exe
IOBufferCount=3000
;limit hour for week, (number means
hour. 0 means don't use. default is 0)
playtimelimit=0
;use auth reconn
(1:use, 0:don't. default is 0)
;have to be 0, if dont, u can't
login
reconnectauth=0

-------------------------------------------------------------------------------------

edit config.txt
under PetitionD\etc folder

;Number of threads working for
transaction and service socket.
numberOfServiceThreads=10

;Port number
for world server
worldPort=2107

;Port number for petition
client
servicePort=2109

;Run as test
mode
runMode=0

;WebAuthD address
;change it as your LAN
IP
webAuthServer="127.0.0.1"

;WebAuthD
port
webAuthPort=2108

; Number of WebAuthD
connections
numberOfWebAuthConnections=0

;Log
directory
logDirectory="log"

;status refresh
interval(seconds)
statusRefresh=1

;Number of connections to petition
database
numberOfPetitionDBConnections=12

;petition database
connection string
;number of games to support, should be consistent with
game_title table
numberGames=2
petitionDatabase =
"0xF6DBBAA8A7C57B6F418E95A7CFCBB4DAF09B9A5E39B2FCA
717A7EA9C44E98FCDA34297C97542494D9977C5E9ED58FBE58
14852F7D8DAF11478AFEB5861F5572B4A2A7FE96453BBF6A3E
4445310F58A15FB3FA2D8D26BA61F2D6E0113053A1A6D3FF2B
BDE07E242E5E29593F12D148CD1284ED2D17E6FE16FE96034D
3B4C21363"

-------------------------------------------------------------------------------------

Part
1 -
END

##################################################

Part 2 - SQL database's (base on my
fixes)
!!!IF YOU DONT HAVE THING LIKE ROUTER THEN LEAVE 127.0.0.1
THERE!!!
!!!ALSO READ _drunk_ 's REPLY BELOW
ABOUT THE world_id!!!

-------------------------------------------------------------------------------------

edit
lin2comm_new.sql under DBScript

find
set @conn_str =
'127.0.0.1' + @world_id +
''';''gamma'';''l2online'
change 127.0.0. as your LAN
IP
change gamma as your SQL database account
change l2online as your SQL
database password
there are 3 lines you have to
change

find
'SQLOLEDB',
'127.0.0.1';'gamma';'l2online'
change 127.0.0.1 as your LAN
IP
change gamma as your SQL database account
change l2online as your SQL
database password
there is only 1 line you have to
change

-------------------------------------------------------------------------------------

edit
lin2world_20040609_all.sql under DBScript

find
set @conn_str =
'127.0.0.1' + @world_id +
''';''gamma'';''l2online'
change 127.0.0. as your LAN
IP
change gamma as your SQL database account
change l2online as your SQL
database password
there are 3 lines you have to
change

find
'SQLOLEDB',
'127.0.0.1';'gamma';'l2online'
change 127.0.0.1 as your LAN
IP
change gamma as your SQL database account
change l2online as your SQL
database password
there are 2 lines you have to
change

-------------------------------------------------------------------------------------

MS-SQL
config

HERE IS COPY FROM
Zelda803's translation
1. Creation of Databases

-
lin2world
- lin2comm
- lin2log
- lin2report
- lin2db
-
petition
Databases mentioned above should be created.

2. Rightclick
the Database - Registered sql server Property Edit(e) Click

sql server
identity uses(q) (Check this one)
User Name(l)
Password(a)
Put the Name
and Password which you have used on the installation

This is the
important part of this installation .Usually errors occur somewhere in

here, so follow along really carefully.

RUN your SQL Server
Agent

3. lin2world Database -
lin2world_20040609_all.sql Analyze Query,than press save and next
to Query Section Analyer, Click on TriangleDisplay box finishes this
section.

4. lin2comm Database - lin2comm_new.sql analyze query next to Query Section
Analyer, Click on TriangleDisplay box finishes this section.

5. lin2log
Database - lin2log_20040416.sql analyze query next to Query Section
Analyer, Click on TriangleDisplay box finishes this section.

6.
lin2report Database - lin2report_20040416.sql analyze query next to Query Section
Analyer, Click on TriangleDisplay box finishes this section.

7. lin2db
Database - lin2db_AuthDBSchema.sql analyze query next to Query Section
Analyer, Click on TriangleDisplay box finishes this section.

8. lin2db
Database - lin2db_update.sql analyze query next to Query Section
Analyer, Click on TriangleDisplay box finishes this section.

9. petition
Database - petition.sql analyze query next
to Query Section Analyer, Click on TriangleDisplay box finishes this
section.

IMPORTANT!!!

lin2db Database
-> Table -> Server (open table)

add

id = 1
name = same as
the worldname in l2server.ini
ip = your WAN IP
inner_ip = your LAN
IP
ageLimit = 0
pk_flag = 0 PK not allow; 1
allow
kind=0
port=7777

-------------------------------------------------------------------------------------

DSN
config

Control Pannel - Administrative
Tools- ODBC - FILE DSN

Add - SQL server - lin2world - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): lin2world

Add - SQL server -
lin2comm - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): lin2comm

Add - SQL server -
lin2log - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): lin2log

Add - SQL server -
lin2report - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): lin2report

Add - SQL server -
lin2db - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): lin2db

Add - SQL server -
petition - Server(s): (local) - Windows NT identification(W) - Change
the Basic Database to following(D): petition

-------------------------------------------------------------------------------------

Part
2 -
END

##################################################

Part 3 - RUN the
server

-------------------------------------------------------------------------------------

edit boot.ini under
C:\
!!!IMPORTANT THE WAY
TO RUN ALL NPC'S!!!

You might see different, depend
which OS u got

[boot
loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOW
S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro
soft Windows XP Professional" /nodetect /3GB

add /3GB at the end save it and
reboot your
computer

-------------------------------------------------------------------------------------

L2LogD.exe

File DB =
lin2log
login name = your SQL account
password = your SQL
password

CacheD.exe

File DB =
lin2world
login name = your SQL account
password = your SQL
password

L2AuthD.exe

File DSN =
lin2db
login name = your SQL account
password = your SQL
password

PetitionD.exe

Server =
(local)
login name = your SQL account
password = your SQL
password
Database = petition

L2Server.exe

L2NPC.exe

-------------------------------------------------------------------------------------

Part
3 -
END

##################################################

Part 4 - ASP account register
system
You can downlod the ASP syatem below in
English

-------------------------------------------------------------------------------------

edit
config.asp

<%
const WEB_SIT_NAME =
"Lineage2"
const SERVER_MAX_CLIENT =
600

'Change the COOKIE_HEAD whatever you like.
const COOKIE_HEAD =
"none"
%>

WEB_SIT_NAME ="your
server's name"
COOKIE_HEAD = "put whatever u
like"

-------------------------------------------------------------------------------------

edit
conn.asp

'MS SQL Database
address
ms_sql_server_host_addr = "127.0.0.1"

'MS SQL
account
sql_server_username = "gamma"

'MS SQL
password
sql_server_password = "l2online"

'Lin2db
database(user_auth)
lin2db = "lin2db"

'Lin2world
database(user_data)
lin2world = "lin2world"

' Encrypt or decrypt
L2AuthD(otherwise will say password not match)
' 1) When using
L2AuthD_encrypt.zip then set sys_type = "encrypt"
' 2) When using
L2AuthD_decrypt.zip then set sys_type = "none"
sys_type =
"encrypt"

-------------------------------------------------------------------------------------

Part
4 -
END

##################################################

Part 5 -
RUN the
game

-------------------------------------------------------------------------------------

edit l2.ini
file

u need a tool called
l2encdec.exe to crack the l2.ini, you can download it below

decrypt the
l2.ini then you got a file called l2.clear.ini
edit l2.clear.ini
change
the IP as the Lineage2 server which you want to
play
ServerAddr=127.0.0.1
crypt the l2.clear.ini using 212
then you got a file called l2.crypt.ini
rename the l2.crypt.ini as l2.ini and
copy to your lineage2 system
folder

-------------------------------------------------------------------------------------

Part
5 -
END

##################################################

Part 6 - GM config

open
builder_account under lin2world databse

account_name = your GM account
(normal account)
default_builder = 1,2,3,4...9
account_id = your GM
account ID (can find out in user_account table under lin2db
database)

open user_dat under lin2world database
find out the GM in
the GM account
builder = default_builder (1,2,3,4...9)

Part 6 -
END

7. 运行服务端 (2)

    1. 2+ Servers on one auth (assembly of varoius
      texts)

第一步..先确定..单机架设成功..
第二步..复制整个服务器端文件到第2个服务器
第3步..

将你C:\Program Files\Common Files\ODBC\Data Sources
中的lin2db 同lin2world 复制到第2台机子里(用来开l2server.exe,l2npc.exe)
在第二个机器上建立dsn
lin2db

[ODBC]
DRIVER=SQL
Server
UID=sa
DATABASE=lin2db
WSID=第一个服务器的IP
APP=Microsoft Data Access
Components
SERVER=第一个服务器的IP

lin2world

[ODBC]
DRIVER=SQL
Server
UID=sa
DATABASE=lin2world
WSID=第一个服务器的IP
APP=Microsoft Data Access
Components
SERVER=第一个服务器的IP

第4步
l2server.ini和l2npc.ini的ip

l2server.ini的ip都改成第一个机器的ip
2号机上的L2SERVER.INI里的IP全都修改成1号几的IP其中有一段可以先去掉,可以解决Pet itionD载入失败的问题。
[PetitionD]
address="192.168.2.9"
port=2107
WorldName="publish03"
;world
name must be exact 9 characters.

l2npc里的Ip除了...[server]改成..第2个机器的Ip意外..

其他的也改成第一个机器的Ip..
L2NPC.INI里的这段要修改成2号机IP

[server]
address="192.168.0.2"
port=2002
第5步----
修改第一个服务器的sql数据库表..lin2db里的server
id name ip inner_ip ageLimit pk_flag kind port
1
lgs 第2个机器的IP 第2个机器的IP 1 1 1 7777

NPC和L2server都是放在2#服务器上,但是有一点最关键就是在1#服务器数据库里的Lin2DB 数据库中的server表中IP设置两个IP都应该设置为2#服务器的庋涂梢缘锹搅?br >注意:(luhongyu)告诉大家我就用的173m的sina原版AUTH 没有用台湾的,估计大家刚开始的时候,没有发现的原因最近正在研究用sina的公测版本直接进入

SINA版的那个是加密的,我就是用的那个,好像是460KB大小吧,不加密的是410KB左右.
我用ASP注册,那里面是填erpxxx的,就是加密的那个,不加密的是填 none的.我用加密的,可以的,用None注册的话就提示密码错误了
数据库server 表端口是7777.不用打补丁直接用SINA最新客户端

关键的一步
CHN_Server_20040604\NewAuth\etc\config 把
DevServerIP="10.1.2.250" 改位第2个机子的ip

还有NewAuth\etc\config.txt、里的DevConnectOuter=t rue

第6步..启动第一个机器的前3个服务..然后启动第2个机器的后2个服务器

First step. First check
that the first single server runs successfully..
Second step. Duplicate the
entire server end document to the 2nd server

3rd step.
Duplicate
in the 2nd thread in your C:\Program Files\Common Files\ODBC\Data Sources lin2db
with lin2world (to use for l2server.exe, l2npc.exe) establish dsn on the second
machine

lin2db

[ODBC]
DRIVER=SQL Server
UID=sa

DATABASE=lin2db
WSID=First server IP
APP=Microsoft Data Access
Components
SERVER=First server IP

lin2world

[ODBC]

DRIVER=SQL Server
UID=sa
DATABASE=lin2world
WSID=First server IP

APP=Microsoft Data Access Components
SERVER=First server IP

4th
step
L2server.ini and l2npc.ini ip

L2server.ini ip all alters to the
first machine ip
In 2 machine on L2SERVER.INI IP all revises 1 several IP to
have a section to be allowed first to remove, may solve PetitionD to write down
the defeat the question.
[PetitionD]
address="192.168.2.9"
port=2107

WorldName="publish03"
;world name must be exact 9 characters.

In
l2npc Ip except that... [ server ] alters to. 2nd machine Ip accident..

Other also alters to the first machine Ip..
In L2NPC.INI this
section must revise 2 machine IP

[server]
address="192.168.0.2"

port=2002

5th step ----
Revises the first server sql database
table. lin2db in server
id name ip inner_ip ageLimit pk_flag kind port
1
lgs 2nd machine IP 2nd machine IP 1.117777 million

NPC and L2server all
are puts on the 2# server, but has point most is essential is table IP
establishes two IP in 1# server database Lin2DB in the database server both to
be supposed to establish is the 2# server □a shelf □spreads the tree top reason
spade to stir? Br attention: (luhongyu) tells 173m sina which everybody I uses
first edition AUTH not useful Taiwan, estimated everybody just started, had not
discovered the reason recently was studying with sina male measured the edition
directly entered
SINA version that is the encryption, I am that which uses,
looks like is the 460KB size, does not encrypt is about 410KB
I use ASP to
register, inside that fills in erpxxx, is encryption that, does not encrypt is
fills in none I use the encryption, may, registered the speech with None to be
wrong on the prompt password
The database server table port is 7777. Does not
need to have the patch straight to take over the use of the SINA newest customer
end

An essential step
CHN_Server_20040604\NewAuth\etc\config changes
DevServerIP= "10.1.2.250" the position 2nd loom ip

Also has
NewAuth\etc\config.txt, in DevConnectOuter=true

6th step. Starts the
first machine the first 3 services. Then starts the 2nd machine the latter 2
servers

PC1: authd, mssql,
cache1, logd, iis - 10.1.2.250
PC2: server1, npc1 - 10.1.2.210
PC3:
cache2, server2, npc2 - 10.1.2.222
lin2db -> server is as per normal
setup

when u first run ur PC3
cached.exe
u'll have to change
C:\Program Files\Common Files\ODBC\Data
Sources\lin2world
to
C:\Program Files\Common Files\ODBC\Data
Sources\lin2world000
and this will ensure lin2world2 works!!!

so when
u run cache2, etc on PC3 just make sure it connects to lin2world2!

If servers are on the
same machine, must change ports (7777->7778, 2006->

And, of course different
WorldID

then setup
lin2world2_Data n lin2world2_log and DSN for PC3 on PC1's mssql db

PC3
l2cache.ini
[LogD]
address="10.1.2.250"
port=3999
[World]
WorldId=3
Pair=0
[ItemAudit]
DefaultPriceLimit=2000000
DefaultPriceCheck=1000000
ChgRatioLimit=30
[SQL]
SQLExecLimit
= 5000
;clear unowned item data[0:false,
1:true]
ItemClearOnStart=0
DiffBBSConn =
1
SaveQsData=1
BBSDBTimeOut=60
USEBBS=1
[Setting]
country=3
ExceptionMailing=true
MailServer=mail.ncsoft.co.kr

PC3
l2server.ini
[CacheD]
address="10.1.2.222"
port=2006
[AuthD]
address="10.1.2.250"
port=2104
[LogD]
address="10.1.2.250"
port=3999
[World]
WorldId=3
UserLimit=100
;LetBuilder=1

[PetitionD]
address="172.20.40.185"
port=2107
WorldName="publish03"
;world
name must be exact 9 characters.
[Report]
Interval=60
;minute
[Setting]
country=3
UserPathFind=true
WorldCollision=false
ExceptionMailing=true
MailServer=mail.ncsoft.co.kr
AcceptLowerProtocol=true
IOBufferCount=1500
;limit
hour for week, (number means hour. 0 means don't use. default is
0)
playtimelimit=0
reconnectauth=1
;use auth reconn (1:use, 0:don't.
default is 0)

PC3
l2npc.ini
[CacheD]
address="10.1.2.222"
port=2008

[server]
address="10.1.2.222"
port=2002

[db]
address="10.1.2.250"
port=2005
user="gamma"
password="gemini042158!@#$"

[map]
directory="map"

[LogD]
address="10.1.2.250"
port=3999

[World]
WorldId=3

[Setting]
country=3
ExceptionMailing=false
MailServer=ncs-mail.ncsoft.co.kr

PC1
- authd
PacketSizeType =
3
ReadLocalServerList=false
OneTimeLogOut=true
CountryCode=2
DevConnectOuter=true
DevServerIP="10.1.2.250"
SocketTimeOut
= 60
;SocketLimit绰

SocketLimit=5000
AcceptCallNum=1
;UseOneIOCom=true
UseOneIOCom=false
AcceptThread=1
WaitingUserLimit=1000
dumppacket=true
UserData=false
UseLogD=true
logdip="10.1.2.250"
logdport=3999
logdconnectinterval=120

Originally Posted by
BoTGoD

You must have 2
Different CacheD running and add a new DB lin2world2

So setup must be
like this

PC1: LogD, AuthD, SQL (IE:Outter_IP=(WANIP)
Inner_IP=192.168.0.1)
PC2: L2Server.exe, L2NPC.exe, CacheD.exe (IE:
LAN_IP=192.168.0.2)
PC3: L2Server.exe, L2NPC.exe, CacheD.exe (IE:
LAN_IP=192.168.0.3)

PC1:
LogD.ini
[LogD]
address=192.168.0.1
port=3999
sendable=true

[LogTable]
Daily=1
BCPFolder=1

[Start]
BCPInt=600000
ServerInt=60000
AutoBCP=1

[World]
WorldId=1

[SQL]
SQLExecLimit=5000
PollingInterval=6000
BCPThreadCount=2

etc\config.txt
serverPort=2104
serverExPort=2106
serverIntPort=2108
worldport=7777
DBConnectionNum=10
encrypt=true
numServerThread=2
numServerExThread=2
numServerIntThread=2
logDirectory="log"
ProtocolVersion=30810
GameID=8
DesApply=false
PacketSizeType=3
ReadLocalServerList=false
<-
Put this False or you will have SQL
error.

OneTimeLogOut=true
CountryCode=2
DevConnectOuter=true
DevServerIP="WAN
IP"
= Your WAN IP of
PC1
SocketTimeOut=400
SocketLimit=5000
AcceptCallNum=1
UseOneIOCom=true
AcceptThread=1
WaitingUserLimit=100
dumppacket=false
UserData=false
UseLogD=false
logdip="192.168.0.1"
PC1 LAN
IP
logdport=3999
logdconnectinterval=120
SupportReconnect=true
AutokickAccount=true
NewEncrypt=false

In
SQL -> lin2db -> Server

ID:1, Name:Lineage2, ip:PC2 WAN IP,
inner_ip:192.168.0.2, agelimit: 0, pk_flag: 1, kind: 0, port: 7777
ID:2,
Name:Lineage3, ip:PC3 WAN IP, inner_ip:192.168.0.3, agelimit: 0, pk_flag: 1,
kind: 0, port:
7777

PC2:
L2Server.ini
[CacheD]
address="192.168.0.2"
= PC2 LAN IP
port=2006

[AuthD]
address="192.168.0.1" = PC1 LAN
IP
port=2104

[LogD]
address="192.168.0.1" = PC1 LAN
IP
port=3999

[World]
WorldId=1
UserLimit=2500
LetBuilder=1

[Report]
Interval=60

[Setting]
Country=1
UserPathFind=true
WorldCollision=false
ExceptionMailing=false
MailServer=mail.com
AcceptLowerProtocol=true
IOBufferCount=6000
playtimelimit=0
reconnectauth=1

L2NPC.ini
[CacheD]
address="192.168.0.2"
= PC2 LAN IP
port=2008

[server]
address="192.168.0.2" = PC2 LAN
IP
port=2002

[LogD]
address="192.168.0.1" = PC1 LAN
IP
port=3999

[map]
directory="map"

[World]
WorldId=1

[db]
address="192.168.0.1"
= PC1 LAN
IP
port=2005
user="sa"
password="password"

[Setting]
Country=1
ExceptionMailing=false
MailServer=mail.com

CacheD.ini
[Setting]
Country=1
ExceptionMailing=false
MailServer=mail.com

[Logd]
address="192.168.0.1"
= PC1 LAN
IP
port=3999

[World]
WorldId=1
Pair=0

[ItemAudit]
DefaultPriceLimit=100000000
DefaultPriceCheck=50000000
ChgRatioLimit=30
AdenaLimit=100000000
AdenaCheck=50000000
AdenaChgRatioLimit=30

[SQL]
SQLExecLimit=5000
ItemClearOnStart=1
DiffBBSConn=0
SaveQsData=0
BBSDBTimeOut=0
USEBBS=0

PC3
L2Server.ini
[CacheD]
address="192.168.0.3"
= PC3 LAN IP
port=2006

[AuthD]
address="192.168.0.1" = PC1 LAN
IP
port=2104

[LogD]
address="192.168.0.1" = PC1 LAN
IP
port=3999

[World]
WorldId=1
UserLimit=2500
LetBuilder=1

[Report]
Interval=60

[Setting]
Country=1
UserPathFind=true
WorldCollision=false
ExceptionMailing=false
MailServer=mail.com
AcceptLowerProtocol=true
IOBufferCount=6000
playtimelimit=0
reconnectauth=1

L2NPC.ini
[CacheD]
address="192.168.0.3"
= PC3 LAN IP
port=2008

[server]
address="192.168.0.3" = PC3 LAN
IP
port=2002

[LogD]
address="192.168.0.1" = PC1 LAN
IP
port=3999

[map]
directory="map"

[World]
WorldId=1

[db]
address="192.168.0.1"
= PC1 LAN
IP
port=2005
user="sa"
password="password"

[Setting]
Country=1
ExceptionMailing=false
MailServer=mail.com

CacheD.ini
[Setting]
Country=1
ExceptionMailing=false
MailServer=mail.com

[Logd]
address="192.168.0.1"
= PC1 LAN
IP
port=3999

[World]
WorldId=1
Pair=0

[ItemAudit]
DefaultPriceLimit=100000000
DefaultPriceCheck=50000000
ChgRatioLimit=30
AdenaLimit=100000000
AdenaCheck=50000000
AdenaChgRatioLimit=30

[SQL]
SQLExecLimit=5000
ItemClearOnStart=1
DiffBBSConn=0
SaveQsData=0
BBSDBTimeOut=0
USEBBS=0

Once
you got this setup like this, everything should be ok

------------------------------------------------------

411 C3 auth
update:

Originally Posted by
Livid

.0044AD03: E9AA390100
.0044AD08:
90
.0044AD09: 90
.0044AD0A: 90
.0044AD0B: 90

.0045E6B2:
807E0204
.0045E6B8: 7409
.0045E6BA: F3A5
.0045E6BC:
FF249518AE4400
.0045E6C3: 6649
.0045E6C5: 668BC1
.0045E6C8:
B505
.0045E6CA: F6F5
.0045E6CC: 0006
.0045E6CE: A5
.0045E6CF:
A4
.0045E6D0: 66B90500
.0045E6D4: F3A5
.0045E6D6: C60700
.0045E6D9:
47
.0045E6DA: FEC8
.0045E6DC: 3C00
.0045E6DE: 7FF0
.0045E6E0:
FF249518AE4400

3 server change
cmp
w,[esi][02],00204
to
cmp b,[esi][02],04
at
0045E6B2
Should do the
trick.

-----------------------------------------------------------

C4PTS only?:

serverPort =
2104
serverExPort = 2106
serverIntPort = 2108
worldport =
7777
DBConnectionNum=10
encrypt = true
numServerThread = 3 ;thread
count on authD server
numServerExThread = 3
numServerIntThread =
3
logDirectory="\log"
ProtocolVersion =
30810
GameID=8
DesApply=false
PacketSizeType =
3
ReadLocalServerList=false
OneTimeLogOut=true
CountryCode=2
DevConnectOuter=true
DevServerIP="192.168.0.1"
SocketTimeOut
=
60
SocketLimit=5000
AcceptCallNum=3
UseOneIOCom=false
AcceptThread=3
WaitingUserLimit=1000
dumppacket=true
UserData=false
UseLogD=false
logdip="192.168.0.1"
logdport=3999
logdconnectinterval=120

SupportReconnect=true
;(true=auth-main
reconnect on/false=auth-main reconnect off)
AutokickAccount =
true
NewEncrypt = false

----------------------------------------------------------------------

.

7.2
Eventmatch

I
think i figured out about 99% of this fun little thing hers what I have so
far

1) Get yourself to a place where you want to have your event. then
type
//eventmatch create 1 team1 team2 1 1 1 100 100 you wont get any
conformation if it worked but that’s where step 2 comes in

2) Type
//eventmatch list you should see something like
SYS:--Event Match
List Begin--
SYS: 1: 'team1' vs 'team2'
SYS --Event match List
End--
The number in front of the line that has the 2 teams that you setup in
step 1 is your match ID, *The match ID is reset to 1 every server
reboot*

3) Next type //eventmatch manage 1, again change the 1 to
your match ID. This will bring up the handy match command screen

4) In
the top right corner there is a button that says Remove a Race Track
*will read "move a Race Tr" * Click that. Now it changed to Create a Race
Track
*reads "eate a Race Tra"*. in this window click the button that says
My Coordinates, that will fill in the X, Y, Z of the center of the new
Arena, or Race track as they refer to it as. then the last 2 boxes are the
height and width *height is the length of the arena from North to South and the
width is the length from East to West in the world. Once that window is all
filled in, click Ok

5) Now that your back at the main window, the
2 important items for right now are the Race Setup File and Command
File
fields. These are the full path to the files, I suggest putting them
right in your C: Drive for easy typing, So for example put C:\arena_setup.ini in
the Race Setup field and C:\command.ini in the Command File field. *file
specs are at the end of this topic*

6) next, we need to setup some
teams have the players create parties with the players they wants on there team
*Or you can do solo fights*, after they have create there parties select a
player from the first team and click Select a target and there name
should now be in the represenitive field of that team. Next click Lockup a
party
to add all the players from that team to the Formation of Team X
field below. Repeat this for team 2.

7) After that, your pretty much
ready to fight. Have the players come to the inside the 4 posts that where made
in step 4. Once there in Click the Fence Up Button, This will put of the
wall to the arena, Click it again to lower the wall.

8 ) I would you then
type //eventmatch dispelall 1 to debuff everyone in the match *Remember
to change the 1 to your match ID* This can be done with the command file also

9) Your ready, Click Start of a Race to get the fancy countdown and
big START prompts to all players in the match.

10) After the match is
over, for fun you can have fire works go on the winning team players by clicking
either, Team1 Fireworks or Team2 Fireworks. The counter towards the bottom
should put a point in the winning teams block or you can change it and click
Apply

11) After you Res. the dead players you can click Fence
Down
to let them out, also click Lift a lockup buttons to remove the
teams. Or you can click Start a Race again to do a best of 3 or 5 or what
ever.

12) Restart at step 6 for your next battle.

Notes
- The
message field at the bottom it to send a message to the players in the match,
type your message and click Forward , the message length is not that big
so be careful

- The Ending Message button will display a big GAME
OVER message *It does not end a match or remove a arena*

- To open the
command File, click Command at the bottom of the
window.

Race Setup File Format
The format is in standard
INI format. here is an example one that will
- Buff all players with lvl 70
Dark Elf Elder buffs
- Not allow Hero weapons
- Not allow Cancel, any
resurrections or party recall

[etc]

TeleportDelay=

[Buff]

BuffCnt=

//Mental shield lvl 4

BuffID0=

BuffLv0=

//Shield lvl 3

BuffID1=

BuffLv1=

//Greater Empower lvl 3

BuffID2=

BuffLv2=

//Might lvl 3

BuffID3=

BuffLv3=

//Focus lvl 3

BuffID4=

BuffLv4=

//Concentration lvl 6

BuffID5=

BuffLv5=

//Resist Wind lvl 3

BuffID6=

BuffLv6=

//Wind Walk lvl 2

BuffID7=

BuffLv7=

//Guidence lvl 3

BuffID8=

BuffLv8=

//Death Whisper lvl 3

BuffID9=

BuffLv9=

[Skill]

DefaultAllow=

ExpSkillCnt=

//Cancel

ExpSkillID0=

//Return

ExpSkillID1=

//Resurrection

ExpSkillID2=

//Mass Ressurection

ExpSkillID3=

[Item]

DefaultAllow=

ExpItemCnt=

//Infinity Blade

ExpItemID0=

//Infinity Cleaver

ExpItemID1=

//Infinity Axe

ExpItemID2=

//Infinity Rod

ExpItemID3=

//Infinity Crusher

ExpItemID4=

//Infinity Scepter

ExpItemID5=

//Infinity Stinger

ExpItemID6=

//Infinity Fang

ExpItemID7=

//Infinity Bow

ExpItemID8=

//Infinity Wings

ExpItemID9=

//Infinity Spear

ExpItemID10=

I commented it as much as possible but a few things to remember, the XxxCnt items are the amount of things your adding like BuffCnt=7 says your going to list 7 buffs also the XXXXXID and XXXXXlvl are 0 based (a lot like the eventdata.ini in the server scripts folder) another thing to remember, if you disallow a weapon or armor, it is NOT disarmed when the match starts, so be on the look out for that.

The AllowDefult option seems to say weather to read the file of
just allow the default, but its backwards DefaultAllow=1 means use the
file DefaultAllow=0 means ignore the file

Command File
format

Like the race setup file, this is an INI format but a lot
simpler,

Here is my example file

[cmd]

CmdCnt=

Cmd0="//announce Hello World"

Cmd1="//announce Finally figured it out :)"

Cmd2="//eventmatch dispelall 1"

**Good commands added by blondeamon**
Mass
Res.
//eventmatch useskill [match_Id] 1016 5
Mass CP
recharge
//eventmatch useskill [match_Id] 1306 6

just put the full
command in quotes and your done, Dont forget to change the CmdCnt to the ammount
of commands you have, and change the number after Cmd if you add more IE Cmd3=
would be the next one.

I have not been able to see if there is a variable
for the match_id so you will have to change the file to match your
match_id.

The one thing I have not figured out is the
TeleportDelay option in the Race setup file.

Notes
-
Tested and ready to use locations for Gludin Arena: -87908 142217 -3645
910x900
(Thanks blondeamon)
- Tested and ready to use locations for Giran
Arena: 72982 142759 -3772 920x900 (Thanks blondeamon)

I hope
you all find this to be useful.

Thanks
[OTS]G-Man

--------------------------------------------------------------------

notes by Stazis

btw
i'm pretty sure that DefaultAllow=1 means that all other then listed in file is
allowed (e.g. all skills are allowed except those you put in .ini or all items
except those you put in .ini)
and vice-versa
DefaultAllow=0 means that
only listed items/skills are allowed.

====

i
think you should make a notice that those .ini files should be on GM clientside
computer - not on serverside. It works with C:/blabla.ini

also
notice that creating battle area does not make it ARENA - ppl still losses their
percent if battle area is not on arena.
=====

another one thing
//eventmatch create 1 ......
1 - is a
match_rule not a match_id - so i think we should make experiments with different
match_rules as was said for 9x9 3x3 etc..

=====

//eventmatchop[list | observer]
//eventmatchop observer
[match_id] [on|off]

just
another interesting commands - allowing you to observe any match =)

and
bad news - from what i see from .exe - there is only DEATH_MATCH rule (at least
only this is named)

Vycka notes

i
think, teleportdalay is used with other match_rule (not with DEATH_MATCH). i saw
on official battle tournament event match goes like this:
outside arena zone
stands two full parties. and from each party 3 members will teleported into
arena. after 3 ppl from one party been killed then after few seconds other 3
members from defeated party have been teleported in the same time and into the
same location. and again and again, until one party has no more members
left

quote about that from official site:

3 vs.
3 Survivor – Each team is broken down into 3 teams of 3 and sent out into the
arena three players at a time. When the 3 member team from one side is defeated,
the next 3 member team is immediately sent in. The team to eliminate all 9
opposing players is the victor of this round.

so i guess that 3
match_rules exists.
depending from official tournament:
9 vs. 9 Full Team
(default rule, after fences have been created)
3 vs. 3 Survivor

and
teleport delay guess also goes to this one:
1 vs. 1 5 Man Survivor – 5
members are selected from each team and sent out into the arena one at a time.
When a member from one side is defeated, the next team member is immediately
sent in. The team to eliminate all 5 opposing players is the victor of this
round.

-------------------------------------

as
far as i know you can't enter in match_rule any string. even if other rules
exists in pts files they dont have its name like stazis said only DEATH_MATCH is
named. what can be other ids only good asm programer can tell if they exists..
number range can be also diffrent, if ncsoft uses byte variable then normal gm
in a few days can check all availible numbers (0-255) if its a unsigned int or
long then only asm programer can help..

problems/solutions

sameone knows how to make that kind off event with a full party going 3x3 ?

Just let them make a party. After that select one press select target and
lock-up
party.

Same for team2

there's a problem with mana recovering, i don't know a way to recover it 

"//eventmatch useskill 1 10006 1"
or
//GM recharge
BuffID1=10006
BuffLv1=1

Must to be in
race.ini

Opening/closing the coliseum doors, write in Command File:

[Cmd]

CmdCnt=

Cmd0="@LABEL: Colosseum command" 

Cmd1="@LABEL: CLOSE BEHIND DOORS" 

Cmd2="//set_door_status aden_colosseum_001_001 close"

Cmd3="//set_door_status aden_colosseum_002_002 close"

Cmd4="@LABEL: CLOSE FRONT DOORS" 

Cmd5="//set_door_status aden_colosseum_001_002 close"

Cmd6="//set_door_status aden_colosseum_002_001 close"

Cmd7="@LABEL: OPEN BEHIND DOORS"

Cmd8="//set_door_status aden_colosseum_001_001 open"

Cmd9="//set_door_status aden_colosseum_002_002 open"

Cmd10="@LABEL: OPEN FRONT DOORS"

Cmd11="//set_door_status aden_colosseum_001_002 open"

Cmd12="//set_door_status aden_colosseum_002_001 open"

Skill GM recharge do not exist. How recharge mana ?
 

Just add new skill to skilldata and skill_pch, see example in other recharge skills in your skilldata. You can also add skill to recharge cp/hp/mp at once.

Examples:

//eventmatch create 1 team1 team2 1 1 1 100 100

yes, changing the race track does change the id. if you dont
want to do that, check your location before you set it up (/loc) :

In
the orange part, the teams can be any name u want. In the bolded part, put your
location (x y z). in the red part, put the arena size you want, small events
(such as 1v1) 500 500 will suffice. for larger events 1000 1000 will be great
(that 4x as big as the 500 500).

example (note the location there is just
random numbers):
//eventmatch 1 Fury Oath 185213 -21545 -3500 500
500

teams: Fury, Oath
loc: 185213 -21545 -3500
arena size:
500x500

there's my race.ini
config...
auto recovers 100% hp and cp at the end of the fight
count.
there's a problem with mana recovering, i don't know a way to recover
it 100%, i'm using mana potion ( last for 10sec) but that can be a advantage for
some classes like OVERLORDS.
also ppl cannot use mana and heal potions.
xD

[etc]
TeleportDelay=2

[Buff]
BuffCnt=1
DefaultAllow=1

//ARENA:
CP Recovery
BuffID0=4380
BuffLv0=1

//Greater Battle
Heal
BuffID1=1218
BuffLv1=170

[Skill]
DefaultAllow=1
ExpSkillCnt=1

//Return
ExpSkillID0=1050

[Buff]
BuffCnt=4

//DISPELL
DEBUFF

BuffId0=7002
BuffLv0=1

//HEALTHY
BuffId1=3598
BuffLv1=1

//MANA
HEAL
BuffId2=34999
BuffLv2=1

//CP
RECOVERY
BuffId3=4380
BuffLv=1

[Item]
DefaultAllow=1
ExpItemCnt=9

//Mana
Potion
ExpItemId0=728
//Healing Potion
ExpItemId1=727

//Healing
Medicine
ExpItemID2=2060

//Quick Healing
Potion
ExpItemID3=2038

//Healing
Potion
ExpItemID4=2032

//Lesser Healing
Potion
ExpItemID5=2031

//Healing
Potion
ExpItemID6=1539

//Healing Drug
ExpItemID7=2002

//Mana
Potion
ExpItemID8=728

and command file config, this really make my
life easier to close and open coliseum
doors.

[Cmd]
CmdCnt=11
Cmd0="LABEL: CLOSE ALL DOORS"

Cmd1="//set_door_status aden_colosseum_001_001
close"
Cmd2="//set_door_status aden_colosseum_001_002
close"
Cmd3="//set_door_status aden_colosseum_002_001
close"
Cmd4="//set_door_status aden_colosseum_002_002
close"

Cmd5="LABEL: OPEN BEHIND DOORS"
Cmd6="//set_door_status
aden_colosseum_001_001 open"
Cmd7="//set_door_status aden_colosseum_002_002
open"

Cmd8="LABEL: OPEN FRONT DOORS"
Cmd9="//set_door_status
aden_colosseum_001_002 open"
Cmd10="//set_door_status aden_colosseum_002_001
open"

8. Web Registration Page

-----------------------------------------------------------------------------------------------
ASP
Account Registeration
System
-----------------------------------------------------------------------------------------------

Extract
L2Asp.zip to your C:\Inetpub\wwwroot (or wherever you have as your IIS root
directory, this is default)

If you don't have Internet Information
Services installed. Then you'll need to find your Windows XP Pro CD. Go to
Add/Remove Program and select "Add/Remove Windows Components" -Select Internet
Information Services from the list and install it.

Open the conn.asp
(from the directory that you just extracted to) with notepad and change the
following:
ms_sql_server_host_addr = "127.0.0.1" //This
should be set to your WAN IP. Leave it as 127.0.0.1 if you want to just manually
make accounts on your computer for your friends.
sql_server_username =
"sa"
sql_server_password = "l2online"
save and close the file.

Open
control panel, click administrative tools, then double click Internet
Information Services. Click on local computer then click websites. Right click
default websites and go properties. Click on the documents tab and then the add
button. Under default document name type index.asp then press OK. Select
index.asp and use the up arrow to move it to the top of the list then press
OK.

Close IIS and open internet explorer and type http://127.0.0.1 (where 127.0.0.1 is your internal
IP)
Once the website comes up click register. Then enter a username and a
password and click next.

You have now made an account on your server.

9. RED Errors

I do not apply for a
correctness of diagnostics of errors. But the most part is precisely known. If
you know the exact answer under the description and correction of a an error,
tell, I shall add/shall correct my message. I hope, that this theme will help
much, including to me.

= CacheD =
1)
[Account.cpp][381] Cannot load day uesed time for account
[34979]
[Account.cpp][321]Error. Cannot load Week play time, account id
[34979]
--> Non existing table in user db.
--> You can add
stored procedure for ignoring or enable payment system - how much money =
gameplay time

2) Error 23000:[Microsoft][SQL Native
Client][SQL Server]Cannot insert duplicate key row in object 'dbo.user_data'
with unique index...
--> Need check and fix SQL DataBase (see SQL
scripts for checking)

3)Invalid WriteLogout
FENIXraid(178040), Niket (35212), (0)

4)Warehouse error. (487)[10541][-150][_]. over limit.
[122][120]
Warehouse rollback. (487)
--> player have 122 items,
but should have 120. 487 seems to be line in source (thanks for report
"hr")

5)Error 23000:[Microsoft][SQL Native
Client][SQL Server]duplicated pet name[POKEMON]
--> Maybe players
use pet dup bug
--> seeems to be the same to 2 (normal
situation)

6)can not create char. too many chars
[7]
--> Player try create one more characters on account. But a
limit will reach.

7)[Warehouse.cpp][3537] Try hack ?
. dbid[15665716]
--> Arises at 'lags'. The server has already moved
a subject in warehouse, but the player still tries to execute action of
carry.

8)[Warehouse.cpp][3933]Useitem::Cannot find
item, [16614185][2][1][26318][21400][1209037934]

9)fetch error
sqlstate 24000
msgText [Microsoft][SQL Native
Client][SQL Server]Invalid cursor state
sql EXEC lin_GetUserDataByCharId
0
[User.cpp][2455] undefined (or unregistered) char Id[0]
--- call stack
---
[0] void IOThread_common(void *arglist)
[1] void
CPacket::OnIOCallback(BOOL bSuccess, DWORD dwTransferred, LPOVERLAPPED
lpOverlapped)
[2] cpacket::oniocallback_funccall
[3] static bool
requestRestoreCharacter(CSocket* pSocket, const unsigned char* packet)
[4]
CUserSP CUserDB::GetUser(int nUserId, bool
bLoadIfNotExist)
[Socket.cpp][6135]Cannot find user, char
id[0]

10) PGFCV failed
800007d6

= L2Auth =
1) 2005.11.16
18:46.32:1052: bad packet size 30053
--> User tries to come with
the non-standard lineage2 client. Example, telnet, hack and etc.

2)2006.03.28 20:25.27:*close connection from 127.0.0.1,
140(8d9358)
--> normal disconnect L2Server

= L2Server
=

1) Invalid protocol [Client:551]
[Server:530]
--> user connect with old engine.dll.
1.1) Invalid protocol [Client:419] [Server:530].....
disconnect
--> user connect with old engine.dll. server block this
connection (see l2server.ini)

2) [UserSocket.cpp][5579] user[xxxMCKOL9Nxxx] invalid skill id,
level. Hack?
--> user have non existing skill. Example, update
skilldata have removed some skill levels on skill.
Check user db. remove bad
levels on this skill
--> not at all, in that case you will see
"unregistered skill". this error seems to be a lag during learning skills
(report "hr")

3) [UserSocket.cpp][1084] User[Runa]
trying get invalid item
--> Log at a raising of a thing from the
ground. The thing is already lifted, and other player tries to take too
most.

3) slotnum = 839007878 > 100 (type[80916],
id [-3542], user[2017404580] at file[ShortCut.cpp], line[73]
-->
Attempt to lay out on the panel skill/action, with ID is more than button than
100 (in C3 - 12 panels on 12 buttons,
and in c1 were 10 on 10). Use Exec hex
Fix for enable all 12 panels.

4) Invalid Say Type:
-1912602625
--> non existing Say Message in 'fstring.txt', but Npc
try Shout this Message. Check AI for this npc and check fstring for this
message.

5) try dual login.
kicked.[propet][24019]
--> Lags effect. The user often presses the
button the Login or Start.

6) invalid amount at
file[UserSocket.cpp], line [1380]
--> attempt to push stocked a
subject in a heap same, but them there already a maximum. Check itemdata.txt for
this item.

7) [pc_param.cpp][532] Some parameter is
invalid sex[1] clstype[8] moverype[79745] envtype[0]
[UserSocket.cpp][2769]
ShortCutUsePacket deprecated!!!
--> 'Lag' or substitution of a
package. Maybe bot.

8) item [id:13781] null at
file[UserSocket.cpp], line [898]
--> check itemdata DB in
SQL

9) [UserSocket.cpp][5683]Unknow Restart
Point[79738].
living user called RestartPointPacker! ban this
user!
--> Ban! :) No waiting. Bot-teleporting.

10) [ShortCut.cpp][372] CShortCut::SendShortCutInfo failed. cannot
find item
cannot add short. skill is not exist or
passive[211]
--> Error in skill config or in user skill db table.
Check user db and fix bad skill.
--> Or skill is passive, but user try use
this skill as active skill

11) invalid ammount at
file[UserSocket.cpp], line [1380]
--> Error in stocked settings in
itemdata. Check itemdata.txt for this item.

12) dwTime[58]<80 !!!!!!!
--> Sql lag time. check
connection to SQL server, check network speed

13) [UserSocket.cpp][5543] hacking? user[Jazz] skill_name_id is
invalid
--> non existing skill somebody use. Check mobs skills and
skilldata and user skills db.

14) someone requiests
OustPartyMemberPacket, but User has no party
--> user try press
Action button "Change leader". Button non worked in C1 server... in C4 too. Use
real official server for support this.

15) index is
not for NPC! at file[NpcSocket.cpp], line[267]

16) Already send list.
--> User try send duplicate
message in GM send message panel.

17) [Skill.cpp][554] Unregistered skill [0-17]
--> user
have non existing skill. Example, update skilldata have removed some skill
levels on skill.
--> check user db. remove bad levels on this
skill
--> bad skill_pch file. Mob use Unregistered (in pch file) skill.
Make correct pch file. Use L2ScriptMaker :)

18) Barhan use unknow command : creat_pet
--> GM use non
existing gm command. Ban GM :)

19) [Path.cpp][552]
Invalid offset[0] count[0]

20) [u][921]What a
wonderful world. item server id[7733314], amount[442826855]
-->
bugged network packet

21) [ioc.cpp][1212]
CIOSocket::_Write - WSASend fail. error(10054)

22) container NULL pos[16926, 107112] at file [world_server.cpp], line
[568]
--> non existing geodata file for this location (see
coordinates)

23) Uncached HTML[]
[] File does not
exist
--> 1. baguser use non existing html
--> 2. html file
have bad link url to non existing html

24) [Path.cpp][541] invalid pos(-104613,262399)
zone[16][26]
--> non existing geodata file for this location (see
coordinates)

25) invalid amount (DropItem : 0 of 1342
by DarkLine) at file[UserSocket.cpp], line[946]
--> trying to drop
wrong count (or more than have)

26) [UserSocket.cpp][5746]Try hack. Not a GM try GMCommand packet.
[TrojanVirus] ip address 212.220.222.51
--> ban user

27)
[Residence.cpp][626] undefined (or unregistered)
Residence[41797]
--> clan have non existing castle/clanhall. check
residence number in clan db

28) [User.cpp][7695]
CItem::FindObjectSP Failed

29) Multisell
fail
--> item locked to exchange, because item On player (example,
weapon, armor)

30) data link too
long!

31) actor (1808230891, 10992819,
-1298392) in AsyncMove, failed to pop from GetContainer!!!
--> 1.
network lag
--> 2. crash server bug

32) Suspicious attaking user ip[85.115.164.71]
--> ban
ip

33) [UserSocket.cpp][4572]Choose inventory item
fail. Pending item is null error. target item is not exist.

34)
depth>200 at file[NPC.cpp], line[935]

35)
living user called RestartPointPacker! ban this
user!
Cannot kick (27528)(cmer4)

36) CPledge[4077]::DeleteMember[1209012037]-> Cannot
find

37) [c:\serverservice\l2server\ThreadLocalWorldMap.h][642] removing
not linked item

38) SocialActionType[77680] > LAE_MAX[32]

39)[ObjectDB.cpp][168] undefined (or unregistered) Name
[clavir]
--> npc, item non exist for summon, because or non exist
in configs or need make correct _pch file. (See sample - non exist "Clavir".
Correct name "Clavier")

40)[ObjectDB.cpp][182]
undefined (or unregistered) ClassId[8073]
[ObjectDB.cpp][376] CreateItem
Failed. GetObject Failed)
--> non existing item_id in player
inventory. Check user db and remove bad item.

41)trying to multiple push!
--> someone is clicking
login button a LOT (thanks OnlyOne)
--> This also happens when someone
clicks a link a lot of times, i.e. a recipe fille (with lag). (report
Aikeleer)

= NPC =
1) [c:\serverservice\l2npc\Utils.h][197] Bit flag Index[320]
overflow

2) [serversocket.cpp][2106]
Invalid user [4830194a]

3) MakerLog (
event_t21_21_trakia_01)'s ( 54530, 113967, -2232) [redeye_leader_trakia] was
dropped. npcpos (-1280) -500> ...

--> Incorrect Z parameter
in npcpos config for this npc. Mobs droped to undergroung or fall from sky to
ground on respawn.

4) SpawnDefineName[]
GetSpawnPositionSize()<=0 == NULL at file[NpcMaker.cpp], line[61]

2) Error
23000:[Microsoft][SQL Native Client][SQL Server]Cannot insert duplicate key row
in object 'dbo.user_data' with unique index...
--> Need check and fix SQL
DataBase (see SQL scripts for checking)

Actually not, read about unique indexes and why they
are using

Code:

4)Warehouse error.
(487)[10541][-150][_]. over limit. [122][120]

Warehouse rollback.
(487)

--> Player
warehouse have 487 items, but cacheD warehouse have maximum on 300 items.

player have 122 items, but should have 120. 487 seems to be line
in source

Code:

5)Error
23000:[Microsoft][SQL Native Client][SQL Server]duplicated pet name[POKEMON]

--> Maybe players
use pet dup bug

seeems to be the same to 2)

Code:

2)
[UserSocket.cpp][5579] user[xxxMCKOL9Nxxx] invalid skill id, level. Hack?

--> user have non
existing skill. Example, update skilldata have removed some skill levels on
skill.

Check user db.
remove bad levels on this skill

not
at all, in that case you will see "unregistered skill". this error seems to be a
lag during learning skills

Code:

25) invalid amount
(DropItem : 0 of 1342 by DarkLine) at file[UserSocket.cpp],
line[946]

trying to drop wrong
count (or more than have)

41)trying to
multiple push!

someone is clicking
login button a LOT

(thanks OnlyOne)

This also happens when
someone clicks a link a lot of times, i.e. a recipe fille (with lag).

2)
[UserSocket.cpp][5579] user[xxxMCKOL9Nxxx] invalid skill id, level. Hack?

--> user have non
existing skill. Example, update skilldata have removed some skill levels on
skill.

Check user db.
remove bad levels on this skill

--> not at all,
in that case you will see "unregistered skill". this error seems to be a lag
during learning skills (report "hr")

Much more often
occurs that the player has gone a bot and uses options for the character of
other class / level.

20) [u][921]What a wonderful world. item server id[7733314],
amount[442826855]
--> bugged network packet

Hm, if your watch_list
parsing as well - this message you can see when item from watch list appear on
your server.

just trace this
packet.

pConstFrom null index at
file[world_server.cpp], line[2097]
Solution: Geodata problem

10) PGFCV failed 800007d6

delete perfmon.ini
/Uninstall sp1 (W2k3)

or

in file perfmon.ini
change
CheckPerfMon to 0

04/01/2006 13:47:00.796, [ScriptEngine.cpp][849] Max Loop Count
exceede!!!
an ai script is looping but it reached the max

All messages with "WARN:.." - Tontor-antihack-protector. Read FAQ for Tontor
patch

serverClose:Createsocket fail

and

non-registered world server
127.0.0.1

look in your server table
odd are your missing the servers entry, or have wrong IP.

one thing to
keep in mind is if you server is connecting to the auth server with 127.0.0.1
then put 127.0.0.1 as the internal IP if the server is connecting to a
192.168.x.x address even if its on the same PC you must put the full
192.168.x.x

during installation pls
note:
1. at executing DBScript, u could encounter the following error
Specified owner name 'DBO'
either does not exist or you do not have
permission to use it
Invalid column name 'shop_Income_Temp'
Must declare the variable '@dbname'
.....
this is due to case-sensitive reasons, to
solve:
1) change all variables to small case
2) change the db default
language to Chinese_PRC_CI_AI then execute the DBscript again

1.[rune09_2116_23] failed to increase total npc because of npc
quota [11 / 10]

2...[pos]...[mob_name] is
outsider

Geodata for the area
is not 'perfect' but still working.

This mean the mob could not spawn
where it randomly generated the place for it to spawn.

The NPC Quota
problem I think is npcpos scripting errors (why would two npc spawn (like a shop
npc) in npcpos - that is why they use NPC Quota.

NPCQuota 1 = 1 mob
spawn
NPCQuota 10 = up to 10 mobs spawn

trying to move
vehicle to invalid position (-71651, 262159) at file[.\world_server.cpp],
line[2321]

geodata problem – or
vehicle trying move to coordinates not presented in current geodata version

1. sql execution time [5016]ms,
sql[EXEC lin_GetUserLogTime 16, 1, 1]

just saying the SQL call
too a long time (5016MS to be exact, i would chect your DB server and see it the
network connection is lagging or something on there slowing down SQL

2. Error sql: EXEC lin_SetLastTaxUpdate
'2006-9-30 12:0:6', '2006-9-31 0:27:12', '2006-9-31 6:0:14' (0)
Error 42000:[Microsoft][ODBC SQL Server Driver][SQL Server]Error
converting data type varchar to datetime.
[.\Socket.cpp][12448] cannot update last tax change
date.

2 - Change the date
format. Should be dd.mm.yyyy, time hh:mm:ss

32bit 天堂服务端假设教程的更多相关文章

  1. ssr 服务端安装教程

    1 ShadowsocksR 多用户版服务端安装教程(SS-Panel后端) 2 ShadowsocksR 单用户版服务端安装教程

  2. FTP服务端 FTP服务端搭建教程

    FTP服务端搭建教程如下:一.需要准备以下工具:1.微型FTP服务端.2.服务器管理工具二.操作步骤:1.下载微型FTP服务端.(站长工具包可下载:http://zzgjb.iis7.com/ )2. ...

  3. Apereo CAS Server服务端搭建教程

    不说废话了,直接看搭建过程吧. 首先到下载源码,https://github.com/apereo/cas-overlay-template/tree/4.2 附上地址,本次版本为4.2,下载源码后如 ...

  4. Serv_U FTP服务端使用教程

    Serv-U FTP Server是一种被广泛运用的FTP服务器端软件,可以设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小等,功能非常完备.具有非常完备的安全特性,支持SSl FTP传 ...

  5. Linux下安装SVN服务端小白教程

    安装 使用yum安装非常简单: yum install subversion 配置 创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成 ...

  6. C#<热血传奇>服务端源代码再次给力更新

    前段时间一直在忙公司项目,最近抽点空稍微把部分代码重新整理一下(代码太久没碰很多地方都忘记了 囧~~~) 此次还是更新服务端,并修正上一版里面存在的很多指针 异常BUG...  (代码比较烂,还请各位 ...

  7. SSR服务端一键安装脚本

    支持新协议混淆,SSR服务端一键安装脚本   Shadowsocks-R 是项目 shadowsocks 的增强版,用于方便地产生各种协议接口.实现为在原来的协议外套一层编码和解码接口,不但可以伪装成 ...

  8. vue服务端渲染axios预取数据

    首先是要参考vue服务端渲染教程:https://ssr.vuejs.org/zh/data.html. 本文主要代码均参考教程得来.基本原理如下,拷贝的原文教程. 为了解决这个问题,获取的数据需要位 ...

  9. 32bit 天堂2脚本修改资料大全【客户端+服务端】

    该资料夹中所有教程资料全部适合天堂2初章32位服务端的脚本修改,已经1.2章相关客户端的修改. https://pan.baidu.com/s/1RuGMFNgERd2JMYQpdceQwg 提取码: ...

随机推荐

  1. JavaScript的DOM操作获取元素实际大小

    clientWidth 和 clientHeight 这组属性可以获取元素可视区的大小,可以得到元素内容及内边距所占据的空间大小. 返回了元素大小,但没有单位,默认单位是 px,如果你强行设置了单位, ...

  2. 浏览器地址栏运行JavaScript代码

    这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开头后跟要执行的语句.比如: javascript:alert('hello from ad ...

  3. 1833. [ZJOI2010]数字计数【数位DP】

    Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output 输出文 ...

  4. MongoDb 物理位置应用实现

    1代码实现 官方驱动2.7版本 1.1范围查找 /// <summary> /// 半径范围查找位置信息 /// </summary> /// <param name=& ...

  5. mysql 去除特殊字符和前后空白字符

    mysql 去除特殊字符 update table set field = replace(replace(replace(field,char(9),''),char(10),''),char(13 ...

  6. JAVA构造MAP并初始化MAP

    第一种方法:static块初始化 public class Demo{ private static final Map<String, String> myMap; static { m ...

  7. 传入一个integer数组,取出最大、最小值

    /** * <p> * 传入一个integer数组,取出最大值 * </p> * @author yunns 2015年11月19日 * @param array * @ret ...

  8. 聊聊并发——深入分析ConcurrentHashMap

    术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值. 哈希表 hash table 根据设定的哈希函数H(key ...

  9. 苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置

    苹果电脑(Mac mini或Macbook或iMac)恢复出厂设置,首先要做好如下的准备: 第一:数据的备份:第二:保证正常的wifi连接:第三:有线的鼠标键盘连接: 具体恢复操作步骤: 步骤一:电脑 ...

  10. freemarker时间转换

    Freemarker日期函数处理[转] (2012-08-01 14:32:13)   string(当和一个日期值一起使用) 这个内置标签用指定的格式把日期转换成字符串,(把默认的格式用FreeMa ...