日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

32bit 天堂服务端假设教程

發布時間:2024/8/1 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

    [etc]TeleportDelay=2[Buff]BuffCnt=10//Mental shield lvl 4 BuffID0=1035BuffLv0=4//Shield lvl 3 BuffID1=1040BuffLv1=3//Greater Empower lvl 3 BuffID2=1059BuffLv2=3//Might lvl 3 BuffID3=1068BuffLv3=3//Focus lvl 3 BuffID4=1077BuffLv4=3//Concentration lvl 6 BuffID5=1078BuffLv5=6//Resist Wind lvl 3 BuffID6=1189BuffLv6=3//Wind Walk lvl 2 BuffID7=1204BuffLv7=2//Guidence lvl 3 BuffID8=1240BuffLv8=3//Death Whisper lvl 3 BuffID9=1242BuffLv9=3[Skill]DefaultAllow=1ExpSkillCnt=4//Cancel ExpSkillID0=1056//Return ExpSkillID1=1050//Resurrection ExpSkillID2=1016//Mass Ressurection ExpSkillID3=1054[Item]DefaultAllow=1ExpItemCnt=11//Infinity Blade ExpItemID0=6611//Infinity Cleaver ExpItemID1=6612//Infinity Axe ExpItemID2=6613//Infinity Rod ExpItemID3=6614//Infinity Crusher ExpItemID4=6615//Infinity Scepter ExpItemID5=6616//Infinity Stinger ExpItemID6=6617//Infinity Fang ExpItemID7=6618//Infinity Bow ExpItemID8=6619//Infinity Wings ExpItemID9=6620//Infinity Spear ExpItemID10=6621

    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=3Cmd0="//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=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...
    --> Need check and fix SQL DataBase (see SQL scripts for checking)

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

    Code:

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

    Warehouse rollback. (487)

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

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

    Code:

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

    --> Maybe players use pet dup bug

    seeems to be the same to 2)

    Code:

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

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

    Check user db. remove bad levels on this skill

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

    Code:

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

    trying to drop wrong count (or more than have)

    ?

    41)trying to multiple push!

    someone is clicking login button a LOT

    (thanks OnlyOne)

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

    ?

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

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

    Check user db. remove bad levels on this skill

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


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

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

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

    just trace this packet.





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

    ?

    10) PGFCV failed 800007d6


    delete perfmon.ini /Uninstall sp1 (W2k3)

    or

    in file perfmon.ini change
    CheckPerfMon to 0

    ?

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

    ?

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

    ?

    serverClose:Createsocket fail

    and

    non-registered world server 127.0.0.1

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

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

    ?

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

    ?

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

    ?

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


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

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

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

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

    ?

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

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

    ?

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

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

    ?

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


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

    ?

    轉載于:https://www.cnblogs.com/kt007/p/10308435.html

    總結

    以上是生活随笔為你收集整理的32bit 天堂服务端假设教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。