32bit 天堂服务端假设教程
本文作者: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
?
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)
?
?
?
?
?
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
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
**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=13Cmd0="@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... |
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 |
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) |
2 - Change the date format. Should be dd.mm.yyyy, time hh:mm:ss
?
轉載于:https://www.cnblogs.com/kt007/p/10308435.html
總結
以上是生活随笔為你收集整理的32bit 天堂服务端假设教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos6.5命令行 安装锐起 RD
- 下一篇: ZigBee(CC2530)(03)数据