本文作者:smeli(俄罗斯人,于2009年完成该教程)
PS:要比国内写的那些教程完整,详细,希望大家喜欢
VS运行库安装………………………………………..2
SQL数据库安装…………………………………………..3
L2Server设置………………………………………………11
GM账户创建………………………………………….15
运行服务端(1).………………….………………………..16
老版服务端设置……………………………………………..19
-
运行服务端 (2)……………………………………………...39
Two servers on one auth双线设置……...…………………………39
Eventmatch………………………………………………52
Web注册页……………………………………..…80
红色错误……………………………………………………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
Open
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)
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 *, 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.
[*Virus] 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 |
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 |
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 2...[pos]...[mob_name] is |
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, |
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 |
2 - Change the date
format. Should be dd.mm.yyyy, time hh:mm:ss